diff --git "a/\344\275\234\344\270\232/2022-04-22 vue\347\254\254\345\215\201\344\270\211\346\254\241\344\275\234\344\270\232 \345\221\275\345\220\215\350\267\257\347\224\261\344\270\216params\345\224\257\345\223\201\344\274\232\350\264\255\347\211\251\350\275\246/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" "b/\344\275\234\344\270\232/2022-04-22 vue\347\254\254\345\215\201\344\270\211\346\254\241\344\275\234\344\270\232 \345\221\275\345\220\215\350\267\257\347\224\261\344\270\216params\345\224\257\345\223\201\344\274\232\350\264\255\347\211\251\350\275\246/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" new file mode 100644 index 0000000000000000000000000000000000000000..5c958f39afad86bce7a364dd7eb57b66f83c07fb --- /dev/null +++ "b/\344\275\234\344\270\232/2022-04-22 vue\347\254\254\345\215\201\344\270\211\346\254\241\344\275\234\344\270\232 \345\221\275\345\220\215\350\267\257\347\224\261\344\270\216params\345\224\257\345\223\201\344\274\232\350\264\255\347\211\251\350\275\246/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" @@ -0,0 +1 @@ +作业:作业作为平时分的唯一依据, 把购物车写出来,商品名,价格,图片,购买数量 \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/README.md" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..78a9e1d48cb5a1701ed557f3f5f202ecf195f81a --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/README.md" @@ -0,0 +1,24 @@ +# cli + +## Project setup +``` +npm install +``` + +### Compiles and hot-reloads for development +``` +npm run serve +``` + +### Compiles and minifies for production +``` +npm run build +``` + +### Lints and fixes files +``` +npm run lint +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/babel.config.js" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/babel.config.js" new file mode 100644 index 0000000000000000000000000000000000000000..e9558405fdcc02f12d757acb308e02937a7444f1 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/babel.config.js" @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/jsconfig.json" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/jsconfig.json" new file mode 100644 index 0000000000000000000000000000000000000000..4aafc5f6ed86fe6dff8d4b6be59290cbdeb61656 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/jsconfig.json" @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "baseUrl": "./", + "moduleResolution": "node", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + } +} diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/package-lock.json" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/package-lock.json" new file mode 100644 index 0000000000000000000000000000000000000000..72961ee4b0a17a6f2da891f17d2d57b57668b8db --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/package-lock.json" @@ -0,0 +1,18890 @@ +{ + "name": "cli", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cli", + "version": "0.1.0", + "dependencies": { + "axios": "^0.27.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.8.3", + "vue": "^2.6.14", + "vue-router": "^3.5.3" + }, + "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", + "vue-template-compiler": "^2.6.14" + } + }, + "node_modules/@achrinza/node-ipc": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz", + "integrity": "sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw==", + "dev": true, + "dependencies": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + }, + "engines": { + "node": "8 || 10 || 12 || 14 || 16 || 17" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", + "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", + "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", + "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", + "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.9.tgz", + "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.7", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.7.tgz", + "integrity": "sha512-8XC0l0PwCbdg2Uc8zIIf6djNX3lYiz9GqQlC1LJ9WQvTYvcfP8IA9K2IKRnPm5tAX6X/+orF+WwKZ0doGcgJlg==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", + "dev": true + }, + "node_modules/@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "dependencies": { + "easy-stack": "1.0.1" + }, + "engines": { + "node": ">=1.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.25", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", + "dev": true + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx/node_modules/html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/babel-preset-app": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-5.0.4.tgz", + "integrity": "sha512-vf4KqrmuOSnoEYGUiHPeMoxhh6wpiucLWXISn7xYFU80pK1lqcuhbl6tpurAanUIyRO/ENDUQBH7RAdbLNq1bA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.16", + "@babel/helper-compilation-targets": "^7.12.16", + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.12.13", + "@babel/plugin-proposal-decorators": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/plugin-transform-runtime": "^7.12.15", + "@babel/preset-env": "^7.12.16", + "@babel/runtime": "^7.12.13", + "@vue/babel-plugin-jsx": "^1.0.3", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.8.3", + "core-js-compat": "^3.8.3", + "semver": "^7.3.4" + }, + "peerDependencies": { + "@babel/core": "*", + "core-js": "^3", + "vue": "^2 || ^3.2.13" + }, + "peerDependenciesMeta": { + "core-js": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-preset-app/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/babel-preset-jsx": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", + "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", + "dev": true, + "dependencies": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-functional-vue": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-inject-h": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", + "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/babel-sugar-v-model/node_modules/html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/babel-sugar-v-on": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", + "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-on/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-overlay": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-5.0.4.tgz", + "integrity": "sha512-ZTLAAydILjvx0XHUGSNu/cQDpmvLTMYUutDf2vf6XGkSWYqncQ6RwkeMSQhvQNlgpa/ovwIgrlGxLoojFRwdVg==", + "dev": true + }, + "node_modules/@vue/cli-plugin-babel": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-5.0.4.tgz", + "integrity": "sha512-413ZwOWLtgw5vWJoMbrv36crW3qTas4Iru8sU7cRb0IqEZbS28R9X4PVtO8Pek2NYFbrs2XKRYOB7GblB6hVqg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.16", + "@vue/babel-preset-app": "^5.0.4", + "@vue/cli-shared-utils": "^5.0.4", + "babel-loader": "^8.2.2", + "thread-loader": "^3.0.0", + "webpack": "^5.54.0" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-plugin-eslint": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-5.0.4.tgz", + "integrity": "sha512-NLBEKFTFJhYHMzQ3z+sb6xlkcNaN/RcbZ3hiCY72aJe4YOO8jEAp0XkPzlHd4xYkMW7jrmOwwLOPw+3BJ4b77Q==", + "dev": true, + "dependencies": { + "@vue/cli-shared-utils": "^5.0.4", + "eslint-webpack-plugin": "^3.1.0", + "globby": "^11.0.2", + "webpack": "^5.54.0", + "yorkie": "^2.0.0" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0", + "eslint": ">=7.5.0" + } + }, + "node_modules/@vue/cli-plugin-router": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.4.tgz", + "integrity": "sha512-lylzCuH3Br0BcTz5IxxSffpyoF9dQ2k4jTdK8QlWrnRanWGw7P9C0kYMr9rohHaXpvAlu6bio392gbNIWpEepg==", + "dev": true, + "dependencies": { + "@vue/cli-shared-utils": "^5.0.4" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-plugin-vuex": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.4.tgz", + "integrity": "sha512-dBwiD6mT9+V2HTHcwaWE8qFNgTk5I/NUvxYVeUN3Mmmpo4y/1RxXnr7BlKGnaQsTypb2RFk3KowqIJtg7s+E3Q==", + "dev": true, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-service": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-5.0.4.tgz", + "integrity": "sha512-xRiLNTFYmMCT9edZpyYXHijW5xot3gbZpcWDOXUOhKPHN4qs4XqWALnZlU97JYjZOr3XIr/ZvyciyEfrlUVqSA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.12.16", + "@soda/friendly-errors-webpack-plugin": "^1.8.0", + "@soda/get-current-script": "^1.0.2", + "@types/minimist": "^1.2.0", + "@vue/cli-overlay": "^5.0.4", + "@vue/cli-plugin-router": "^5.0.4", + "@vue/cli-plugin-vuex": "^5.0.4", + "@vue/cli-shared-utils": "^5.0.4", + "@vue/component-compiler-utils": "^3.3.0", + "@vue/vue-loader-v15": "npm:vue-loader@^15.9.7", + "@vue/web-component-wrapper": "^1.3.0", + "acorn": "^8.0.5", + "acorn-walk": "^8.0.2", + "address": "^1.1.2", + "autoprefixer": "^10.2.4", + "browserslist": "^4.16.3", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.10", + "clipboardy": "^2.3.0", + "cliui": "^7.0.4", + "copy-webpack-plugin": "^9.0.1", + "css-loader": "^6.5.0", + "css-minimizer-webpack-plugin": "^3.0.2", + "cssnano": "^5.0.0", + "debug": "^4.1.1", + "default-gateway": "^6.0.3", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^5.1.0", + "is-file-esm": "^1.0.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "mini-css-extract-plugin": "^2.5.3", + "minimist": "^1.2.5", + "module-alias": "^2.2.2", + "portfinder": "^1.0.26", + "postcss": "^8.2.6", + "postcss-loader": "^6.1.1", + "progress-webpack-plugin": "^1.0.12", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^5.1.1", + "thread-loader": "^3.0.0", + "vue-loader": "^17.0.0", + "vue-style-loader": "^4.1.3", + "webpack": "^5.54.0", + "webpack-bundle-analyzer": "^4.4.0", + "webpack-chain": "^6.5.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.7.3", + "webpack-virtual-modules": "^0.4.2", + "whatwg-fetch": "^3.6.2" + }, + "bin": { + "vue-cli-service": "bin/vue-cli-service.js" + }, + "engines": { + "node": "^12.0.0 || >= 14.0.0" + }, + "peerDependencies": { + "vue-template-compiler": "^2.0.0", + "webpack-sources": "*" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "less-loader": { + "optional": true + }, + "pug-plain-loader": { + "optional": true + }, + "raw-loader": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "stylus-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/@vue/cli-shared-utils": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.4.tgz", + "integrity": "sha512-nfAsj8Nopu5sVHMBIaut/YL7NaJFVmTBSTJD7LM17jc5uytrM9JwiRtzCiv3JWRBG78Xdb/s2Xb/1YR4fkdmkQ==", + "dev": true, + "dependencies": { + "@achrinza/node-ipc": "9.2.2", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "joi": "^17.4.0", + "launch-editor": "^2.2.1", + "lru-cache": "^6.0.0", + "node-fetch": "^2.6.7", + "open": "^8.0.2", + "ora": "^5.3.0", + "read-pkg": "^5.1.1", + "semver": "^7.3.4", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@vue/cli-shared-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/@vue/vue-loader-v15": { + "name": "vue-loader", + "version": "15.9.8", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.9.8.tgz", + "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "peerDependencies": { + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/@vue/vue-loader-v15/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.4", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.0.11.tgz", + "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001332", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "dev": true + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "node_modules/clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/core-js": { + "version": "3.22.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.22.1.tgz", + "integrity": "sha512-l6CwCLq7XgITOQGhv1dIUmwCFoqFjyQ6zQHUCQlS0xKmb9d6OHIg8jDiEoswhaettT21BSF5qKr6kbvE+aKwxw==", + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.22.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.22.1.tgz", + "integrity": "sha512-CWbNqTluLMvZg1cjsQUbGiCM91dobSHKfDIyCoxuqxthdjGuUlaMbCsSehP3CBiVvG0C7P6UIrC1v0hgFE75jw==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.2", + "semver": "7.0.0" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.7", + "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.7.tgz", + "integrity": "sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.7", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.7", + "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-5.2.7.tgz", + "integrity": "sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.4", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.114", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", + "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz", + "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "dev": true, + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "8.6.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-8.6.0.tgz", + "integrity": "sha512-abXiF2J18n/7ZPy9foSlJyouKf54IqpKlNvNmzhM93N0zs3QUxZG/oBd3tVPOJTKg7SlhBUtPxugpqzNbgGpQQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", + "dev": true, + "dependencies": { + "@types/eslint": "^7.28.2", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.17.3", + "resolved": "https://registry.npmmirror.com/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dev": true, + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.5.tgz", + "integrity": "sha512-ORErEaxkjyrhifofwCuQttHPUSestLtiPDwV0qQOFB0ww6695H953wIGRnkakw1K+GAP+t8/RPbfDB75RFL4Fg==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-file-esm": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-file-esm/-/is-file-esm-1.0.0.tgz", + "integrity": "sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==", + "dev": true, + "dependencies": { + "read-pkg-up": "^7.0.1" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmmirror.com/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.3.0.tgz", + "integrity": "sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.6.1" + } + }, + "node_modules/launch-editor-middleware": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz", + "integrity": "sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w==", + "dev": true, + "dependencies": { + "launch-editor": "^2.3.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "node_modules/lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", + "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", + "dev": true + }, + "node_modules/mrmime": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.0.tgz", + "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.4", + "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.4.tgz", + "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmmirror.com/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dev": true, + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "dev": true, + "dependencies": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", + "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.4.tgz", + "integrity": "sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/progress-webpack-plugin": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/progress-webpack-plugin/-/progress-webpack-plugin-1.0.16.tgz", + "integrity": "sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA==", + "dev": true, + "dependencies": { + "chalk": "^2.1.0", + "figures": "^2.0.0", + "log-update": "^2.3.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmmirror.com/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/stackframe": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.2.1.tgz", + "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmmirror.com/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.12.1", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "dev": true, + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thread-loader": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/thread-loader/-/thread-loader-3.0.4.tgz", + "integrity": "sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==", + "dev": true, + "dependencies": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/thread-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/thread-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vue": { + "version": "2.6.14", + "resolved": "https://registry.npmmirror.com/vue/-/vue-2.6.14.tgz", + "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" + }, + "node_modules/vue-eslint-parser": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "node_modules/vue-loader": { + "version": "17.0.0", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.0.0.tgz", + "integrity": "sha512-OWSXjrzIvbF2LtOUmxT3HYgwwubbfFelN8PAP9R9dwpIkj48TVioHhWWSx7W7fk+iF5cgg3CBJRxwTdtLU4Ecg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + } + }, + "node_modules/vue-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vue-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vue-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/vue-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-router": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", + "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==" + }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/vue-template-compiler": { + "version": "2.6.14", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", + "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/webpack": { + "version": "5.72.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.72.0.tgz", + "integrity": "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", + "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.8.1", + "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz", + "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz", + "integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/yorkie/-/yorkie-2.0.0.tgz", + "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", + "dev": true, + "dependencies": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yorkie/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/yorkie/node_modules/execa": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-0.8.0.tgz", + "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yorkie/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yorkie/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/yorkie/node_modules/normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yorkie/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + }, + "dependencies": { + "@achrinza/node-ipc": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz", + "integrity": "sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw==", + "dev": true, + "requires": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + } + }, + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "dev": true + }, + "@babel/core": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dev": true, + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", + "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", + "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", + "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", + "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "dev": true, + "requires": { + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.9.tgz", + "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.9", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", + "dev": true + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.7", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.7.tgz", + "integrity": "sha512-8XC0l0PwCbdg2Uc8zIIf6djNX3lYiz9GqQlC1LJ9WQvTYvcfP8IA9K2IKRnPm5tAX6X/+orF+WwKZ0doGcgJlg==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", + "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", + "dev": true + }, + "@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "requires": { + "easy-stack": "1.0.1" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "dev": true + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "17.0.25", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", + "dev": true + }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + } + } + }, + "@vue/babel-preset-app": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-5.0.4.tgz", + "integrity": "sha512-vf4KqrmuOSnoEYGUiHPeMoxhh6wpiucLWXISn7xYFU80pK1lqcuhbl6tpurAanUIyRO/ENDUQBH7RAdbLNq1bA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.16", + "@babel/helper-compilation-targets": "^7.12.16", + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.12.13", + "@babel/plugin-proposal-decorators": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/plugin-transform-runtime": "^7.12.15", + "@babel/preset-env": "^7.12.16", + "@babel/runtime": "^7.12.13", + "@vue/babel-plugin-jsx": "^1.0.3", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.8.3", + "core-js-compat": "^3.8.3", + "semver": "^7.3.4" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@vue/babel-preset-jsx": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", + "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", + "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + } + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", + "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "@vue/cli-overlay": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-5.0.4.tgz", + "integrity": "sha512-ZTLAAydILjvx0XHUGSNu/cQDpmvLTMYUutDf2vf6XGkSWYqncQ6RwkeMSQhvQNlgpa/ovwIgrlGxLoojFRwdVg==", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-5.0.4.tgz", + "integrity": "sha512-413ZwOWLtgw5vWJoMbrv36crW3qTas4Iru8sU7cRb0IqEZbS28R9X4PVtO8Pek2NYFbrs2XKRYOB7GblB6hVqg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.16", + "@vue/babel-preset-app": "^5.0.4", + "@vue/cli-shared-utils": "^5.0.4", + "babel-loader": "^8.2.2", + "thread-loader": "^3.0.0", + "webpack": "^5.54.0" + } + }, + "@vue/cli-plugin-eslint": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-5.0.4.tgz", + "integrity": "sha512-NLBEKFTFJhYHMzQ3z+sb6xlkcNaN/RcbZ3hiCY72aJe4YOO8jEAp0XkPzlHd4xYkMW7jrmOwwLOPw+3BJ4b77Q==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^5.0.4", + "eslint-webpack-plugin": "^3.1.0", + "globby": "^11.0.2", + "webpack": "^5.54.0", + "yorkie": "^2.0.0" + } + }, + "@vue/cli-plugin-router": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.4.tgz", + "integrity": "sha512-lylzCuH3Br0BcTz5IxxSffpyoF9dQ2k4jTdK8QlWrnRanWGw7P9C0kYMr9rohHaXpvAlu6bio392gbNIWpEepg==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^5.0.4" + } + }, + "@vue/cli-plugin-vuex": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.4.tgz", + "integrity": "sha512-dBwiD6mT9+V2HTHcwaWE8qFNgTk5I/NUvxYVeUN3Mmmpo4y/1RxXnr7BlKGnaQsTypb2RFk3KowqIJtg7s+E3Q==", + "dev": true, + "requires": {} + }, + "@vue/cli-service": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-5.0.4.tgz", + "integrity": "sha512-xRiLNTFYmMCT9edZpyYXHijW5xot3gbZpcWDOXUOhKPHN4qs4XqWALnZlU97JYjZOr3XIr/ZvyciyEfrlUVqSA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.12.16", + "@soda/friendly-errors-webpack-plugin": "^1.8.0", + "@soda/get-current-script": "^1.0.2", + "@types/minimist": "^1.2.0", + "@vue/cli-overlay": "^5.0.4", + "@vue/cli-plugin-router": "^5.0.4", + "@vue/cli-plugin-vuex": "^5.0.4", + "@vue/cli-shared-utils": "^5.0.4", + "@vue/component-compiler-utils": "^3.3.0", + "@vue/vue-loader-v15": "npm:vue-loader@^15.9.7", + "@vue/web-component-wrapper": "^1.3.0", + "acorn": "^8.0.5", + "acorn-walk": "^8.0.2", + "address": "^1.1.2", + "autoprefixer": "^10.2.4", + "browserslist": "^4.16.3", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.10", + "clipboardy": "^2.3.0", + "cliui": "^7.0.4", + "copy-webpack-plugin": "^9.0.1", + "css-loader": "^6.5.0", + "css-minimizer-webpack-plugin": "^3.0.2", + "cssnano": "^5.0.0", + "debug": "^4.1.1", + "default-gateway": "^6.0.3", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^5.1.0", + "is-file-esm": "^1.0.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "mini-css-extract-plugin": "^2.5.3", + "minimist": "^1.2.5", + "module-alias": "^2.2.2", + "portfinder": "^1.0.26", + "postcss": "^8.2.6", + "postcss-loader": "^6.1.1", + "progress-webpack-plugin": "^1.0.12", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^5.1.1", + "thread-loader": "^3.0.0", + "vue-loader": "^17.0.0", + "vue-style-loader": "^4.1.3", + "webpack": "^5.54.0", + "webpack-bundle-analyzer": "^4.4.0", + "webpack-chain": "^6.5.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.7.3", + "webpack-virtual-modules": "^0.4.2", + "whatwg-fetch": "^3.6.2" + } + }, + "@vue/cli-shared-utils": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.4.tgz", + "integrity": "sha512-nfAsj8Nopu5sVHMBIaut/YL7NaJFVmTBSTJD7LM17jc5uytrM9JwiRtzCiv3JWRBG78Xdb/s2Xb/1YR4fkdmkQ==", + "dev": true, + "requires": { + "@achrinza/node-ipc": "9.2.2", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "joi": "^17.4.0", + "launch-editor": "^2.2.1", + "lru-cache": "^6.0.0", + "node-fetch": "^2.6.7", + "open": "^8.0.2", + "ora": "^5.3.0", + "read-pkg": "^5.1.1", + "semver": "^7.3.4", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "@vue/vue-loader-v15": { + "version": "npm:vue-loader@15.9.8", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.9.8.tgz", + "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + } + } + }, + "@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.4", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "dev": true, + "requires": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "bonjour-service": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.0.11.tgz", + "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001332", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "requires": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "core-js": { + "version": "3.22.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.22.1.tgz", + "integrity": "sha512-l6CwCLq7XgITOQGhv1dIUmwCFoqFjyQ6zQHUCQlS0xKmb9d6OHIg8jDiEoswhaettT21BSF5qKr6kbvE+aKwxw==" + }, + "core-js-compat": { + "version": "3.22.1", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.22.1.tgz", + "integrity": "sha512-CWbNqTluLMvZg1cjsQUbGiCM91dobSHKfDIyCoxuqxthdjGuUlaMbCsSehP3CBiVvG0C7P6UIrC1v0hgFE75jw==", + "dev": true, + "requires": { + "browserslist": "^4.20.2", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "dev": true, + "requires": {} + }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.1.7", + "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.7.tgz", + "integrity": "sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.2.7", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.7", + "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-5.2.7.tgz", + "integrity": "sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.4", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.3.1.tgz", + "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.114", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", + "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz", + "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-plugin-vue": { + "version": "8.6.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-8.6.0.tgz", + "integrity": "sha512-abXiF2J18n/7ZPy9foSlJyouKf54IqpKlNvNmzhM93N0zs3QUxZG/oBd3tVPOJTKg7SlhBUtPxugpqzNbgGpQQ==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "eslint-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", + "dev": true, + "requires": { + "@types/eslint": "^7.28.2", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "express": { + "version": "4.17.3", + "resolved": "https://registry.npmmirror.com/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + } + }, + "html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.5.tgz", + "integrity": "sha512-ORErEaxkjyrhifofwCuQttHPUSestLtiPDwV0qQOFB0ww6695H953wIGRnkakw1K+GAP+t8/RPbfDB75RFL4Fg==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-file-esm": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-file-esm/-/is-file-esm-1.0.0.tgz", + "integrity": "sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==", + "dev": true, + "requires": { + "read-pkg-up": "^7.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "joi": { + "version": "17.6.0", + "resolved": "https://registry.npmmirror.com/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true + }, + "launch-editor": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.3.0.tgz", + "integrity": "sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.6.1" + } + }, + "launch-editor-middleware": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz", + "integrity": "sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w==", + "dev": true, + "requires": { + "launch-editor": "^2.3.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", + "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "dev": true, + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", + "dev": true + }, + "mrmime": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.0.tgz", + "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.4", + "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.4.tgz", + "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "node-releases": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmmirror.com/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dev": true, + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "dev": true, + "requires": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", + "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "dev": true, + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "requires": {} + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.4.tgz", + "integrity": "sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "dev": true, + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "optional": true + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "progress-webpack-plugin": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/progress-webpack-plugin/-/progress-webpack-plugin-1.0.16.tgz", + "integrity": "sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "figures": "^2.0.0", + "log-update": "^2.3.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmmirror.com/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stackframe": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.2.1.tgz", + "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "table": { + "version": "6.8.0", + "resolved": "https://registry.npmmirror.com/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.12.1", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "dev": true, + "requires": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/thread-loader/-/thread-loader-3.0.4.tgz", + "integrity": "sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==", + "dev": true, + "requires": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vue": { + "version": "2.6.14", + "resolved": "https://registry.npmmirror.com/vue/-/vue-2.6.14.tgz", + "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" + }, + "vue-eslint-parser": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "requires": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "17.0.0", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.0.0.tgz", + "integrity": "sha512-OWSXjrzIvbF2LtOUmxT3HYgwwubbfFelN8PAP9R9dwpIkj48TVioHhWWSx7W7fk+iF5cgg3CBJRxwTdtLU4Ecg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "vue-router": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", + "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==" + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + } + } + }, + "vue-template-compiler": { + "version": "2.6.14", + "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", + "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "webpack": { + "version": "5.72.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.72.0.tgz", + "integrity": "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", + "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + } + }, + "webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.8.1", + "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.8.1.tgz", + "integrity": "sha512-dwld70gkgNJa33czmcj/PlKY/nOy/BimbrgZRaR9vDATBQAYgLzggR0nxDtPLJiLrMgZwbE6RRfJ5vnBBasTyg==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "requires": {} + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "webpack-virtual-modules": { + "version": "0.4.3", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz", + "integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "7.5.7", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true, + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/yorkie/-/yorkie-2.0.0.tgz", + "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", + "dev": true, + "requires": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-0.8.0.tgz", + "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + } + } +} diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/package.json" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..8fecb98439ab82751cdd0f13a92a30cbd10f03d7 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/package.json" @@ -0,0 +1,46 @@ +{ + "name": "cli", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "axios": "^0.27.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.8.3", + "vue": "^2.6.14", + "vue-router": "^3.5.3" + }, + "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", + "vue-template-compiler": "^2.6.14" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "@babel/eslint-parser" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead" + ] +} diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1640673429341_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1640673429341_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e1abc7cf0d1afe0824456df62229ad0f21cf9e72 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1640673429341_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1640674650632_90x30_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1640674650632_90x30_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..68a53f1f4e38283818007d22f7831592495f2cd8 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1640674650632_90x30_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1649816502812_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1649816502812_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fc02bff35f3f60d895668caaf7048ccb8b228032 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1649816502812_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1649938103407_750x17_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1649938103407_750x17_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..53e15ee28b83f5f7aa95685a1677f25a207af49d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1649938103407_750x17_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650281323695_375x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650281323695_375x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..3776d44b8d1366d2281f49d2509b9b6739ddec39 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650281323695_375x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650281509438_375x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650281509438_375x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..9d691db370e59a32d0a2a822ea8e783e9c41d999 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650281509438_375x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650352051919_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650352051919_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fcdd414a51b9500d9952e195d892c4064153542f Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650352051919_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650357324182_750x126_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650357324182_750x126_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..baa4194d556c4387e6a47251d78a90819b4396e2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650357324182_750x126_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650362183349_750x328_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650362183349_750x328_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..56ce64a4a883725536124d66de21b53d9ee5b50b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650362183349_750x328_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650372195853_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650372195853_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..91543652eeb1694f9b0c6ac943bd879f77066afb Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650372195853_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650460074012_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650460074012_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d7b5df8c0e556ffb10ac3b288ca3ba09ee81482a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650460074012_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650467634734_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650467634734_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e9cb9dec9c0e97c1d016b010d4f2b20dba7d96e9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650467634734_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650469169913_750x438_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650469169913_750x438_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..87f8291708aa5a879f576e55362d2966f8fc07b9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650469169913_750x438_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650469203822_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650469203822_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..440fd481acd5343fb5621309c8c42cfb96140886 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/1650469203822_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/aaa.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/aaa.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f1543c5316f7c2cb7a64718e04850a5dbfe311d2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/aaa.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/bbb.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/bbb.png" new file mode 100644 index 0000000000000000000000000000000000000000..3934eefa3f0bf45107a18f4388f634e53dc40491 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/bbb.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ccc.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ccc.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..057a1e06617f1097bb334f12ec7dabbef6e0caa9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ccc.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/d6511a21-628e-4c15-ad71-b0de6da03f4c_164x164_90.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/d6511a21-628e-4c15-ad71-b0de6da03f4c_164x164_90.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..b4f65fa1f06a296a914da375d5ed3d39bd30cefc Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/d6511a21-628e-4c15-ad71-b0de6da03f4c_164x164_90.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ddd.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ddd.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..09c190e51decd7aac63766f5a711c3c080121d8b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ddd.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/eee.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/eee.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f6989f9c08fdea4146a1e92b93b7bb66da07f60d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/eee.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_299f2b4556309cf4fa4e1d491f2dbe8b_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_299f2b4556309cf4fa4e1d491f2dbe8b_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..7a2d33faff0e08e0b406c0ccebb4a888669f8454 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_299f2b4556309cf4fa4e1d491f2dbe8b_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_4c64743a8569c0a410be11695efe2d75_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_4c64743a8569c0a410be11695efe2d75_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..df6756de6779d7139f95f5c563a3a45f5ede77f8 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_4c64743a8569c0a410be11695efe2d75_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_5fe78f7048ba284ed942369d348bec81_150x150_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_5fe78f7048ba284ed942369d348bec81_150x150_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e80dc16eaad0920423ba3c8d53129011158ce739 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_5fe78f7048ba284ed942369d348bec81_150x150_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_6a7f07d7637cc3e3a4bcc41934a02c39_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_6a7f07d7637cc3e3a4bcc41934a02c39_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..063d55d4a9adfe9a63bc2bddadd5bfcf0a7c8587 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_6a7f07d7637cc3e3a4bcc41934a02c39_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_79267dc19f7ab86ed62c4c80106a3f04_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_79267dc19f7ab86ed62c4c80106a3f04_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..ee67350c76af269bae5fd28661654d2b6d450234 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_79267dc19f7ab86ed62c4c80106a3f04_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_7eb4937630ea4a3c01220f4205a1a791_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_7eb4937630ea4a3c01220f4205a1a791_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..7d0df474a3b63d344407afd07203373e19767f99 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_7eb4937630ea4a3c01220f4205a1a791_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_d3c22b5467a5a1c6a4e8050e84953fa3_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_d3c22b5467a5a1c6a4e8050e84953fa3_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..df75cfa4d5c7bb407b5f576eb8d0ca474c0cee2c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_d3c22b5467a5a1c6a4e8050e84953fa3_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_d877b9044487ee47552a33524476ce38_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_d877b9044487ee47552a33524476ce38_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..252b8f92ef80d8f31317d691040326d02349435d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_d877b9044487ee47552a33524476ce38_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d954558979bef4e93a8d9ddbc63ef08c7c6a97be Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_f3d33a58987c2f06d018a84365529bbb_150x150_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_f3d33a58987c2f06d018a84365529bbb_150x150_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..b168069b7f5c3277da84472c43855e3581fdcdfa Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/ias_f3d33a58987c2f06d018a84365529bbb_150x150_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/primary_96x48_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/primary_96x48_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fbbc981000f086ebbadba1041cde19b39b5b07bd Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/primary_96x48_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/primary_96x48_902.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/primary_96x48_902.png" new file mode 100644 index 0000000000000000000000000000000000000000..8f8f277ae866ca1d29b09106a09875bc31acaf02 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/primary_96x48_902.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\344\270\213\350\275\275.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\344\270\213\350\275\275.png" new file mode 100644 index 0000000000000000000000000000000000000000..69676bace4834991bae8217981bd340ac40f17ee Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\344\270\213\350\275\275.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1531301431219.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1531301431219.png" new file mode 100644 index 0000000000000000000000000000000000000000..323a5b2b813fe47be65ef9f6b336efc5477be77a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1531301431219.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673429341_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673429341_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e1abc7cf0d1afe0824456df62229ad0f21cf9e72 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673429341_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673491466_84x28_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673491466_84x28_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..6d7cae032b24860e3758e10ab03eff3d397132fe Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673491466_84x28_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640674650632_90x30_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640674650632_90x30_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..68a53f1f4e38283818007d22f7831592495f2cd8 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640674650632_90x30_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715432533_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715432533_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..faf4c916d9c1883715a38b6cdf04fd44da67779c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715432533_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715512775_134x134_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715512775_134x134_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..faf4c916d9c1883715a38b6cdf04fd44da67779c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715512775_134x134_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816502812_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816502812_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fc02bff35f3f60d895668caaf7048ccb8b228032 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816502812_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816506443_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816506443_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fc02bff35f3f60d895668caaf7048ccb8b228032 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816506443_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649938103407_750x17_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649938103407_750x17_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..53e15ee28b83f5f7aa95685a1677f25a207af49d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649938103407_750x17_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650361981762_750x328_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650361981762_750x328_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..060404857d05872f71f6672b0ae38b96e0777eac Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650361981762_750x328_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650363097863_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650363097863_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..0e1ed6ca19b93fdbb0d508ea1fd6d7a793288f64 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650363097863_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650372160397_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650372160397_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..bb88e859b4373159162ab97636602edbaa7a1a64 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650372160397_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378156404_375x284_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378156404_375x284_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..19c4f1cf3882bb45ba88ff1bd0edd53fc0740cbe Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378156404_375x284_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378161157_375x284_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378161157_375x284_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..86f2885b84b6d35a63508fbeb304650a1584dd98 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378161157_375x284_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650439988509_750x126_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650439988509_750x126_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..f04078f3c23b5d2af345c8ed230d31b354da1e35 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650439988509_750x126_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527090378_750x438_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527090378_750x438_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..011ebb010ec51ae6771eb8b6735d0fd9d5a11d45 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527090378_750x438_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527333782_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527333782_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d51572b867f7636445c060405627bf3bfe3ace3b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527333782_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650528353654_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650528353654_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..a08874756ec4f236ce86490398a210a26d69af0e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650528353654_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650535301674_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650535301674_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..6854ebdffa42d35e86d354c33d40876684d151db Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650535301674_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/cps.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/cps.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..4083eac543c48512b93f617fe6915b01948f469a --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/cps.js.\344\270\213\350\275\275" @@ -0,0 +1,314 @@ +(function(){ + var BASE64_MAPPING = [ + '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','0','1','2','3', + '4','5','6','7','8','9','+','/' + ]; + + /** + *ascii convert to binary + */ + var _toBinary = function(ascii){ + var binary = new Array(); + while(ascii > 0){ + var b = ascii%2; + ascii = Math.floor(ascii/2); + binary.push(b); + } + /* + var len = binary.length; + if(6-len > 0){ + for(var i = 6-len ; i > 0 ; --i){ + binary.push(0); + } + }*/ + binary.reverse(); + return binary; + }; + + /** + *binary convert to decimal + */ + var _toDecimal = function(binary){ + var dec = 0; + var p = 0; + for(var i = binary.length-1 ; i >= 0 ; --i){ + var b = binary[i]; + if(b == 1){ + dec += Math.pow(2 , p); + } + ++p; + } + return dec; + }; + + /** + *unicode convert to utf-8 + */ + var _toUTF8Binary = function(c , binaryArray){ + var mustLen = (8-(c+1)) + ((c-1)*6); + var fatLen = binaryArray.length; + var diff = mustLen - fatLen; + while(--diff >= 0){ + binaryArray.unshift(0); + } + var binary = []; + var _c = c; + while(--_c >= 0){ + binary.push(1); + } + binary.push(0); + var i = 0 , len = 8 - (c+1); + for(; i < len ; ++i){ + binary.push(binaryArray[i]); + } + + for(var j = 0 ; j < c-1 ; ++j){ + binary.push(1); + binary.push(0); + var sum = 6; + while(--sum >= 0){ + binary.push(binaryArray[i++]); + } + } + return binary; + }; + + var __BASE64 = { + /** + *BASE64 Encode + */ + encoder:function(str){ + var base64_Index = []; + var binaryArray = []; + for(var i = 0 , len = str.length ; i < len ; ++i){ + var unicode = str.charCodeAt(i); + var _tmpBinary = _toBinary(unicode); + if(unicode < 0x80){ + var _tmpdiff = 8 - _tmpBinary.length; + while(--_tmpdiff >= 0){ + _tmpBinary.unshift(0); + } + binaryArray = binaryArray.concat(_tmpBinary); + }else if(unicode >= 0x80 && unicode <= 0x7FF){ + binaryArray = binaryArray.concat(_toUTF8Binary(2 , _tmpBinary)); + }else if(unicode >= 0x800 && unicode <= 0xFFFF){//UTF-8 3byte + binaryArray = binaryArray.concat(_toUTF8Binary(3 , _tmpBinary)); + }else if(unicode >= 0x10000 && unicode <= 0x1FFFFF){//UTF-8 4byte + binaryArray = binaryArray.concat(_toUTF8Binary(4 , _tmpBinary)); + }else if(unicode >= 0x200000 && unicode <= 0x3FFFFFF){//UTF-8 5byte + binaryArray = binaryArray.concat(_toUTF8Binary(5 , _tmpBinary)); + }else if(unicode >= 4000000 && unicode <= 0x7FFFFFFF){//UTF-8 6byte + binaryArray = binaryArray.concat(_toUTF8Binary(6 , _tmpBinary)); + } + } + + var extra_Zero_Count = 0; + for(var i = 0 , len = binaryArray.length ; i < len ; i+=6){ + var diff = (i+6)-len; + if(diff == 2){ + extra_Zero_Count = 2; + }else if(diff == 4){ + extra_Zero_Count = 4; + } + //if(extra_Zero_Count > 0){ + // len += extra_Zero_Count+1; + //} + var _tmpExtra_Zero_Count = extra_Zero_Count; + while(--_tmpExtra_Zero_Count >= 0){ + binaryArray.push(0); + } + base64_Index.push(_toDecimal(binaryArray.slice(i , i+6))); + } + + var base64 = ''; + for(var i = 0 , len = base64_Index.length ; i < len ; ++i){ + base64 += BASE64_MAPPING[base64_Index[i]]; + } + + for(var i = 0 , len = extra_Zero_Count/2 ; i < len ; ++i){ + base64 += '='; + } + return base64; + }, + /** + *BASE64 Decode for UTF-8 + */ + decoder : function(_base64Str){ + var _len = _base64Str.length; + var extra_Zero_Count = 0; + /** + * 璁$畻鍦ㄨ繘琛孊ASE64缂栫爜鐨勬椂鍊欙紝琛ヤ簡鍑犱釜0 + */ + if(_base64Str.charAt(_len-1) == '='){ + //alert(_base64Str.charAt(_len-1)); + //alert(_base64Str.charAt(_len-2)); + if(_base64Str.charAt(_len-2) == '='){//涓や釜绛夊彿璇存槑琛ヤ簡4涓0 + extra_Zero_Count = 4; + _base64Str = _base64Str.substring(0 , _len-2); + }else{//涓涓瓑鍙疯鏄庤ˉ浜2涓0 + extra_Zero_Count = 2; + _base64Str = _base64Str.substring(0 , _len - 1); + } + } + + var binaryArray = []; + for(var i = 0 , len = _base64Str.length; i < len ; ++i){ + var c = _base64Str.charAt(i); + for(var j = 0 , size = BASE64_MAPPING.length ; j < size ; ++j){ + if(c == BASE64_MAPPING[j]){ + var _tmp = _toBinary(j); + /*涓嶈冻6浣嶇殑琛0*/ + var _tmpLen = _tmp.length; + if(6-_tmpLen > 0){ + for(var k = 6-_tmpLen ; k > 0 ; --k){ + _tmp.unshift(0); + } + } + binaryArray = binaryArray.concat(_tmp); + break; + } + } + } + + if(extra_Zero_Count > 0){ + binaryArray = binaryArray.slice(0 , binaryArray.length - extra_Zero_Count); + } + + var unicode = []; + var unicodeBinary = []; + for(var i = 0 , len = binaryArray.length ; i < len ; ){ + if(binaryArray[i] == 0){ + unicode=unicode.concat(_toDecimal(binaryArray.slice(i,i+8))); + i += 8; + }else{ + var sum = 0; + while(i < len){ + if(binaryArray[i] == 1){ + ++sum; + }else{ + break; + } + ++i; + } + unicodeBinary = unicodeBinary.concat(binaryArray.slice(i+1 , i+8-sum)); + i += 8 - sum; + while(sum > 1){ + unicodeBinary = unicodeBinary.concat(binaryArray.slice(i+2 , i+8)); + i += 8; + --sum; + } + unicode = unicode.concat(_toDecimal(unicodeBinary)); + unicodeBinary = []; + } + } + return unicode; + } + }; + window.BASE64 = __BASE64; +}) +(); + +function getCookie(c_name) +{ + if (document.cookie.length>0){ + c_start=document.cookie.indexOf(c_name + "=") + if (c_start!=-1){ + c_start=c_start + c_name.length+1 + c_end=document.cookie.indexOf(";",c_start) + if (c_end==-1) c_end=document.cookie.length + return unescape(decodeURI(document.cookie.substring(c_start,c_end),"UTF-8")) + } + } + return "" +} + +function encodeCpsLink(link){ + var cps_link = ""; + var json_str = ""; + var landingUrl = link || document.location.href; + var cps_cookie = getCookie("cps").split(":"); + if(cps_cookie.length >= 8) { + if("adp" == cps_cookie[0]) { + json_str = {"schemecode": cps_cookie[6], "ucode": cps_cookie[1], "desturl": landingUrl}; + } else { + json_str = {"schemecode": cps_cookie[1], "ucode": cps_cookie[2], "desturl": landingUrl}; + } + } else if(cps_cookie.length > 1) { + json_str = {"schemecode": cps_cookie[3], "monitorSpotCode": cps_cookie[1], "desturl": landingUrl}; + } + if("" != json_str) { + var dest_url = JSON.stringify(json_str); + cps_link = "http://click.union.vip.com/redirect.php?url=" + BASE64.encoder(dest_url); + } + + var share = getPageInfo(); + var cps = {}; + if (null != share) { + cps["cps_title"] = share.hasOwnProperty("title") ? share["title"] : ""; + cps["cps_letter"] = share.hasOwnProperty("desc") ? share["desc"] : ""; + cps["cps_picture"] = share.hasOwnProperty("picture") ? share["picture"] : ""; + } + cps["cps_link"] = cps_link; + return JSON.stringify(cps); +} + +function shareSuccsss(type){ + var cps_cookie=getCookie('cps').split(":"); + var scheme_code="" + if(cps_cookie.length > 1) { + if("adp" == cps_cookie[0]) { + scheme_code = cps_cookie[6]; + } else { + scheme_code = cps_cookie[1]; + } + } + var url=document.location.href + $.ajax({ + dataType:"jsonp", + url:"http://weixin-api.vip.com/v1/shareLog/addShareLog?aid=light_app_xhh&type="+type+"&sign="+scheme_code+"&url="+url, + jsonp : 'jsonp', + success:function(data){ + } + }) +} + +function getPageInfo() { + var pageInfo = {}; + var title = document.title; + var picture = getPageFirstImg(); + var desc = getPageDesc(); + pageInfo["title"] = title; + pageInfo["desc"] = desc; + pageInfo["picture"] = picture; + return pageInfo; +} + +function getPageFirstImg() { + if($("img").length <= 0 ) { + return ""; + } + var isLazyLoad = $("img:first").attr("data-original") != undefined && + $("img:first").attr("data-original") != $("img:first").attr("src"); + if(isLazyLoad) { + return $("img:first").attr("data-original"); + } else { + return $("img:first").attr("src"); + } + +} + +function getPageDesc() { + var metas = document.getElementsByTagName("meta"); + for(var i = 0; i < metas.length; ++i) { + if(typeof metas[i].name != "undefined" && metas[i].name.toLowerCase() == "description") { + return metas[i].content; + } + } + return ""; +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_089f19fc81f833d29a8a9b59b9984710_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_089f19fc81f833d29a8a9b59b9984710_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..2252d62f29d9307e953971deb71240fcc6c88fda Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_089f19fc81f833d29a8a9b59b9984710_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_1554fb9e04fd0fbbb91179795c056bbe_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_1554fb9e04fd0fbbb91179795c056bbe_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..5d4d99afe8424ad5727e1523186bcc3651b19f41 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_1554fb9e04fd0fbbb91179795c056bbe_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_21caa10fd024f0cda22bd8e44ed6a749_134x134_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_21caa10fd024f0cda22bd8e44ed6a749_134x134_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..469be501b8650900772dbf7305b13335c44a6da2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_21caa10fd024f0cda22bd8e44ed6a749_134x134_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_289146812272c45c6465b68d483ff539_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_289146812272c45c6465b68d483ff539_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..56f5e983d4a417f3d7dc4035980e8e12ff7a4a42 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_289146812272c45c6465b68d483ff539_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_31eec1f3936b0e0a2cb4848e3af63f33_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_31eec1f3936b0e0a2cb4848e3af63f33_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..9e43c57810e3c9ed4b589b5a3344b6623b200267 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_31eec1f3936b0e0a2cb4848e3af63f33_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4af97580e099d5a9eadb362df20ed05c_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4af97580e099d5a9eadb362df20ed05c_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..23117c148d93385de52db2571e5f60ecf034aa94 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4af97580e099d5a9eadb362df20ed05c_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4f78149608081f0b2fa928666747ee6e_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4f78149608081f0b2fa928666747ee6e_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4ccb1b93dc6a960eeb268d7a325dcf9f775d25b7 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4f78149608081f0b2fa928666747ee6e_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5105ba5477174d1a54c0f5643c024caa_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5105ba5477174d1a54c0f5643c024caa_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a4f37e26a4dc40f1eeb82ef556bd3304c51485af Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5105ba5477174d1a54c0f5643c024caa_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_51f4750de99a595c83147ebdb8f4b2e4_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_51f4750de99a595c83147ebdb8f4b2e4_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..10dfd6061af1d4ef2e52a2ef84688d7d6ea1829a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_51f4750de99a595c83147ebdb8f4b2e4_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5d7e9f9432eaffc79ff2ac65253dcfe2_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5d7e9f9432eaffc79ff2ac65253dcfe2_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..42450799093eba5b550e59c3b288064949f4018d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5d7e9f9432eaffc79ff2ac65253dcfe2_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_63ddd4725f44d9a6b4d2e754508c7a7c_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_63ddd4725f44d9a6b4d2e754508c7a7c_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..6c38459a82b17d6b926d040f7e9636900bb21519 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_63ddd4725f44d9a6b4d2e754508c7a7c_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_6d91ba99e5921e1cd22f1e4f3f9b26c1_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_6d91ba99e5921e1cd22f1e4f3f9b26c1_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..00ecb24b2afc63d629c55189d9e2e9ed2a55731c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_6d91ba99e5921e1cd22f1e4f3f9b26c1_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_705ad856819f6a0f59fd2f2f23890dee_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_705ad856819f6a0f59fd2f2f23890dee_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..52c15e28c214ddfe9eccc18959da25fb2f3c37b0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_705ad856819f6a0f59fd2f2f23890dee_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_73a6d6049f1a6ec54f256ab58696a4ce_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_73a6d6049f1a6ec54f256ab58696a4ce_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..d3b56fed55b91fd77dc11b1afceef1a61d84a977 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_73a6d6049f1a6ec54f256ab58696a4ce_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_772dc63af592f81e0d84dc2693227b0b_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_772dc63af592f81e0d84dc2693227b0b_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..d73c59758a90d38f7195c936ddf398b56be4bda0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_772dc63af592f81e0d84dc2693227b0b_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_94a473959a275329f222e1e77bed2873_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_94a473959a275329f222e1e77bed2873_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a5dc9a5cad3e888537bcbe0251ad38cfb3cb0ac1 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_94a473959a275329f222e1e77bed2873_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_9ec86c80a8eeed6d7f6876d5f8197fdc_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_9ec86c80a8eeed6d7f6876d5f8197fdc_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4ec183d7698bdc2158643f3d20b157cf43bc476d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_9ec86c80a8eeed6d7f6876d5f8197fdc_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a39a13495fbe61d91d32ffbee8e6a512_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a39a13495fbe61d91d32ffbee8e6a512_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..c9a907d7773505009c6142ea2c16219340f730a0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a39a13495fbe61d91d32ffbee8e6a512_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a3b370c99fc32b5d6bf23c6707dcf230_134x134_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a3b370c99fc32b5d6bf23c6707dcf230_134x134_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..a14a285338655c9e425c0a9859b3bd56a70b8dc4 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a3b370c99fc32b5d6bf23c6707dcf230_134x134_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b192d496458d948df1db80d65aabd5f2_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b192d496458d948df1db80d65aabd5f2_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..bc6c1975fc0ca13ae3286678aa983b8073de80ea Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b192d496458d948df1db80d65aabd5f2_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b7c0360755cca4192d4ee9069d56d2d2_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b7c0360755cca4192d4ee9069d56d2d2_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..d93373ea23c6a1811b7cf4e4411cf943be232fea Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b7c0360755cca4192d4ee9069d56d2d2_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_bd6d558ff1c51d32280415e842814fba_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_bd6d558ff1c51d32280415e842814fba_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..91533e7bec6205570612ad0afa5eaa423a29cec0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_bd6d558ff1c51d32280415e842814fba_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c145a12de1baee857029ac3bd89170fd_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c145a12de1baee857029ac3bd89170fd_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..1ef33d3af2dd4c7e02e156e27dcd3a4f4f4e7403 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c145a12de1baee857029ac3bd89170fd_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c777de64e78672f8bcc95577113bd79d_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c777de64e78672f8bcc95577113bd79d_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..8a01165cfa76f4ea60d48d4bcbe2f140c339c234 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c777de64e78672f8bcc95577113bd79d_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_ccd3818b68761c9c5be094a139fdb4e4_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_ccd3818b68761c9c5be094a139fdb4e4_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f6989f9c08fdea4146a1e92b93b7bb66da07f60d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_ccd3818b68761c9c5be094a139fdb4e4_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d022e20bea0181ee9ad494ec63e7cfd6_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d022e20bea0181ee9ad494ec63e7cfd6_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..606dfd1546dd9be439e95293e888e6eb91533151 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d022e20bea0181ee9ad494ec63e7cfd6_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d4dca24caa3c73262f8011bf500c02c7_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d4dca24caa3c73262f8011bf500c02c7_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..7d1739d1378923756a23bfae1d97f5c63f45627e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d4dca24caa3c73262f8011bf500c02c7_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2a1922f02c5a05b1bdd7c549f9aeba3_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2a1922f02c5a05b1bdd7c549f9aeba3_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4872643e0012f8d826b38c856b8b062d29c0a3a0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2a1922f02c5a05b1bdd7c549f9aeba3_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2b51bc8ad1a32791c57fb7a946225be_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2b51bc8ad1a32791c57fb7a946225be_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..8495ece6d6e50072b8ce5eb7844f83c8c3eb500e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2b51bc8ad1a32791c57fb7a946225be_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e4f2181f3f71ce8c073b5de237509523_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e4f2181f3f71ce8c073b5de237509523_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..e0d3999b2b4b50c20f7c8ae190a5904e2467c30f Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e4f2181f3f71ce8c073b5de237509523_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d954558979bef4e93a8d9ddbc63ef08c7c6a97be Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e9543f59d0cc7d3fc92d3d09ccbe7184_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e9543f59d0cc7d3fc92d3d09ccbe7184_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..16494c6686c227483a6463635c9c96a44e4f81e4 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e9543f59d0cc7d3fc92d3d09ccbe7184_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e97d1721ed2ab5a88b9697d43a1eee78_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e97d1721ed2ab5a88b9697d43a1eee78_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..5d0cf45ad537465ddc6e431ce9eaa6812206a45c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e97d1721ed2ab5a88b9697d43a1eee78_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_f08cc28cfe39b11fd9e73aabcc706f64_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_f08cc28cfe39b11fd9e73aabcc706f64_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..7a24d704295742494a9b5908bfac54836b4f7cc7 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_f08cc28cfe39b11fd9e73aabcc706f64_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.088c39b0a9237b023c7c.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.088c39b0a9237b023c7c.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..69f576849dea0d9be670273f3a5d63c466bf1f43 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.088c39b0a9237b023c7c.js.\344\270\213\350\275\275" @@ -0,0 +1,12 @@ +webpackJsonp([14],{"+vOg":function(e,t,n){"use strict";t.d=function(){return Object(i.a)({url:"vips-mobile/rest/operation/menu/v1",retries:1,method:"get",params:{mvip:!0}})},t.a=function(){return o.a.cacheRequest(s,"cache_draw_menu")},t.b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/get_simple_cart",method:"get",params:e})},t.c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.a)({url:"https://mst.vip.com/cmstopic/api.php",method:"get",params:a()({service:"push"},e)})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD"),o=n("/nwW");function s(){return Object(i.a)({url:"vips-mobile/rest/operation/draw-menu/v5",method:"get",params:{mvip:!0}})}},"/4lS":function(e,t,n){"use strict";var r=n("YOyO"),a=n("FA0W"),i=n("1M/o"),o=n("vNF5"),s=n("zhOP"),c=n("PEP6"),u=n("Lg6z"),l=n("8hGu"),p=n("ArKR"),d=n("wkJ7"),h=0,f=document.body,m=document.documentElement,v={name:"index-header",data:function(){return{open:!1,showLeftButton:!1,showRightButton:!1,barFixedStyle:{},isLogin:!1,isAndroidMiniApp:d.a.isAndroidMiniApp()}},mounted:function(){this.$header=this.$refs.header,this.$wapper=this.$refs.wapper,this.isLogin=s.a.isLogin(),this.bindEvent(),this.$root.$emit("get-hot-words"),this.$root.$on("focus",this.openSearch),this.$root.$on("on-back",this.closeSearch),1==p.a.getQuery("search_open")&&this.openSearch()},methods:{login:function(){s.a.go({usePop:!0,needReg:!1,onWinLogin:function(e){e.success&&c.a.reload(!0)}})},openSearch:function(){h=window.scrollY,window.scrollTo(0,0),this.open=!0,this.showLeftButton=!0,this.showRightButton=!0,Object(o.a)(f,"open-search"),Object(o.a)(m,"open-search"),Object(u.c)({value:"home_search"}),i.a.seed("input","click","index_search_btn"),this.$emit("openSearch")},closeSearch:function(){this.open=!1,this.showLeftButton=!1,this.showRightButton=!1,this.$root.$emit("clear-search"),Object(o.k)(f,"open-search"),Object(o.k)(m,"open-search"),window.scrollTo(0,h),this.$emit("closeSearch")},clickCategory:function(){Object(u.c)({value:"home_category"}),location.href="//mst.vip.com/WtfF5VAFpmzT5NlWGkSDkQ.php?wapid=mst_100013210&_src=mst&extra_banner=0&nova=1&nova_platform=1&mst_page_type=guide&hierarchy_id=107&wq=1"},bindEvent:function(){var e=this;l.a.on("loginModules","chageState",function(t){e.isLogin=t})}},components:{search:r.a,vipIcon:a.a},props:{pageType:{type:String,default:"index"}}},g={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"index-header-container",class:[{sticky:e.open},"header-"+e.pageType]},[r("div",{staticClass:"search",style:e.barFixedStyle},[r("div",{ref:"wrapper",staticClass:"search-page-container",class:{close:!e.open,"is-android-mini-app":e.isAndroidMiniApp}},[r("div",{ref:"header",staticClass:"header index-header hack-fixed",class:{open:e.open}},[e.isAndroidMiniApp?e._e():r("div",{staticClass:"top-logo",style:{display:e.open?"none":""}},[r("img",{attrs:{src:n("G2sm"),alt:""}}),r("i"),r("span",[e._v("鍝佺墝鐗瑰崠路100%姝e搧")])]),e.isAndroidMiniApp?e._e():r("div",{staticClass:"header-right"},[e._t("right",[r("a",{staticClass:"header-right-button",attrs:{href:"javascript:;",mars_sead:"index_category_btn"},on:{click:function(t){return t.preventDefault(),e.clickCategory(t)}}},[r("vip-icon",{attrs:{name:"classify"}})],1)])],2),e.isAndroidMiniApp?e._e():r("div",{staticClass:"header-left"},[e._t("left",[e.isLogin?r("a",{key:"is-login",staticClass:"header-left-button",attrs:{href:"//m.vip.com/user.html"}},[r("vip-icon",{attrs:{name:"member"}})],1):r("a",{key:"is-login-out",staticClass:"header-left-button text",attrs:{href:"javascript:;"},on:{click:function(t){return t.preventDefault(),e.login(t)}}},[e._v("\n 鐧诲綍\n ")])])],2),r("div",{staticClass:"header-title"},[r("search",{attrs:{open:e.open,"show-left-button":e.showLeftButton,"show-right-button":e.showRightButton},on:{"update:open":function(t){e.open=t}}})],1)])])])])},staticRenderFns:[]};var w=n("VU/8")(v,g,!1,function(e){n("4pLF")},null,null);t.a=w.exports},"/AfA":function(e,t,n){"use strict";var r={name:"vip-button",props:{icon:String,disabled:Boolean,plain:Boolean,radius:{type:String,default:"default"},type:{type:String,default:"default"},size:{type:String,default:"normal-a"},customStyle:[String,Object]},data:function(){return{}}},a={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("button",{staticClass:"vip-button",class:["vip-button-"+e.type,"vip-button-"+e.size,{"is-plain":e.plain},"vip-button--radius-"+e.radius],style:e.customStyle,attrs:{disabled:e.disabled}},[n("div",{staticClass:"icon"},[e._t("icon")],2),n("div",{staticClass:"text-box"},[e._t("default")],2)])},staticRenderFns:[]};var i=n("VU/8")(r,a,!1,function(e){n("4AWz")},null,null);t.a=i.exports},"/nwW":function(e,t,n){"use strict";var r=n("//Fk"),a=n.n(r),i=n("mvHQ"),o=n.n(i),s=n("pFYg"),c=n.n(s),u=n("7fY6"),l=null,p={isStorageSupported:function(){if(null!==l)return l;try{var e=window.sessionStorage,t=window.localStorage;return e.setItem("test","1"),t.setItem("test","1"),e.removeItem("test"),t.removeItem("test"),l=!!window.localStorage&&!!window.sessionStorage}catch(e){return l=!1,u.a.report({action:"localstorage_full"}),!1}},getLocalStorage:function(e){var t=null,n=null;if(this.isStorageSupported()){try{t=n=window.localStorage.getItem(e)}catch(t){u.a.report({action:"localstorage_get_error_"+e})}if(null===t||void 0===t)return t="";try{t=JSON.parse(t)}catch(e){}if("object"!==(void 0===t?"undefined":c()(t))||!t.e)return n;var r=t.e;if(r&&/^\d{13,}$/.test(r))if(r<=(new Date).getTime())return p.removeLocalStorage(e),"";var a=null;if("object"===t.t)try{a=JSON.parse(t.v)}catch(t){u.a.report({action:"localstorage_parse_error_"+e})}else a=t.v;return a}return null},setLocalStorage:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5;if(this.isStorageSupported()){var r=null,a={};if(n){var i=(new Date).getTime();a.e=i+60*n*1e3}"object"===(void 0===t?"undefined":c()(t))?(a.t="object",t=o()(t)):a.t="string",a.v=t;try{r=window.localStorage.setItem(e,o()(a))}catch(t){p.removeLocalStorage(e),u.a.report({action:"localstorage_set_error_"+e})}return r}return null},removeLocalStorage:function(e){return this.isStorageSupported()?window.localStorage.removeItem(e):null},checkExpired:function(e){var t=(new Date).getTime(),n=!1,r=window.localStorage.getItem(e);try{r=JSON.parse(r)}catch(e){}if(Object.prototype.toString.call(r).toLowerCase().indexOf("object")>0){var a=r.e;a&&/^\d{13,}$/.test(a)&&a<=t&&(n=!0)}return n},cacheRequest:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=p.getLocalStorage(t);return r?p.checkExpired(t)?(e().then(function(e){e&&1===e.code&&p.setLocalStorage(t,e,n)}),a.a.resolve(r)):a.a.resolve(r):e().then(function(e){return e&&1===e.code&&p.setLocalStorage(t,e,n),e})}};t.a=p},"0bC0":function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("/5sW"),c=n("+vOg"),u=n("5jd4"),l=n("Qims"),p=n("wkJ7");s.a.component(u.a.name,u.a);var d={name:"cart-cmp",data:function(){return{aliveTime:0,goodsNum:0,cartInfo:{},cartVer:1,showCartCmp:!p.a.isAndroidMiniApp()}},mounted:function(){this.showCartCmp&&this.getSimpleCartInfo()},methods:{goToCart:function(){"4"==this.cartVer?location.href="//mcheckout.vip.com/cart.html":location.href="https://mcheckout.vip.com/checkout.html"},getSimpleCartInfo:function(){var e=this;return o()(a.a.mark(function t(){var n,r,i,o,s;return a.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.a.getCartVer();case 2:return n=t.sent,t.next=5,Object(c.b)({cart_ver:n});case 5:r=t.sent,i=r.data,o=r.code,e.cartVer=n,1==o&&i&&(s=i.cartInfo)&&("4"==e.cartVer?e.goodsNum=s.skuCount:e.goodsNum=s.skuTotalNum,e.aliveTime=s.aliveTime&&1e3*s.aliveTime);case 10:case"end":return t.stop()}},t,e)}))()},countdownEndHandle:function(){this.goodsNum=0}}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.showCartCmp?n("div",{ref:"shopbag",staticClass:"u-shopbag",class:{"show-cart":e.goodsNum&&e.aliveTime}},[n("a",{attrs:{mars_sead:"floating-cart_btn"},on:{click:function(t){return t.stopPropagation(),e.goToCart(t)}}},[n("span",{staticClass:"icon-cart i-flow-carticon"}),n("span",{staticClass:"u-flow-cartnum"},[e._v(e._s(e.goodsNum))]),n("countdown",{staticClass:"u-flow-carttime",attrs:{time:e.aliveTime,interval:1e3},on:{end:e.countdownEndHandle},scopedSlots:e._u([{key:"default",fn:function(t){return[n("span",[e._v(e._s(t.minutes>=10?t.minutes:"0"+t.minutes))]),n("span",[e._v(":")]),n("span",[e._v(e._s(t.seconds>=10?t.seconds:"0"+t.seconds))])]}}])})],1)]):e._e()},staticRenderFns:[]};var f=n("VU/8")(d,h,!1,function(e){n("qGxY")},"data-v-3f94e833",null);t.a=f.exports},"1M/o":function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("HnKq"),c=n("7fY6"),u=n("pD4m"),l=[],p=function(){function e(){a()(this,e)}return o()(e,[{key:"init",value:function(){var e=this;location.href.indexOf("vipglobal.hk")>-1?this.isOpenHkMarsSend().then(function(t){1===t&&e.__init()}):this.__init()}},{key:"__init",value:function(){var t=this;this.__loadMarJs()&&(e.isLoading=!0,n.e(0).then(n.bind(null,"72Rr")).then(function(e){Object(s.c)("https://h2.vipstatic.com/3rd.vipstatic.com/mars_wap/mars_wap.js").then(function(){t.__sendMarsAsync()}).catch(function(e){c.a.report({message:"mars_wap.js鍔犺浇澶辫触",action:"mars_js_load_error"})})}))}},{key:"isOpenHkMarsSend",value:function(){return u.a.getConfig({type:"switch",code:"1482"})}},{key:"seed",value:function(){window.Mar&&window.Mar.Seed&&window.Mar.Seed.request?window.Mar.Seed.request.apply(window.Mar.Seed,arguments):l.push(arguments)}},{key:"__loadMarJs",value:function(){return!e.isLoading}},{key:"__sendMarsAsync",value:function(){if(window.Mar&&window.Mar.Seed&&"function"==typeof window.Mar.Seed.request)for(;l.length>0;)window.Mar.Seed.request.apply(window.Mar.Seed,l.pop())}}]),e}();p.isLoading=!1,t.a=new p},"1j56":function(e,t,n){"use strict";n.d(t,"a",function(){return L}),n.d(t,"b",function(){return P}),n.d(t,"d",function(){return M}),n.d(t,"c",function(){return D});var r,a,i,o,s,c,u=n("Xxa5"),l=n.n(u),p=n("d7EF"),d=n.n(p),h=n("exGp"),f=n.n(h),m=n("Dd8w"),v=n.n(m),g=n("6TJt"),w=n("Ad8Q"),b=n("GKmE"),_=n("M9SS"),y=n("ArKR"),k=this,x=location.pathname,C=null,S=null,T=null,I=/product-(\d+)-(\d+)/.test(x),O=/store-index.html/.test(x),A=I||O,j=function(){var e,t=document.location.pathname,n="",r=/([0-9]+)-([0-9]+)-([a-z]+)/,a=/([0-9]+)-([0-9]+)/,i=/([0-9]+)/;return r.test(t)?n=t.match(r)[0]:a.test(t)?n=t.match(a)[0]:i.test(t)&&(n=t.match(i)[0]),{brandId:(e=n.split("-"))[0]||0,productId:e[1]||n,act:e[3]||"intro"}},L=(r=f()(l.a.mark(function e(){var t,n,r,a,i,o,s;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!C){e.next=2;break}return e.abrupt("return",[null,C]);case 2:return e.next=4,Object(b.x)((void 0,void 0,c=j(),u=v()({},c,{price_fields:"vipshopPrice,saleSavePrice,specialPrice,salePriceTips,vipDiscount,priceIconURL,priceIconMsg,min_vipshop_price, max_vipshop_price,max_market_price, min_market_price ,promotion_price_type,promotion_price,promotion_price_suff,promotion_price_tips",haitao_description_fields:"descri_image,beauty_descri_image,text,mobile_descri_image,mobile_prompt_image",is_multicolor:"1",is_get_TUV:"1",kfVersion:"1",device:3,priceScene:"normal",functions:"panelView,product_comment,sku_price,active_price,brand_store_info,luxury_info,newBrandLogo,reduced_point_desc,wh_transfer,hideOnlySize,showReputation,atmospherePicture,haitaoFinanceVip,banInfo,extraDetailImages,vendorQa",is_get_pms_tips:"1",highlightBgImgVer:1,commitmentVer:"2",propsVer:"1",supportSquare:1,longTitleVer:2}),Object(g.g)(u)));case 4:return t=e.sent,n=d()(t,2),r=n[0],a=n[1],o=(i=void 0===a?{}:a).data||{},s=o.product,!r&&s&&(C=i),e.abrupt("return",[r,i]);case 12:case"end":return e.stop()}var c,u},e,k)})),function(){return r.apply(this,arguments)}),P=(a=f()(l.a.mark(function e(){var t,n,r,a,i,o,s,c;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!S){e.next=2;break}return e.abrupt("return",[null,S]);case 2:return e.next=4,Object(b.x)((void 0,void 0,void 0,u=["priceView:13","promotionTips:6","svipPriceMode:1","promotionTags:3","foldTips:3","formula:1","panelView:3"].join(";"),l=j(),p=v()({},l,{channel:"1",scene:"detail",userContext:window.sessionStorage&&window.sessionStorage.getItem("productDetailUserContext")||"",opts:u}),Object(g.h)(p)));case 4:return t=e.sent,n=d()(t,2),r=n[0],a=n[1],o=(i=void 0===a?{}:a).data||{},s=o.product,c=o.userContext,!r&&s&&(S=i),!r&&c&&window.sessionStorage&&window.sessionStorage.setItem("productDetailUserContext",c),e.abrupt("return",[r,i]);case 13:case"end":return e.stop()}var u,l,p},e,k)})),function(){return a.apply(this,arguments)}),E=(i=f()(l.a.mark(function e(){var t,n,r,a,i,o,s;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,e.next=3,L();case 3:if(n=e.sent,r=d()(n,2),a=r[0],i=r[1],o=i.data||{},s=o.product,a||!s){e.next=18;break}if(1!=s.isHaiTao){e.next=15;break}return e.next=12,_.a.jumpToGlobalHk();case 12:t=e.sent,e.next=18;break;case 15:return e.next=17,_.a.jumpToMhost();case 17:t=e.sent;case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}},e,k)})),function(){return i.apply(this,arguments)}),U=(o=f()(l.a.mark(function e(){var t,n,r,a,i,o,s;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,e.next=3,D();case 3:if(n=e.sent,r=d()(n,2),a=r[0],i=r[1],o=i.data||{},s=o.storeInfo,a||!s){e.next=18;break}if(!s||!s.storeMainFlag||"1-OVERSEA"!=s.storeMainFlag){e.next=15;break}return e.next=12,_.a.jumpToGlobalHk();case 12:t=e.sent,e.next=18;break;case 15:return e.next=17,_.a.jumpToMhost();case 17:t=e.sent;case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}},e,k)})),function(){return o.apply(this,arguments)}),M=(s=f()(l.a.mark(function e(){return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(A){e.next=2;break}return e.abrupt("return",!1);case 2:if(!I){e.next=6;break}return e.abrupt("return",E());case 6:if(!O){e.next=8;break}return e.abrupt("return",U());case 8:case"end":return e.stop()}},e,k)})),function(){return s.apply(this,arguments)}),D=(c=f()(l.a.mark(function e(){var t,n,r,a,i,o,s,c,u;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!T){e.next=2;break}return e.abrupt("return",[null,T]);case 2:return t=y.a.getQuery("storeId"),n={functions:"storeInfo,tabs,noProducts,wxBgImg",salePlatform:"2",storeId:t,fromIndex:0},e.next=6,Object(b.x)(Object(w.D)(n));case 6:return r=e.sent,a=d()(r,2),i=a[0],o=a[1],c=(s=void 0===o?{}:o).data||{},u=c.storeInfo,!i&&u&&(T=s),e.abrupt("return",[i,s]);case 14:case"end":return e.stop()}},e,k)})),function(){return c.apply(this,arguments)})},"2Pub":function(e,t){},"3+cY":function(e,t,n){"use strict";var r={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"mint-swipe-item"},[this._t("default")],2)},staticRenderFns:[]},a=n("VU/8")({name:"mt-swipe-item",mounted:function(){this.$parent&&this.$parent.swipeItemCreated(this)},destroyed:function(){this.$parent&&this.$parent.swipeItemDestroyed(this)}},r,!1,null,null,null).exports,i=n("vNF5"),o={name:"mt-swipe",created:function(){this.dragState={}},data:function(){return{ready:!1,dragging:!1,userScrolling:!1,animating:!1,index:0,pages:[],timer:null,reInitTimer:null,noDrag:!1,isDone:!1}},props:{speed:{type:Number,default:300},defaultIndex:{type:Number,default:0},auto:{type:Number,default:3e3},continuous:{type:Boolean,default:!0},showIndicators:{type:Boolean,default:!0},noDragWhenSingle:{type:Boolean,default:!0},prevent:{type:Boolean,default:!1},stopPropagation:{type:Boolean,default:!1}},watch:{index:function(e){this.$emit("change",e)}},methods:{swipeItemCreated:function(){var e=this;this.ready&&(clearTimeout(this.reInitTimer),this.reInitTimer=setTimeout(function(){e.reInitPages()},100))},swipeItemDestroyed:function(){var e=this;this.ready&&(clearTimeout(this.reInitTimer),this.reInitTimer=setTimeout(function(){e.reInitPages()},100))},rafTranslate:function(e,t,n,r,a){if(e){var i=.88;this.animating=!0;var o=t,s=0;(function t(){if(Math.abs(o-n)<.5)return this.animating=!1,o=n,e.style.webkitTransform="",a&&(a.style.webkitTransform=""),cancelAnimationFrame(s),void(r&&r());o=i*o+(1-i)*n,e.style.webkitTransform="translate3d("+o+"px, 0, 0)",a&&(a.style.webkitTransform="translate3d("+(o-n)+"px, 0, 0)"),s=requestAnimationFrame(t.bind(this))}).call(this)}},translate:function(e,t,n,r){var a=this,o=arguments;if(n){this.animating=!0,e.style.webkitTransition="-webkit-transform "+n+"ms ease-in-out",setTimeout(function(){e.style.webkitTransform="translate3d("+t+"px, 0, 0)"},50);var s=!1,c=function(){s||(s=!0,a.animating=!1,e.style.webkitTransition="",e.style.webkitTransform="",r&&r.apply(a,o))};Object(i.i)(e,"webkitTransitionEnd",c),setTimeout(c,n+100)}else e.style.webkitTransition="",e.style.webkitTransform="translate3d("+t+"px, 0, 0)"},reInitPages:function(){var e=this.$children;this.noDrag=1===e.length&&this.noDragWhenSingle;var t=[],n=Math.floor(this.defaultIndex),r=n>=0&&n1&&(r||(r=h[h.length-1]),a||(a=h[0])),r&&(r.style.display="block",this.translate(r,-s)),a&&(a.style.display="block",this.translate(a,s)));var m=this.$children[d].$el;"prev"===e?(d>0&&(l=d-1),this.continuous&&0===d&&(l=f-1)):"next"===e&&(d0&&n.translate(r,-1*s,p),a&&c<0&&n.translate(a,s,p)):(r&&n.translate(r,-1*s,p),a&&n.translate(a,s,p)))},10)}},next:function(){this.doAnimate("next")},prev:function(){this.doAnimate("prev")},before:function(){this.$emit("before",this.index)},end:function(){this.$emit("end",this.index)},doOnTouchStart:function(e){if(!this.noDrag){var t=this.$el,n=this.dragState,r=e.touches[0];n.startTime=new Date,n.startLeft=r.pageX,n.startTop=r.pageY,n.startTopAbsolute=r.clientY,n.pageWidth=t.offsetWidth,n.pageHeight=t.offsetHeight;var a=this.$children[this.index-1],i=this.$children[this.index],o=this.$children[this.index+1];this.continuous&&this.pages.length>1&&(a||(a=this.$children[this.$children.length-1]),o||(o=this.$children[0])),n.prevPage=a?a.$el:null,n.dragPage=i?i.$el:null,n.nextPage=o?o.$el:null,n.prevPage&&(n.prevPage.style.display="block"),n.nextPage&&(n.nextPage.style.display="block")}},doOnTouchMove:function(e){if(!this.noDrag){var t=this.dragState,n=e.touches[0];t.speedX=n.pageX-t.currentLeft,t.currentLeft=n.pageX,t.currentTop=n.pageY,t.currentTopAbsolute=n.clientY;var r=t.currentLeft-t.startLeft,a=t.currentTopAbsolute-t.startTopAbsolute,i=Math.abs(r),o=Math.abs(a);if(i<5||i>=5&&o>=1.73*i)this.userScrolling=!0;else{this.userScrolling=!1,e.preventDefault();var s=(r=Math.min(Math.max(1-t.pageWidth,r),t.pageWidth-1))<0?"next":"prev";t.prevPage&&"prev"===s&&this.translate(t.prevPage,r-t.pageWidth),t.dragPage&&this.translate(t.dragPage,r),t.nextPage&&"next"===s&&this.translate(t.nextPage,r+t.pageWidth)}}},doOnTouchEnd:function(){if(!this.noDrag){var e=this.dragState,t=new Date-e.startTime,n=null,r=e.currentLeft-e.startLeft,a=e.currentTop-e.startTop,i=e.pageWidth,o=this.index,s=this.pages.length;if(t<300){var c=Math.abs(r)<5&&Math.abs(a)<5;(isNaN(r)||isNaN(a))&&(c=!0),c&&this.$children[this.index].$emit("tap")}t<300&&void 0===e.currentLeft||((t<300||Math.abs(r)>i/2)&&(n=r<0?"next":"prev"),this.continuous||(0===o&&"prev"===n||o===s-1&&"next"===n)&&(n=null),this.$children.length<2&&(n=null),this.doAnimate(n,{offsetLeft:r,pageWidth:e.pageWidth,prevPage:e.prevPage,currentPage:e.dragPage,nextPage:e.nextPage,speedX:e.speedX}),this.dragState={})}},initTimer:function(){var e=this;this.auto>0&&!this.timer&&(this.timer=setInterval(function(){if(!e.continuous&&e.index>=e.pages.length-1)return e.clearTimer();e.dragging||e.animating||e.next()},this.auto))},clearTimer:function(){clearInterval(this.timer),this.timer=null}},destroyed:function(){this.timer&&this.clearTimer(),this.reInitTimer&&(clearTimeout(this.reInitTimer),this.reInitTimer=null)},mounted:function(){var e=this;this.ready=!0,this.initTimer(),this.reInitPages();var t=this.$el;t.addEventListener("touchstart",function(t){e.prevent&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),e.animating||(e.dragging=!0,e.userScrolling=!1,e.doOnTouchStart(t))}),t.addEventListener("touchmove",function(t){e.dragging&&(e.timer&&e.clearTimer(),e.doOnTouchMove(t))}),t.addEventListener("touchend",function(t){if(e.userScrolling)return e.dragging=!1,void(e.dragState={});e.dragging&&(e.initTimer(),e.doOnTouchEnd(t),e.dragging=!1)})}},s={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"mint-swipe"},[n("div",{ref:"wrap",staticClass:"mint-swipe-items-wrap"},[e._t("default")],2),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showIndicators&&!e.noDrag,expression:"showIndicators && !noDrag"}],staticClass:"mint-swipe-indicators"},e._l(e.pages,function(t,r){return n("div",{key:r,staticClass:"mint-swipe-indicator",class:{"is-active":r===e.index}})}),0)])},staticRenderFns:[]};var c=n("VU/8")(o,s,!1,function(e){n("G3mK")},null,null).exports;n.d(t,"a",function(){return c}),n.d(t,"b",function(){return a})},"3USl":function(e,t,n){"use strict";var r=n("wkJ7"),a=n("nRfd"),i=n.n(a);function o(){return i.a.isCheckout()?location.origin:r.a.isWechat()?"https://wxcheckout.vip.com":"https://mcheckout.vip.com"}t.a={ajaxTimeout:1e4,ajaxCache:!1,host:"https://m.vip.com",checkoutHost:o(),traceHost:"//m.vip.com/_trace.php",mloginHost:"https://mlogin.vip.com",captchaHost:"https://captcha.vip.com",globalHost:"https://m.vipglobal.hk",wxAPIHost:"//weixin-api.vip.com",wxMallHost:"//weixin-mall.vip.com",wxActHost:"//weixin-act-api.vip.com",wxHost:"//weixin.vip.com",pf:"pf",fs:"f",cookiesDomain:"https://m.vipglobal.hk"===location.origin?".vipglobal.hk":".vip.com",rpcApi:"/server.html?rpc",mcheckoutRpcApi:"/jsonrpc.html?rpc",shoppingCartApi:o()+"/server.html?rpc",vtmJs:"//h2.vipstatic.com/ms.vipstatic.com/vtm/vtm_config_res/prod/vtm_m.js",rpcVer:"2.0",cacheChannel:{},cacheVersion:"201604211742",ak:["o4zGFchCuo3FKqsWrXppTrorclwyZSVP","nIC1UWqQWy8qxpiLzgWGVsrKos3dp7KI"],getMcp:"//mcp.vip.com/share/get_app_share",downloadUrl:"//m.vip.com/service-download.html",tabBarDownloadUrl:"https://m.vip.com/service-download.html?download=1",api:{dmpAppPackage:"//dmp-data.vip.com/channel/downloadapp",cpsAppPackage:"https://api.union.vip.com/vsp/appPro/getAppDownloadUrl4Wap",address:"//gensvr-n.vip.com/address/address",baiduLbsIp:"//api.map.baidu.com/location/ip",getUserInfo:"//weixin-api.vip.com/user/getUserInfo?type=1",rankApi:"//rank.vip.com/rank/findRankList"},regxIdentify:/^\d{17}[0-9xX]{1}$/,regexPwd:/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/,regexPhone:/^1(3|4|5|6|7|8|9)\d{9}$/,regexEMail:/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/}},"3jGs":function(e,t){},"3v/c":function(e,t){},"4AWz":function(e,t){},"4pLF":function(e,t){},"5JYG":function(e,t){},"5K0O":function(e,t){},"5ioc":function(e,t,n){"use strict";t.a=function(){var e=window,t=e.scrollX,n=e.scrollY;window.scroll(t,n+1),window.scroll(t,n)},t.b=function(e){if(!e||window.document.title===e)return;document.title=e};n("wkJ7");var r=n("vNF5"),a=r.g&&window;r.g?a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame:r.h,r.g?a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.mozCancelAnimationFrame||a.oCancelAnimationFrame:r.h},"5jd4":function(e,t,n){"use strict";t.a={name:"countdown",data:function(){return{counting:!1,endTime:0,totalMilliseconds:0}},props:{autoStart:{type:Boolean,default:!0},emitEvents:{type:Boolean,default:!0},interval:{type:Number,default:1e3,validator:function(e){return e>=0}},now:{type:Function,default:function(){return Date.now()}},tag:{type:String,default:"span"},time:{type:Number,default:0,validator:function(e){return e>=0}},transform:{type:Function,default:function(e){return e}}},computed:{days:function(){return Math.floor(this.totalMilliseconds/864e5)},hours:function(){return Math.floor(this.totalMilliseconds%864e5/36e5)},minutes:function(){return Math.floor(this.totalMilliseconds%36e5/6e4)},seconds:function(){return Math.floor(this.totalMilliseconds%6e4/1e3)},milliseconds:function(){return Math.floor(this.totalMilliseconds%1e3/100)},totalDays:function(){return this.days},totalHours:function(){return Math.floor(this.totalMilliseconds/36e5)},totalMinutes:function(){return Math.floor(this.totalMilliseconds/6e4)},totalSeconds:function(){return Math.floor(this.totalMilliseconds/1e3)}},render:function(e){return e(this.tag,this.$scopedSlots.default?[this.$scopedSlots.default(this.transform({days:this.days,hours:this.hours,minutes:this.minutes,seconds:this.seconds,milliseconds:this.milliseconds,totalDays:this.totalDays,totalHours:this.totalHours,totalMinutes:this.totalMinutes,totalSeconds:this.totalSeconds,totalMilliseconds:this.totalMilliseconds}))]:this.$slots.default)},watch:{$props:{deep:!0,immediate:!0,handler:function(){this.totalMilliseconds=this.time,this.endTime=this.now()+this.time,this.autoStart&&this.start()}}},methods:{start:function(){this.counting||(this.counting=!0,this.emitEvents&&this.$emit("start"),this.continue())},continue:function(){var e=this;if(this.counting){var t=Math.min(this.totalMilliseconds,this.interval);t>0?this.timeout=setTimeout(function(){e.progress()},t):this.end()}},pause:function(){clearTimeout(this.timeout)},progress:function(){this.counting&&(this.totalMilliseconds-=this.interval,this.emitEvents&&this.totalMilliseconds>0&&this.$emit("progress",{days:this.days,hours:this.hours,minutes:this.minutes,seconds:this.seconds,totalDays:this.totalDays,totalHours:this.totalHours,totalMinutes:this.totalMinutes,totalSeconds:this.totalSeconds}),this.continue())},abort:function(){this.counting&&(this.pause(),this.counting=!1,this.emitEvents&&this.$emit("abort"))},end:function(){this.counting&&(this.pause(),this.totalMilliseconds=0,this.counting=!1,this.emitEvents&&this.$emit("end"))},update:function(){this.counting&&(this.totalMilliseconds=Math.max(0,this.endTime-this.now()))},handleVisibilityChange:function(){switch(document.visibilityState){case"visible":this.update(),this.continue();break;case"hidden":this.pause()}}},mounted:function(){document.addEventListener("visibilitychange",this.handleVisibilityChange)},beforeDestroy:function(){document.removeEventListener("visibilitychange",this.handleVisibilityChange),this.pause()}}},"6TJt":function(e,t,n){"use strict";t.g=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap/product/detail/v5",method:"get",retries:1,params:e})},t.h=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap/detail/main/v6",method:"POST",retries:1,data:a()({},e)})},t.k=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap2/vendorSkuList/v4",backupUrl:"vips-mobile/rest/shop/goods/vendorSkuList/v4",Authorization:!0,method:"GET",retries:1,params:a()({},e)})},t.l=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/goods/stock/singleSpu/get",retries:1,method:"get",params:a()({},e,{mvip:!0})})},t.j=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/goods/size_table/v2",method:"get",params:a()({},e,{mvip:!0})})},t.d=function(e){return Object(i.a)({url:"vips-mobile/rest/user/address/area/get",method:"get",params:a()({},e,{mvip:!0})})},t.e=function(e){return Object(i.a)({url:"vips-mobile/rest/stock/delivery/skus/v1",method:"get",params:a()({},e,{mvip:!0})})},t.i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/get_simple_cart",method:"get",params:e})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/merge_cart",method:"get",params:e})},t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/add_cart/enablecors",method:"get",params:e})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/add_cart/v3",method:"get",params:e})},t.n=function(e){return Object(i.a)({url:"vips-mobile/rest/support/verify/get_captcha",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.f=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/goods/detail/more/v1",method:"get",retries:1,params:a()({},e,{mvip:!0})})},t.m=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wxapp/detail/vendorqa/v1",method:"get",params:a()({},e,{mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},"6vcI":function(e,t){},"7fY6":function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("Zrlr"),o=n.n(i),s=n("wxAW"),c=n.n(s),u=n("oyG6"),l=n("7w1O"),p=n.n(l),d=n("GKmE");var h=function(){function e(){o()(this,e)}return c()(e,[{key:"listenJsError",value:function(e){return p.a.wrap(e)}},{key:"report",value:function(e){var t=e.mode,n=void 0===t?"":t,r=e.message,a=void 0===r?"":r,i=e.action,o=void 0===i?"mgray_error_report":i,s=e.pageUrl,c=void 0===s?location.href:s,l=e.name,p=void 0===l?"":l,d=e.vm,h=void 0===d?"":d,f=e.stack,m=(void 0===f?[]:f)[0]||{},v=m.column,g=m.line,w=m.url;this.request({mode:n,message:a,name:p,action:/windows|compatible|symbianos/i.test(window.navigator&&navigator.userAgent||"")?"mgray_spider_error":o,stackUrl:encodeURIComponent(w),column:v,line:g,vm:function(e){if(!e||!e.$options||"[object Object]"!==Object.prototype.toString.call(e))return"";if(e.$root===e)return"root instance";var t=e._isVue?e.$options.name||e.$options._componentTag:e.name;return(t?"component <"+t+">":"anonymous component")+(e._isVue&&e.$options.__file?" at "+e.$options.__file:"")}(h),pageUrl:encodeURIComponent(c),marsCid:u.a.get("mars_cid")})}},{key:"request",value:function(e){var t=Object(d.v)(a()({},e,{pageUrl:encodeURIComponent(location.href),marsCid:u.a.get("mars_cid"),domain:location.host})),n="//stat.vipstatic.com/h5front/report?_t="+(new Date).getTime()+"&"+t.substring(0,1500),r=new XMLHttpRequest;r.open("GET",n,!0),r.send()}},{key:"isIgnoreCode",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:0)in{221:"娓犻亾涓嶅瓨鍦ㄦ垨鏈惎鐢ㄦ垨鍒欏凡鐧诲綍",14212:"鍟嗗搧搴撳瓨涓嶈冻",14215:"鎶辨瓑锛屾暟閲忔湁闄愶紝鎮ㄦ渶澶氬彧鑳借喘涔2浠讹紒",222:"鍒涘缓澶辫触",52161:"failed to get product sku list,salesNoSize",52160:"ailed to get product sku list,salesNoSize",14214:"鏀惧叆璐墿琚嬩笉鎴愬姛锛岃喘鐗╄溅鏈澶氬彧鑳芥斁15娆惧晢鍝侊紝缁撶畻鍚庡彲缁х画璐拱",14200:"鏈櫥褰曚笉鑳借喘涔伴檺璐晢鍝"}}}]),e}();t.a=new h},"7j+Z":function(e,t){},"7u9P":function(e,t){},"7w1O":function(e,t,n){(function(n){var r,a,i; +/** + * https://github.com/csnover/TraceKit + * @license MIT + * @namespace TraceKit + */ +/** + * https://github.com/csnover/TraceKit + * @license MIT + * @namespace TraceKit + */ +!function(n,o){if(n){var s={},c=n.TraceKit,u=[].slice,l="?",p=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;s.noConflict=function(){return n.TraceKit=c,s},s.wrap=function(e){return function(){try{return e.apply(this,arguments)}catch(e){throw s.report(e),e}}},s.report=function(){var e,t,r,a,i=[],o=null,c=null;function u(e,t,n){var r=null;if(!t||s.collectWindowErrors){for(var a in i)if(d(i,a))try{i[a](e,t,n)}catch(e){r=e}if(r)throw r}}function l(t,n,r,a,i){if(c)s.computeStackTrace.augmentStackTraceWithInitialElement(c,n,r,t),f();else if(i)u(s.computeStackTrace(i),!0,i);else{var o,l={url:n,line:r,column:a},d=t;if("[object String]"==={}.toString.call(t)){var h=t.match(p);h&&(o=h[1],d=h[2])}l.func=s.computeStackTrace.guessFunctionName(l.url,l.line),l.context=s.computeStackTrace.gatherContext(l.url,l.line),u({name:o,message:d,mode:"onerror",stack:[l]},!0,null)}return!!e&&e.apply(this,arguments)}function h(e){u(s.computeStackTrace(e.reason),!0,e.reason)}function f(){var e=c,t=o;c=null,o=null,u(e,!1,t)}function m(e){if(c){if(o===e)return;f()}var t=s.computeStackTrace(e);throw c=t,o=e,setTimeout(function(){o===e&&f()},t.incomplete?2e3:0),e}return m.subscribe=function(o){!0!==t&&(e=n.onerror,n.onerror=l,t=!0),!0!==a&&(r=n.onunhandledrejection,n.onunhandledrejection=h,a=!0),i.push(o)},m.unsubscribe=function(o){for(var s=i.length-1;s>=0;--s)i[s]===o&&i.splice(s,1);0===i.length&&(t&&(n.onerror=e,t=!1),a&&(n.onunhandledrejection=r,a=!1))},m}(),s.computeStackTrace=function(){var e=!1,t={};function r(e){if("string"!=typeof e)return[];if(!d(t,e)){var r="",a="";try{a=n.document.domain}catch(e){}var i=/(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(e);i&&i[2]===a&&(r=function(e){if(!s.remoteFetching)return"";try{var t=function(){try{return new n.XMLHttpRequest}catch(e){return new n.ActiveXObject("Microsoft.XMLHTTP")}}();return t.open("GET",e,!1),t.send(""),t.responseText}catch(e){return""}}(e)),t[e]=r?r.split("\n"):[]}return t[e]}function a(e,t){var n,a=/function ([^(]*)\(([^)]*)\)/,i=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,o="",s=r(e);if(!s.length)return l;for(var c=0;c<10;++c)if(!h(o=s[t-c]+o)){if(n=i.exec(o))return n[1];if(n=a.exec(o))return n[1]}return l}function i(e,t){var n=r(e);if(!n.length)return null;var a=[],i=Math.floor(s.linesOfContext/2),o=i+s.linesOfContext%2,c=Math.max(0,t-i-1),u=Math.min(n.length,t+o-1);t-=1;for(var l=c;l0?a:null}function o(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function c(e){return o(e).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function u(e,t){for(var n,a,i=0,o=t.length;in&&(a=s.exec(i[n]))?a.index:null}function f(e){if(!h(n&&n.document)){for(var t,r,a,i,s=[n.location.href],l=n.document.getElementsByTagName("script"),p=""+e,d=0;d|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,s=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,c=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,u=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,d=/\((\S*)(?::(\d+))(?::(\d+))\)/,f=e.stack.split("\n"),m=[],v=/^(.*) is undefined$/.exec(e.message),g=0,w=f.length;g eval")>-1&&(t=u.exec(n[3]))?(n[3]=t[1],n[4]=t[2],n[5]=null):0!==g||n[5]||h(e.columnNumber)||(m[0].column=e.columnNumber+1),r={url:n[3],func:n[1]||l,args:n[2]?n[2].split(","):[],line:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}!r.func&&r.line&&(r.func=a(r.url,r.line)),r.context=r.line?i(r.url,r.line):null,m.push(r)}return m.length?(m[0]&&m[0].line&&!m[0].column&&v&&(m[0].column=p(v[1],m[0].url,m[0].line)),{mode:"stack",name:e.name,message:e.message,stack:m}):null}function v(e,t,n,r){var o={url:t,line:n};if(o.url&&o.line){e.incomplete=!1,o.func||(o.func=a(o.url,o.line)),o.context||(o.context=i(o.url,o.line));var s=/ '([^']+)' /.exec(r);if(s&&(o.column=p(s[1],o.url,o.line)),e.stack.length>0&&e.stack[0].url===o.url){if(e.stack[0].line===o.line)return!1;if(!e.stack[0].line&&e.stack[0].func===o.func)return e.stack[0].line=o.line,e.stack[0].context=o.context,!1}return e.stack.unshift(o),e.partial=!0,!0}return e.incomplete=!0,!1}function g(e,t){for(var n,r,i,o=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,c=[],u={},d=!1,h=g.caller;h&&!d;h=h.caller)if(h!==w&&h!==s.report){if(r={url:null,func:l,args:[],line:null,column:null},h.name?r.func=h.name:(n=o.exec(h.toString()))&&(r.func=n[1]),void 0===r.func)try{r.func=n.input.substring(0,n.input.indexOf("{"))}catch(e){}if(i=f(h)){r.url=i.url,r.line=i.line,r.func===l&&(r.func=a(r.url,r.line));var m=/ '([^']+)' /.exec(e.message||e.description);m&&(r.column=p(m[1],i.url,i.line))}u[""+h]?d=!0:u[""+h]=!0,c.push(r)}t&&c.splice(0,t);var b={mode:"callers",name:e.name,message:e.message,stack:c};return v(b,e.sourceURL||e.fileName,e.line||e.lineNumber,e.message||e.description),b}function w(t,o){var s=null;o=null==o?0:+o;try{if(s=function(e){var t=e.stacktrace;if(t){for(var n,r=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,o=/ line (\d+), column (\d+)\s*(?:in (?:]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,s=t.split("\n"),c=[],u=0;u=0&&(w.line=b+y.substring(0,k).split("\n").length)}}}else if(o=p.exec(t[g])){var x=n.location.href.replace(/#.*$/,""),C=u(new RegExp(c(t[g+1])),[x]);w={url:x,func:"",args:[],line:C?C.line:o[1],column:null}}if(w){w.func||(w.func=a(w.url,w.line));var S=i(w.url,w.line),T=S?S[Math.floor(S.length/2)]:null;S&&T.replace(/^\s*/,"")===t[g+1].replace(/^\s*/,"")?w.context=S:w.context=[t[g+1]],h.push(w)}}return h.length?{mode:"multiline",name:e.name,message:t[0],stack:h}:null}(t))return s}catch(t){if(e)throw t}try{if(s=g(t,o+1))return s}catch(t){if(e)throw t}return{name:t.name,message:t.message,mode:"failed"}}return w.augmentStackTraceWithInitialElement=v,w.computeStackTraceFromStackProp=m,w.guessFunctionName=a,w.gatherContext=i,w.ofCaller=function(e){e=1+(null==e?0:+e);try{throw new Error}catch(t){return w(t,e+1)}},w.getSource=r,w}(),s.extendToAsynchronousCallbacks=function(){var e=function(e){var t=n[e];n[e]=function(){var e=u.call(arguments),n=e[0];return"function"==typeof n&&(e[0]=s.wrap(n)),t.apply?t.apply(this,e):t(e[0],e[1])}};e("setTimeout"),e("setInterval")},s.remoteFetching||(s.remoteFetching=!0),s.collectWindowErrors||(s.collectWindowErrors=!0),(!s.linesOfContext||s.linesOfContext<1)&&(s.linesOfContext=11),a=[],void 0===(i="function"==typeof(r=s)?r.apply(t,a):r)||(e.exports=i)}function d(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function h(e){return void 0===e}}("undefined"!=typeof window?window:n)}).call(t,n("DuR2"))},"83Tv":function(e,t,n){"use strict";var r=n("hlbY");n.d(t,"a",function(){return r.a})},"8hGu":function(e,t,n){"use strict";var r={isDevelopment:!1,EventBus:new(n("/5sW").a),off:function(e,t){this.EventBus.$off(e+":"+t)},emit:function(e,t,n){this.EventBus.$emit(e+":"+t,n),this.isDevelopment&&window.console&&window.console.log({name:e+":"+t,type:"emit",data:n})},on:function(e,t,n){n&&"function"==typeof n&&this.EventBus.$on(e+":"+t,function(e){n(e)})},one:function(e,t,n){n&&"function"==typeof n&&this.eventDom.$once(e+":"+t,function(e,t){n(t)})}};t.a=r},"92UP":function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("+6Bu"),o=n.n(i),s=n("mvHQ"),c=(n.n(s),n("Zrlr")),u=n.n(c),l=n("wxAW"),p=n.n(l),d=n("ArKR"),h=n("wkJ7"),f=n("oyG6"),m=n("M9SS"),v=n("uWio"),g=n("GKmE"),w=n("ExBf"),b=n("1M/o");var _=function(){function e(){u()(this,e),this.url="",this.canWakeup=h.a.isIOS()&&h.a.isSafari()&&h.a.isOverIOS9(),this.initMap()}return p()(e,[{key:"go",value:function(e){var t=this._jumpActionParseUrl(e);return this[t.protocol]&&this[t.protocol](t)}},{key:"viprouter",value:function(e){var t=this,n=e.path,r=e.params;return{"/productlist/brand":function(){return t.getUrl({type:"showBrandProducts",brandId:r.brand_id},r)},"/productlist/store":function(){return t.getUrl({type:"showStoreProducts",storeId:r.store_id,curStoreTab:r.tab,filter_category_id:r.filter_category_id},r)},"/main/main_page":function(){return t.getUrl({type:"showHomePage"},r)},"/main/channel":function(){return t.getUrl({type:"showChannel",tag:r.wapUrl||r.tag},r)},"/main/beauty_main":function(){return t.getUrl({type:"showNewbeauty"},r)},"/productlist/brand_landing_list":function(){return t.getUrl({type:"showBrand",brandStoreSn:r.brand_store_sn},r)},"/productdetail/main":function(){return t.getUrl({type:"showGoodsDetail",productId:r.product_id,brandId:r.brand_id},r)},"/productdetail/special_product_list":function(){return t.getUrl({type:"showGoodsDetail",productId:r.product_id},r)},"/userfav/my_favor":function(){return t.getUrl({type:"showMyFavor",initType:r.init_type},r)},"/webview/specialpage":function(){return t.getUrl({type:"showWebview",url:r.url},r)},"/user/center":function(){return t.getUrl({type:"showUserCenter"},r)},"/user/vip_coin":function(){return t.getUrl({type:"showVipCoin"},r)},"/user/coupon":function(){return t.getUrl({type:"showCoupon"},r)},"/userorder/all_deal":function(){return t.getUrl({type:"showAllDeal"},r)},"/userorder/detail":function(){return t.getUrl({type:"showOrder",orderSn:r.order_sn},r)},"/userorder/prepaylist":function(){return t.getUrl({type:"showUnpayOrder"},r)},"/userorder/pre_receive_list":function(){return t.getUrl({type:"showReceiveOrder"},r)},"/userorder/over_view":function(){return t.getUrl({type:"showLogistics",orderSn:r.order_sn},r)},"/userorder/after_sale":function(){return t.getUrl({type:"showAfterSales",orderSn:r.order_sn},r)}}[n]()}},{key:"mojumper",value:function(e){var t=e.params||e,n=t.targetAction,r=t.targetParam||t.targetParams;if("string"==typeof r)try{r=JSON.parse(decodeURIComponent(r))}catch(e){}switch(Number(n)){case 1:case 2:case 11:case 21:case 28:var a=d.a.setQuery({url:r&&r.url,name:"wq",value:1});return this.getUrl({type:"showWebview",url:a},r);case 4:return this.getUrl({type:"showGoodsDetail",productId:r.product_id,brandId:r.brand_id||0},r);case 7:case 22:return this.getUrl({type:"showBrandProducts",brandId:r.brand_id},r);case 8:return this.getUrl({type:"showNewbeauty"},r);case 15:case 19:return this.getUrl({type:"showChannel",tag:r.wapUrl||r.tag},r);case 18:case 48:return this.getUrl({type:"showClassifyList",classifyId:r.classify_id,title:r.title||""},r);case 26:return this.getUrl({type:"showCoupon"},r);case 39:case 40:return this.getUrl({type:"showSearch",params:r},r);case 60:return this.getUrl({type:"showAutoList",ruleId:r.rule_id,title:r.title,productId:r.product_id},r);case 103:return this.getUrl({type:"showBrand",brandStoreSn:r.brand_sn},r);default:return{appUrl:"",wapUrl:"javascript:;"}}}},{key:"wrapCommonParams",value:function(e,t){return Object(g.z)(e,t)}},{key:"_jumpActionParseUrl",value:function(t){var n=document.createElement("a"),r=t.match(/(.*)\/\//)[1]||"",a=t.replace(new RegExp("(viprouter|mojumper)://"),e.VIRTUAL_HOST);return n.href=a,{source:t,protocol:(r||n.protocol).replace(":",""),host:n.hostname,port:n.port,query:n.search,params:function(){for(var e,t={},r=n.search.replace(/^\?/,"").split("&"),a=r.length,i=0;i-1)return"//h2.appsimg.com"+t.replace(/(http|https):\/\//,"/");return t.replace(/(http|https):\/\/(.*).vpimg(.*).com/,"//h2.appsimg.com/a.appsimg.com")},t.getPriceDecimal=function(e){var t=String(e||"");return String(t).split(".")[1]?"."+t.split(".")[1]:""},t.getPriceMain=function(e){return String(e||"").split(".")[0]||""},t.maxFontNum=function(e,t){"string"!=typeof e&&(e=String(e));return e?e.slice(0,t):""},t.transformImageUrl=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments[2];return r.a.transformImageUrl(e,t,n)},t.formatMoney=function(e){if(Number(e)<0)return"-¥"+e.substring(1);return"¥"+e},t.formatNumberTo=function(e,t){return parseFloat(e).toFixed(t)};var r=n("Igsb")},"9aD2":function(e,t,n){"use strict";var r=n("pFYg"),a=n.n(r),i=n("woOf"),o=n.n(i),s=n("//Fk"),c=n.n(s),u=n("/5sW"),l=function(){},p={name:"message-box",data:function(){return{}},props:{message:String,dialogId:{type:String,default:""},title:{type:String,default:""},className:{type:String,default:""},btns:{type:Array,default:function(){return[]}},updated:{type:Function,defalut:l},callback:{type:Function,defalut:l},visible:Boolean,freeze:Boolean},methods:{close:function(e){this.visible=!1},btnClickHandle:function(e){this.callback&&this.callback(e)}},updated:function(){this.$nextTick(function(){this.updated&&this.updated()})}},d={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"fade"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"dialog-wrapper"},[n("div",{staticClass:"dialog",class:e.className,attrs:{id:e.dialogId}},[n("h3",{directives:[{name:"show",rawName:"v-show",value:e.title,expression:"title"}],staticClass:"dialog-title"},[e._v("\n "+e._s(e.title)+"\n ")]),n("section",{staticClass:"dialog-body",domProps:{innerHTML:e._s(e.message)}}),n("section",{directives:[{name:"show",rawName:"v-show",value:e.btns,expression:"btns"}],staticClass:"dialog-foot border-t"},e._l(e.btns,function(t,r){return n("button",{key:r,attrs:{"data-index":r},on:{click:function(t){return t.stopPropagation(),e.btnClickHandle(r)}}},[e._v(e._s(t))])}),0)]),n("div",{staticClass:"mask",attrs:{id:"mask"},on:{click:function(t){return t.stopPropagation(),e.close(t)}}})])])},staticRenderFns:[]};var h=n("VU/8")(p,d,!1,function(e){n("dj9H")},null,null).exports,f=u.a.extend(h),m={title:"",message:"",dialogId:"",visible:!1,className:"",lockScroll:!1,freeze:!1,btns:[]},v=void 0,g=void 0,w=[],b=function(e){if(v){var t=v.callback;"function"==typeof t&&t(e),v.resolve&&v.resolve(e),g.close()}},_=function(){if(g||((g=new f({el:document.createElement("div")})).callback=b),!g.visible){if(w.length>0){var e=(v=w.shift()).options;for(var t in e)e.hasOwnProperty(t)&&(g[t]=e[t]);void 0===e.callback&&(g.callback=b)}document.body.appendChild(g.$el),u.a.nextTick(function(){g.visible=!0})}},y=function(e,t){return"string"==typeof e?(e={message:e},"string"==typeof arguments[1]&&(e.title=arguments[1])):e.callback&&!t&&(t=e.callback),new c.a(function(n,r){w.push({options:o()({},m,e),callback:t,resolve:n,reject:r}),_()})};y.alert=function(e,t,n){return"object"===(void 0===t?"undefined":a()(t))?(n=t,t=""):void 0===t&&(t=""),y(o()({title:t,message:e,$type:"alert"},n))},y.close=function(){g.doClose(),g.visible=!1,w=[],v=null};t.a=y},"9bvu":function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("ExBf"),c=n("wkJ7"),u=n("83Tv"),l=null,p=function(){function e(){a()(this,e)}return o()(e,[{key:"delayOpenUpgradePop",value:function(){var e=this;l&&clearTimeout(l),l=setTimeout(function(){e.openUpgradePop()},1e3)}},{key:"openUpgradePop",value:function(e,t){c.a.isAndroidMiniApp()&&s.a.base.emitEvent({event:"base.lite.upgrade",data:{result:""}},function(t){e&&e(t)},function(e){var n;n="缃戠粶寮傚父锛岃鍒锋柊鍚庨噸璇",Object(u.a)({message:n}),t&&t(e)})}},{key:"handleNativeFloatCmp",value:function(){if(c.a.isAndroidMiniApp()){var e=location.pathname;["(preheating-)?product-\\d+-\\d+\\.html","cart\\.html","pay-page\\.html","user-order-aftersales\\.html","refund-progress\\.html","refund-preview\\.html","order-progress-track\\.html","user-order-logistics\\.html"].find(function(t){return new RegExp(t).test(e)})?this.hideFloatCmp():this.showFloatCmp()}}},{key:"hideFloatCmp",value:function(){s.a.base.emitEvent({event:"cart.lite.hideFloat",data:{result:"1"}})}},{key:"showFloatCmp",value:function(){s.a.base.emitEvent({event:"cart.lite.showFloat",data:{result:"1"}})}}]),e}();t.a=new p},A11p:function(e,t){},Ad8Q:function(e,t,n){"use strict";t.j=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/brand/brandStore/info",method:"get",params:s()({},e,{mvip:!0})})},t.k=function(e){return Object(c.a)({url:"vips-mobile/rest/product/brandstore/product/rank",method:"get",retries:1,params:s()({},e,{mvip:!0})})},t.c=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/brand_store/get_category",method:"get",params:s()({},e,{mvip:!0})})},t.E=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/brandstore/get_total_goods",method:"get",params:s()({},e,{mvip:!0})})},t.i=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/brandstore/category_props",method:"get",params:s()({},e,{mvip:!0})})},t.b=function(e){if(!e.mtmsRuleId||""===e.mtmsRuleId)return a.a.resolve({});return Object(c.a)({url:"vips-mobile/rest/shopping/rule/product/filters/v1",method:"get",params:s()({},e,{mvip:!0})})},t.q=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/postfree/active/product/panel/filters/v1",method:"get",params:s()({},e,{mvip:!0})})},t.A=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/search/category_tree/get",method:"get",params:s()({},e,{mvip:!0})})},t.n=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/get_category/v2",method:"get",params:s()({},e,{mvip:!0})})},t.B=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/search/category_props/get",method:"get",params:s()({},e,{mvip:!0})})},t.p=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/category_props/v2",method:"get",params:s()({},e,{mvip:!0})})},t.z=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/search/brand_store/get/v3",method:"get",params:s()({},e,{mvip:!0})})},t.m=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/getBrandStoreSnByCategory/v2",method:"get",params:s()({},e,{mvip:!0})})},t.e=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/wap/screening/brandstore/get",method:"get",params:s()({},e,{mvip:!0})})},t.F=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/brand/product/guide/modules/v1",method:"get",params:s()({},e,{mvip:!0})})},t.h=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/product/wap/screening/size_property/get",method:"get",params:s()({},e,{mvip:!0})})},t.f=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/product/wap/screening/category/get",method:"get",params:s()({},e,{mvip:!0})})},t.s=function(e){if(!e.mtmsRuleId||""===e.mtmsRuleId)return a.a.resolve({});return Object(c.a)({url:"vips-mobile/rest/product/list/count/rule/v1",method:"get",params:s()({},e,{mvip:!0})})},t.r=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/postfree/active/product/count/v1",method:"get",params:s()({},e,{mvip:!0})})},t.g=function(e){return Object(c.a)({url:"vips-mobile/rest/product/list/rank/count/wap/v1",method:"get",params:s()({},e,{mvip:!0})})},t.o=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/get_total_goods",method:"get",params:s()({},e,{mvip:!0})})},t.t=function(e){if(!e.mtmsRuleId||""===e.mtmsRuleId)return a.a.resolve({});return Object(c.a)({url:"vips-mobile/rest/shopping/product/list/rank/rule/v2",method:"get",params:s()({},e,{mvip:!0})})},t.w=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/postfree/active/product/rank/v1",method:"get",params:s()({},e,{mvip:!0})})},t.d=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/brand/product/hot/category/filter/v1",method:"get",params:s()({},e,{mvip:!0})})},t.x=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/search/product/rank",method:"get",params:s()({},e,{mvip:!0})})},t.C=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/search/recommend/label/v2",method:"get",params:s()({},e,{mvip:!0})})},t.u=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/wap/product/list/rank/v2",method:"get",params:s()({},e,{mvip:!0})})},t.v=function(e){return Object(c.a)({url:"vips-mobile/rest/product/wap/category/product/rank",method:"get",params:s()({},e,{mvip:!0})})},t.y=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/wap2/product/module/list/v2",backupUrl:"vips-mobile/rest/shopping/wxapp/product/module/list/v2",Authorization:!0,method:"get",params:s()({},e)})},t.D=function(e){return Object(c.a)({url:"/vips-mobile/rest/shopping/app/store/product/rank/v1",method:"get",params:s()({},e,{mvip:!0})})},t.l=function(e){return Object(c.a)({url:"/vips-mobile/rest/cart/get_cart_history",method:"get",params:s()({},e,{mvip:!0,needLogin:!0})})},t.a=function(e){return Object(c.a)({url:"vips-mobile/router.do?",method:"get",params:s()({},e,{needLogin:!0,service:"vipshop.shop.cart.apiDeleteHistory",mvip:!0})})};var r=n("//Fk"),a=n.n(r),i=n("mvHQ"),o=(n.n(i),n("Dd8w")),s=n.n(o),c=n("vLgD")},ArKR:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("BO1k"),o=n.n(i),s=n("pFYg"),c=n.n(s);t.a={getQuery:function(e){var t="",n="",r=!1;"string"==typeof e?t=e:"object"===(void 0===e?"undefined":c()(e))&&(t=e.name,n=e.url,r=e.isHash);var a=new RegExp("(^|&|\\?)"+t+"=([^&#]*)(&|#|$)"),i=null;return null!=(i=n?r?(n=n.substring(n.indexOf("#")+1)).match(a):(n=n.substring(n.indexOf("?")+1)).match(a):r?window.location.hash.substr(1).match(a):window.location.search.substr(1).match(a))?decodeURIComponent(i[2]):""},getHash:function(e){return this.getQuery({name:e,isHash:!0})},setQuery:function(e){var t,n,r=e.name,a=e.value,i=e.isHash,o=(e.url||location.href).split("#"),s=new RegExp("(^|\\?|&|#)("+r+"=[^&#\\?]*)");return n=(t=(n=i?o[1]||"":o[0]).match(s))?n.split(t[2]).join(r+"="+a):n.match(/\?/)?n.replace("?","?"+r+"="+a+"&").replace("&&","&"):n+"?"+r+"="+a,i?o[1]=n:o[0]=n,o.join("#")},setHash:function(e){var t=function(){for(var e=(location.hash||"").replace("#","").split("&"),t={},n=0;n1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=document.createElement("a"),a="";return t||(a=e.match(/(.*)\/\//)[1]||"",e=e.replace(new RegExp(n),"https://m.vip.com/")),r.href=e,{source:e,protocol:(a||r.protocol).replace(":",""),host:r.hostname,port:r.port,query:r.search,params:function(){for(var e,t={},n=r.search.replace(/^\?/,"").split("&"),a=n.length,i=0;i0?e+"&"+r:e+"?"+r:e}}},BjXC:function(e,t){},CQJe:function(e,t){},ChiH:function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("wkJ7"),c=n("Rjba"),u=function(){function e(){a()(this,e),this.isWechat=s.a.isWechat()}return o()(e,[{key:"wakeup",value:function(e){this.isWechat?this.wxWakeup(e):this.normalWakeup()}},{key:"normalWakeup",value:function(){}},{key:"wxWakeup",value:function(e){var t=this;c.a.initSdk(function(){t.isNewWechat(navigator.userAgent)&&(window.WeixinJSBridge?t.invokeLaunchApp(e):document.addEventListener("WeixinJSBridgeReady",function(){t.invokeLaunchApp(e)}))})}},{key:"invokeLaunchApp",value:function(e){setTimeout(function(){var t={appID:"wx9201f56e975e8fb6",schemeUrl:e.schemeUrl};WeixinJSBridge&&WeixinJSBridge.invoke&&WeixinJSBridge.invoke("launchApplication",t,e.onLaunch)},0)}},{key:"isNewWechat",value:function(e){var t=e.match(/micromessenger\/([\d.]+)/i),n=Array.isArray(t)?t[1].split("."):null;return null!==n&&(parseInt(n[0],10)>6||!(parseInt(n[0],10)<6)&&(parseInt(n[1],10)>5||!(parseInt(n[1],10)<5)&&(parseInt(n[2],10)>=16||(parseInt(n[2],10),!1))))}}]),e}();t.a=new u},DKKv:function(e,t,n){"use strict";t.e=function(e){return Object(c.a)({url:"vips-mobile/rest/wxoperation/switch/v1",method:"get",params:o()({},e,{mvip:!0})})},t.b=function(e){return Object(c.a)({url:"vips-mobile/rest/operation/document/v1",method:"get",params:o()({},e,{mvip:!0})})},t.c=function(e){return Object(c.a)({url:"vips-mobile/rest/operation/dynamic-config/v1",method:"get",params:o()({},e,{mvip:!0})})},t.f=function(e){return Object(c.a)({url:"https://mshop-api.vip.com/canal/v1",method:"get",params:e})},t.a=function(e){return new a.a(function(t,n){Object(s.a)("https://mcp.vip.com/share/get_app_share",{params:e,jsonp:"callback",timeout:3e3},function(e,r){e?n(e):t(r)})})},t.d=function(e){return Object(c.a)({url:"vips-mobile/rest/operation/startup/v3",method:"get",params:o()({},e,{mvip:!0})})};var r=n("//Fk"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("swYn"),c=n("vLgD")},"Es//":function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("mvHQ"),c=n.n(s),u=n("pD4m"),l=n("oyG6"),p=n("wkJ7"),d=n("ArKR"),h=n("1M/o"),f=n("p6Um"),m=n("ExBf"),v=n("uWio"),g=n("fZjL"),w=n.n(g);function b(e){var t=w()(e).map(function(t){return t+"="+e[t]}).join("&");return e&&w()(e).length?"?"+t:t}function _(e,t,n){var r=e.match(t),a={};return r&&r.length===n.length+1&&n.forEach(function(e,t){return a[e]=r[t+1]}),a}function y(e){var t=document.createElement("a");t.href=window.location.href;var n=t.href.replace(t.origin,"").slice(1),r="";for(var a in e)if(new RegExp(a).test(n)){r={pathName:n,cb:e[a]};break}return r}var k=n("lfdE"),x=n("LM2N"),C=n("d7EF"),S=n.n(C),T=n("92UP"),I=n("VKKs"),O=n.n(I),A="//vipma.net/quickapp.html",j=new f.a;function L(e){O.a.setSessionStorage("wq","1"),setTimeout(function(){location.href=e},200)}function P(){var e=y(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{});var t=e?e.cb(e.pathName):function(){var e=document.querySelector(".menu_nav_current")&&document.querySelector(".menu_nav_current").getAttribute("data-channel-code");if(!e)return"";var t=T.a.getQuickAppUrl("showChannel",{tag:e}),n=d.a.setQuery({name:"wq",value:"1"});return A+"?hap_url="+encodeURIComponent(t)+"&dest_url="+encodeURIComponent(n)}();return!!t&&(p.a.isWechat()?(h.a.seed("button","click","wx_show_wakeup_quickapp"),j.open({className:"wx-quickapp-wakeup-pop",content:"鍗冲皢绂诲紑寰俊锛屾墦寮鈥滃敮鍝佷細鈥",onBtnClick:function(e,n){j.close(),0==n?(h.a.seed("button","click","wx_cancel_wakeup_quickapp"),O.a.setSessionStorage("has_popup_quickapp_dialog","true")):(h.a.seed("button","click","wx_confirm_wakeup_quickapp"),L(t))},btns:["鍙栨秷","纭"],freeze:!1})):L(t),!0)}n.d(t,"b",function(){return H}),t.a=function(){u.a.getConfig({type:"wapCanal"}).then(function(e){var t=e.customSetting||{},n=t.blockQuickAppWakeup,r=t.blockAppWakeup,a=t.IndexPopupWakeup,i=t.allowCpsWakeup;E.isBlockQuick=1==n,E.isBlockAPP=1==r,E.isPopupWakeup=1==a,E.allowCpsWakeup=1==i,function(){if(m.a&&m.a.utils&&m.a.utils.platform&&m.a.utils.platform.isWXLite){var e=y({"product-":function(e){return{path:"/pages/productDetail/productDetail"+b(_(e,/(\w+).html/,["goodsId"])),navType:"2"}},"brand-":function(e){return{path:"/pages/brand/brand"+b(_(e,/brand-(\d+)/,["brandId"])),navType:"2"}},"recommend-brand-":function(){return{path:"/pages/index/index",navType:"3"}},"^$|^(index|newbeauty|jiadian|jiaju|lifemarket|lux|yiyao|leftlife|jiajujiazhuang|dajiadian|jiajujiafang|nb.*).html$":function(e){var t=document.querySelector(".menu_nav_current")&&document.querySelector(".menu_nav_current").getAttribute("data-channel-code");return t?{path:"/pages/index/index?channelCode="+t,navType:"3"}:""},"classify-list-":function(e){return{path:"/pages/classifyList/classifyList"+b(_(e,/classify-list-(\d+)/,["categoryId"])),navType:"2"}}});if(e){var t=e.cb(e.pathName);t&&window.setTimeout(function(){m.a.base._routeToPage({url:t.path,navType:t.navType})},1e3)}return!1}u.a.getConfig({type:"switch",code:1032}).then(function(e){var t=!E.allowCpsWakeup&&l.a.get("cps");d.a.getQuery("wq")&&O.a.setSessionStorage("wq",W),D=e,p.a.isWechat()||W||(t||d.a.getQuery("tra_from")||E.isBlockAPP||0!=e&&2!=e?2!=D&&H(R):E.isPopupWakeup?(U.open({className:"pop",content:"鎵撳紑鍞搧浼歛pp锛屾洿澶氭儕鍠滅瓑浣犳潵",btns:["鍙栨秷","鎵撳紑"],onBtnClick:function(e,t){U.close(),1===t?(R(),h.a.seed("button","click","WAP_wake_up_app_pop_up_appear_agree_click")):h.a.seed("button","click","WAP_wake_up_app_pop_up_appear_Disagree_click")}}),h.a.seed("button","click","WAP_wake_up_app_pop_up_appear")):R())})}()})};var E={},U=new f.a,M=l.a.get("wap_consumer")||"A1",D=0,W=O.a.getSessionStorage("wq")||d.a.getQuery("wq");function R(){if(!(!E.allowCpsWakeup&&l.a.get("cps"))&&!d.a.getQuery("tra_from")&&!E.isBlockAPP){var e=Object(k.a)();if(!e||/recommend-brand-(\d+).html/.test(location.pathname))return;e=e+(e.indexOf("?")>-1?"&":"?")+Object(v.a)(),Object(x.a)({url:e,type:1},function(){h.a.seed("button","click","WAP_wake_up_app_start")},function(){h.a.seed("button","click","WAP_wake_up_app_fail"),2!=D&&H()})}}function $(e){h.a.seed("a","load","wap_call_up",c()(e))}var F,H=(F=o()(a.a.mark(function e(t){var n,r,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.a.getConfig({type:"switch",code:852});case 2:return n=e.sent,e.next=5,u.a.getConfig({type:"config",code:"quickapp_flow_from_m"});case 5:if(r=e.sent,!N(n,r,i)||E.isBlockQuick){e.next=13;break}if(!P({"product-":function(e){var t=e.match(/product-(\d+)-(\d+).html/),n=S()(t,3),r=(n[0],n[1]),a=n[2],i=d.a.setQuery({name:"wq",value:"1"}),o=T.a.getQuickAppUrl("showGoodsDetail",{productId:a,brandId:r});return A+"?hap_url="+encodeURIComponent(o)+"&dest_url="+encodeURIComponent(i)},"classify-list-":function(e){var t=e.match(/classify-list-(\d+)-.*\.html/),n=S()(t,2),r=(n[0],n[1]),a=d.a.getQuery("title"),i=d.a.setQuery({name:"wq",value:"1"}),o=T.a.getQuickAppUrl("showClassifyList",{categoryId:r,categoryName:a});return A+"?hap_url="+encodeURIComponent(o)+"&dest_url="+encodeURIComponent(i)}})){e.next=10;break}return $({call_quickapp:0,consumer:M}),e.abrupt("return",!0);case 10:return $({call_quickapp:1,failtype:2,consumer:M,fail_data:4}),t&&t(),e.abrupt("return",!1);case 13:t&&t();case 14:case"end":return e.stop()}},e,this)})),function(e){return F.apply(this,arguments)});function N(e,t,n){var r=[],a=p.a.isIOS(),i=O.a.getSessionStorage("has_popup_quickapp_dialog");if((n||!W)&&!i){try{r=(t||[]).filter(function(e){return new RegExp(e.mobile,"i").test(window.navigator&&navigator.userAgent)})}catch(e){r=[]}return r.length?E.isBlockQuick||!e?$({call_quickapp:1,failtype:2,consumer:M,from:l.a.get("WAP[from]"),enable:0,fail_data:e?3:2}):a&&$({call_quickapp:1,failtype:2,consumer:M,from:l.a.get("WAP[from]"),enable:0,fail_data:1}):$({call_quickapp:1,failtype:1,fail_data:0,consumer:M}),!a&&1==e&&r.length>0}return!1}},FA0W:function(e,t,n){"use strict";var r=n("Xj+z");n.d(t,"a",function(){return r.a})},FABM:function(e,t){},G2sm:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOQAAAA8CAMAAABB5Ob9AAAAh1BMVEUAAADfPZffPpbfPZffPZffPZfkQJvePpffP5jfPpfiQZnfPZffPpffPpffPZbgP5b/SrbgP5jhP5jePZffPZffQZffPpfoRZnjR5vfPpjfPZfgPZbhP5jgPpbgQJbfPpbzTKvfPZbfPpffPpfePZffPpfqSKLhP5jjPpjhQZnfPZffPpjePZZ5hFqyAAAALHRSTlMAuaHB9uEb2k+QIsVegdR6BGpG+pYn5xYRdKuTMms4tAfyzKbrVgs+NS2+b5zP9kQAAAPlSURBVGje7ZrpsqIwEEYbZBVQBAXccd/y/s83G7HjEEPYZuKte/6JBZUTpPtLEIRYe0I55PATp/g0AREhaUIGstxMPGsXQTtWeLEAQBnJaEcY4gm0wXlezDiBOpLrmLzihlBBzGUGAHNCSa6gjGQ4JSW2ZxBDuMwg1AllZEEzSXssw6iOZKYRiu3hCIeNJLM7oZhO9CQoji0jBuud5BZkWNSQHI4IZZDleB+OmwaSjk3k8f+Z5OZIKHoIAGOCVUNC0g5+49FziIqSPg5rXjw+eCSoltTgNy49RUXJAJujw+lyh/zzJfMFVokVN694aXPJxQqhbSVYMWT/QjJFmb0FDGdG/tZYcgpQ0UL6l2ST3CKv/BnLSy4VknR2ogLjYwZ61JLcOUN1JB/YKvyK1jIN5SXNGygjGU6Zpl8ZErRMVnKfgjKSmcbEN5m4N5SUnIEykkNbcJOQcIm3+/JpkpcjVsIQREye5Sf2lZOkj1MOHHwc+brGYjpQTHJNS504yZFEq8RmEsxZHclwo2Pm4CW5xuytWpLeHNHpRM0Zbu8kDbuCJMYGOORto7XAXElJtgjotYl93jZaK3aOYpKJI0pyZi2YRadCkvF+Xa6sc8GiX8wqYbYP+pMEXZqp+4jOwiSXXEGM6FkeZJKSeor4xbFxypBD12R3tkrKwV9i2rM2LaRXJi4lOEMTHniBvHPJ1BLxa8CZJSKF7ulc0iYi1phh3uDBb74lvyU/TNLRW7PuVfLov+ByJAP/hbgkOSatWfQqacILDkdyAy8Y35JfVnJusDxzrlGDg7zkaIlsaSZcMlw7lKx61zPsp7pW4/cumR+fw/y6kj4pOH1hSbp2SsK+JI0Eoav1XcJw6lvySgoClRJPx5K6ZNm5DgounyeZ0gZyBzFhQhukQBLnzFJJcixZdvDisSWQzM3ikQOFJEOTvsjJoYKhxGuC8Ll3rJLkiRS4UImG88GR9K5XZ/xcKEUqSQ7wv3CVnPg7iITDARSSvBFu2amIRvsqyW3eseQJz3onGReZGEpMa6UdF2+7SDKZhNCpJI7TeSt5wd/QX2QGPmYSRFTj8V7S1E9ngI4lNzE2Jr7keY9vL/5iLld2cLZ40xUhl1sGSFeS2WOHGzhcyTAa0f5WjjSmRNlBZh4pGIAEKGlqCJ3xkcYQlSQNjXIfxYRyYSU9vCbzrwCg4KxS/5EER3ZXoJpWqxA+Y0BJPt6Z0/gaMvkfkrsJVEkeyo6zpo5e+O8lTTcFsaSx3UCZZTPFeJpDPclkUEEETw6lL+/awl0zRcMvn69t9fGFO6pQ894weIu2cP0UZMHq+oVJD3/w4dP5AdK4gHoiM+nWAAAAAElFTkSuQmCC"},G3mK:function(e,t){},GJWF:function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("/5sW"),c={name:"loading",model:{prop:"show",event:"change"},props:{show:Boolean,text:{type:String,default:"鍔犺浇涓"},position:String,transition:{type:String,default:"vui-mask"}},watch:{show:function(e){this.$emit("update:show",e)}}},u={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"vui-loading-container",class:e.text?"":"vui-loading-no-text"},[n("div",{staticClass:"vui-mask"}),n("div",{staticClass:"vui-toast",style:{position:e.position}},[n("i",{staticClass:"vui-loading"}),e.text?n("p",{staticClass:"vui-toast-content"},[e._v(e._s(e.text))]):e._e()])])},staticRenderFns:[]};var l=n("VU/8")(c,u,!1,function(e){n("SPhU")},"data-v-d94f9d8a",null).exports,p=s.a.extend(l),d=function(){function e(){a()(this,e),this.instance=new p({el:document.createElement("div")}),document.body.appendChild(this.instance.$el)}return o()(e,[{key:"hide",value:function(){this.instance.show=!1}},{key:"show",value:function(){this.instance.show=!0}}]),e}();t.a=new d},GKmE:function(e,t,n){"use strict";t.p=function(){var e=document.referrer;"bocmobile"==p.a.getQuery({url:e,name:"f"})&&e.indexOf("nova=1")>-1&&h.a.setLocalStorage("boc_ref_sign",e)},t.s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};window.location.replace(k(e,l()({l:"__replace"},t)))},t.q=function(e){return w(e,"string")},t.v=function(e){var t="object"===(void 0===e?"undefined":c()(e))&&"Object"===Object.prototype.toString.call(e).slice(-7,-1);if(!e||!t)return"";var n="";o()(e).forEach(function(t){e[t]=encodeURIComponent(decodeURIComponent(e[t])),n+=t+"="+e[t]+"&"}),n.length&&(n=n.slice(0,-1));return n},t.c=function(e){return{isWranupOrBanStatus:(1&e)>>0==1,isMultiColor:(16&e)>>4==1,isUseSquareImage:(4&e)>>2==1,favStatus:(8&e)>>3==1}},t.b=function(e,t){var n=t.toString(),r=e;return Array.prototype.ftoogle=function(e){var t=this.indexOf(e);return t>-1?this.splice(t,1):this.push(e),this},r.ftoogle(n)},t.r=function(e){return e/37.5+"rem"},t.t=function(e){return window.flexible&&window.flexible.rem2px?window.flexible.rem2px(e):e.replace(/rem$/,"")},t.d=function(e){var t=new Date;if(e-t.getTime()/1e3<0)return"";var n=new Date(t.toDateString()).getTime()/1e3;return e-(n+259200)>0?{dayText:Object(f.a)(e,"{MM}鏈坽DD}鏃"),time:Object(f.a)(e,"{HH}:{mm}")}:e-(n+172800)>0?{dayText:"鍚庡ぉ",time:Object(f.a)(e,"{HH}:{mm}")}:e-(n+86400)>0?{dayText:"鏄庡ぉ",time:Object(f.a)(e,"{HH}:{mm}")}:{dayText:"浠婂ぉ",time:Object(f.a)(e,"{HH}:{mm}")}},t.j=function(){var e=v.a.get()||{},t=e.warehouse,n=void 0===t?m.a.warehouse:t,r=e.fdc_area_id,i=void 0===r?m.a.city_id:r,o=e.m_vip_province,s=void 0===o?m.a.warehouse:o,c=e.mars_cid,u=void 0===c?"1543974942000_277ef12d2242b89db2c8c08a7cffffff":c,l=e.cps,p=void 0===l?"":l,d=e.g_id,h=void 0===d?"":d,f="mobiles-"+(p||h)+"||",g=v.a.get("WAP[from]")||"nature",w="mobiles-"+(p||h||"nature")+"||";return a()(b,{warehouse:n,fdc_area_id:i,province_id:s,mars_cid:u,mobile_channel:f,standby_id:g,union_mark:w})},t.l=function(e,t){return window.sign&&"function"==typeof window.sign.getSign?window.sign.getSign(e,t):""},t.f=function(e,t){var n,r=!1;(t=t||{}).debug||!1;try{var a="rtl"==document.documentElement.getAttribute("dir");(n=document.createElement("textarea")).style.fontSize="12pt",n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[a?"right":"left"]="-9999px";var i=window.pageYOffset||document.documentElement.scrollTop;n.style.top=i+"px",n.setAttribute("readonly",""),n.value=e,document.body.appendChild(n),function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),a=document.createRange();a.selectNodeContents(e),r.removeAllRanges(),r.addRange(a),t=r.toString()}}(n);var o=document.execCommand("copy");if(!o)throw new Error("copy command was unsuccessful");r=!0}catch(t){try{window.clipboardData.setData("text",e),r=!0}catch(e){}}finally{n&&document.body.removeChild(n)}return r},t.x=function(e,t){return e.then(function(e){return[null,e]}).catch(function(e){return t&&a()(e,t),[e]})},t.i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t="",n="";try{t=e.replace(_,""),n=e.replace(y,"").replace(/\s/g,"")}catch(e){}return[t.length!==e.length,t,n]},t.w=function(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return t[n]})},t.m=function(e,t,n){if(!e)return"";n||(n={});if(!t||0==t.length)return e;return e.replace(/{(\d+)}/g,function(e){var r=e.replace(/{|}/g,"");return''+t[r]+""})},t.o=function(e){return e&&e.replace(/^(?:https?:)?\/\//i,"https://")},t.g=function(e,t,n){var r="",a=0;if((e=e.filter(function(e){return a+=(e=e||"").length,e.length>0})).length>1){if(a>t){var i=a-t,o=Math.ceil((t-e.length+1)/e.length);for(var s in e){var c=e[s]||"";if(c.length>o){var u=c.length-i,l=o>u?o:u;e[s]=c.substring(0,l)+"..."}}}r=e.join(n)}else 1==e.length&&(a>t&&(e[0]=e[0].substring(0,t-1)+"..."),r=e[0]);return r},t.k=function(){return{warehouse:v.a.get("warehouse"),province:v.a.get("m_vip_province"),user_id:v.a.get("m_vipruid"),app_name:g.a.isWechat()?"shop_weixin_wap":"shop_wap",app_version:"4.0",cid:v.a.get("mars_cid")||"1543974942000_277ef12d2242b89db2c8c08a7cffffff",ua:navigator.userAgent||""}},t.y=function(e){return e&&e.replace(/^(?:https?:)?\/\//i,"https://")},t.n=function(e,t,n){if(!e)return"";n||(n={});if(!t||0==t.length)return e;return e.replace(/{(\d+)}/g,function(e){var r=e.replace(/{|}/g,"");return''+t[r]+""})},t.u=function(e,t){var n=t||2,r=Math.pow(10,n),a=parseFloat(e)*r/r,i=a.toString().split(".");if(1===i.length)return a=a.toString()+"."+"0".repeat(n);if(i.length>1)return i[1].lengthn&&(a=i[0]+"."+i[1].toString().slice(0,n)),a;return e},t.a=function(e){return Number(e)<0?"-¥"+e.toString().substr(1):"¥"+e},t.z=k,t.h=function(e){var t=p.a.parseURL(e);["width","height","area_id","fdc_area_id","oxo_province_id","net","vipruid","app_name","f","source","warehouse","app_version","client","mobile_platform","mobile_channel"].forEach(function(e){t.params&&t.params[e]&&delete t.params[e]});var n=[];return o()(t.params||{}).forEach(function(e){n.push(e+"="+t.params[e])}),"https://"+t.host+t.path+"?"+n.join("&")},t.e=function(e,t){e=e.split("."),t=t.split(".");var n=Math.max(e.length,t.length);for(;e.lengthi)return 1;if(a0?e+"&"+r:e+"?"+r:e}},Gyoi:function(e,t){},HMTI:function(e,t,n){"use strict";n.d(t,"a",function(){return g}),n.d(t,"b",function(){return w}),n.d(t,"e",function(){return b}),n.d(t,"d",function(){return _}),n.d(t,"c",function(){return y});var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("fZjL"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("ArKR"),d=n("vLgD"),h=n("iPXC"),f=n("wkJ7"),m=n("pD4m"),v=n("r7MF"),g=(n("GKmE"),{city_id:"104104101",province_id:"104104",warehouse:"VIP_NH"}),w=p.a.getQuery("msns")||p.a.getQuery("nmsns"),b={init:function(){var e=h.a.getAll(),t=e.warehouse,n=void 0===t?"":t,r=e.fdc_area_id,a=void 0===r?"":r,i=e.m_vip_province;if(a&&(!/\d+/.test(a)||a.length<=6)&&(a=""),!(n&&a&&i))return a?b.getArea(a).then(function(e){var t=e.data,n=void 0===t?{}:t,r=n.full_street_id,a=n.full_district_id,i=n.full_city_id,o=n.saleSite,s=n.full_province_id;if(i&&o){var c=r||a||i;h.a.changeWarehouse(o,s,c)}else b.setDefault()}).catch(function(){b.setDefault()}):b.query().then(function(e){var t=e.data,n=void 0===t?{}:t,r=n.cityCode,a=n.saleSite,i=n.provinceCode;r?h.a.changeWarehouse(a,i,r):b.setDefault()}).catch(function(){b.setDefault()})},query:function(){return Object(d.a)({url:"https://mapi-rp.vip.com/vips-mobile/rest/h5/salesite/locate",method:"get",timeout:1e3})},getArea:function(e){return Object(d.a)({url:"https://mapi-rp.vip.com/vips-mobile/rest/user/address/area/get?street="+e,method:"get",timeout:1e3})},setDefault:function(){h.a.changeWarehouse(g.warehouse,g.province_id,g.city_id)}},_={init:function(){var e=null;e=f.a.isAndroidMiniApp()?"xiaobao":p.a.getQuery("f");var t=h.a.getWapFrom(),n=!1;if(!e&&t&&(e=t,n=!0),h.a.getWapRevision()||h.a.setWapRevision(),!e&&f.a.isWechat()&&(e=w?"appshare":"other"),!e&&f.a.isBestpayApp()&&(e="dxyzf"),!e&&f.a.isWopayApp()&&(e="ltwzf"),!e&&f.a.isHebaoApp()&&(e="hbzf"),e||"www"!=p.a.getQuery("source")||(e="www"),e)return"nature"==(e=e.replace(/:[\w\W]*$/,"").replace(/[\W]/,""))?l.a.resolve("nature"):new l.a(function(r,a){m.a.getConfig({type:"wapCanal",f:e}).then(function(a){c()(a).length>0?n||h.a.setWapFrom(e,a&&a.cookieExpireSeconds):t&&h.a.delWapFrom(),r(a)}).catch(function(e){a(e)})})}},y={init:function(){var e=this;return o()(a.a.mark(function t(){return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,v.a.initUserType();case 2:return e.next=4,v.a.checkLogin();case 4:return e.abrupt("return",!0);case 5:case"end":return e.stop()}},t,e)}))()}}},Hjs2:function(e,t,n){"use strict";var r=n("d7EF"),a=n.n(r),i=n("fZjL"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("/5sW"),d={name:"eggs",data:function(){return{}},props:{showEggs:{type:Boolean,default:!1},copyBtnContent:{type:String,default:"澶嶅埗"},hasCopied:{type:Boolean,default:!1},userAgent:{type:String,default:""},cookie:{type:String,default:""},error:{type:String,default:""},sessionStorageString:{type:String,default:""},localStorageString:{type:String,default:""},copyMsg:{type:String,default:""}}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.showEggs,expression:"showEggs"}],staticClass:"wap-eggs"},[n("p",{staticClass:"wap-eggs-title"},[e._v("userAgent:")]),n("div",{staticClass:"wap-eggs-content"},[e._v(e._s(e.userAgent))]),n("p",{staticClass:"wap-eggs-title"},[e._v("cookie:")]),n("div",{staticClass:"wap-eggs-content",domProps:{innerHTML:e._s(e.cookie)}}),n("p",{staticClass:"wap-eggs-title"},[e._v("error:")]),n("div",{staticClass:"wap-eggs-content"},[e._v(e._s(e.error))]),n("p",{staticClass:"wap-eggs-title"},[e._v("sessionStorage:")]),n("div",{staticClass:"wap-eggs-content",domProps:{innerHTML:e._s(e.sessionStorageString)}}),n("p",{directives:[{name:"show",rawName:"v-show",value:e.sessionStorageString,expression:"sessionStorageString"}],staticClass:"wap-eggs-clear-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.clearSession(t)}}},[e._v("娓呴櫎sessionStorage")]),n("p",{staticClass:"wap-eggs-title"},[e._v("localStorage:")]),n("div",{staticClass:"wap-eggs-content",domProps:{innerHTML:e._s(e.localStorageString)}}),n("p",{directives:[{name:"show",rawName:"v-show",value:e.localStorageString,expression:"localStorageString"}],staticClass:"wap-eggs-clear-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.clearLocal(t)}}},[e._v("娓呴櫎localStorage")]),n("a",{staticClass:"wap-eggs-copy",attrs:{href:"javascript:;"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.copy(t)}}},[e._v(e._s(e.copyBtnContent))]),n("a",{staticClass:"wap-eggs-hide",attrs:{href:"javascript:;"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.hide(t)}}},[e._v("鍏抽棴")]),n("textarea",{directives:[{name:"show",rawName:"v-show",value:e.hasCopied,expression:"hasCopied"},{name:"model",rawName:"v-model",value:e.copyMsg,expression:"copyMsg"}],ref:"textarea",attrs:{readonly:"readonly"},domProps:{value:e.copyMsg},on:{input:function(t){t.target.composing||(e.copyMsg=t.target.value)}}})])},staticRenderFns:[]};var f=n("VU/8")(d,h,!1,function(e){n("uOIQ")},"data-v-53053184",null).exports,m=n("VKKs"),v=n.n(m),g=n("GKmE"),w=p.a.extend(f),b=function(){function e(){c()(this,e),this.instance=new w({el:document.createElement("div")})}return l()(e,[{key:"init",value:function(){this.touchListener()}},{key:"_initData",value:function(){var e=this;this.copyBtnContent="澶嶅埗",this.userAgent=navigator.userAgent,this.cookie=document.cookie.replace(/;/g,";
"),this.error=v.a.getLocalStorage("error")||"null",this.copyMsg="user-agent:\n"+navigator.userAgent+";\n\ncookie:\n"+this.handleSpecialChars(document.cookie).replace(/; /g,";\n");var t=window.sessionStorage||{},n=window.localStorage||{};this.sessionStorageString="",this.localStorageString="",o()(t).forEach(function(n){e.sessionStorageString+=n+"="+e.handleSpecialChars(t[n])+";
"}),o()(n).forEach(function(t){/^cache/.test(t)||(e.localStorageString+=t+"="+e.handleSpecialChars(n[t])+";
")})}},{key:"_init",value:function(){this._initData(),this._initProps(),this._eventsListener()}},{key:"handleSpecialChars",value:function(e){if(!e)return"";var t=Object(g.i)(e),n=a()(t,3),r=(n[0],n[1]);n[2];return r}},{key:"_initProps",value:function(){this.instance.copyBtnContent=this.copyBtnContent,this.instance.hasCopied=!1,this.instance.cookie=this.cookie,this.instance.userAgent=this.userAgent,this.instance.error=this.error,this.instance.copyMsg=this.copyMsg,this.instance.localStorageString=this.localStorageString,this.instance.sessionStorageString=this.sessionStorageString}},{key:"touchListener",value:function(){var e=document.querySelector("body"),t=this,n=null;e.addEventListener("touchstart",function(e){4===e.touches.length&&(n=setTimeout(function(){t.showEggs()},4e3))}),e.addEventListener("touchend",function(e){n&&clearTimeout(n)})}},{key:"_eventsListener",value:function(){var e=this;w.prototype.copy=function(){e.copy()},w.prototype.hide=function(){e.hideEggs()},w.prototype.clearSession=function(){sessionStorage.clear(),e.instance.sessionStorageString=""},w.prototype.clearLocal=function(){localStorage.clear(),e.instance.localStorageString=""}}},{key:"copy",value:function(){var e=this;if(2==this.copyBtnContent.length)try{var t=this.instance.$refs.textarea;this.instance.hasCopied=!0,this.instance.$nextTick(function(){t.focus(),t.setSelectionRange(0,e.copyMsg.length),document.execCommand("copy",!0),e.instance.hasCopied=!1,e.copyBtnContent="澶嶅埗鎴愬姛",e.instance.copyBtnContent="澶嶅埗鎴愬姛"})}catch(e){window.console&&window.console.error("褰╄泲妯″潡澶嶅埗淇℃伅鍑洪敊锛",e)}}},{key:"showEggs",value:function(){this._init(),document.body.appendChild(this.instance.$el),this.instance.showEggs=!0}},{key:"hideEggs",value:function(){this.instance.showEggs=!1}}]),e}();t.a=new b},HnKq:function(e,t,n){"use strict";t.a=function(e){return new a.a(function(t,n){var r=document.querySelector("link[href='"+e+"']");if(r)t();else{var a=document.createElement("link"),i=e.slice(e.lastIndexOf("/")+1,e.lastIndexOf("."));a.rel="stylesheet",a.href=e,document.head.appendChild(a),a.onload=function(){t(i+".css鍔犺浇瀹屾垚")},a.onerror=function(){n(i+".css鍔犺浇澶辫触")}}})},t.c=function(e){return new a.a(function(t,n){var r=document.querySelector("script[src='"+e+"']");if(r)t();else{var a=document.createElement("script"),i=e.slice(e.lastIndexOf("/")+1,e.lastIndexOf("."));a.type="text/javascript",a.src=e,document.body.appendChild(a),a.onload=function(){t(i+".js鍔犺浇瀹屾垚")},a.onerror=function(){n(i+".js鍔犺浇澶辫触")}}})},t.b=function(e){return new a.a(function(t,n){var r=document.createElement("iframe");r.style.cssText="position:absolute;width:1px;height:1px;left:-9999px;",document.body.appendChild(r),window.addEventListener&&r.addEventListener("load",function(){t(r)},!1),r.src=e})};var r=n("//Fk"),a=n.n(r),i=n("Dd8w");n.n(i)},Igsb:function(e,t,n){"use strict";var r=n("vNF5"),a=n("wkJ7"),i=n("N2Ao"),o=/^(?:https?:)?\/\//i,s=/(\.[\w]+)$/i,c=/^\//,u=/_\d+x\d+_\d+\.(png|jpg|gif|bmp|webp)$/i,l=/\.webp$/i,p=["a.vpimg1.com","a.vpimg2.com","a.vpimg3.com","a.vpimg4.com","c.vpimg1.com","d.vpimg1.com","img1.vipshop.com","a1.vimage1.com","a2.vimage1.com","a3.vimage1.com","a4.vimage1.com","a.vimage1.com","a.vimage2.com","a.vimage3.com","a.vimage4.com","a.appsimg.com"],d=["https://a.vimage1.com","https://a1.vimage1.com","https://a2.vimage1.com","https://a3.vimage1.com","https://a4.vimage1.com"],h="90",f=["a.appsimg.com","b.appsimg.com"],m={default_rate:"_280x354_90",compress:function(e,t){if(!e)return"";var n=t||this.default_rate;if(-1!=e.indexOf(n))return e;var r=e.lastIndexOf(".");return e=e.substring(0,r).concat(n).concat(e.substring(r))},getHost:function(e){var t=parseInt(5*Math.random(),10);return d[t].concat(e)},__alreadyOpt:function(e){return u.test(e)||l.test(e)},transformImageUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments[2],a=arguments[3],i=arguments[4];if(!e||m.__alreadyOpt(e)||e.indexOf("weixin.vipstatic.com")>-1)return e;if(!o.test(e)){var u=Math.floor(5*Math.random());e=c.test(e)?d[u]+e:d[u]+"/"+e}var l="";t.length>0?l=t:a&&i&&(l=this.scaleSuffix(a,i)),l&&-1===e.indexOf(l)&&(e=e.replace(s,l+"$1"));var h=!1,v=e.replace(o,"https://").replace(/^https?:\/\/(.*?)\//gi,function(e,t){var n=t;return-1!==p.indexOf(t)&&(n="a.appsimg.com"),-1!==f.indexOf(n)?(h=!0,"https://h2a.appsimg.com/"+n+"/"):"https://"+t+"/"}),g=h&&Object(r.n)()?v+"!85.webp":v;return n&&m.adapter(g,n),g},adapter:function(e,t){var n=function(){r.onload=r.onerror=r.onabort=null,window[a]=null,r=null},r=new Image(1,1),a="_adapter_action_"+Math.random();window[a]=r,r.src=e,r.onload=function(){n(),t(!0)},r.onerror=function(){n(),t(!1)}},loadBakImg:function(e){var t=e.target||{},n=t.src;n&&(Object(r.f)(t,"retried")||(Object(r.a)(t,"retried"),t.src=i.genImageSrc(n)))},loadBakImgV2:function(e){var t=e.target||{},n=t.src;n&&(Object(r.f)(t,"retried")?e.target&&e.target.dataset&&e.target.dataset.fail&&!Object(r.f)(t,"re-try-fail")&&(Object(r.a)(t,"re-try-fail"),t.src=e.target.dataset.fail):(Object(r.a)(t,"retried"),t.src=i.genImageSrc(n)))},scaleSuffix:function(e,t){return isNaN(e)||isNaN(t)?"":"_"+this.__getSize(e,t)+"_"+this.__getQuality()},__getSize:function(e,t){return a.a.dpr>2?Math.round(3*e)+"x"+Math.round(3*t):2*e+"x"+2*t},__getQuality:function(){return h}};t.a=m},KRo9:function(e,t){},LM2N:function(e,t,n){"use strict";t.a=function(e,t,n){"[object Object]"!=Object.prototype.toString.call(e)&&(e={url:e});var i=e.url;switch(e.type){case 1:r.a.isUniversalLinkSupport()?o(i,t,n):s(i,t,n);break;case 2:r.a.isUniversalLinkSupport()?o(i=a.a.setQuery({name:"download",value:1,url:i}),t,n,2):s(i,t,n);break;default:r.a.isUniversalLinkSupport()?o(i,t,n):s(i,t,n)}};var r=n("wkJ7"),a=n("ArKR"),i=null;function o(e,t,n,r){t&&t(),e=e.replace("vipshop://","//weixin.vip.com/deeplink/"),2==r?location.href=e:location.replace(e)}function s(e,t,n){var r,a;r="hidden"in document?"hidden":"webkitHidden"in document?"webkitHidden":"mozHidden"in document?"mozHidden":null,a=r.replace(/hidden/i,"visibilitychange"),document.addEventListener(a,function(){document[r]&&i&&clearTimeout(i)});var o=document.createElement("iframe");o.setAttribute("src",e),o.setAttribute("style","display:none"),document.body.appendChild(o),t&&t();var s=Date.now();i=setTimeout(function(){Date.now()-s<1050&&n&&n()},1e3)}},Lg6z:function(e,t,n){"use strict";t.c=i,t.a=function(e){var t=e.href,n=e.type,r=t.match(/\/?(\S+)\.html/),a=r?r[1]:null;"-1"===n&&(a="special");a&&"index"!==a&&i({value:a})},t.b=function(e){i({value:e})};var r=n("oyG6"),a=n("wkJ7");function i(e){e.value&&!a.a.isWechat()&&r.a.set(e.name||"mar_ref",e.value,{expires:365,domain:"vip.com"})}},LmM6:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("GKmE"),o=n("83Tv"),s=function(){Object(o.a)({message:"澶嶅埗澶辫触"})},c={copy:{bind:function(e,t){var n,r;n=e,r=t.value,n&&n.addEventListener?n.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),Object(i.f)(r)?Object(o.a)({message:"澶嶅埗鎴愬姛"}):s()}):s()}}};t.a={install:function(e){a()(c).forEach(function(t){e.directive(t,c[t])})}}},LuWU:function(e,t){},M5XY:function(e,t){},M8tU:function(e,t,n){"use strict";t.q=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_shopping_cart/v2",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.p=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/select_goods/v2",retries:1,method:"POST",data:a()({},e,{needLogin:!0,mvip:!0})})},t.j=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_cart_additional_info?api_key=8cec5243ade04ed3a02c5972bcda0d3f",method:"POST","Content-Type":"application/json;charset=utf-8",data:a()({},e,{needLogin:!0,mvip:!0})})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/edit/v1",method:"POST",retries:1,data:a()({},e,{needLogin:!0,mvip:!0})})},t.d=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/edit/v2",method:"POST",data:a()({},e,{needLogin:!0,mvip:!0})})},t.k=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_coupon_list/v1",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.g=function(e){return Object(i.a)({url:"vips-mobile/rest/user/coupon/available/list",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.l=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/haitao/get_usable_coupons/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.s=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_usable_coupons/v1",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.n=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/get_message",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.r=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/amount/get_total/v2",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.e=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/change_state/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.o=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/get_payment_info",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.w=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/move_to_favourite/v1",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.f=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/check_delete/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/delete/v1",retries:1,method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.m=function(e){return Object(i.a)({url:"vips-mobile/rest/user/idcard/info/list",method:"POST",data:a()({},e,{needLogin:!0,mvip:!0})})},t.h=function(e){return Object(i.a)({url:"vips-mobile/rest/captcha/prepare/v1",method:"POST",needLogin:!0,data:a()({},e,{mvip:!0,needLogin:!0})})},t.i=function(e){return Object(i.a)({url:"vips-mobile/rest/captcha/prepare/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.u=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/verify_idcard_wap/v2",method:"POST",data:a()({},e,{mvip:!0})})},t.y=function(e){return Object(i.a)({url:"vips-mobile/rest/order/order_add/v4",method:"POST",data:a()({},e,{mvip:!0})})},t.x=function(e){return Object(i.a)({url:"vips-mobile/rest/order/check_effective_before_submit",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.t=function(e){return Object(i.a)({url:"https://mcheckout.vip.com/rest/pay/get_cashierurl",method:"GET",params:e})},t.a=function(e){return Object(i.a)({url:"https://mcheckout.vip.com/jsonrpc.html?rpc&_="+ +Date.now(),method:"POST",data:{id:+Date.now(),jsonrpc:"2.0",method:"Mapi.Vipcard.active",params:e}})},t.v=function(e){return Object(i.a)({url:"vips-mobile/rest/wallet/bind_status/get",method:"GET",params:a()({},e,{mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},M9SS:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("d7EF"),o=n.n(i),s=n("exGp"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("Zrlr"),d=n.n(p),h=n("wxAW"),f=n.n(h),m=n("pD4m"),v=n("3USl"),g=n("GKmE"),w=n("mvHQ"),b=n.n(w),_=n("HnKq"),y=new(function(){function e(){d()(this,e),this.origins={},this.paths={},this._iframes={},this._iframesReady={},this._queues={},this._requests={},this._id=0}return f()(e,[{key:"send",value:function(e){var t=this,n=e.name,r=e.origin,a=e.path,i=e.fn,o=e.sessionStorage,s=e.operation,c=e.key,u=e.value,l=e.cookie;this.origins[n]=r,this.paths[n]=a,this._queues[n]||(this._queues[n]=[]);var p=++this._id,d=setTimeout(function(){t._requests[p]&&(t._requests[p]=null,delete t._requests[p],i&&i({errNo:2}))},5e3),h={request:{key:c,id:p,op:s,value:u,timer:d,cc:l,ss:o},callback:i};this._queues[n].push(h),this._iframes[n]&&this._sendRequest(h,n),this._iframesReady[n]||this.init(n)}},{key:"init",value:function(e){var t=this;if(this._iframesReady[e]=!0,!this._iframes[e]){if(!(window.JSON&&window.localStorage&&window.postMessage&&"localStorage"in window&&null!==window.localStorage))return this._queues[e].every(function(e){e.request&&e.request.timer&&clearTimeout(e.request.timer),e.callback&&e.callback(null,null,{errNo:4})}),!(this._queues[e]=[]);var n=Object(g.z)("https://"+this.origins[e].replace(/^((https||http):?)\/\//,"")+this.paths[e],{https_jump:1,_refer:window.encodeURIComponent(location.href.split("#")[0])});Object(_.b)(n).then(function(n){t._iframes[e]=n,t._iframeLoaded(e),window.addEventListener("message",function(e){t._handleMessage(e)},!1)})}}},{key:"_iframeLoaded",value:function(e){var t=this;this._queues[e]&&this._queues[e].length&&(this._queues[e].forEach(function(n){t._sendRequest(n,e)}),this._queues[e]=[])}},{key:"_sendRequest",value:function(e,t){this._iframes[t]&&(this._requests[e.request.id]=e,this._iframes[t].contentWindow.postMessage(b()(e.request),location.protocol+"//"+this.origins[t].replace(/^((https||http):?)\/\//,"")))}},{key:"_handleMessage",value:function(e){for(var t in this.origins)if(e.origin.replace(/^((https||http):?)\/\//,"")==this.origins[t]){var n={};try{n=JSON.parse(e.data)}catch(e){}if(n.id&&this._requests[n.id]){if(n.timer&&clearTimeout(n.timer))return;this._requests[n.id].callback&&this._requests[n.id].callback(n.key,n.value,{errNo:0}),delete this._requests[n.id]}}}}]),e}()),k=n("VKKs"),x=n.n(k),C=n("iPXC"),S=n("oyG6"),T=n("ArKR"),I=n("wkJ7"),O=function(){function e(){d()(this,e),this.localStorage=[],this.sessionStorage=[]}return f()(e,[{key:"asyncSetAllLocalStorage",value:function(){var e=this;y.send({name:"storageBridge",origin:"m.vip.com",path:"/bridge.html",key:"getAll",sessionStorage:!1,operation:"M",fn:function(t,n,r){e.asyncSetLocalStorage(n)}})}},{key:"asyncSetLocalStorage",value:function(e){e&&e.forEach(function(e){x.a.setLocalStorage(e.key,e.obj)})}},{key:"asyncSetAllSessionStorage",value:function(){var e=this;y.send({name:"storageBridge",origin:"m.vip.com",path:"/bridge.html",key:"getAll",sessionStorage:!0,operation:"M",fn:function(t,n,r){e.asyncSetSessionStorage(n)}})}},{key:"asyncSetSessionStorage",value:function(e){e&&e.forEach(function(e){x.a.setSessionStorage(e.key,e.obj)})}},{key:"asyncSetCookies",value:function(){var e=T.a.getQuery("cps");e&&S.a.set("cps",encodeURIComponent(e),{domain:".vipglobal.hk",expires:1})}},{key:"asyncSetFrom",value:function(e){var t=T.a.getQuery("f");!e||t||C.a.getWapFrom()||C.a.setWapFrom(e)}},{key:"getGlobalHkHost",value:function(){return v.a.globalHost}},{key:"isGlobalHkHost",value:function(e){return(e||location.origin).indexOf("vipglobal.hk")>-1}},{key:"isMHost",value:function(e){return(e||location.origin).indexOf("vip.com")>-1}},{key:"jumpToGlobalHk",value:function(){if(this.isMHost()){var e=S.a.get("WAP[from]"),t=S.a.get("cps");return this.getSwitch().then(function(n){if(n&&!I.a.isAndroidMiniApp()){var r=v.a.globalHost+location.pathname+location.search;return r=t?T.a.setQuery({url:r,name:"cps",value:t}):r,r=e?T.a.setQuery({url:r,name:"f",value:e}):r,location.replace(T.a.setQuery({url:r,name:"set_cookie",value:1})),!0}return!1})}return l.a.resolve(!1)}},{key:"jumpToMhost",value:function(){return this.isGlobalHkHost()?(location.replace("https://m.vip.com"+location.pathname+location.search),l.a.resolve(!0)):l.a.resolve(!1)}},{key:"getSwitch",value:function(){var e=c()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.a.all([this.getHaiTaoCanalSwitch(),this.getHaiTaoSwitch()]);case 2:return t=e.sent,n=o()(t,2),r=n[0],i=n[1],e.abrupt("return",1!=r&&1==i);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getHaiTaoSwitch",value:function(){var e=c()(a.a.mark(function e(){var t,n,r;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(g.x)(m.a.getConfig({type:"switch",code:"1434"}));case 2:return t=e.sent,n=o()(t,2),n[0],r=n[1],e.abrupt("return",r);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getHaiTaoCanalSwitch",value:function(){var e=c()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(g.x)(m.a.getConfig({type:"wapCanal"}));case 2:return t=e.sent,n=o()(t,2),n[0],r=n[1],i=r.customSetting||{},e.abrupt("return",i.blockHaitaoJump);case 8:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()}]),e}();t.a=new O},Ma0c:function(e,t){},MlWt:function(e,t){},NY1z:function(e,t,n){"use strict";var r=n("83Tv");t.a={install:function(e){e.prototype.$toast=r.a}}},"O+bN":function(e,t){},O8eA:function(e,t){},OPOm:function(e,t,n){"use strict";var r=n("Igsb");t.a={install:function(e){e.prototype.$toHttps=function(e){return e&&e.replace(/^(?:https?:)?\/\//i,"https://")},e.prototype.$transformImageUrl=r.a.transformImageUrl}}},OrFG:function(e,t,n){"use strict";n("hTTh");var r=new(n("p6Um").a),a={init:function(){navigator.cookieEnabled||r.open({id:"J-support-cookie-win",className:"support-cookie-win",content:"娴忚鍣╟ookie琚鐢紝璇锋墦寮鍚庡埛鏂伴〉闈",btns:["纭畾"],onBtnClick:function(e,t){r.close()}})}},i=n("Es//"),o=n("M9SS"),s=n("wkJ7");t.a={mounted:function(){a.init();var e=location.pathname;s.a.isWxkApp()||o.a.isGlobalHkHost()||/^\/$/.test(e)||/^\/index\.html/.test(e)||Object(i.a)()}}},P6AR:function(e,t,n){"use strict";t.b=function(e){return Object(i.a)({url:"/vips-mobile/rest/layout/h5/channel/data",retries:1,params:e})},t.c=function(e){return Object(i.a)({url:"/vips-mobile/rest/layout/operations/page",retries:1,params:a()({},e,{mvip:!0})})},t.a=function(e){return Object(i.a)({url:"/vips-mobile/rest/shopping/brandstore/facade/v1",retries:1,params:a()({},e,{mvip:!0})})},t.d=function(e){return Object(i.a)({url:"/vips-mobile/rest/operation/lightart/h5/templateContent/v1",params:e})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},PEP6:function(e,t,n){"use strict";var r=n("wkJ7"),a=n("ArKR");t.a={reload:function(e){r.a.isAndroid()&&r.a.isWechat()?location.href=a.a.setQuery({name:"_ts",value:Date.now()}):location.reload(e)}}},PV6p:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("pFYg"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("oyG6"),d=n("M9SS"),h=n("mtWM"),f=n.n(h);var m=n("pD4m"),v=function(){function e(){c()(this,e),this.__initCommon(),this.checkNeed=!0}return l()(e,[{key:"reportJsError",value:function(e){var t=e.error,n=e.url,r=void 0===n?location.href:n,i=e.info,s=void 0===i?"":i,c=e.vm,u=void 0===c?"":c,l="";this.commonOptions.monitor_name="m_js_error",this.commonOptions.monitor_data=this.__encode({type:"wap-js-error",url:r,domain:d.a.isGlobalHkHost()?"m.vipglobal.hk":"m.vip.com",page_url:this.__getPageType(),page_name:this.__getPageType(),scene:"-99",message:t.message||t||"-99",sdk_version:"-99"});try{"object"===(void 0===(l=t&&t.stack?t.stack:t)?"undefined":o()(l))&&(l=a()(l))}catch(e){l=""}this.commonOptions.monitor_ext=this.__encode({vm:u,info:s,stack:l,userAgent:navigator.userAgent}),this.report(this.commonOptions)}},{key:"reportInterfaceError",value:function(e){var t=e.res,n=void 0===t?{}:t,r=e.responseUrl,a=void 0===r?"":r,i=e.apiName,o=void 0===i?"":i,s=e.timestamp,c=void 0===s?{}:s,u=e.status,l=void 0===u?200:u,p=e.retry_times,h=void 0===p?0:p;this.commonOptions.monitor_name="m_api",this.commonOptions.monitor_data=this.__encode({api_name:this.__getFrientApiName(o),request_time:c.request_time,response_time:c.response_time,status:l,service_ip:"-99",request_url:a,page_url:this.__getPageType(),page_name:this.__getPageType(),rpc_status:"-99",cpu_support:"-99",enable_routing:"-99",domain:d.a.isGlobalHkHost()?"m.vipglobal.hk":"m.vip.com",disable_domain:"-99",network_mark:200==l?0:1,service_code:n.code,original_code:n.originalCode||"-99",msg:n.msg,detail_msg:n.detailMsg||"-99",retry_times:h}),this.commonOptions.monitor_ext=this.__encode({url:location.href,userAgent:navigator.userAgent}),this.report(this.commonOptions)}},{key:"reportResourceError",value:function(e){this.commonOptions.monitor_name="m_resource_file",this.commonOptions.monitor_data=this.__encode({request_time:e.request_time,response_time:e.response_time||Date.now(),status:e.status||-1,cdn_ip:"-99",dns_ip:"-99",request_url:e.request_url||"",page_url:this.__getPageType(),page_name:this.__getPageType(),domain:d.a.isGlobalHkHost()?"m.vipglobal.hk":"m.vip.com",rpc_status:e.status||"-99",address:"-99",exception_info:"-99",data_length:"-99",reponse_start_time:e.request_time,response_end_time:e.response_time||Date.now(),retry_times:e.retry_times,retry_url:e.retry_url||"-99"}),this.commonOptions.monitor_ext=this.__encode({url:location.href,userAgent:navigator.userAgent}),this.report(this.commonOptions)}},{key:"reportInterfaceErrorByOneOf10",value:function(e){var t=this;m.a.getConfig({type:"switch",code:"444"}).then(function(n){if(1==n){var r=Math.floor(10*Math.random());t.reportInterfaceError(e[r])}})}},{key:"report",value:function(e){var t;this.checkNeed&&(t=this.commonOptions,f()({url:"//sc.appvipshop.com/vips-mobile-tracker/router.do?service=vip.monitor.logger",method:"POST",timeout:5e3,withCredentials:!1,xsrfCookieName:"",headers:{"Content-type":"text/plain; charset=UTF-8"},data:t}).catch(function(e){})).then(function(e){})}},{key:"setUrlQuery",value:function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n+"="+e[n]);return t.join("&")}},{key:"__isWebCrawler",value:function(){return/windows|compatible|symbianos/i.test(window.navigator&&navigator.userAgent||"")}},{key:"__initCommon",value:function(){var e,t,n=navigator.userAgent,r=function(){var e="-99";if(/Android/i.test(n)){var t=n.match(/\s([^;]+?)\sBuild/i);e=t&&t.length>1&&t[1]||"-99"}else/iPhone/i.test(n)?e=896==screen.height&&414==screen.width?"iPhoneXr/XsMax/11/11ProMax":812==screen.height&&375==screen.width?"iPhoneX/Xs/11Pro":736==screen.height&&414==screen.width?"iPhone6P/7P/8P":667==screen.height&&375==screen.width?"iPhone6/7/8":568==screen.height&&320==screen.width?"iPhone5/SE":"iPhone4":/iPad/i.test(n)?e="iPad":/MicroMessenger/i.test(n)?e="MicroMessenger'browser.":/Linux/i.test(n)?e="Linux'browser.":/Linux/i.test(navigator.platform)&&(e="Linux operating system..");return e},a=(e={os:"-99",version:"-99"},(t=n.match(/Android\s([0-9.]+?);/i))&&t.length>1&&(e.os="android",e.version="Android "+t[1]),(t=n.match(/iPhone OS ([0-9_]+?)\s/i))&&t.length>1&&(e.os="ios",e.version="iPhone "+t[1]),(t=n.match(/iPad.*?OS ([0-9_]+?)\s/i))&&t.length>1&&(e.os="ios",e.version="iPad "+t[1]),/windows/i.test(n)&&(e.os="windows",e.version="windows"),e);this.commonOptions={session_id:"-99",mars_cid:p.a.get("mars_cid"),user_id:p.a.get("m_vipuuid")||"-99",app_name:"shop_wap",app_type:"web",app_platform:"shop_wap",monitor_time:Math.floor(Date.now()/1e3),app_version:"4.0",network:"4g",latitude:"-99",longitude:"-99",userAgent:n,model:r(),browser_name:r(),os:a.os,os_version:a.version,rom:"-99",warehouse:p.a.get("warehouse")||"VIP_NH",monitor_name:"",monitor_data:"",monitor_ext:"{}"}}},{key:"__encode",value:function(e){var t="";try{t=encodeURIComponent(a()(e))}catch(e){t=""}return t}},{key:"__isIgnoreCode",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:0)in{221:"娓犻亾涓嶅瓨鍦ㄦ垨鏈惎鐢ㄦ垨鍒欏凡鐧诲綍",14212:"鍟嗗搧搴撳瓨涓嶈冻",14215:"鎶辨瓑锛屾暟閲忔湁闄愶紝鎮ㄦ渶澶氬彧鑳借喘涔2浠讹紒",222:"鍒涘缓澶辫触",52161:"failed to get product sku list,salesNoSize",52160:"ailed to get product sku list,salesNoSize",14214:"鏀惧叆璐墿琚嬩笉鎴愬姛锛岃喘鐗╄溅鏈澶氬彧鑳芥斁15娆惧晢鍝侊紝缁撶畻鍚庡彲缁х画璐拱",14200:"鏈櫥褰曚笉鑳借喘涔伴檺璐晢鍝"}}},{key:"__getPageType",value:function(){var e="";try{var t=new URL(location.href).pathname;if("/"==t)return"index";var n={"product-\\d+-\\d+.html":"productDetail","(newbeauty|jiadian|jiaju|lifemarket|lux|yiyao|leftlife|jiajujiazhuang|dajiadian|jiajujiafang|nb.*).html":"index","auto-list.html":"autoList","recommend-brand-\\d+.html":"recommendBrand","preheating-brand-(\\d+)|brand-(\\d+)":"brandList","searchlist.html":"searchList","classify-list-(\\d+)":"classifyList","user-order-logistics.html":"logistics","order-progress-track.html":"orderProgressTrack","user-fav-product.html":"favProduct"};for(var r in n)if(new RegExp(r,"i").test(t)){e=n[r];break}if(!e){var a=t.match(/\/(preheating-)?([a-zA-Z-]+)/i);e=a&&a.length>2?a[2]:"-99"}}catch(e){}return e}},{key:"__getFrientApiName",value:function(e){var t="",n=e,r=e.indexOf("?");if(r>=0&&(n=e.substr(0,r)),(r=n.indexOf("/rest"))>=0)t=n.substr(r+5);else if(n.indexOf("/router.do")>=0){var a=e.match(/service=(.+?)&/i);t=a&&a.length>1&&a[1]||n}else t=n.replace(/http:\/\/[^\/]+|https:\/\/[^\/]+/i,"");return t}}]),e}();t.a=new v},Q8Fd:function(e,t,n){"use strict";t.a={install:function(e){var t=new e({}),n={emit:function(e,n,r){t.$emit(e+":"+n,r)},on:function(e,n,r){r&&"function"==typeof r&&t.$on(e+":"+n,function(e){r(e)})},one:function(e,n,r){r&&"function"==typeof r&&t.$once(e+":"+n,function(e,t){r(t)})},off:function(e,n,r){t.$once(e+":"+n,function(e,t){r&&"function"==typeof r&&r(t)})}};e.$bus=n,e.mixin({created:function(){this.$bus||(this.$bus=n)}})}}},Qims:function(e,t,n){"use strict";var r=n("d7EF"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("Xxa5"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("r7MF"),w=n("iPXC"),b=n("GKmE"),_=n("6TJt"),y=n("pD4m"),k=function(){function e(){f()(this,e)}return v()(e,[{key:"getSimpleCart",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=g.a.isTempUser(),n=g.a.isLogin(),r=w.a.getTempUserToken(),e.next=5,this.getCartVer();case 5:if(a=e.sent,!n||!r){e.next=9;break}return e.next=9,Object(b.x)(this.doMergeCart({guest_token:r,cart_ver:a}));case 9:if(!t&&!n){e.next=15;break}return i={cart_ver:a},!n&&r&&(i.VIP_TANK=r),e.abrupt("return",Object(_.i)(i));case 15:return e.abrupt("return",l.a.resolve({code:0,data:null}));case 16:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"doMergeCart",value:function(){var e=d()(c.a.mark(function e(t){var n;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n={vip_channel:1,wap_consumer:w.a.getWapConsumer()||"A1"},e.next=3,Object(b.x)(Object(_.c)(o()({},n,t)));case 3:w.a.delTempUserToken();case 4:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"getCartVer",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.a.all([this.getCartWapSplitSwitch(),this.getCartModeBSwitch()]);case 2:if(t=e.sent,n=a()(t,2),r=n[0],i=n[1],1!==r||2!==i){e.next=10;break}return e.abrupt("return","4");case 10:if(1!==r||1!==i){e.next=14;break}return e.abrupt("return","2");case 14:return e.abrupt("return","1");case 15:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getCartWapSplitSwitch",value:function(){var e=d()(c.a.mark(function e(){var t,n,r;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(b.x)(y.a.getConfig({type:"switch",code:1270}));case 2:return t=e.sent,n=a()(t,2),n[0],r=n[1],e.abrupt("return",r);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getCartModeBSwitch",value:function(){var e=d()(c.a.mark(function e(){var t,n,r;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(b.x)(y.a.getConfig({type:"switch",code:1184}));case 2:return t=e.sent,n=a()(t,2),n[0],r=n[1],e.abrupt("return",r?2:1);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()}]),e}();t.a=new k},RfAy:function(e,t,n){"use strict";t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/fav/goods/add_by_mid_for_saturn",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.e=function(e){return Object(i.a)({url:"vips-mobile/rest/fav/goods/batch/delete_by_mid_v2_for_saturn",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.g=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/move_to_favourite/v1",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.i=function(e){return Object(i.a)({url:"vips-mobile/rest/favourite/store/status",method:"get",params:a()({},e,{mvip:!0})})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/favourite/store/add",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.f=function(e){return Object(i.a)({url:"vips-mobile/rest/favourite/store/del",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.h=function(e){return Object(i.a)({url:"vips-mobile/router.do?",method:"get",params:a()({},e,{service:"vipshop.brand.favourite.isfavourite",mvip:!0})})},t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/favbrand/add/v2",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.d=function(e){return Object(i.a)({url:"vips-mobile/router.do?",method:"get",params:a()({},e,{needLogin:!0,service:"vipshop.brand.favourite.delete",mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},Rjba:function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("Xxa5"),o=n.n(i),s=n("exGp"),c=n.n(s),u=n("Zrlr"),l=n.n(u),p=n("wxAW"),d=n.n(p),h=n("wkJ7"),f=n("6+Wl"),m=n("oyG6"),v=n("M9SS"),g=n("jnSk"),w=function(){function e(){l()(this,e),this.isWechat=h.a.isWechat()}return d()(e,[{key:"reConfig",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=arguments[1];this._onReady(e,t,!0)}},{key:"initSdk",value:function(e,t){this.isWechat&&!v.a.isGlobalHkHost()?this._onReady(e,t):e&&e()}},{key:"_onReady",value:function(){var t=c()(o.a.mark(function t(n,r,a){var i,s,c,u,l,p,d,h,f;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e.hasConfig&&!a||v.a.isGlobalHkHost())){t.next=3;break}return n&&n(),t.abrupt("return",!1);case 3:return this._setFs(r),i={fs:this.fs||"nature",url:encodeURIComponent(window.location.href.split("#")[0])},t.next=7,Object(g.b)(i);case 7:if(s=t.sent,c=s.code,u=s.data,p=(l=u||{}).signature,d=l.noncestr,h=l.timestamp,f=l.appid,!(0==c&&p&&d&&h&&f)){t.next=17;break}return this._wxConfig({signature:p,nonceStr:d,timestamp:h,appId:f}),e.hasConfig=!0,this._wxReady(n),this._wxError(),t.abrupt("return",!0);case 17:case"end":return t.stop()}},t,this)}));return function(e,n,r){return t.apply(this,arguments)}}()},{key:"_wxConfig",value:function(e){f.a.config(a()({},e,{debug:!1,beta:!0,jsApiList:["checkJsApi","onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareWeibo","hideMenuItems","showMenuItems","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","translateVoice","startRecord","stopRecord","onRecordEnd","playVoice","pauseVoice","stopVoice","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage","getNetworkType","openLocation","getLocation","hideOptionMenu","showOptionMenu","closeWindow","scanQRCode","chooseWXPay","openProductSpecificView","addCard","chooseCard","openCard","launchApplication"],openTagList:["wx-open-launch-weapp"]}))}},{key:"_wxReady",value:function(e){f.a.ready(function(){f.a.showOptionMenu(),e()})}},{key:"_wxError",value:function(e){f.a.error(function(e){})}},{key:"checkJsApi",value:function(e,t){this.initSdk(function(){f.a.checkJsApi({jsApiList:e,success:function(e){t(e)},fail:function(e){t(e)}})})}},{key:"_setFs",value:function(e){this.fs=e||m.a.get("WAP[from]")}}]),e}();w.hasConfig=!1,w.isGetting=!1,t.a=new w},RxC4:function(e,t,n){"use strict";t.a=function(e,t){if(!e||isNaN(e))return"";var n=new Date(1e3*parseInt(e)),r=n.getFullYear(),a=n.getMonth()+1,i=n.getDate(),o=n.getDay(),s=n.getHours(),c=n.getMinutes(),u=n.getSeconds(),l=t;l=(l=(l=(l=(l=(l=(l=(l=l.replace(/\{YYYY\}/g,r)).replace(/\{YY\}/g,r.toString().substr(2,2))).replace(/\{MM\}/g,a>9?a:"0"+a)).replace(/\{M\}/g,a)).replace(/\{DD\}/g,i>9?i:"0"+i)).replace(/\{D\}/g,i)).replace(/\{HH\}/g,s>9?s:"0"+s)).replace(/\{H\}/g,s),s>12&&(s-=12);return l=(l=(l=(l=(l=(l=(l=l.replace(/\{hh\}/g,s>9?s:"0"+s)).replace(/\{h\}/g,s)).replace(/\{mm\}/g,c>9?c:"0"+c)).replace(/\{m\}/g,c)).replace(/\{ss\}/g,u>9?u:"0"+u)).replace(/\{s\}/g,u)).replace(/\{W\}/g,{0:"鏃",1:"涓",2:"浜",3:"涓",4:"鍥",5:"浜",6:"鍏"}[o])}},SPhU:function(e,t){},T4j3:function(e,t,n){"use strict";var r=n("woOf"),a=n.n(r),i=n("Xxa5"),o=n.n(i),s=n("d7EF"),c=n.n(s),u=n("exGp"),l=n.n(u),p=n("//Fk"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("rb8b"),w=(n.n(g),n("HnKq")),b=n("3USl"),_=n("7fY6"),y=n("GKmE"),k=b.a.captchaHost+"/getbootstrap",x=function(){function e(){f()(this,e),this.loadingErrTimes=0,this.VipSecureCode=null,this.instance=null}return v()(e,[{key:"pop",value:function(e){var t=this;return new d.a(function(n,r){t.init({vscConfig:e.vscConfig,onPassed:function(e){n(e)},onError:function(e){r(e)},onFailed:function(t){e&&!e.cancelHandlerFailed&&n("onFailed")},onClose:function(e){n("onClose")}})})}},{key:"init",value:function(){var e=l()(o.a.mark(function e(){var t,n,r,a,i,s,u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(y.x)(this.loadScript());case 2:t=e.sent,n=c()(t,2),r=n[0],a=n[1],i=this,!r&&a?(s=u.vscConfig||{},this.initOptions(u),a.init().load({url:s.templateId,success:function(){i._loadDialogComponent()},error:function(){}})):this.loadScriptErr(r);case 8:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"retry",value:function(){this.init(this.options)}},{key:"loadScript",value:function(){var e=this;return this.VipSecureCode?d.a.resolve(this.VipSecureCode):Object(w.c)(k).then(function(t){return e.VipSecureCode=window.VipSecureCode,e.VipSecureCode})}},{key:"loadScriptErr",value:function(e){_.a.report({message:"getbootstrap鍔犺浇澶辫触",action:"getbootstrap_js_load_error",times:this.loadingErrTimes}),0==this.loadingErrTimes&&(this.loadingErrTimes++,this.retry())}},{key:"initOptions",value:function(e){var t=e.vscConfig;this.options=a()({params:t,id:"J-secure-code",exCls:"secure-code-wrapper",vscConfig:t,targetId:null,onPassed:function(){},onError:function(){},onFailed:function(){},onClose:function(){},onOk:function(){},onCancel:function(){},onShow:function(){},onCodeReload:function(){},onFocus:function(){},onBlur:function(){},onKeyUp:function(e,t){}},e)}},{key:"_loadDialogComponent",value:function(){var e=this.options,t=e.onOk,n=e.onCancel,r=e.onClose;this.options.onOk=function(){return t(),!1},this.options.onCancel=function(e){return n(e),!1},this.options.onClose=function(e){return r(e),!1},this._createInstance()}},{key:"_createInstance",value:function(){this.instance=this.VipSecureCode.createInstance(this.options),this.show()}},{key:"show",value:function(){this.instance&&this.instance.show()}},{key:"destroy",value:function(){this.instance&&this.instance.destroy()}}]),e}();t.a=new x},TU8s:function(e,t){},U67u:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("Dd8w"),a=n.n(r),i=n("Xxa5"),o=n.n(i),s=n("//Fk"),c=n.n(s),u=n("d7EF"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("oyG6"),f=n("y8js"),m=n("zWU1"),v=n("xU/8"),g=n("5ioc"),w=n("GKmE"),b=n("ArKR"),_=n("Es//"),y=n("/nwW"),k=n("VKKs"),x=n.n(k),C=n("pD4m"),S=n("wkJ7"),T=n("xhcK"),I={name:"boc-header",components:{commonHeader:T.a},props:{},data:function(){return{hideBockHeader:!0,backgroundColor:"#f9f9fa",titleContent:"鍞搧浼"}},computed:{},watch:{},methods:{back:function(){var e=x.a.getLocalStorage("boc_ref_sign");location.href=e||"//mst.vip.com/uoSkWVPYUynFP7z1-XLrsQ.php?wapid=mst_100006232&_src=mst&extra_banner=115006232&nova=1&nova_platform=1&mst_page_type=guide&f=bocmobile&from_msts=vB9uMf"},isHideBocNav:function(){var e=this,t=this;S.a.isBocapp()&&C.a.getConfig({type:"wapCanal"}).then(function(n){var r=n.customSetting||{};t.hideBockHeader=!r.showTopReturnNav,e.$forceUpdate()})}},created:function(){},mounted:function(){this.isHideBocNav()},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},O={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"boc-header"},[t("common-header",{attrs:{"hide-header":this.hideBockHeader,"title-content":this.titleContent,"background-color":this.backgroundColor,"show-right":!1,"native-back":!0},on:{back:this.back}})],1)},staticRenderFns:[]};var A=n("VU/8")(I,O,!1,function(e){n("rz3c")},"data-v-46c8a24d",null).exports,j=n("/4lS"),L=n("qDyg"),P=n("Lg6z"),E={name:"channel-list",data:function(){return{}},computed:{emptyMenusNumber:function(){return this.menus&&this.menus.length>0?4*Math.ceil(this.menus.length/4)-this.menus.length:0}},methods:{onClickMenu:function(e){this.currentIndex!=e&&this.$emit("on-click-menu",e)},onClickDrawMenu:function(e){var t=e;Object(P.a)({href:t.wap_url,type:t.type_id}),"-1"==t.type_id&&t.type_value?location.href=t.type_value:location.href="/"+t.wap_url}},props:{menus:{type:Array,default:function(){return[]}},drawMenus:{type:Array,default:function(){return[]}},currentIndex:Number}},U={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"channel-list"},[e.menus&&e.menus.length>0?n("div",{staticClass:"well-chosen-channel border-b"},[e._m(0),n("ul",{staticClass:"clearfix"},[e._l(e.menus,function(t,r){return[t.tag?n("li",{key:r,class:{current:e.currentIndex==r}},[n("a",{staticClass:"channel-item",attrs:{mars_sead:t.tracking},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.onClickMenu(r)}}},[n("div",[n("i",{style:{backgroundImage:"url("+t.default_icon+")"}}),n("span",[e._v(e._s(t.name))])])])]):e._e()]}),e._l(e.emptyMenusNumber,function(e,t){return n("li",{key:"emptyMenusNumber"+t})})],2)]):e._e(),e.drawMenus&&e.drawMenus.length>0?n("div",{staticClass:"more-channel border-b"},[e._m(1),n("ul",{staticClass:"clearfix"},[e._l(e.drawMenus,function(t,r){return[t.is_hidden?e._e():n("li",{key:r,on:{click:function(n){return n.stopPropagation(),n.preventDefault(),e.onClickDrawMenu(t)}}},[n("a",{staticClass:"channel-item",attrs:{"data-href":t.wap_url,mars_sead:t.tracking}},[n("span",[e._v(e._s(t.name))])])])]})],2)]):e._e()])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("h3",[t("p",[this._v("绮鹃夋帹鑽")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("h3",[t("p",[this._v("鏇村鎺ㄨ崘")])])}]};var M=n("VU/8")(E,U,!1,function(e){n("LuWU")},null,null).exports,D=document,W=document.documentElement.clientHeight;function R(e){e.preventDefault()}function $(e){e.stopPropagation(),e.preventDefault()}var F={name:"tab-bar",components:{tab:L.a,tabItem:L.b,channelList:M},props:{items:{type:Array,default:function(){return[]}},drawMenus:Array,currentIndex:{type:Number,default:0}},data:function(){return{showMoreBtn:!1,tabItemClass:"",height:2*W,padding:"0px",scrollThreshold:10,index:this.currentIndex,open:!1}},computed:{menusList:function(){return this.items.filter(function(e){return!e.is_hidden})}},watch:{currentIndex:function(e){this.index=e}},methods:{onReady:function(){var e=this,t=this.$refs.tab.$el,n=this.$refs.tabContainer.offsetWidth,r=this.$refs.tabItem,a=0;r.forEach(function(e){a+=e.$el.offsetWidth}),a+r.length0&&this.clearAllPopTimeout(),oe=setTimeout(function(){t.show=!0,t.startCloseTimeOut(e)},n,!1)},startCloseTimeOut:function(e){var t=this;if(e){var n=parseInt(e.closeAfterTime,10);n>0&&(se=setTimeout(function(){t.close()},1e3*n))}},changeFeild:function(e){var t=function(t){var n=e[t];if(!n)return null;var r={};return n.couponBgImage&&(r.couponBgImage=te.a.transformImageUrl(n.couponBgImage)),n.price&&(n.price.text&&(r.priceText=n.price.text),n.price.textColor&&(r.priceStyle="color: "+n.price.textColor)),n.title&&(n.title.text&&(r.titleText=n.title.text),n.title.textColor&&(r.titleStyle="color: "+n.title.textColor)),n.priceSuffix&&(n.priceSuffix.text&&(r.priceSuffixText=n.priceSuffix.text),n.priceSuffix.textColor&&(r.priceSuffixStyle="color: "+n.priceSuffix.textColor)),n.desc&&(n.desc.text&&(r.descText=n.desc.text),n.desc.textColor&&(r.descStyle="color: "+n.desc.textColor)),n.tips&&n.tips.length&&(r.tips=[],n.tips.forEach(function(e){r.tips.push({text:e.text,style:"color: "+e.textColor})})),n.buttons&&(r.buttons=n.buttons),n.wechatRemind&&(r.wechatRemind=n.wechatRemind),r};return 4==e.uiStyle?{beforePopupData:t("popWindowBefore"),afterPopupData:t("popWindowAfter")}:{}},clearAllPopTimeout:function(){oe&&clearTimeout(oe),se&&clearTimeout(se)},normalGo:function(){var e=this.needClickDialgInfo;if(5==e.uiStyle&&e.popWindowNormal.href){var t=ne.a.go(e.popWindowNormal.href).wapUrl;t&&(location.href=t)}this.close()},close:function(){this.show=!1,this.clearAllPopTimeout()}},created:function(){},mounted:function(){var e=this;setTimeout(function(){e.getAdvInfo()},200),this.isLogin=re.a.isLogin(),ae.a.on("loginModules","chageState",function(t){e.isLogin=t})},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},ue={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("vip-popup",{class:{"body-ll":e.show},attrs:{"background-color":"transparent",position:"center",appendToBody:!0},model:{value:e.show,callback:function(t){e.show=t},expression:"show"}},[3==e.needClickDialgInfo.uiStyle||4==e.needClickDialgInfo.uiStyle?n("div",{staticClass:"before-image",on:{click:function(t){return t.stopPropagation(),e.bindCoupon(t)}}},[3==e.needClickDialgInfo.uiStyle?n("img",{attrs:{src:e.needClickDialgInfo.imageUrl}}):4==e.needClickDialgInfo.uiStyle&&e.beforePopupData?[n("img",{attrs:{src:e.beforePopupData.couponBgImage}}),n("div",{staticClass:"before-title",style:e.beforePopupData.titleStyle},[e._v("\n "+e._s(e.beforePopupData.titleText)+"\n ")]),n("div",{staticClass:"before-money"},[n("span",{staticClass:"main-price",style:e.beforePopupData.priceStyle},[e._v(e._s(e.beforePopupData.priceText))]),n("span",{staticClass:"suffix",style:e.beforePopupData.priceSuffixStyle},[e._v(e._s(e.beforePopupData.priceSuffixText))])]),n("div",{staticClass:"before-desc",style:e.beforePopupData.descStyle},[e._v("\n "+e._s(e.beforePopupData.descText)+"\n ")])]:e._e()],2):5==e.needClickDialgInfo.uiStyle?n("div",{staticClass:"before-image expose-item",attrs:{"data-expose-row":"1","data-expose-col":"1","data-expose-data":e.needClickDialgInfo.buryPoint,"data-id":e.needClickDialgInfo.popupKey,"data-track-id":"cutNowClick","data-track-data":e.needClickDialgInfo.buryPoint},on:{click:function(t){return t.stopPropagation(),e.normalGo(t)}}},[n("img",{attrs:{src:e.needClickDialgInfo.popWindowNormal.image}})]):e._e(),n("div",{staticClass:"btn-close",on:{click:function(t){return t.stopPropagation(),e.close(t)}}})])],1)},staticRenderFns:[]};var le=n("VU/8")(ce,ue,!1,function(e){n("MlWt")},"data-v-1e6287ca",null).exports,pe=n("P6AR"),de=n("+vOg"),he=n("7fY6"),fe=location.pathname.substring(1),me=new v.a;var ve={name:"App",components:{bocHeader:A,indexHeader:j.a,commonHeader:T.a,downloadBar:B.a,sticky:K.a,vipIcon:J.a,tabBar:N,commonFooter:q.a,vipBacktop:V.a,cartCmp:z.a,errorRetry:G.a,advDialog:le},props:{},data:function(){return{showNetworkError:!1,errorCode:0,errorMsg:"",isTopFixed:!1,isLoading:!0,disabled:"undefined"!=typeof navigator&&/iphone/i.test(navigator.userAgent)&&/ucbrowser/i.test(navigator.userAgent),isTop:!0,actived:!1,navCurrent:{},currentIndex:0,dataParams:{},topMenus:[],drawMenus:[]}},computed:{},watch:{isTopFixed:function(e){this.$refs.downloadBar&&this.$refs.downloadBar.refresh(e)}},methods:{init:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c.a.all([e.getTopMenu(),e.getDrawMenu()]);case 2:n=t.sent,r=l()(n,2),a=r[0],i=r[1],e.initNavCurrent({topMenus:a,drawMenus:i}),e.initLightart();case 8:case"end":return t.stop()}},t,e)}))()},reloadLightart:function(e){var t=this;return Q.a.show(),this.actived=!1,this.navCurrent=e,this.loadMoreToken="",this.showNetworkError=!1,new c.a(function(e){setTimeout(function(){e(t.initLightart())},300)})},loadMoreCallback:function(e){var t=this;return new c.a(function(n){t.loadMoreResolveQueue={resolve:n};var r=e.url.split("?");t.loadMoreToken=r[1]||"",t.getLightArtData().then(function(e){e&&e.load_more_token?t.loadMoreResolveQueue.resolve(e):me.noMore()}).catch(function(e){t.netWorkError()})})},renderLightart:function(){me.render({navCurrent:this.navCurrent,lightartTmpl:this.lightartTmpl,lightartData:this.lightartData,wrapper:this.$refs.wrapper,ajaxInterceptors:this.loadMoreCallback}),this.actived=!0,setTimeout(function(e){Object(g.a)()},200)},initLightart:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(e.navCurrent&&e.navCurrent.menu_code){t.next=3;break}return e.interfaceError({}),t.abrupt("return");case 3:return t.next=5,c.a.all([e.getLightArtData(),e.getLightArtTmpl()]).catch(function(t){t?e.interfaceError({code:t.code,msg:t.msg}):e.netWorkError(!0)});case 5:return n=t.sent,r=l()(n,2),a=r[0],(i=r[1])&&a?(e.lightartTmpl=i,e.lightartData=a,e.renderLightart()):e.interfaceError({}),f.a.hide(),Q.a.hide(),t.abrupt("return",!0);case 13:case"end":return t.stop()}},t,e)}))()},initNavCurrent:function(e){var t=this,n=e.topMenus,r=e.drawMenus;return d()(o.a.mark(function e(){var a,i;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=!1,n&&r&&(t.topMenus=n,t.drawMenus=r,(i=t.getNavCurrent({topMenus:n,drawMenus:r}))?(t.navCurrent=i,t.currentIndex=i.index,t.isTop=t.isTopFixed=i.isTop,t.isLoading=!1,t.$nextTick(function(){setTimeout(function(){Object(_.a)()})}),a=!0):he.a.report({action:"mgray_index_nav_current_empty"})),he.a.report({action:"mgray_index_menus_empty"}),e.abrupt("return",a);case 4:case"end":return e.stop()}},e,t)}))()},getNavCurrent:function(e){var t=e.topMenus,n=void 0===t?[]:t,r=e.drawMenus,a=[].concat(n,void 0===r?[]:r),i={},o=b.a.getHash("id");for(var s in a){var c=a[s];if(o&&c.id==o){i=a[s];break}if(!o&&(!fe&&"index.html"==c.wap_url||fe==c.wap_url)){i=a[s];break}}return i.name?i:null},getTopMenu:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i,s,c,u,p;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Object(w.x)(Object(de.d)());case 2:if(n=t.sent,r=l()(n,2),a=r[0],i=r[1],c=(s=void 0===i?{}:i).data,u=s.code,a||1!=u||!c){t.next=11;break}return p=c.top_menus||[],t.abrupt("return",p.filter(function(e,t){return e.isTop=!0,e.index=t,!e.is_hidden}));case 11:return e.netWorkError(!0),t.abrupt("return",null);case 13:case"end":return t.stop()}},t,e)}))()},getDrawMenu:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i,s,c,u,p,d;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(w.x)(Object(de.a)());case 2:if(n=e.sent,r=l()(n,2),a=r[0],i=r[1],c=(s=void 0===i?{}:i).data,u=s.code,a||1!=u||!c){e.next=14;break}if(!(p=c.draw_menus)){e.next=14;break}return d=[],p.forEach(function(e){e.menus&&(d=d.concat(e.menus))}),e.abrupt("return",d.filter(function(e,t){return e.isTop=!1,e.index=t,!e.is_hidden}));case 14:return e.abrupt("return",null);case 15:case"end":return e.stop()}},t,e)}))()},getLightArtData:function(){var e=this;return d()(o.a.mark(function t(){var n,r,i,s,u;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n=a()({},e.commonParams,{width:"640",height:"460",net:"wifi",client:"wap",changeResolution:"2",menu_code:e.navCurrent.menu_code,channel_name:e.navCurrent.name}),e.loadMoreToken&&(n.load_more_token=e.loadMoreToken),t.next=4,Object(w.x)(Object(pe.b)(n));case 4:if(r=t.sent,i=l()(r,2),s=i[0],u=i[1],s||1!=u.code){t.next=10;break}return t.abrupt("return",u.data.data);case 10:return t.next=12,c.a.reject(u);case 12:case"end":return t.stop()}},t,e)}))()},getLightArtTmpl:function(){var e=this;return d()(o.a.mark(function t(){var n,r,i,s,u,p;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.lightartTmpl){t.next=2;break}return t.abrupt("return",e.lightartTmpl);case 2:return n=a()({},e.commonParams,{identifyCode:"57de10bfe905dd2015a9ac30a3a8bf84",laTpCode:"165418379279080908",client:"wap"}),r=e._getLightArtTmpl(n),t.next=6,Object(w.x)(y.a.cacheRequest(r,"cache_index_lightart_tmpl"));case 6:if(i=t.sent,s=l()(i,2),u=s[0],p=s[1],u||!p.data||!p.data.content){t.next=12;break}return t.abrupt("return",JSON.parse(p.data.content));case 12:return t.next=14,c.a.reject(p);case 14:case"end":return t.stop()}},t,e)}))()},_getLightArtTmpl:function(e){return function(){return Object(pe.d)(e)}},interfaceError:function(e){var t=e.code,n=void 0===t?0:t,r=e.msg,a=void 0===r?"":r;f.a.hide(),Q.a.hide(),this.actived?me.networkError({reloadCallback:this.clickShowMoreBtn,loadMoreText:"鏌ョ湅鏇村鍦ㄥ敭鍝佺墝"}):(this.showNetworkError=!0,this.errorCode=n,this.errorMsg=a)},netWorkError:function(e){f.a.hide(),Q.a.hide(),e?(this.showNetworkError=!0,this.errorMsg="鐜板湪鎶㈣喘鐨勫皬浼欎即澶浜嗭紝璇风◢鍚庨噸璇"):me.networkError({reloadCallback:this.clickShowMoreBtn,loadMoreText:"鏌ョ湅鏇村鍦ㄥ敭鍝佺墝"})},clickShowMoreBtn:function(){var e=this,t=this.loadMoreResolveQueue.resolve;this.getLightArtData().then(function(e){t(e)}).catch(function(t){e.netWorkError()})},retry:function(){location.reload()}},created:function(){m.a.init(),this.lightartTmpl=null,this.lightartData={},this.loadMoreToken="",this.commonParams={standby_id:"nature",wap_consumer:h.a.get("wap_consumer")||"A1",lightart_version:"1.3.0"},this.init()},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){},metaInfo:function(){var e=[];return e.push({name:"keywords",content:"鍞搧浼氭墜鏈鸿喘鐗╋紝姝e搧鍟嗗煄锛屽搧鐗岀壒鍗栦細"}),e.push({name:"description",content:"鍞搧浼氭墜鏈鸿喘鐗╃綉浠1-7鎶樿秴浣庢姌鎵e鍏ㄧ悆鍚勫ぇ鍝佺墝杩涜闄愭椂鐗瑰崠锛屽晢鍩庡唴姝e搧鍥婃嫭鏈嶈銆佸寲濡嗗搧銆佸灞呫佸ア渚堝搧绛夈100%姝e搧銆佹墜鏈鸿喘鐗╀笅鍗曘佽揣鍒颁粯娆俱7澶╂棤鏉′欢閫璐с"}),{title:"鍞搧浼氭墜鏈鸿喘鐗╂鍝佸晢鍩庯細鍝佺墝鐗瑰崠鎵嬫満鐗",meta:e}}},ge={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"index-container"},[n("downloadBar",{ref:"downloadBar",attrs:{"is-top-fixed":e.isTopFixed},scopedSlots:e._u([e.isTop&&!e.isLoading?{key:"down",fn:function(){return[n("boc-header"),n("index-header"),n("tab-bar",{attrs:{items:e.topMenus,"draw-menus":e.drawMenus,"current-index":e.currentIndex}})]},proxy:!0}:null],!0)}),e.isTop||e.isLoading?e._e():n("sticky",{attrs:{"check-sticky-support":!e.disabled,disabled:!1}},[n("common-header",{attrs:{"background-color":"#fbfbfa","title-content":e.navCurrent.name},scopedSlots:e._u([{key:"right",fn:function(){return[n("a",{staticClass:"header-right-button",attrs:{href:"//h5.vip.com/list/mobile-search.html"}},[n("vip-icon",{attrs:{name:"list"}})],1)]},proxy:!0}])})],1),e.showNetworkError?e._e():n("div",{ref:"wrapper",staticClass:"lightart-container",class:{actived:e.actived}}),e.showNetworkError?n("error-retry",{attrs:{"error-msg":e.errorMsg,"error-code":e.errorCode},on:{retry:e.retry}}):e._e(),n("vip-backtop",{attrs:{bottom:"22px"}}),n("cartCmp"),n("commonFooter"),n("input",{staticClass:"menu_nav_current",attrs:{type:"hidden",menu_tag:e.navCurrent.tag+"|"+(e.isTop?0:1),"data-channel-code":e.navCurrent.channel_code}}),n("adv-dialog",{attrs:{"zoon-id":"101"}})],1)},staticRenderFns:[]};var we=n("VU/8")(ve,ge,!1,function(e){n("O8eA"),n("Gyoi")},null,null).exports,be=n("fZjL"),_e=n.n(be),ye=(n("UoMW"),n("O+bN"),n("V0w3"),n("fujM"),n("j1ja"),n("/5sW")),ke=n("5K15"),xe=n.n(ke),Ce=n("OrFG"),Se=n("HMTI"),Te=n("Hjs2"),Ie=n("kH1M"),Oe=n("vNF5"),Ae=n("PV6p"),je=n("1M/o"),Le=n("M9SS"),Pe=n("9bvu"),Ee=n("1j56"),Ue=n("Z0rb"),Me=n("9GaH"),De=n("Q8Fd"),We=n("qb3Y"),Re=n("OPOm"),$e=n("NY1z"),Fe=n("atzx"),He=n("LmM6"),Ne=n("9aD2"),Be=n("cTzj"),qe=n.n(Be),Ve=n("N2Ao");_e()(Me).forEach(function(e){ye.a.filter(e,Me[e])});ye.a.config.ignoredElements=["wx-open-launch-weapp"],ye.a.use(qe.a,{filter:{progressive:function(e,t){var n=e.el,r=n.dataset.size||"",a=n.dataset.adaption||!1,i=parseInt(n.clientWidth),o=parseInt(n.clientHeight);void 0===e.src?e.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7":e.src=a?te.a.transformImageUrl(e.src,r):te.a.transformImageUrl(e.src,r,null,i,o)}},adapter:{error:function(e,t){try{var n=e.el,r=e.src;if(Object(Oe.f)(n,"processed")?e.processed=!0:(Object(Oe.a)(n,"processed"),e.src=r?Ve.genImageSrc(r):""),!Object(Oe.f)(n,"retried")){e.processed&&Object(Oe.a)(n,"retried");var a=e.performanceData||{};a.loadEnd<=0&&(a.loadEnd=Date.now());var i={request_time:a.loadStart,response_time:a.loadEnd,status:404,cdn_ip:"-99",dns_ip:"-99",request_url:r,rpc_status:"-99",address:"-99",exception_info:"-99",data_length:"",reponse_start_time:"",response_end_time:"",retry_times:e.processed?1:0,retry_url:e.processed?"-99":e.src};Ae.a.reportResourceError(i)}}catch(e){}}}}),ye.a.config.productionTip=!1,function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.use(Re.a),e.use(xe.a),e.use(De.a),e.use($e.a),e.use(Fe.a),e.prototype.$alert=Ne.a.alert,e.use(He.a)}(ye.a);var ze={run:function(e,t){var n=this;return d()(o.a.mark(function r(){var a,i;return o.a.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return n.toHttps(),Object(w.p)(),Le.a.isGlobalHkHost()&&Le.a.asyncSetCookies(),Pe.a.handleNativeFloatCmp(),r.next=6,Object(w.x)(ze.beforeInit());case 6:return a=r.sent,i=l()(a,1),i[0],r.next=11,Object(Ee.d)();case 11:if(!r.sent){r.next=14;break}return r.abrupt("return");case 14:return r.next=16,re.a.autoLogin();case 16:ze.init(e,t),ze.afterInit();case 19:case"end":return r.stop()}},r,n)}))()},init:function(e,t){ye.a.use(We.a),Object(Ue.a)(),new ye.a(a()({el:"#app",mixins:[Ce.a]},t||{},{render:function(t){return t(e)}}))},beforeInit:function(){return Ie.a.init(),c.a.all([Se.e.init(),Se.d.init(),Se.c.init()])},afterInit:function(){Te.a.init(),je.a.init()},toHttps:function(){if(!("https:"==document.location.protocol)){var e=document.location.href.replace("http://","https://");location.href=e}}};ze.run(we)},UnlV:function(e,t,n){"use strict";var r=n("vNF5"),a={components:{vipIcon:n("FA0W").a},props:{lockPage:{type:Boolean,default:!0},showMask:{type:Boolean,default:!0},raduis:{type:Boolean,default:!0},value:{type:Boolean,default:!1},position:{type:String,default:"bottom"},width:{type:String,default:"auto"},height:{type:String,default:"auto"},minHeight:{type:String,default:"auto"},maxHeight:{type:String,default:"auto"},closeOnMasker:{type:Boolean,default:!0},maskOpacity:{type:String,default:"0.7"},backgroundColor:{type:String,default:"#FFF"},appendToBody:{type:Boolean,default:!1},title:{type:String,default:""}},watch:{value:function(e){this.lockPage&&this.$nextTick(function(){e?r.j.lock():r.j.unlock()})}},computed:{classes:function(){return("center"===this.position?"popup-center ":"popup popup-"+this.position)+(this.value?" popup-show ":"")+(this.raduis?"":" pop-no-radius ")},styles:function(){return"left"===this.position||"right"===this.position?{width:this.width}:"bottom"===this.position?{width:"100%",height:this.height,"max-height":this.maxHeight,"min-height":this.minHeight}:{width:this.width,height:this.height}},contentStyles:function(){return{"background-color":this.backgroundColor}}},mounted:function(){this.appendToBody&&document.body.appendChild(this.$el)},destroyed:function(){Object(r.f)(document.body,"vip-prevent-scroll")&&Object(r.k)(document.body,"vip-prevent-scroll"),this.removeEl()},methods:{removeEl:function(){var e=this;this.appendToBody&&this.$el&&this.$el.parentNode&&setTimeout(function(){e.$el.parentNode.removeChild(e.$el)},500)},close:function(){this.closeOnMasker&&this.$emit("input",!1)},handleTabBack:function(){this.$emit("input",!1),this.$emit("onClose")}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"vip-popup"},[e.value&&e.showMask?n("div",{ref:"popMask",staticClass:"vip-mask",style:{opacity:e.maskOpacity},on:{click:e.close}}):e._e(),n("div",{class:e.classes,style:e.styles},[e.$slots.header||e.title?n("div",{staticClass:"popup-header",style:e.contentStyles},[e.$slots.header?e._t("header"):e.title?n("div",{staticClass:"popup-header__inner"},[n("div",{staticClass:"popup-title"},[e._v(e._s(e.title))]),n("vip-icon",{staticClass:"close-btn",attrs:{name:"vip-close"},nativeOn:{click:function(t){return e.handleTabBack(t)}}})],1):e._e()],2):e._e(),n("div",{staticClass:"popup-content",style:e.contentStyles},[e._t("default")],2),e.$slots.footer?n("div",{staticClass:"popup-footer",style:e.contentStyles},[e._t("footer")],2):e._e()])])},staticRenderFns:[]};var o=n("VU/8")(a,i,!1,function(e){n("uiMC"),n("BjXC")},"data-v-05192920",null).exports;n.d(t,"a",function(){return o})},UoMW:function(e,t){!function(e,t){function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n.bind(e))}window.flexible={},function(e,t){var r,a=e.document,i=a.documentElement,o=a.querySelector('meta[name="viewport"]'),s=a.querySelector('meta[name="flexible"]'),c=0,u=0,l=t;if(o){var p=o.getAttribute("content").match(/initial\-scale=([\d\.]+)/);p&&(u=parseFloat(p[1]),c=parseInt(1/u))}else if(s){var d=s.getAttribute("content");if(d){var h=d.match(/initial\-dpr=([\d\.]+)/),f=d.match(/maximum\-dpr=([\d\.]+)/);h&&(c=parseFloat(h[1]),u=parseFloat((1/c).toFixed(2))),f&&(c=parseFloat(f[1]),u=parseFloat((1/c).toFixed(2)))}}if(!c&&!u){e.navigator.appVersion.match(/android/gi);var m=e.navigator.appVersion.match(/iphone/gi),v=e.navigator.appVersion.match(/iPad/gi),g=e.devicePixelRatio;u=1/(c=m||v?g>=3&&(!c||c>=3)?3:g>=2&&(!c||c>=2)?2:1:1)}if(i.setAttribute("data-dpr",c),!o)if((o=a.createElement("meta")).setAttribute("name","viewport"),o.setAttribute("content","initial-scale="+u+", maximum-scale="+u+", minimum-scale="+u+", user-scalable=no"),i.firstElementChild)i.firstElementChild.appendChild(o);else{var w=a.createElement("div");w.appendChild(o),a.write(w.innerHTML)}function b(){var t=i.getBoundingClientRect().width;t/c>540&&(t=540*c);var n=t/10;i.style.fontSize=n+"px",l.rem=e.rem=n,function(e){if(!/(ipad|iphone|ipod)/i.test(window.navigator&&navigator.userAgent||"")){var t=document.createElement("div");t.style="font-size: 14px;",document.body.appendChild(t);var n=parseInt(window.getComputedStyle(t,null).getPropertyValue("font-size"));document.body.removeChild(t);var r=14/n;1!==r&&r<1&&(document.getElementsByTagName("html")[0].style.cssText="font-size: "+e*r+"px")}}(n)}n(e,"resize",function(){clearTimeout(r),r=setTimeout(b,300)}),n(e,"pageshow",function(e){e.persisted&&(clearTimeout(r),r=setTimeout(b,300))}),"complete"===a.readyState?a.body.style.fontSize=12*c+"px":n(a,"DOMContentLoaded",function(e){a.body.style.fontSize=12*c+"px"}),b(),l.dpr=e.dpr=c,l.refreshRem=b,l.rem2px=function(e){var t=parseFloat(e)*this.rem;return"string"==typeof e&&e.match(/rem$/)&&(t+="px"),t},l.px2rem=function(e){var t=parseFloat(e)/this.rem;return"string"==typeof e&&e.match(/px$/)&&(t+="rem"),t}}(window,window.flexible)}(document,window)},"V/t2":function(e,t){},V0w3:function(e,t){},VKKs:function(e,t,n){"use strict";var r=null;e.exports={isStorageSupported:function(){if(null!==r)return r;try{var e=window.sessionStorage,t=window.localStorage;return e.setItem("test","1"),t.setItem("test","1"),e.removeItem("test"),t.removeItem("test"),r=!!window.localStorage&&!!window.sessionStorage}catch(e){return r=!1,!1}},getLocalStorage:function(e){return this.isStorageSupported()?window.localStorage.getItem(e):null},setLocalStorage:function(e,t){if(this.isStorageSupported()){var n=null;try{n=window.localStorage.setItem(e,t)}catch(e){}return n}return null},removeLocalStorage:function(e){return this.isStorageSupported()?window.localStorage.removeItem(e):null},getSessionStorage:function(e){return this.isStorageSupported()?window.sessionStorage.getItem(e):null},setSessionStorage:function(e,t){if(this.isStorageSupported()){var n=null;try{n=window.sessionStorage.setItem(e,t)}catch(e){}return n}return null},removeSessionStorage:function(e){return this.isStorageSupported()?window.sessionStorage.removeItem(e):null},isSupportedCookie:function(){return navigator.cookieEnabled}}},VPOg:function(e,t,n){"use strict";var r=n("/5sW"),a=n("wkJ7"),i=n("Xxa5"),o=n.n(i),s=n("exGp"),c=n.n(s),u=n("oyG6"),l=n("1M/o"),p=n("pzeP"),d=n("pD4m"),h={name:"download-bar",components:{FontLabel:n("y1FO").a},props:{isTopFixed:{type:Boolean,default:!1}},data:function(){return{isShowDownloadApp:!0,downloadBarFixed:!1,needAnimation:!1,height:0,downloadText:{},downloadInfo:null}},mounted:function(){this.init()},methods:{init:function(){var e=this;return c()(o.a.mark(function t(){return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!a.a.isWechat()&&!a.a.isWxkApp()){t.next=4;break}e.isShowDownloadApp=!1,t.next=8;break;case 4:return t.next=6,e.getDownloadInfo();case 6:return t.next=8,e.getWapCanal();case 8:e.downloadBarFixed=e.isTopFixed,e.scrollListener(),e.getDownloadText(),e.sendExposeMar();case 12:case"end":return t.stop()}},t,e)}))()},refresh:function(e){this.downloadBarFixed=e,this.scrollListener()},initPlaceHolder:function(){var e=this;this.$nextTick(function(){setTimeout(function(){e.$refs.placeHolder.style.height=e.$refs.footer.clientHeight+"px"},200)})},wakeupApp:function(){l.a.seed("div","click","top_client_download_btn"),Object(p.a)()},closeDownloadBar:function(){this.isShowDownloadApp=!1,this.downloadBarFixed=this.isTopFixed,window.removeEventListener("scroll",this.throttleFun,!1),u.a.set("WAP[clientCloseSession]",!0),l.a.seed("span","click","close_download_page")},getWapCanal:function(){var e=this;return c()(o.a.mark(function t(){var n,r;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,d.a.getConfig({type:"wapCanal"});case 2:n=t.sent,((r=n.customSetting)&&1===Number(r.hideDownloadApp)||u.a.get("WAP[clientCloseSession]"))&&(e.isShowDownloadApp=!1);case 5:case"end":return t.stop()}},t,e)}))()},getDownloadText:function(){var e=this;d.a.getConfig({type:"config",code:"M_download_app_text"}).then(function(t){e.downloadText=(t||{}).top||{}})},getDownloadInfo:function(){var e=this;d.a.getConfig({type:"config",code:"wap_developers_information"}).then(function(t){e.downloadInfo=t})},scrollListener:function(){this.downloadBarFixed&&this.isShowDownloadApp?(this.height=this.$refs.downloadBar.clientHeight,this.prevScrollTop=0,window.addEventListener("scroll",this.throttleFun,!1)):this.downloadBarFixed&&window.addEventListener("scroll",this.footerThrottleFun,!1)},throttleFun:function(){var e=this.height,t=this.prevScrollTop,n=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;n<=0?(this.downloadBarFixed=!1,this.$refs.footer&&(this.$refs.footer.style.top="0px"),this.needAnimation=!1):n>t&&nt&&n>e?(this.downloadBarFixed=!0,this.$refs.footer&&(this.$refs.footer.style.top="0px"),this.needAnimation=!0):n0}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowDownloadApp,expression:"isShowDownloadApp"}],ref:"downloadBar",staticClass:"u-download-bar-wrap",class:{"download-fixed":e.downloadBarFixed}},[n("div",{staticClass:"u-download-bar",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[n("span",{staticClass:"download-close icon-close",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.closeDownloadBar(t)}}}),n("div",{staticClass:"download-text"},[n("p",{staticClass:"title"},[e._v(e._s(e.downloadText.text))]),n("font-label",{staticClass:"content",attrs:{align:"left",justify:"flex-start","font-size":10,text:e.downloadText.sub_text}})],1)]),e.downloadInfo&&Object.keys(e.downloadInfo).length>0?n("div",{style:{backgroundColor:"#fff"}},[n("p",{staticClass:"u-download-info"},[n("font-label",{attrs:{align:"left",justify:"flex-start","font-size":8}},[e.downloadInfo.developers?n("span",[e._v("寮鍙戣咃細"+e._s(e.downloadInfo.developers))]):e._e(),e.downloadInfo.version?n("span",[e._v("聽聽鐗堟湰鍙凤細"+e._s(e.downloadInfo.version))]):e._e()]),n("font-label",{staticClass:"u-download-info__href",attrs:{align:"left",justify:"flex-start","font-size":8}},[e.downloadInfo.authority?n("a",{attrs:{href:e.downloadInfo.authority}},[e._v("鏉冮檺")]):e._e(),e.downloadInfo.authority&&e.downloadInfo.privacy?[e._v("聽聽|聽聽")]:e._e(),e.downloadInfo.privacy?n("a",{attrs:{href:e.downloadInfo.privacy}},[e._v("闅愮")]):e._e()],2)],1)]):e._e()]),n("div",{directives:[{name:"show",rawName:"v-show",value:e.downloadBarFixed&&e.isShowDownloadApp,expression:"downloadBarFixed && isShowDownloadApp"}],staticClass:"download-bar-place-holder"}),n("div",{ref:"footer",staticClass:"download-footer",class:e.downloadFooterFixed},[e._t("down")],2),n("div",{directives:[{name:"show",rawName:"v-show",value:e.downloadBarFixed,expression:"downloadBarFixed"}],ref:"placeHolder",staticClass:"footer-place-holder"})])},staticRenderFns:[]};var m=n("VU/8")(h,f,!1,function(e){n("5JYG")},"data-v-453cdfc0",null).exports,v=n("mvHQ"),g=n.n(v),w=n("pFYg"),b=n.n(w),_=n("d7EF"),y=n.n(_),k=(n("83Tv"),n("92UP")),x=n("ChiH"),C=n("Rjba"),S=n("Es//"),T=n("M9SS"),I=n("p6Um"),O=n("GKmE"),A=n("7fY6"),j=n("HMTI"),L=n("iPXC"),P=n("VKKs"),E=n.n(P),U=n("ArKR"),M=location.pathname,D=new I.a,W={name:"downloadBarWx",components:{},props:{pathName:{type:String,default:""},placement:{type:String,default:""}},data:function(){return{isShowDownloadApp:!1}},computed:{wakeAppUrl:function(){var e=this.wakeAppParam,t=e.brandId,n=e.productId;return k.a.getAppUrl("showGoodsDetail",{productId:n,brandId:t})},wakeAppParam:function(){var e=(this.pathName||M).match(/product-(\d+)-(\d+).html/),t=y()(e,3);t[0];return{brandId:t[1],productId:t[2]}}},watch:{},methods:{hideWakeupBar:function(){this.isShowDownloadApp=!1},getSwitch:function(){var e=this;return c()(o.a.mark(function t(){return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",d.a.getConfig({type:"switch",code:"405"}));case 1:case"end":return e.stop()}},t,e)}))()},getWakeUpWxLiteSwitch:function(){var e=this;return c()(o.a.mark(function t(){return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",d.a.getConfig({type:"switch",code:"1472"}));case 1:case"end":return e.stop()}},t,e)}))()},canWakeUpWxLite:function(){var e=navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);return Object(O.e)(e[1],"7.0.14")>0},wakeupWxLite:function(e){l.a.seed("button","click","launch_weapp_expose"),A.a.report({action:"launch_weapp_expose"}),D.open({className:"launch-weapp",content:"鎮ㄦ湭瀹夎鍞搧浼欰PP锛屾槸鍚︽墦寮鈥滃敮鍝佷細鐗瑰崠鈥濆皬绋嬪簭",btns:["鍙栨秷",{html:this.renderTem()}],onOpen:function(){var t=document.getElementById("launch-btn");t.addEventListener("launch",function(e){l.a.seed("button","click","launch_weapp_btn_success"),A.a.report({action:"launch_weapp_btn_success"}),D.close()}),t.addEventListener("error",function(t){var n="";n="object"===b()(t.detail)?g()(t.detail):t.detail,A.a.report({action:"launch_weapp_btn_fail",message:n}),l.a.seed("button","click","launch_weapp_btn_fail",{message:n}),e&&e()})},onBtnClick:function(e,t){D.close(),l.a.seed("button","click","launch_weapp_btn_close"),A.a.report({action:"launch_weapp_btn_close"})}})},renderTem:function(){var e=this.wakeAppParam,t=e.brandId,n=e.productId,r=document.createElement("script");return r.type="text/wxtag-template",r.text='
','鎵撳紑\n \n '+r.outerHTML+"\n \n "},toDownloadPage:function(){D.open({content:"鎮ㄦ湭瀹夎鍞搧浼欰PP锛屽嵆灏嗚烦杞嚦涓嬭浇椤",btns:["鍙栨秷","鍏佽"],onBtnClick:function(e,t){1==t&&Object(p.b)(),D.close()}})},isFromAppShare:function(){return"appshare"===L.a.getWapFrom()||j.b},handleWakeup:function(){var e=this,t=this;this.getWakeUpWxLiteSwitch().then(function(n){1===n&&e.canWakeUpWxLite()&&e.isFromAppShare()?e.wakeupWxLite(function(){t.toDownloadPage()}):Object(S.b)(function(){t.toDownloadPage()},!0)})},wakeupApp:function(){l.a.seed("button","click","gd_click_wake_up");var e=this.wakeAppUrl,t=this,n=function(e){switch(e&&e.err_msg){case"launchApplication:ok":l.a.seed("button","click","gd_click_wake_up_success");break;default:l.a.seed("button","click","gd_click_wake_up_fail"),t.toDownloadPage()}};C.a.reConfig(function(){x.a.wakeup({parameter:e,extInfo:"vipshop://"+e,schemeUrl:"vipshop://"+e,onLaunch:n})})},canAutoWakeup:function(){var e=E.a.getLocalStorage("weixin_auto_wakeup_time");return e&&Date.now()-e>36e5?(E.a.setLocalStorage("weixin_auto_wakeup_time",Date.now()),!0):e?(Date.now(),!1):(E.a.setLocalStorage("weixin_auto_wakeup_time",Date.now()),!0)},autoWakeup:function(){1!=E.a.getSessionStorage("wq")&&this.canAutoWakeup()&&this.wakeupApp()},isFromAppShareV2:function(){return 0===(U.a.getQuery("nchl_param")||U.a.getQuery("chl_param")||"").indexOf("share")}},created:function(){},mounted:function(){var e=this;T.a.isGlobalHkHost()?this.isShowDownloadApp=!1:this.getSwitch().then(function(t){(e.isFromAppShareV2()||e.isFromAppShare())&&(e.isShowDownloadApp=Boolean(t))})},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},R={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowDownloadApp,expression:"isShowDownloadApp"}],staticClass:"wakeup-bar-container"},[n("div",{staticClass:"wakeup-bar-wrap"},[n("div",{staticClass:"left"},[n("div",{staticClass:"close-btn-wrap",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.hideWakeupBar(t)}}},[n("i",{staticClass:"icon-close"})]),e._m(0),e._m(1)]),n("div",{staticClass:"wakeup-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[e._v("绔嬪嵆鎵撳紑")])]),n("div",{staticClass:"wakeup-bar-wrap-placeholder"}),"right"===e.placement?n("div",{staticClass:"wakeup-fixed-right-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[e._v("鎵撳紑APP")]):e._e()])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"new-logo-wrap"},[t("i",{staticClass:"icon-new-logo"})])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("鍝佺墝鐗瑰崠锛屽氨鏄秴鍊")]),t("p",[this._v("鍓嶅線鍞搧浼欰PP璐拱")])])}]};var $=n("VU/8")(W,R,!1,function(e){n("Xi3k"),n("TU8s")},"data-v-8cea33a8",null).exports,F=/product-\d+-\d+.html/.test(location.pathname),H=a.a.isWechat()&&F?r.a.component("downloadBar",$):r.a.component("downloadBar",m);t.a=H},WFxe:function(e,t,n){"use strict";t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/api/adver/get",method:"get",params:a()({},e,{mvip:!0})})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/wx/advertisement/get",method:"get",params:a()({},e)})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},WI6B:function(e,t){},WX3G:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("xhcK"),o=n("iPXC"),s=n("1M/o"),c={name:"error-retry",components:{commonHeader:i.a},props:{errorCode:{type:[Number,String],default:""},errorMsg:{type:String,default:"鐜板湪鎶㈣喘鐨勫皬浼欎即澶浜"},showReturnHeader:{type:Boolean,default:!1}},data:function(){return{}},computed:{shortMarscid:function(){var e=o.a.getMarsCid();return!e||e.length<=6?"nomid":e.substr(-6,6)}},watch:{},methods:{goRetry:function(){this.$emit("retry")},goBack:function(){history.back()}},created:function(){s.a.seed("button","created","wap_error_retry",a()({code:this.errorCode,msg:this.errorMsg,mid:this.shortMarscid}))},mounted:function(){}},u={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"error-retry-container"},[e.showReturnHeader?r("common-header",{attrs:{"font-color":"#585c64","background-color":"transparent"}}):e._e(),r("img",{attrs:{src:n("aCUy"),alt:""}}),r("p",{staticClass:"error-text"},[e._v(e._s(e.errorMsg))]),r("div",{staticClass:"button"},[r("button",{attrs:{type:"primary"},on:{click:e.goRetry}},[e._v("閲嶈瘯")])]),r("p",{staticClass:"error-code"},[[e._v("閿欒浠g爜:("+e._s(e.shortMarscid)+"|"+e._s(e.errorCode)+")")]],2)],1)},staticRenderFns:[]};var l=n("VU/8")(c,u,!1,function(e){n("w89H")},"data-v-eae38f38",null);t.a=l.exports},Xi3k:function(e,t){},"Xj+z":function(e,t,n){"use strict";var r={name:"vip-icon",props:{name:String}},a={render:function(){var e=this.$createElement;return(this._self._c||e)("i",{staticClass:"vip-icon",class:"icon-"+this.name},[this._t("default")],2)},staticRenderFns:[]};var i=n("VU/8")(r,a,!1,function(e){n("WI6B")},null,null);t.a=i.exports},Y0WH:function(e,t){},YOyO:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("O4Lo"),o=n.n(i),s=n("rNkk"),c=n("ArKR"),u=n("1M/o"),l=n("hlbY"),p={name:"search-list",props:{list:Array,searchContent:String},computed:{showList:function(){return this.list.length>0}},methods:{onclick:function(e){var t=a()({kw:this.searchContent,sugkw:e});this.$root.$emit("add-history",e),this.$root.$emit("jump-to-search-list",e),u.a.seed("link","click","suggest_result_click",t)}},mounted:function(){}},d={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"search-list"},[e.showList?n("div",{staticClass:"list"},[n("ul",[e._l(e.list,function(t,r){return[n("li",{key:r,staticClass:"list-item"},[n("a",{staticClass:"item-content",on:{click:function(n){return n.stopPropagation(),n.preventDefault(),e.onclick(t.word)}}},[n("div",{staticClass:"item-inner"},[n("p",{staticClass:"item-title"},[e._v("\n "+e._s(t.word)+"\n ")])])])])]})],2)]):e._e()])},staticRenderFns:[]};var h=n("VU/8")(p,d,!1,function(e){n("wdix")},null,null).exports,f=n("5ioc"),m={name:"product-atmosphere",props:{atmosphereList:{default:function(){return[]},type:Array},time:{default:3e3,type:Number}},data:function(){return{curIdx:0,num:3,scrollList:[],isShowAtmosphere:!0}},computed:{},watch:{scrollList:function(){var e=this;this.$nextTick(function(){setInterval(function(){e.curIdx==e.scrollList.length+1?e.curIdx=e.num-1:e.curIdx++},3e3)})},atmosphereList:function(e){var t=e.slice(0);if(0==e.length){var n=e[0];e.push(n,n)}t.push(e[0],e[1],e[3]),this.scrollList=t}},beforeCreate:function(){},created:function(){},mounted:function(){},methods:{closeHandle:function(){this.isShowAtmosphere=!1}}},v={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.scrollList&&e.scrollList.length>0&&e.isShowAtmosphere?n("div",{staticClass:"atmosphere-box"},[n("ul",{staticClass:"scorll-list"},e._l(e.scrollList,function(t,r){return n("li",{key:r,ref:"atmosphere",refInFor:!0,class:{step1:e.curIdx==r||0==r&&e.curIdx==e.scrollList.length||1==r&&e.curIdx==e.scrollList.length+1,step2:e.curIdx-1==r||0==r&&e.curIdx==e.scrollList.length+1,step3:e.curIdx-2==r}},[n("img",{attrs:{src:(t.avatars||[])[0]||"",alt:""}}),n("span",[e._v(e._s(t.view))])])}),0)]):e._e()},staticRenderFns:[]};var g={name:"v-search",components:{bubble:n("VU/8")(m,v,!1,function(e){n("Ma0c")},"data-v-1c46ae7d",null).exports},data:function(){return{showPlaceholder:!0,index:0,showIconDelete:!1}},props:{value:String,autofocus:Boolean,open:Boolean,entryWordsList:{type:Array,default:function(){return[]}},searchText:{default:"鎼滅储"},showLeftButton:Boolean,showRightButton:Boolean,isPlaceholderCenter:Boolean},computed:{showSearchList:function(){return""!==this.value},curEntryWord:function(){return this.entryWordsList[this.index]||{}},placeholder:function(){var e;return(e=this.curEntryWord.showWord)?e||"鎼滅储":this.channelName?"鎼滅储"+this.channelName+"鏈夊叧鐨勫搧鐗屽拰鍒嗙被":"鎼滅储鍝佺墝鎴栧晢鍝"}},watch:{value:function(){this.togglePlaceholder()},entryWordsList:function(){this.interval&&clearInterval(this.interval),this.getCurEntryWord()},open:function(e){e?this.clearEntryInterval():(this.clearEntryInterval(),this.getCurEntryWord())}},methods:{clearEntryInterval:function(){clearInterval(this.interval)},getCurEntryWord:function(){var e=this;this.open||(this.interval=setInterval(function(){e.index++,e.index>=e.entryWordsList.length&&(e.index=0)},3e3))},fixElementsOffsetAfterKeyboardHideDelay:function(){setTimeout(function(){Object(f.a)()},200)},togglePlaceholder:function(){""===this.value?this.showPlaceholder=!0:this.showPlaceholder=!1},onblur:function(){var e=this;this.togglePlaceholder(),this.fixElementsOffsetAfterKeyboardHideDelay(),setTimeout(function(){e.showIconDelete=!1},100)},onclick:function(){this.togglePlaceholder()},onfocus:function(){this.showIconDelete=!!this.value,this.$root.$emit("focus"),this.togglePlaceholder(),this.fixElementsOffsetAfterKeyboardHideDelay()},oninput:function(e){var t=e.target.value;this.showIconDelete=!!t,this.$root.$emit("input",t),this.$emit("update:value",t),this.togglePlaceholder()},focus:function(){this.$refs.input.focus()},keypressSearch:function(e){e&&13===e.keyCode&&this.search()},search:function(){this.$root.$emit("on-search",this.value)},back:function(){this.$root.$emit("on-back")},blurSearchIpt:function(){this.$refs.input.blur()},clearIpt:function(){this.$emit("update:value",""),this.$refs.input.focus()}},mounted:function(){this.autofocus&&this.$refs.input.focus()}},w={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"v-search"},[n("div",{staticClass:"search-header"},[n("form",{staticClass:"searchbar",class:{"border-b":e.open},attrs:{action:""},on:{submit:function(e){e.preventDefault()}}},[n("a",{directives:[{name:"show",rawName:"v-show",value:e.showLeftButton,expression:"showLeftButton"}],staticClass:"searchbar-back",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.back(t)}}},[n("i",{staticClass:"icon-back"})]),n("div",{class:[e.isPlaceholderCenter?"center":"",e.open?"searchbar-inner":"searchbar-inner-close"],on:{click:e.focus}},[n("input",{ref:"input",staticClass:"searchbar-core",attrs:{type:"search",maxlength:"20",autocomplete:"off"},domProps:{value:e.value},on:{blur:e.onblur,input:e.oninput,click:e.onclick,focus:e.onfocus,keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.keypressSearch(t)}}}),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showPlaceholder,expression:"showPlaceholder"}],staticClass:"placeholder"},[e._v(e._s(e.placeholder))]),n("a",{directives:[{name:"show",rawName:"v-show",value:e.showIconDelete,expression:"showIconDelete"}],staticClass:"icon icon-close-round2",on:{click:e.clearIpt}})]),e.showRightButton?[e.open?n("a",{staticClass:"searchbar-btn",domProps:{textContent:e._s(e.searchText)},on:{click:e.search}}):n("a",{staticClass:"searchbar-btn home",attrs:{href:"index.html"}},[n("i",{staticClass:"icon-home"})])]:e._e()],2)]),n("div",{staticClass:"search-body",on:{touchstart:e.blurSearchIpt}},[e._t("search-list"),e._t("search-expand")],2)])},staticRenderFns:[]};var b=n("VU/8")(g,w,!1,function(e){n("FABM")},null,null).exports,_=n("coau"),y=n("da9H"),k=function(){};k.prototype.open=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯";Object(l.a)({message:e})};new k;var x=function(e,t){var n={content:e,haveresult:t};u.a.seed("link","click","keyword_result",a()(n))},C=function(e){return c.a.getQuery({name:e,url:location.href})},S={name:"search",data:function(){return{value:"",channelId:"",channelName:"",suggestList:[],debounce:200,showHotwords:!1,entryWordsList:[],everReqHotWords:!1,showSuggest:!1,showHistory:!1}},props:{open:Boolean,autofocus:Boolean,showLeftButton:{type:Boolean,default:!0},showRightButton:{type:Boolean,default:!0},isPlaceholderCenter:Boolean,placeholderPrefix:{type:String,default:"澶у姝e湪鎼滅储锛"}},components:{hotSearch:_.a,searchHistory:y.a,searchList:h,vsearch:b},watch:{value:function(){""===this.value?(!this.everReqHotWords&&this.getHotWords(),this.showSuggest=!1):this.showSuggest=!0},open:function(){this.$emit("update:autofocus",!0),this.everReqHotWords||""!==this.value||this.getHotWords(),this.suggestList&&0===this.suggestList.length&&""!==this.value&&this.open&&this.getSuggestInfo()}},methods:{getSearchTip:function(){var e=this,t=function(){};s.a.getSearchTip({gPlatform:"WAP",channelId:"1"}).then(function(t){var n=t.data,r=t.code;n&&1==r&&(e.entryWordsList=n.list)},t).catch(t)},getHotWords:function(){this.showHotwords=!0,this.everReqHotWords=!0},getSuggestInfo:function(){var e=this;if(this.open&&""!==this.value.trim()){var t={keyword:this.value.trim(),channelId:"1"},n=function(){x(e.value,0)};s.a.getSuggestInfo(t).then(function(t){e.showSearchList=!0;var n=t.data,r=t.code;n&&1==r&&0==n.type&&n.promptWords?e.suggestList=n.promptWords:e.suggestList=[],0===e.suggestList.length?x(e.value,0):x(e.value,1)},n).catch(n)}else this.suggestList=[]},jump:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.$refs.vsearch.curEntryWord;if(2!=t.type||!t.typeValue||e){var n="q="+encodeURIComponent(e)+"&channel_id=";location.href="/searchlist.html?"+n}else location.href=t.typeValue},search:function(e){if(!e){var t=this.$refs.vsearch.curEntryWord;e=this.channelName?this.channelName:1==t.type&&t.typeValue?t.typeValue:2==t.type&&t.typeValue?"":t.showWord}e&&this.$root.$emit("add-history",e),this.jump(e)},clearSearch:function(){this.value=""}},mounted:function(){var e=this;this.value=C("q"),this.channelName=C("channel_name").trim(),this.getSearchTip(),!this.everReqHotWords&&""===this.value&&this.open&&this.getHotWords();var t=o()(this.getSuggestInfo,this.debounce);this.$root.$on("jump-to-search-list",this.jump),this.$root.$on("input",t),this.$root.$on("on-search",this.search),this.$root.$on("clear-search",this.clearSearch),this.$root.$on("show-history",function(){e.showHistory=!0}),this.$root.$on("hide-history",function(){e.showHistory=!1}),this.$root.$on("focus",function(){u.a.seed("button","click","search_entrance_click"),e.$emit("update:open",!0)}),this.$root.$on("get-hot-words",this.getHotWords)}},T={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("vsearch",{ref:"vsearch",attrs:{autofocus:e.autofocus,open:e.open,value:e.value,"show-left-button":e.showLeftButton,"show-right-button":e.showRightButton,"entry-words-list":e.entryWordsList,"is-placeholder-center":e.isPlaceholderCenter},on:{"update:value":function(t){e.value=t}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.open&&e.showSuggest,expression:"open && showSuggest"}],staticClass:"search-list-wrapper",attrs:{slot:"search-list",id:"search-list"},slot:"search-list"},[n("search-list",{attrs:{searchContent:e.value,list:e.suggestList}})],1),n("div",{directives:[{name:"show",rawName:"v-show",value:e.open&&!e.showSuggest,expression:"open && !showSuggest"}],attrs:{slot:"search-expand",id:"search-expand"},slot:"search-expand"},[n("search-history",{directives:[{name:"show",rawName:"v-show",value:e.showHistory,expression:"showHistory"}]}),n("hot-search",{directives:[{name:"show",rawName:"v-show",value:e.showHotwords,expression:"showHotwords"}]})],1)])},staticRenderFns:[]},I=n("VU/8")(S,T,!1,null,null,null);t.a=I.exports},Z0rb:function(e,t,n){"use strict";t.a=function(){a.a.report.subscribe(function(e){i.a.reportJsError({error:e})})};var r=n("7w1O"),a=n.n(r),i=(n("7fY6"),n("PV6p"))},Z2RT:function(e,t,n){"use strict";var r=n("GKmE");var a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.scrollBox||window,a=t.offset||0,i=!0===t.checkStickySupport||!1;if("string"!=typeof n||(n=document.getElementById(n))){var o=e.parentNode.offsetTop-a;n.removeEventListener("scroll",n.e);var s,c=function(){return n===window?document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop:n.scrollTop},u=function(){c()>o?(e.style.top=Object(r.r)(a),e.classList.add("fixed")):(e.classList.remove("fixed"),e.style.top=0)};if(i&&((s=window.navigator.userAgent.match(/(iPad|iPhone|iPod)\s+OS\s([\d_.]+)/))&&s[2]&&parseInt(s[2].replace(/_/g,"."),10)>=6||function(){for(var e=["","-webkit-","-ms-","-moz-","-o-"],t="",n=0;n0&&this.bindSticky(),this.initTimes++},mounted:function(){var e=this;this.$nextTick(function(){e.bindSticky()})},beforeDestroy:function(){this.$bus&&this.$bus.off("sticky","after-view-enter",this.bindSticky)},methods:{bindSticky:function(){var e=this;this.disabled?"bottom"===this.type&&this.setStickyFillHeight():(this.$nextTick(function(){a(e.$refs.stickyBox,{scrollBox:e.scrollBox,offset:e.offset,checkStickySupport:void 0===e.checkStickySupport||e.checkStickySupport})}),this.setStickyFillHeight())},setStickyFillHeight:function(){var e=this;setTimeout(function(){e.$nextTick(function(){e.height=e.$refs.stickyBox.clientHeight})},20)}},props:["scrollBox","offset","checkStickySupport","disabled","type"]},o={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"sticky-box-container"},[t("div",{ref:"stickyBox",staticClass:"sticky-box",class:["sticky-box-type__"+(this.type||"top"),"fixed__"+this.type]},[this._t("default")],2),t("div",{staticClass:"sticky-fill",style:{height:this.height+"px"}})])},staticRenderFns:[]};var s=n("VU/8")(i,o,!1,function(e){n("3v/c")},null,null);t.a=s.exports},aCUy:function(e,t,n){e.exports=n.p+"static_v2/img/icon-networkcongestion-empty.df504c3.png"},atzx:function(e,t,n){"use strict";var r=n("y8js");t.a={install:function(e){e.prototype.$pageLoading=r.a}}},coau:function(e,t,n){"use strict";var r=n("1M/o"),a=n("fSFE"),i=n("rNkk"),o={name:"hot-search",data:function(){return{list:[]}},props:{},components:{vipButton:a.a},methods:{onclick:function(e){if(e.url)location.href=e.url;else{var t=e.typeValue||e.word;this.$root.$emit("add-history",t),r.a.seed("button","click","search_recommend_click"),this.$root.$emit("jump-to-search-list",t)}},getHotWords:function(){var e=this,t=function(){};i.a.getHotWords({channelId:1,gPlatform:"WAP"}).then(function(t){var n=t.data,r=t.code;e.list=n&&1==r?n.list:[]},t).catch(t)}},mounted:function(){this.getHotWords()}},s={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"hot-search"},[e._m(0),n("div",{staticClass:"hot-list clearfix"},[e._l(e.list,function(t,r){return[t.word?n("vip-button",{key:r,staticClass:"search-list-button",attrs:{type:t.word&&""===t.url?"info":"danger",size:"flex-small",plain:!(!t.word||!t.url)},nativeOn:{click:function(n){return e.onclick(t)}}},[e._v(e._s(t.word))]):e._e()]})],2)])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"hotbar"},[t("h3",[this._v("鐑棬鎼滅储")])])}]};var c=n("VU/8")(o,s,!1,function(e){n("r9B6")},"data-v-da12f782",null);t.a=c.exports},dQCR:function(e,t,n){"use strict";n("fujM");var r=n("pzeP"),a=n("pD4m"),i=n("1M/o"),o={name:"download-footer",data:function(){return{isShowDownloadApp:!0}},mounted:function(){this.getWapCanal()},methods:{wakeupApp:function(){i.a.seed("div","click","footer_download"),Object(r.a)()},getWapCanal:function(){var e=this;a.a.getConfig({type:"wapCanal"}).then(function(t){t.customSetting&&1===Number(t.customSetting.hideDownloadApp)&&(e.isShowDownloadApp=!1)})}}},s={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowDownloadApp,expression:"isShowDownloadApp"}],staticClass:"u-download-footer",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[e._m(0),n("span",{staticClass:"download-text"},[e._v("鍞搧浼氬鎴风锛岀壒鍗栨姠涓嶅仠")]),n("span",{staticClass:"download-btn"},[e._v("涓嬭浇")])])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"download-logo"},[t("i",{staticClass:"icon-logo"},[this._v("鍞搧浼")])])}]};var c=n("VU/8")(o,s,!1,function(e){n("peqG")},"data-v-5f9185c8",null).exports,u=n("zhOP"),l=n("PEP6"),p=n("wkJ7"),d={name:"common-footer",components:{downloadFooter:c},data:function(){return{isLogin:!1,showFooter:!p.a.isAndroidMiniApp()}},props:{},methods:{login:function(){u.a.go({usePop:!0,needReg:!1,onWinLogin:function(e){e.success&&l.a.reload(!0)}})}},created:function(){this.isLogin=u.a.isLogin()}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.showFooter?n("div",{staticClass:"m-common-footer"},[n("downloadFooter"),n("div",{staticClass:"footer-nav"},[e._m(0),n("p",{staticClass:"f-right"},[e.isLogin?n("a",{attrs:{href:"//m.vip.com/user.html",mars_sead:"footer-users_btn"}},[e._v("涓汉涓績")]):n("span",[n("a",{staticClass:"J-footer-login",attrs:{href:"javascript:;",mars_sead:"footer-mlogin_btn"},on:{click:function(t){return t.preventDefault(),e.login(t)}}},[e._v("鐧诲綍")]),n("a",{staticClass:"J-footer-register",attrs:{href:"javascript:;",mars_sead:"footer-mregister_btn"},on:{click:function(t){return t.preventDefault(),e.login(t)}}},[e._v("娉ㄥ唽")])])])]),n("p",{staticClass:"copyright"},[e._v("Copyright 漏 2008-2019 m.vip.com, All Rights Reserved 绮CP澶08114786鍙")]),e._m(1)],1):e._e()},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("p",{staticClass:"f-left"},[t("a",{attrs:{href:"//m.vip.com/index.html"}},[this._v("鍞搧浼氶椤")]),t("a",{attrs:{href:"//mst.vip.com/s/91d36r"}},[this._v("鍏充簬鎴戜滑")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("p",{staticClass:"psb"},[t("a",{attrs:{target:"_blank",href:"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44010302000068"}},[t("i",{staticClass:"psb-sign"}),t("span",[this._v("绮ゅ叕缃戝畨澶 44010302000068鍙")])])])}]};var f=n("VU/8")(d,h,!1,function(e){n("CQJe")},"data-v-94ea3856",null);t.a=f.exports},da9H:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("fSFE"),o=n("WIDu"),s=n.n(o),c=n("VKKs"),u=n.n(c),l=n("1M/o"),p={name:"search-history",data:function(){return{clearText:"娓呯┖",storeName:"search-history",searchHistory:[]}},components:{vipButton:i.a},watch:{searchHistory:function(){this.searchHistory.length>0?this.$root.$emit("show-history"):this.$root.$emit("hide-history")}},methods:{clearHistory:function(){this.searchHistory=[],u.a.removeLocalStorage(this.storeName)},getHistory:function(){var e=u.a.getLocalStorage(this.storeName);return e?JSON.parse(e):[]},addHistory:function(e){e&&(this.searchHistory.unshift(e),this.searchHistory=s()(this.searchHistory),this.searchHistory.length>8&&this.searchHistory.pop(),u.a.setLocalStorage(this.storeName,a()(this.searchHistory)))},onclick:function(e){this.addHistory(e),l.a.seed("button","click","search_history_click"),this.$root.$emit("jump-to-search-list",e)}},mounted:function(){this.searchHistory=this.getHistory(),this.$root.$on("add-history",this.addHistory)}},d={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"search-history"},[n("div",{staticClass:"historybar"},[n("h3",[e._v("鏈杩戞悳绱")]),n("a",{staticClass:"historybar-clear",domProps:{textContent:e._s(e.clearText)},on:{click:function(t){return t.preventDefault(),e.clearHistory(t)}}})]),n("div",{staticClass:"history-list clearfix border-b"},e._l(e.searchHistory,function(t,r){return n("vip-button",{key:r,staticClass:"history-list-button",attrs:{type:"info",size:"flex-small"},nativeOn:{click:function(n){return e.onclick(t)}}},[e._v(e._s(t))])}),1)])},staticRenderFns:[]};var h=n("VU/8")(p,d,!1,function(e){n("w7uU")},"data-v-8b35437c",null);t.a=h.exports},dj9H:function(e,t){},eP86:function(e,t,n){"use strict";t.d=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/coupon/product_coupon/bind_web",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/user/brand_coupon/bind_web",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/wap/api/gift/list/batch/get",method:"get",params:a()({},e)})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/user/coupon/bind",method:"post",data:a()({},e,{mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},fSFE:function(e,t,n){"use strict";var r=n("/AfA");n.d(t,"a",function(){return r.a})},fujM:function(e,t){},g4kF:function(e,t){},gFLC:function(e,t){},hTTh:function(e,t){},hlbY:function(e,t,n){"use strict";var r=n("/5sW"),a={props:{message:String,position:{type:String,default:"meddile"},iconClass:String},data:function(){return{visiable:!1}},computed:{customClass:function(){switch(this.position){case"top":return"is-postop";case"bottom":return"is-posbottom";default:return"is-posmiddle"}}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"vip-toast-pop"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visiable,expression:"visiable"}],staticClass:"vip-toast",class:e.customClass,style:{padding:""===e.iconClass?"10px":"20px"}},[e.iconClass?n("i",{staticClass:"vip-toast-icon",class:"icon-"+e.iconClass}):e._e(),n("span",{staticClass:"vip-toast-text",style:{"padding-top":""===e.iconClass?"0":"10px"}},[e._v("\n "+e._s(e.message)+"\n ")])])])},staticRenderFns:[]};var o=n("VU/8")(a,i,!1,function(e){n("M5XY")},null,null).exports,s=r.a.extend(o),c=[];function u(e){e.target.parentNode&&e.target.parentNode.removeChild(e.target)}s.prototype.close=function(){var e;this.visiable=!1,this.$el.addEventListener("transitionend",u),this.closed=!0,e&&c.push(e)};t.a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.message,n=e.iconClass,a=e.position,i=e.duration;i=i||3e3;var o=function(){if(c.length>0){var e=c[0];return c.shift(),e}return new s({el:document.createElement("div")})}();return o.itmer&&clearTimeout(o.timer),o.message=t||"",o.position=a||"",o.iconClass=n||"",document.body.appendChild(o.$el),r.a.nextTick(function(){o.visiable=!0,i&&(o.timer=setTimeout(function(){o.$el.removeEventListener("transitionend",u),o.closed||o.close()},i))}),o}},iPXC:function(e,t,n){"use strict";var r=n("oyG6"),a=n("3USl").a.cookiesDomain;t.a={getAll:function(){return r.a.get()||{}},setTempUserToken:function(e){if(!a.indexOf("vipglobal.hk")){var t=new Date;t.setSeconds(t.getSeconds()+28800),r.a.set("TEMP_VIP_TANK",e,{domain:a,expires:t})}},getTempUserToken:function(){if(!a.indexOf("vipglobal.hk"))return r.a.get("TEMP_VIP_TANK")},delTempUserToken:function(){r.a.remove("TEMP_VIP_TANK",{domain:a})},getWapConsumer:function(){return r.a.get("wap_consumer")},setWapConsumer:function(e){r.a.set("wap_consumer",e,{domain:a})},delWapConsumer:function(){r.a.remove("wap_consumer",{domain:a})},getWapFrom:function(){return r.a.get("WAP[from]")},setWapFrom:function(e,t){var n=365;t&&t>0&&(n=new Date).setSeconds(n.getSeconds()+t),r.a.set("WAP[from]",e,{expires:n,domain:a})},delWapFrom:function(){r.a.remove("WAP[from]",{domain:a})},getCps:function(){return r.a.get("cps")},setWakeupMinaCpsABT:function(){r.a.set("cps","adp%3Aufmum94l%3A%3A%3A%3A",{domain:a,expires:1})},changeWarehouse:function(e,t,n,i){r.a.set("warehouse",e,{domain:a}),r.a.set("WAP[p_wh]",e,{domain:a}),r.a.set("fdc_area_id",n,{domain:a,expires:365}),r.a.set("m_vip_province",t,{domain:a}),i&&r.a.set("WAP[address_id]",i,{domain:a,expires:365})},getWapRevision:function(){return r.a.get("WAP[revision]")},setWapRevision:function(){var e=new Date;e.setSeconds(e.getSeconds()+30),r.a.set("WAP[revision]","default",{expires:e})},getMarsCid:function(){return r.a.get("mars_cid")},getWarehouse:function(){return r.a.get("warehouse")},getVipRuid:function(){return r.a.get("m_vipruid")},setUid:function(e){e&&(r.a.set("m_vipruid",e,{domain:a,expires:1095}),r.a.set("m_vipuuid",e,{domain:a}))},getProvinceId:function(){return r.a.get("m_vip_province")}}},j8ZI:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("d7EF"),c=n.n(s),u=n("mvHQ"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("VKKs"),f=n.n(h),m=n("ArKR"),v=n("83Tv"),g=n("p6Um"),w=n("GJWF"),b=n("zhOP"),_=n("vNF5"),y=n("1M/o"),k=n("GKmE"),x=n("T4j3"),C=n("eP86"),S=n("M8tU"),T=!1,I=!0,O=new g.a;function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Object(v.a)({message:e,duration:3e3})}var j={getCaptchaInfo:function(e){var t=this;return d()(a.a.mark(function n(){var r,i,s,u,p,d,h,f,m,v,g,w,b,_,y,C,T,I;return a.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return r={scene:"ACTIVITY_BIND_COUPON_APP",scene_data:l()({coupon_id:e}),data:l()(Object(k.k)())},i=!1,s="",n.next=5,Object(k.x)(Object(S.h)(r));case 5:if(u=n.sent,p=c()(u,2),d=p[0],h=p[1],d||!h||!h.data||1!==h.code){n.next=23;break}if(f=h.data||{},m=f.captchaType,f.sid,v=f.templateId,g=f.captchaId,w=f.sceneInfo,b=void 0===w?{}:w,t.captchaInfo=h.data||{},"0"!==m){n.next=14;break}return n.abrupt("return",!0);case 14:return _={captchaId:g,captchaType:m,templateId:v,data:o()({},Object(k.k)(),{contact_phone:b.phone||""})},n.next=17,Object(k.x)(x.a.pop({vscConfig:_}));case 17:y=n.sent,C=c()(y,2),T=C[0],I=C[1],!T&&I&&I.data&&(t.captchaInfo.ticket=I.data.ticket,i=!0),s=I;case 23:return i||"onClose"===s||"onFailed"===s||A("缃戠粶寮傚父锛岃绋嶅悗鍐嶈瘯"),n.abrupt("return",i);case 25:case"end":return n.stop()}},n,t)}))()},getCoupon:function(e){var t=this;return d()(a.a.mark(function n(){var r,i,o,s,c,u;return a.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t,!T){n.next=3;break}return n.abrupt("return");case 3:return n.next=5,t.getCaptchaInfo(e.coupon_info);case 5:if(n.sent){n.next=8;break}return n.abrupt("return");case 8:return w.a.show(),T=!0,i=t.captchaInfo||{},o=i.sid,s=i.captchaId,c=i.ticket,n.next=14,Object(C.c)({c_bind_info:e.coupon_info,sid:o,captcha_id:s||"",ticket:c||"",data:l()(Object(k.k)())}).catch(function(e){r.showCouponError(e)});case 14:u=n.sent,T=!1,u&&r.onCouponSuccess(u,e);case 17:case"end":return n.stop()}},n,t)}))()},onCouponSuccess:function(e,t){w.a.hide();if(e&&e.code){var n=e.msg,r=[t.mid_button||"鐭ラ亾浜"];switch(Number(e.code)){case 1:this.showTips(n,r,t),t.$parent&&Object(_.a)(t.$parent,"got-coupon");break;case 111:case 11003:this.goToLogin(t);break;case 100:this.showTips(n,r,t);break;case 10001:case 13330:this.showTips(n,r,t);break;case 13331:t.target_param&&t.left_button&&t.right_button&&(r=[t.left_button,t.right_button]),this.showTips(n,r,t);break;case 13332:this.showTips(n,r,t),t.$parent&&Object(_.a)(t.$parent,"no-coupon");break;case 12e3:this.showTips(n,r,t);break;default:A("鐜板湪棰嗗埜浜烘暟澶鍟
鍏堜紤鎭竴浼氬効鍚э紒")}}},showTips:function(e,t,n){O.open({className:"operate-coupon-pop",content:e,onBtnClick:function(e,r){var a=t.length;O.close(),1==a&&y.a.seed("button","click","mid_button",n.mid_button),1==r?(y.a.seed("button","click","right_button",l()({right_button:n.right_button,target_param:n.target_param})),n.target_param&&(location.href=n.target_param)):2==a&&y.a.seed("button","click","left_button",n.left_button)},btns:t,updated:this.imgLoadError})},showCouponError:function(){T=!1,w.a.hide(),A("缃戠粶寮傚父锛屾殏鏈兘棰嗗彇璇ュ埜")},goToLogin:function(e){var t=this;b.a.go({usePop:!0,onWinLogin:function(n){n.success&&t.getCoupon(e)},onBeforeJumpLogin:function(){f.a.setSessionStorage("isGetOperateCouponLogin",1),f.a.setSessionStorage("autoGetCouponData",l()(e))}})},imgLoadError:function(){var e=document.querySelector(".J-get-coupon-image");e&&e.addEventListener("error",function(){I&&(this.src="//mtest.vip.com:3000/base/img/loading-failure.png"),I=!1})},init:function(){if("1"===f.a.getSessionStorage("isGetOperateCouponLogin")&&"1"===m.a.getQuery("islogin")){var e=f.a.getSessionStorage("autoGetCouponData");this.getCoupon(JSON.parse(e))}f.a.removeSessionStorage("isGetOperateCouponLogin"),f.a.removeSessionStorage("autoGetCouponData")}};t.a=j},j8aJ:function(e,t,n){"use strict";var r={props:{bottom:String,right:String},data:function(){return{show:!1}},mounted:function(){window.addEventListener("scroll",this.scrollHandler),window.addEventListener("resize",this.scrollHandler)},beforeDestroy:function(){this.scrollView&&(this.scrollView.removeEventListener("scroll",this.throttledCheck,!1),this.scrollView.removeEventListener("resize",this.scrollHandler,!1))},methods:{backtop:function(){var e=0;e=document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop,function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:500,a=arguments[4];window.requestAnimationFrame||(window.requestAnimationFrame=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)});var i=Math.abs(t-n),o=Math.ceil(i/r*50);!function t(n,r,i){if(n===r)return void("function"==typeof a&&a());var o=n+i>r?r:n+i;n>r&&(o=n-i0}}};var a={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{directives:[{name:"show",rawName:"v-show",value:this.show,expression:"show"}],staticClass:"vip-backtop",style:{bottom:this.bottom,right:this.right},on:{click:this.backtop}},[t("i",{staticClass:"icon-up"})])},staticRenderFns:[]};var i=n("VU/8")(r,a,!1,function(e){n("g4kF")},"data-v-9e47b6c0",null).exports;n.d(t,"a",function(){return i})},jnSk:function(e,t,n){"use strict";t.b=function(e){return new o.a(function(t,n){Object(c.a)(l.GET_SIGNATURE,{jsonpName:"jsonp",jsonpCallback:"jsonp1",params:e},function(e,r){e?n(e):t(r)})})},t.a=function(e){return Object(u.a)({url:l.GENERATE_URL_SCHEME,method:"POST",data:a()({},e)})};var r=n("Dd8w"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("3USl"),c=n("swYn"),u=n("vLgD"),l={GET_SIGNATURE:s.a.wxAPIHost+"/v2/jsSdk/getSignature",ADD_SHARE_LOG:s.a.wxAPIHost+"/v1/shareLog/addShareLog",GENERATE_URL_SCHEME:s.a.wxAPIHost+"/scheme/generateUrlScheme"}},kH1M:function(e,t,n){"use strict";var r=n("j71A"),a=n("oyG6"),i=n("3USl");t.a={init:function(){var e=a.a.get("mars_cid");if(!e&&r.a.creat){e=r.a.creat();a.a.set("mars_cid",e,{expires:730,domain:i.a.cookiesDomain})}}}},lfdE:function(e,t,n){"use strict";t.a=function(){return function(e){var t=document.createElement("a");t.href=window.location.href;var n=t.href.replace(t.origin,"").slice(1),r=h()+"goHome",a=!1;o()(e).forEach(function(t){new RegExp(t).test(n)&&(r=e[t](n),a=!0)}),a||(i=document.querySelector(".menu_nav_current")&&document.querySelector(".menu_nav_current").getAttribute("menu_tag").split("|"),r=i&&"undefined"!=i[0]?h()+"showChannel?channelID="+encodeURIComponent(i[0])+"&channelMenu="+i[1]:"");var i;return r}(m)};var r=n("d7EF"),a=n.n(r),i=n("fZjL"),o=n.n(i),s=n("ArKR"),c=n("uWio"),u=n("wkJ7"),l="//weixin.vip.com/deeplink/",p="vipshop://",d=location.pathname;function h(){return u.a.isUniversalLinkSupport()?l:p}function f(){var e=location.href;return e.indexOf("tra_from=")<0&&(e+=(e.indexOf("?")>=0?"&":"?")+"tra_from="+Object(c.b)()),e}var m={"^(preheating-)?brand-(\\d+).*\\.html":function(e){return h()+"showBrandProducts?brandId="+(d.match(/brand-(\d+)(.*)/),RegExp.$1)},"^(preheating-)?product-":function(e){var t=e.match(/product-(\d+)-(\d+)/),n=a()(t,3),r=(n[0],n[1]),i=n[2],o=s.a.getQuery("mz")||0,c="pricecut"==s.a.getQuery("f"),u=s.a.getQuery("src"),l=s.a.getQuery("size_id"),p="showGoodsDetail?goodsId="+i+"&brandId="+r+"&goodsType="+o,d=!c||"fav"!=u&&"cart"!=u?0:1;if(d){var m=h();switch(!0){case"fav"==u:m+="routeTo?url="+encodeURIComponent("productdetail/main?saletips_mode="+d+"&product_id="+i+"&saletips_channel=message")+"&refer="+encodeURIComponent(f());break;case"cart"==u&&""!=l:m+="routeTo?url="+encodeURIComponent("checkout/cart_page?saletips_mode="+d+"&product_id="+i+"&size_id="+l+"&saletips_channel=message&request_login=true")+"&refer="+encodeURIComponent(f());break;default:m+=p+"&refer="+encodeURIComponent(f())}return m}return h()+p+"&refer="+encodeURIComponent(f())},"^recommend-brand-(\\d+).*\\.html":function(e){return h()+"showBrand?brand_sn="+(e.match(/recommend-brand-(\d+)/),RegExp.$1)},"^(auto-list|autoList)\\.html":function(e){var t=s.a.getQuery("rule_id")||0,n=s.a.getQuery("title")||"鍞搧浼",r=location.href;return r.indexOf("tra_from=")<0&&(r+=(r.indexOf("?")>=0?"&":"?")+"tra_from="+Object(c.b)()),h()+"routeTo?url="+encodeURIComponent("search/auto_product_list?rule_id="+t+"&title="+encodeURIComponent(n))+"&refer="+encodeURIComponent(r)},"(^((?!special)\\w)+.(html|php))(.*)m=special":function(e){var t;return h()+"showWebview?url="+(t="https://"+(s.a.getQuery("h")||"mst.vip.com")+"/uploadfiles/exclusive_subject"+s.a.getQuery("p")+"?"+["wapid="+s.a.getQuery("wapid"),"_src="+s.a.getQuery("_src"),"extra_banner="+s.a.getQuery("extra_banner"),"extra_type="+s.a.getQuery("extra_type"),"page_msg=VIP_NH-all-all","mst_cdi=1","mst_page_type=guide"].join("&"),encodeURIComponent(t))},"^store-index\\.html":function(e){var t=s.a.getQuery("storeId")||0,n=location.href;return n.indexOf("tra_from=")<0&&(n+=(n.indexOf("?")>=0?"&":"?")+"tra_from="+Object(c.b)()),h()+"routeTo?url="+encodeURIComponent("productlist/store?store_id="+t)+"&refer="+encodeURIComponent(n)}}},nRfd:function(e,t){e.exports={isCheckout:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;return!!/^(https?:)?\/\/(m|wx)checkout\.vip\.com/.test(e)},isM:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;return!!/^(https?:)?\/\/m\.vip\.com/.test(e)}}},p6Um:function(e,t,n){"use strict";var r=n("woOf"),a=n.n(r),i=n("fZjL"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("/5sW"),d=function(){},h={data:function(){return{}},props:{content:String,dialogId:{type:String,default:""},onBtnClick:Function,onContentClick:Function,title:{type:String,default:""},className:{type:String,default:""},btns:{type:Array,default:function(){return[]}},updated:{type:Function,defalut:d},btnClickHandle:{type:Function,defalut:d},ContentClickHandle:{type:Function,default:function(){}},showDialog:Boolean,freeze:Boolean},methods:{close:function(e){if(!this.freeze){var t=e.currentTarget;t.parentNode&&t.parentNode.parentNode&&t.parentNode.parentNode.removeChild(t.parentNode)}}},updated:function(){this.$nextTick(function(){this.updated&&this.updated()})}},f={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"fade"}},[e.showDialog?n("div",{staticClass:"dialog-wrapper"},[n("div",{staticClass:"dialog",class:e.className,attrs:{id:e.dialogId}},[n("h3",{directives:[{name:"show",rawName:"v-show",value:e.title,expression:"title"}],staticClass:"dialog-title"},[e._v("\n "+e._s(e.title)+"\n ")]),n("section",{staticClass:"dialog-body",domProps:{innerHTML:e._s(e.content)},on:{click:function(t){return e.ContentClickHandle(t)}}}),n("section",{directives:[{name:"show",rawName:"v-show",value:e.btns,expression:"btns"}],staticClass:"dialog-foot border-t"},e._l(e.btns,function(t,r){return n("button",{key:r,attrs:{"data-index":r},on:{click:function(t){return t.stopPropagation(),e.btnClickHandle(t,r)}}},[t.html?n("div",{domProps:{innerHTML:e._s(t.html)}}):n("span",[e._v(e._s(t))])])}),0)]),n("div",{staticClass:"mask",attrs:{id:"mask"},on:{click:function(t){return t.stopPropagation(),e.close(t)}}})]):e._e()])},staticRenderFns:[]};var m,v,g=n("VU/8")(h,f,!1,function(e){n("7u9P")},null,null).exports,w=p.a.extend(g),b=(m=function(e){e.preventDefault(),e.stopPropagation()},v=!1,{lock:function(e){v||(v=!0,(e||document).addEventListener("touchmove",m))},unlock:function(e){v=!1,(e||document).removeEventListener("touchmove",m)}}),_=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c()(this,e),this.instance=new w({el:document.createElement("div")}),this.options={showDialog:!1},this._initOptions(t),this._initInstance(t),this._eventHandle()}return l()(e,[{key:"_initInstance",value:function(e){var t=this;o()(e).forEach(function(n){t.instance[n]=e[n]})}},{key:"_initOptions",value:function(e){this.options=a()({},this.options,e)}},{key:"conf",value:function(e){return this._initOptions(e),this._initInstance(e),this}},{key:"open",value:function(e){e&&(this._initOptions(e),this._initInstance(e));var t=this.options;t.lock&&b.lock(),t.btns?this.instance.btns="string"==typeof t.btns?[t.btns]:t.btns:this.instance.freeze=!0,document.body.appendChild(this.instance.$el),this.instance.showDialog=!0,"function"==typeof t.onOpen&&this.instance.$nextTick(function(){setTimeout(function(){t.onOpen()},20)})}},{key:"close",value:function(){this.instance.showDialog=!1}},{key:"_eventHandle",value:function(){var e=this;this.instance.btnClickHandle=function(e,t){var n=e.currentTarget;b.unlock(),"function"==typeof this.onBtnClick&&this.onBtnClick(n,t)},this.instance.ContentClickHandle=function(t){"function"==typeof e.onContentClick&&this.onContentClick(t)}}},{key:"_removeDom",value:function(e){e.parentNode&&e.parentNode.removeChild(e)}}]),e}();t.a=_},pD4m:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("oyG6"),d=n("3USl"),h={get:function(){return p.a.get("WAP[from]")||""},set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";"nature"!=(e=e.replace(/:[\w\W]*$/,"").replace(/[\W]/,""))&&p.a.set("WAP[from]",e,{expires:365,domain:d.a.cookiesDomain})}},f=n("DKKv"),m=n("/nwW");n.d(t,"a",function(){return g});var v=function(){function e(){return c()(this,e),e.instance||(e.instance=this),e.instance}return l()(e,[{key:"getConfig",value:function(t){var n=t.type,r=void 0===n?"":n,a=t.code,i=void 0===a?"":a,s=t.f,c=void 0===s?"":s,u=e.config[r];return u?new o.a(function(e){e("wapCanal"==r||"startup"==r?u:u[i])}):this.queryConfig(r,i,c)}},{key:"queryConfig",value:function(t,n){var r=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return new o.a(function(i,o){if(e.loading[t])e.resolveQueue[t].push({resolve:i,code:n});else switch(e.loading[t]=!0,t){case"switch":r.getSwitchInternal(t).then(function(r){i(r[n]),(e.resolveQueue[t]||[]).map(function(e){e.resolve(r[e.code])})}).catch(function(n){e.loading[t]=!1,i(0),(e.resolveQueue[t]||[]).map(function(e){e.resolve(0)})});break;case"document":r.getDocument(t).then(function(r){i(r[n]||{}),(e.resolveQueue[t]||[]).map(function(e){e.resolve(r[e.code])})}).catch(function(n){e.loading[t]=!1,i({}),(e.resolveQueue[t]||[]).map(function(e){e.resolve({})})});break;case"config":r.getDynamicConfigInternal(t).then(function(r){i(r[n]||{}),(e.resolveQueue[t]||[]).map(function(e){e.resolve(r[e.code])})}).catch(function(n){e.loading[t]=!1,o(n),(e.resolveQueue[t]||[]).map(function(e){e.resolve(null)})});break;case"wapCanal":r.getWapCanal(t,a).then(function(n){i(n),(e.resolveQueue[t]||[]).map(function(e){e.resolve(n)})}).catch(function(n){e.loading[t]=!1,i({}),(e.resolveQueue[t]||[]).map(function(e){e.resolve({})})});break;case"startup":r.getStartup(t).then(function(n){i(n),(e.resolveQueue[t]||[]).map(function(e){e.resolve(n)})}).catch(function(n){e.loading[t]=!1,i({}),(e.resolveQueue[t]||[]).map(function(e){e.resolve({})})})}})}},{key:"getSwitchInternal",value:function(t){var n={tag:p.a.get("wap_consumer")||"A1",switch_id:a()({5:"IS_SHOW_GOODS_RETURN",136:"Brand_delivery",138:"exchange_switch",139:"return_freight",207:"PRODUCT_DETAIL_ISH5SIZETABLE",267:"WAP_wake_up_app_switch",405:"WX_GOODSDETAIL_WAKEUP",596:"mlogin_new_union_switch",601:"detail_deliver",785:"wap_commodity_detail_weipinghua",850:"xcx_cart_pms_refine_switch",852:"quickapp_m_flow_switch",925:"detail_nakedprice_switch",950:"xcx_cart_freight_jump_switch",1017:"switch_apirequest_monitor_sample",1022:"exchangegoods_succss2",1032:"msite_quickapp_app_switch",1038:"m_temp_cart_gray_switch",1184:"cart_mode_b_switch",1125:"venderSkuListOldSwitch",1270:"cart_wap_split_switch",1122:"cart_store_jump_switch",1117:"favorite_store_switch",1142:"wap_restrict_switch",444:"frontend_sample_switch",984:"If_fav_brand_show_number",1126:"favorite_brand_jjcxtab_switch",1099:"pagedetail_vendor_qa_switch",1136:"buy_button_with_price",269:"reco_coupon_cart",1384:"coupon_overlie_switch",1434:"haitaoyumingqiehuan",1472:"evoke_switch",1482:"guojihaitaomaidian",1600:"wap_detailprice_v6",1546:"aftersale_detail_QAlist"}).join(",")},r=this._querySwitch(n,t);return m.a.cacheRequest(r,"cache_operation_switch").then(function(n){var r=(n||{}).data,a=void 0===r?[]:r;return e.config[t]={},a.map(function(n){var r=n.switchId,a=n.status;e.config[t][r]=a}),e.config[t]})}},{key:"_querySwitch",value:function(e,t){return function(){return Object(f.e)(e)}}},{key:"getDocument",value:function(t){var n={wap_consumer:p.a.get("wap_consumer")||"A1",document_code:["aftersale_tip","exchange_tips","return_tips","size_table_url","PRODUCT_DETAIL_VENDORINFO","PRODUCT_DETAIL_ABOUTPRICE","svip98_price_explaination","compensation_for_slow_delivery","app_xuangou_gift_notice"].join(",")},r=this._queryDocument(n,t);return m.a.cacheRequest(r,"cache_operation_document").then(function(n){var r=n.data,a=void 0===r?[]:r;return e.config[t]={},a&&a.map(function(n){var r=n.code;n.content;e.config[t][r]=n}),e.config[t]})}},{key:"_queryDocument",value:function(e,t){return function(){return Object(f.b)(e)}}},{key:"getDynamicConfigInternal",value:function(t){var n={tag:p.a.get("wap_consumer")||"A1",code:["service_intro","quickapp_flow_from_m","M_download_app_text","cart_checkout_top_area_style","coupon_item_style","checkout_selling_points","Iconlist_productdetail","frequency_to_log_in","wap_developers_information","vre_close_book","adv_close_book","adv_close_pop_windows","vre_close_pop_windows"].join(",")},r=this._queryDynamicConfig(n,t);return m.a.cacheRequest(r,"cache_operation_dynamic_config").then(function(n){var r=n.data,a=void 0===r?[]:r;return e.config[t]={},a&&a.map(function(n){var r=n.code,a=n.config;e.config[t][r]=a}),e.config[t]})}},{key:"_queryDynamicConfig",value:function(e,t){return function(){return Object(f.c)(e)}}},{key:"getStartup",value:function(t){return Object(f.d)({}).then(function(n){return e.config[t]=n&&n.data||{},e.config[t]})}},{key:"getWapCanal",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p.a.get("WAP[from]");return n?Object(f.f)({f:n}).then(function(n){var r=n.data,a=void 0===r?{}:r;return e.config[t]=a,e.config[t]}):(e.config[t]={},o.a.resolve({}))}},{key:"getSwitch",value:function(e){var t=h.get();return this.getConfig({type:"switch",code:e,f:t})}},{key:"getDynamicConfig",value:function(e){return this.getConfig({type:"config",code:e})}}]),e}();v.instance=null,v.config={},v.loading={},v.resolveQueue={switch:[],document:[],config:[],wapCanal:[],startup:[]};var g=new v},pSTL:function(e,t,n){"use strict";var r=n("d7EF"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("Xxa5"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("zhOP"),w=n("83Tv"),b=n("GKmE"),_=n("Qims"),y=n("RfAy"),k=function(){function e(){f()(this,e),this.isLoading=!1}return v()(e,[{key:"toggleFav",value:function(){var e=d()(c.a.mark(function e(){var t,n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this,e.abrupt("return",new l.a(function(e){var a=r.type,i=void 0===a?"":a,o=r.isFav,s=void 0!==o&&o;if(n.isFav=s,g.a.isLogin()){if(n.isLoading)return Object(w.a)({message:"鍓嶉潰浜哄北浜烘捣锛岃绋嶅悗閲嶈瘯"}),!1;e(n[i](r))}else g.a.go({onWinLogin:function(n){n.success&&e(t[i](r))}})}));case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"moveToFav",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,i,s,u,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_.a.getCartVer();case 2:return t=e.sent,n=o()({cart_ver:t},l),e.next=6,Object(b.x)(Object(y.g)(n));case 6:if(r=e.sent,i=a()(r,2),s=i[0],u=i[1],s||!u){e.next=14;break}return e.abrupt("return",this._handleFav(u||{}));case 14:return e.abrupt("return",!1);case 15:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"toggleFavBrand",value:function(){var e=d()(c.a.mark(function e(t){var n,r,a,i,o=this,s=t.brandStoreSn,u=void 0===s?"":s;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.isLoading=!0,n=this.isFav?"deleteBrandFav":"addBrandFav",e.next=4,this[n](u).catch(function(){o.isLoading=!1});case 4:return r=e.sent,a=r.code,i=r.msg,e.abrupt("return",this._handleFav({code:a,msg:i}));case 8:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"deleteBrandFav",value:function(e){var t={brand_sn:e,source:2,iapi_ver:"1.1.0",api_source:"shop_wap"};return Object(y.d)(t)}},{key:"addBrandFav",value:function(e){var t={brand_store_sn:e,source:2,brand_fav_type:0};return Object(y.a)(t)}},{key:"toggleFavProduct",value:function(){var e=d()(c.a.mark(function e(t){var n,r,a,i,o=this,s=t.mid,u=void 0===s?"":s,l=t.sizeId,p=void 0===l?"":l,d=t.brandId,h=void 0===d?"":d;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(u){e.next=2;break}return e.abrupt("return",!1);case 2:return this.isLoading=!0,n=this.isFav?"deleteProductFav":"addProductFav",e.next=6,this[n](u,p,h).catch(function(){o.isLoading=!1});case 6:return r=e.sent,a=r.code,i=r.msg,e.abrupt("return",this._handleFav({code:a,msg:i}));case 11:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"addProductFav",value:function(e,t,n){var r={channel:"WAP",mid:e,brandId:n};return t&&(r.sizeId=t),Object(y.b)(r)}},{key:"deleteProductFav",value:function(e){var t={mids:e};return Object(y.e)(t)}},{key:"_handleFav",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.code,n=e.msg;this.isLoading=!1;var r=this.isFav?"宸插彇娑堟敹钘":"宸叉坊鍔犳敹钘",a=this.isFav?"鍙栨秷":"娣诲姞";return 1==t?(Object(w.a)({message:r}),!0):(Object(w.a)({message:n||a+"鏀惰棌澶辫触锛岃绋嶅悗閲嶈瘯"}),!1)}}]),e}();t.a=k},peqG:function(e,t){},pzeP:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("d7EF"),c=n.n(s),u=n("wkJ7"),l=n("vLgD");var p=n("oyG6"),d=n("3USl"),h=n("LM2N"),f=n("ArKR"),m=n("uWio"),v=n("lfdE"),g=n("Es//"),w=n("//Fk"),b=n.n(w),_=n("swYn"),y=n("iPXC"),k=n("j71A"),x={ABT:"//pcapi.vip.com/abtest/index.php"};function C(e){var t={pages:e,mars_cid:y.a.getMarsCid()?y.a.getMarsCid():k.a.creat()};return y.a.getVipRuid()&&(t.userid=y.a.getVipRuid()),new b.a(function(n,r){Object(_.a)(x.ABT,{jsonp:"callback",jsonpCallback:"pcapi_abt_"+Date.now(),params:t},function(t,a){t?r(t):200===a.code&&a.data&&a.data[e]&&a.data[e].page_rs&&a.data[e].page_rs[0]&&a.data[e].page_rs[0].abt?n(a.data[e].page_rs[0].abt):r(a)})})}var S,T=n("GKmE"),I=n("jnSk"),O=null,A=null,j=(S=o()(a.a.mark(function e(t,n){var r,i,o,s;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!O){e.next=6;break}window.location.href=O,A&&clearTimeout(A),A=setTimeout(function(){n&&n()},3e3),e.next=14;break;case 6:return e.next=8,Object(T.x)(Object(I.a)(t));case 8:r=e.sent,i=c()(r,2),o=i[0],s=i[1],o&&n&&n(),!o&&s&&0===s.errcode?(O=s.openlink,window.location.href=s.openlink,A&&clearTimeout(A),A=setTimeout(function(){n&&n()},3e3)):n&&n();case 14:case"end":return e.stop()}},e,this)})),function(e,t){return S.apply(this,arguments)});t.b=M,t.a=function(){!function(){var e=Object(m.a)();var t=Object(v.a)();t.indexOf("?")>-1?t+="&"+e:t+="?"+e;t=function(e){var t=e;!f.a.hasQuery("refer")&&u.a.isUniversalLinkSupport()&&(t+="&refer="+encodeURIComponent(d.a.tabBarDownloadUrl));return t}(t),Object(h.a)({url:t,type:2},function(){},function(){var e;u.a.isAndroid()?(e=U,Object(g.b)(e,!0)):L()})}()};var L=function(){var e=o()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!/product-\d+-\d+.html/.test(location.pathname)){e.next=20;break}return e.next=3,Object(T.x)(C(2158));case 3:if(t=e.sent,n=c()(t,2),r=n[0],i=n[1],r&&M(),r||!i){e.next=18;break}e.t0=i.name,e.next="A"===e.t0?12:"B"===e.t0?15:17;break;case 12:return y.a.setWakeupMinaCpsABT(),M(),e.abrupt("break",18);case 15:return void 0,void 0,void 0,void 0,void 0,void 0,void 0,a=window.location.pathname.match(/product-(\d+)-(\d+).html/),o=c()(a,3),o[0],s=o[1],u=o[2],l=encodeURIComponent("adp:zk7c3a3n::::"),p=encodeURIComponent("vipshop/productDetail/pages/productDetail/productDetail?brandId="+s+"&goodsId="+u),j({hash:"ptx26",path:"/pages/index/index",query:"$route="+p+"&tra_from="+l+"&f=shop_wap",expireTime:Math.round((new Date).getTime()/1e3)+3600},function(){M()}),e.abrupt("break",18);case 17:M();case 18:e.next=21;break;case 20:M();case 21:case"end":return e.stop()}var a,o,s,u,l,p},e,this)}));return function(){return e.apply(this,arguments)}}();function P(){return p.a.get("cps")}function E(){var e,t={appName:"shop_android",appVersion:"6.32.4",cpsCookie:P()};function n(){M()}(e=t,Object(l.a)({url:"https://api.union.vip.com/vsp/appPro/getAppDownloadUrl4Wap",params:e})).then(function(e){1===parseInt(e.code,10)&&e.data&&"string"==typeof e.data.downloadUrl?document.location.href=e.data.downloadUrl:n()},n).catch(n)}function U(){var e;P()?(e=P())&&"::::"===e.substr(-4)?M():E():L()}function M(){document.location.href=d.a.downloadUrl}},qDyg:function(e,t,n){"use strict";var r={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"tab-container"},[this._t("default")],2)},staticRenderFns:[]},a=n("VU/8")({name:"vip-tab-container",props:["value"]},r,!1,null,null,null).exports,i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{directives:[{name:"show",rawName:"v-show",value:this.id==this.$parent.value,expression:"id == $parent.value"}],staticClass:"tab-container-item"},[this._t("default")],2)},staticRenderFns:[]},o=n("VU/8")({name:"vip-tab-container-item",props:["id"]},i,!1,null,null,null).exports,s={mounted:function(){this.value>=0&&(this.currentIndex=this.value),this.updateIndex()},methods:{updateIndex:function(){if(this.$children&&this.$children.length){this.number=this.$children.length;for(var e=this.$children,t=0;t-1&&this.$children[t]&&(this.$children[t].currentSelected=!1),e>-1&&this.$children[e]&&(this.$children[e].currentSelected=!0),this.$emit("input",e),this.$emit("on-index-change",e,t)},index:function(e){this.currentIndex=e},value:function(e){this.index=e}},data:function(){return{index:-1,currentIndex:this.index,number:this.$children.length}}},c={props:{selected:{type:Boolean,default:!1}},mounted:function(){this.$parent.updateIndex()},beforeDestroy:function(){var e=this.$parent;this.$nextTick(function(){e.updateIndex()})},methods:{onItemClick:function(e){var t=this;this.$parent.preventDefault?this.$parent.$emit("on-before-index-change",this.currentIndex):void 0!==this.disabled&&!1!==this.disabled||(this.currentSelected=!0,this.$parent.currentIndex=this.currentIndex,this.$nextTick(function(){t.$emit("on-item-click",t.currentIndex)}))}},watch:{currentSelected:function(e){e&&(this.$parent.index=this.currentIndex)},selected:function(e){this.currentSelected=e}},data:function(){return{currentIndex:-1,currentSelected:this.selected}}},u={name:"tab",mixins:[s],mounted:function(){var e=this;this.$nextTick(function(){setTimeout(function(){e.$emit("on-ready"),e.hasReady=!0,e.scrollToActiveTab()},20)})},props:{border:{type:Boolean,default:!0},lineWidth:{type:Number,default:3},inkbarWidth:{type:String,default:""},activeColor:String,barActiveColor:String,defaultColor:String,disabledColor:String,animate:{type:Boolean,default:!0},preventDefault:Boolean,scrollThreshold:{type:Number,default:4},barPosition:{type:String,default:"bottom",validator:function(e){return-1!==["bottom","top"].indexOf(e)}}},computed:{barLeft:function(){if(this.hasReady){var e=this.$children[this.currentIndex||0].$el;return(this.scrollable?e.offsetLeft+e.offsetWidth/2:this.number)+"px"}},innerInkbarWidth:function(){if(this.hasReady){var e=0;if(this.inkbarWidth)return this.inkbarWidth;var t=this.$children[this.currentIndex||0].$el;return t&&(e=this.scrollable?t.offsetWidth:0),e+"px"}},barStyle:function(){return{left:this.barLeft,display:"block",height:this.lineWidth+"px",transition:this.hasReady?null:"none"}},barClass:function(){return this.animate?{"vui-tab-ink-bar-transition-forward-v2":"forward"===this.direction,"vui-tab-ink-bar-transition-backward-v2":"backward"===this.direction}:{}},scrollable:function(){return this.number>this.scrollThreshold}},watch:{currentIndex:function(e,t){this.hasReady&&(this.direction=e>t?"forward":"backward"),this.$emit("on-index-change",e,t),this.hasReady&&this.scrollToActiveTab()}},data:function(){return{direction:"none",hasReady:!1}},methods:{scrollToActiveTab:function(){var e=this;if(this.scrollable&&this.$children&&this.$children.length){var t=this.$children[this.currentIndex].$el,n=0;window.requestAnimationFrame(function r(){var a=e.$refs.nav;a.scrollLeft+=(t.offsetLeft-(a.offsetWidth-t.offsetWidth)/2-a.scrollLeft)/15,++n<15&&window.requestAnimationFrame(r)})}}}},l={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"vui-tab-wrap",class:"top"===e.barPosition?"vui-tab-bar-top":""},[n("div",{ref:"nav",staticClass:"vui-tab-container",class:{scrollable:e.scrollable}},[n("div",{staticClass:"vui-tab"},[e._t("default"),n("div"),n("div",{staticClass:"vui-tab-ink-bar",class:e.barClass,style:e.barStyle},[n("span",{staticClass:"vui-tab-bar-inner",style:{background:e.barActiveColor||e.activeColor,width:e.innerInkbarWidth}})])],2)])])},staticRenderFns:[]};var p=n("VU/8")(u,l,!1,function(e){n("7j+Z")},null,null).exports,d={name:"tab-item",mixins:[c],props:{activeClass:String,disabled:Boolean,badgeBackground:{type:String,default:"#f74c31"},badgeColor:{type:String,default:"#fff"},badgeLabel:String},computed:{style:function(){return{borderWidth:this.$parent.lineWidth+"px",borderColor:this.$parent.activeColor,color:this.currentSelected?this.$parent.activeColor:this.disabled?this.$parent.disabledColor:this.$parent.defaultColor,border:this.$parent.animate?"none":"auto"}},border:function(){return this.$parent.border}}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"vui-tab-item",class:[e.currentSelected?e.activeClass:"",{"vui-tab-selected":e.currentSelected,"vui-tab-disabled":e.disabled,"tab-item-border":e.border}],style:e.style,on:{click:e.onItemClick}},[e._t("default"),void 0!==e.badgeLabel&&""!==e.badgeLabel?n("span",{staticClass:"vui-tab-item-badge",style:{background:e.badgeBackground,color:e.badgeColor}},[e._v("\n "+e._s(e.badgeLabel))]):e._e()],2)},staticRenderFns:[]},f=n("VU/8")(d,h,!1,null,null,null).exports;n.d(t,!1,function(){return a}),n.d(t,!1,function(){return o}),n.d(t,"a",function(){return p}),n.d(t,"b",function(){return f})},qGxY:function(e,t){},qb3Y:function(e,t,n){"use strict";var r=n("PV6p");t.a={install:function(e){e.config.errorHandler=function(e,t,n){var a=function(e){if(!e||!e.$options||"[object Object]"!==Object.prototype.toString.call(e))return"";if(e.$root===e)return"root instance";var t=e._isVue?e.$options.name||e.$options._componentTag:e.name;return(t?"component <"+t+">":"anonymous component")+(e._isVue&&e.$options.__file?" at "+e.$options.__file:"")}(t);r.a.reportJsError({error:e,vm:a,info:n})}}}},r7MF:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("iPXC"),d=n("ye8Q"),h=n("7fY6"),f=function(){function e(){c()(this,e),this._userType=null,this._isLogin=!1,this._isTempUser=!1,this._checkLoginOk=!1,this._guestRealWapConsumer=null,this._upateCookie=function(e){var t=p.a.getWapConsumer();t&&t==e||p.a.setWapConsumer(e)}}return l()(e,[{key:"initUserType",value:function(){var e=o()(a.a.mark(function e(){var t,n,r;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Object(d.i)();case 3:t=e.sent,n=t.data,(r=void 0===n?{}:n).user_type?(this._userType=r.user_type,this._upateCookie(this._userType)):(this._userType="A1",this._upateCookie(this._userType)),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(0),this._userType="A1",this._upateCookie(this._userType);case 13:return e.abrupt("return",!0);case 14:case"end":return e.stop()}},e,this,[[0,9]])}));return function(){return e.apply(this,arguments)}}()},{key:"checkLogin",value:function(){var e=this;return Object(d.c)().then(function(t){var n=t.data,r=void 0===n?{}:n;e._updateLoginStatus(r)}).catch(function(){e._checkLoginFallback()})}},{key:"refreshLoginStatus",value:function(){var e=o()(a.a.mark(function e(t){var n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=5;break}t.hasOwnProperty("isTempUser")&&(this._isTempUser=t.isTempUser),t.hasOwnProperty("isLogin")&&(this._isLogin=t.isLogin),e.next=11;break;case 5:return e.next=7,Object(d.c)();case 7:n=e.sent,r=n.data,i=void 0===r?{}:r,this._updateLoginStatus(i);case 11:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_checkLoginFallback",value:function(){var e=/^A.+$/.test(this._userType);this._isLogin=!e;var t=p.a.getTempUserToken();!this._isLogin&&t&&(this._isTempUser=!0)}},{key:"_updateLoginStatus",value:function(e){if(e&&e.hasOwnProperty("userId")){if(this._checkLoginOk=!0,this._isTempUser=e.isTempUser,!e.isTempUser&&e.userId>0&&(this._isLogin=!0),!this._isLogin&&!this._isTempUser){var t=p.a.getTempUserToken();this._isTempUser=!!t}}else this._checkLoginFallback()}},{key:"getUserType",value:function(){return this._userType||h.a.report({message:"[usertype_not_init]userType鏈垵濮嬪寲瀹屽墠琚皟鐢"}),this._userType||"A1"}},{key:"isLogin",value:function(){return this._isLogin}},{key:"isTempUser",value:function(){return this._isTempUser}},{key:"getGuestRealWapConsumer",value:function(){var e=o()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isLogin()){e.next=2;break}return e.abrupt("return",null);case 2:if(!this._guestRealWapConsumer){e.next=4;break}return e.abrupt("return",this._guestRealWapConsumer);case 4:if(e.prev=4,!(t=p.a.getVipRuid())||""==t){e.next=15;break}return e.next=9,Object(d.i)({user_id:t});case 9:if(n=e.sent,r=n.data,!(i=void 0===r?{}:r).user_type){e.next=15;break}return this._guestRealWapConsumer=i.user_type,e.abrupt("return",i.user_type);case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(4);case 20:return e.abrupt("return",null);case 21:case"end":return e.stop()}},e,this,[[4,17]])}));return function(){return e.apply(this,arguments)}}()}]),e}();t.a=new f},r9B6:function(e,t){},rNkk:function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("vLgD"),o={getSearchTip:function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap/search/entryword/list/v1",params:a()({},e,{mvip:!0}),method:"get"})},getSuggestInfo:function(e){return Object(i.a)({url:"vips-mobile/rest/shop/search/suggest",params:a()({},e,{mvip:!0}),method:"get"})},getHotWords:function(e){return Object(i.a)({url:"vips-mobile/rest/shop/search/hotwordsByGos",params:a()({},e,{mvip:!0}),method:"get"})},getBrandStoreList:function(e){},getCategoryTree:function(e){},getSearchList:function(e){},getCategoryProps:function(e){}};t.a=o},rb8b:function(e,t){},rz3c:function(e,t){},swYn:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=0;function o(){}t.a=function(e,t,n){"function"==typeof t&&(n=t,t={}),t||(t={});var r,s,c=t.prefix||"jsonp",u=t.jsonpCallback||c+i++,l=t.jsonp||"jsonp",p=null!=t.timeout?t.timeout:1e4,d=encodeURIComponent,h=document.getElementsByTagName("script")[0]||document.head,f=t.params||{},m=[];function v(){r.parentNode&&r.parentNode.removeChild(r),window[u]=o,s&&clearTimeout(s)}return a()(f).forEach(function(e){m.push(e+"="+f[e])}),p&&(s=setTimeout(function(){v(),n&&n(new Error("瓒呮椂"))},p)),window[u]=function(e){v(),n&&n(null,e)},e=(e+=(~e.indexOf("?")?"&":"?")+l+"="+d(u)+"&"+m.join("&")).replace("?&","?"),(r=document.createElement("script")).src=e,h.parentNode.insertBefore(r,h),function(){window[u]&&v()}}},uOIQ:function(e,t){},uWio:function(e,t,n){"use strict";t.a=s,t.b=function(){var e=s().match(/tra_from=(.+?)&/i);return e&&e[1]};var r=n("Dd8w"),a=(n.n(r),n("woOf")),i=(n.n(a),n("oyG6")),o=n("wkJ7");function s(){var e=i.a.get("cps")||"";e=e.replace("adp:","tra:");var t=o.a.isWechat()?"wx":"m",n=o.a.isIOS()?"i":"a",r=i.a.get("mars_cid")||"",a=i.a.get("mar_ref")||"",s=i.a.get("WAP[from]")||"nature",c=s+":"+(e?"1":"0")+":"+(a?a.substr(0,10):"");return["tra_from="+encodeURIComponent(e||t+":"+n+":"+r+":c:"+s+":wxclick:"+a),"from="+encodeURIComponent(t),"device="+encodeURIComponent(n),"cid="+encodeURIComponent(r),"f="+encodeURIComponent(c),"other="+encodeURIComponent("wxclick"),"mref="+encodeURIComponent(a)].join("&")}},uiMC:function(e,t){},vLgD:function(e,t,n){"use strict";var r=n("//Fk"),a=n.n(r),i=n("mvHQ"),o=n.n(i),s=n("Dd8w"),c=n.n(s),u=n("mtWM"),l=n.n(u),p=n("mw3O"),d=n.n(p),h=n("zhOP"),f=n("PV6p"),m=n("GKmE"),v=n("ArKR"),g=n("8hGu"),w=n("kvU2"),b=n.n(w),_=[];g.a.on("reportInterfaceError","oneOfTen",function(e){f.a.reportInterfaceErrorByOneOf10(e)});var y=l.a.create({baseURL:"https://mapi.vip.com",timeout:1e4,transformResponse:[function(e){return e=e.replace(/(":\s*)(\d{15,})(\s*[,\n\}\]])/g,function(e,t,n,r){return t+'"'+n+'"'+r})}],paramsSerializer:function(e){return d.a.stringify(e,{arrayFormat:"brackets"})},withCredentials:!0,xsrfCookieName:"",customTimestamp:{request_time:0,response_time:0}});y.interceptors.request.use(function(e){var t=e.method,n=e.params,r=e.data,a=e.url;e.customTimestamp.request_time=Date.now();var i=a.match(/[http:|https:]?\/\/(.+?)[\/|$]/i),s=i&&i.length>1&&i[1];if(s&&"mst.vip.com"!=s&&"mapi.vip.com"!=s&&"mapi-rp.vip.com"!=s&&"mshop-api.vip.com"!=s&&"wx-push.vip.com"!=s&&"www.vipglobal.hk"!=s)return e;(n||r||{}).mvip&&(e.baseURL="https://mapi-rp.vip.com",delete(n||r||{}).mvip);var u=Object(m.j)();switch(t=t.toLocaleUpperCase()){case"GET":e.params=c()({},u,n,{_:Math.floor(Date.now()/1e3)});break;case"POST":e["Content-Type"]?e.data=c()({},u,r):(e.headers["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",e.data=d.a.stringify(c()({},u,r),{arrayFormat:"brackets"}))}if(e.isEncrypt&&window.vipParamsEncrypt){var l="GET"===t?e.params:e.data,p={mina_eversion:0,skey:"9cf2380318f54f31acfb1d6e274f5555",mina_edata:window.vipParamsEncrypt.encrypt("9cf2380318f54f31acfb1d6e274f5555",l),api_key:"8cec5243ade04ed3a02c5972bcda0d3f",timestamp:Date.now()};"GET"===t?e.params=p:Object(m.q)(e.data)?e.data=d.a.stringify(p):e.data=p}if(e.Authorization){var h,f=null;f="POST"===t?Object(m.q)(e.data)?d.a.parse(e.data):e.data:e.params,(h=Object(m.l)("/"+e.url,f))&&(e.headers.Authorization=h,e.backupUrl&&!e.headers.Authorization&&(e.url=e.backupUrl,e.baseURL="https://mapi-rp.vip.com"))}if(location.host.indexOf("vipglobal.hk")>-1&&(!e.retry_times||0==e.retry_times)){var g={};/http(s)?:\/\//.test(e.url)&&(g=v.a.parseURL(e.url));var w=(g.host||e.baseURL).replace(/http(s)?:\/\//,"");e.data&&"string"==typeof e.data?(e.data=d.a.parse(e.data),e.data.api_key="adf779847ac641dd9590ccc5674e25d2",e.data=d.a.stringify({path:(g.path||e.url).replace(/^\/?(.*)/,"/$1"),param:o()(e.data),method:e.method,host:w,auth:e.headers.Authorization?1:0},{arrayFormat:"brackets"})):((e.params||e.data).api_key="adf779847ac641dd9590ccc5674e25d2",e.params=e.data={path:(g.path||e.url).replace(/^\/?(.*)/,"/$1"),param:o()(e.params),method:e.method,host:w,auth:e.headers.Authorization?1:0}),e.baseURL="https://www.vipglobal.hk/gw/api",e.url=""}return e},function(e){a.a.reject(e)}),y.interceptors.response.use(function(e){var t={};e.config.customTimestamp.response_time=Date.now();try{t=JSON.parse(e.data)}catch(n){t={code:"-1",data:e.data,msg:e.msg||"鎺ュ彛璇锋眰閿欒锛宺equest.js鐨刾arse瑙f瀽澶辫触"}}e.config.url.indexOf("api/adver/get")>-1&&(t={code:1,advArr:t,msg:"success"});var n=t,r=n.code,a=n.result;if(location.host.indexOf("vipglobal.hk")>-1&&e.config&&e.config.params)try{e.config.params=JSON.parse(e.config.params.param)}catch(e){}if(!(e.config&&e.config.params&&e.config.params.needLogin||e.config.needLogin)||11003!=r&&11002!=r&&11001!=r&&11e3!=r&&14201!=r){if(1==a&&e.config.url.indexOf("vip.monitor.logger")>-1)return t;1!=r&&11003!=r&&11002!=r&&11001!=r&&11e3!=r&&14201!=r&&19e3!=r?f.a.reportInterfaceError({res:t,responseUrl:e.request.responseURL,apiName:e.config.url,timestamp:e.config.customTimestamp,status:e.status}):(_.push({res:t,responseUrl:e.request.responseURL,apiName:e.config.url,timestamp:e.config.customTimestamp,status:e.status}),_.length>0&&_.length%10==0&&(g.a.emit("reportInterfaceError","oneOfTen",b()(_)),_=[]))}else h.a.go();return t},function(e){var t=e.config||{};if(e&&e.response){switch(e.response.status){case 400:e.message="璇锋眰閿欒";break;case 401:e.message="鏈巿鏉冿紝璇风櫥褰";break;case 403:e.message="鎷掔粷璁块棶";break;case 404:e.message="璇锋眰鍦板潃鍑洪敊: "+e.response.config.url;break;case 408:e.message="璇锋眰瓒呮椂";break;case 500:e.message="鏈嶅姟鍣ㄥ唴閮ㄩ敊璇";break;case 501:e.message="鏈嶅姟鏈疄鐜";break;case 502:e.message="缃戝叧閿欒";break;case 503:e.message="鏈嶅姟涓嶅彲鐢";break;case 504:e.message="缃戝叧瓒呮椂";break;case 505:e.message="HTTP鐗堟湰涓嶅彈鏀寔"}f.a.reportInterfaceError({res:{code:e.response.status,msg:e.message},responseUrl:e.request.responseURL||t.url,apiName:t.url,timestamp:t.customTimestamp,status:e.response.status,retry_times:t.retry_times||0})}else f.a.reportInterfaceError({res:{code:"-1",msg:e.message},responseUrl:e.request.responseURL||t.url,apiName:t.url,timestamp:t.customTimestamp,status:600,retry_times:t.retry_times||0});return t.retry_times=t.retry_times||0,t.retry_times-1}function w(e,t){if(e){for(var n=e.className,r=(t||"").split(" "),a=0,i=r.length;a=9},isUniversalLinkSupport:function(){return this.isIOS()&&(!this.isMQQ()||!this.isQQ())&&this.isOverIOS9()},isSamsungBrowser:i(/SamsungBrowser/i),isWxLite:r.a.utils.liteAppType.isWx&&r.a.utils.platform.isWXLite,isApp:function(){return r.a.utils.platform.isApp},isBocapp:i(/bocapp/i),isAndroidMiniApp:function(){var e=r.a.utils.getAppVersion();return e&&/^0\.(\w+)\.(\w+)/.test(e)},isWxkApp:function(){return r.a.utils.platform.isWXKe||r.a.utils.platform.isApp&&i(/VipUnion/i)&&["weixiangke_iphone","weixiangke_android"].includes(a.a.getQuery("app_name"))}}},"xU/8":function(e,t,n){"use strict";var r=n("//Fk"),a=n.n(r),i=n("Zrlr"),o=n.n(i),s=n("wxAW"),c=n.n(s),u=n("/5sW"),l=n("92UP"),p=n("woOf"),d=n.n(p),h=n("mvHQ"),f=n.n(h),m=n("1M/o"),v=n("Lg6z"),g=n("VKKs"),w=n.n(g),b=0;function _(e){var t=e,n=t.value.brandId;t.business.type.indexOf("mst")>-1&&t.business.special_id&&(n=t.business.special_id);var r=t.statPath.replace(":","_"),a=t.business.type+"_"+n+"_"+r;Object(v.c)({value:a}),w.a.setLocalStorage("cartAttribution",f()({s:1,oi:a,chi:b,ot:3}))}function y(e){var t=e;if(t.business.type)switch(t.business.type){case"brand_main":!function(e){var t=e,n=t.business.special_id,r=n?"special":"brand",a=d()({},t.value);"brand"===r?a.brand_rank=t.statPath:a.special_id=n,m.a.seed("link","click",{brand:"index_click_brand",special:"index_click_special"}[r],f()(a))}(t),_(t);break;case"mst_main":_(t);break;case"pcmp":!function(e){var t=e.statPath.split(":"),n={marRef:"oper_pcmp_"+e.value.obj_id+t[0]+"_"+t[1],absolutePosition:t[0],unid:e.value.obj_id};Object(v.c)({value:n.marRef}),w.a.setLocalStorage("cartAttribution",f()({s:1,oi:n.absolutePosition,opz_unid:n.unid,chi:b,ot:2}))}(t),function(e){var t=e,n=d()({},t.value);m.a.seed("button","click","last_sale_title_click_m",f()(n))}(t)}}var k=n("5jd4");u.a.component(k.a.name,k.a);var x={name:"operate-countdown",data:function(){return{maxTime:8553686399,style:"",showCountdown:!0,unitFormat:{day:!0,hour:!0,min:!0,sec:!0,msec:!1},timeStamp:{day:":",hour:":",min:":",sec:""},doubleBlock:!0,interval:1e3,remainingTime:0}},mounted:function(){this.remainingTime=this.calculateTime(this.timer.endTime),this.showCountdown=!!this.remainingTime},methods:{calculateTime:function(e){var t=1e3*parseInt(e-Date.now()/1e3,10);return t>0?t:0},_getPositionClass:function(e,t){return"center"==(t=t.toLowerCase())&&(t="vertical-center")," countdown-"+e.toLowerCase()+" countdown-"+t},getStyleClass:function(){this.style=this.timer.style;var e="",t=this.wapsize,n=this.timer.style;if(!t||t<40)e="";else if(t<65)e="countdown-normal";else switch(n){case"NORMAL":e="countdown-normal";break;case"WHITE":case"WHITE_HOUR":e="countdown-custom countdown-white";break;case"BLACK":case"BLACK_HOUR":e="countdown-custom countdown-black";break;default:e="countdown-default"}return e.indexOf("countdown-normal")>-1&&(e+=this._getPositionClass(this.timer.col,this.timer.row)),e},countdownEndHandle:function(){this.showCountdown="VISIBLE"==this.timer.eventAfter}},watch:{style:function(e){"WHITE"==e||"BLACK"==e?(this.unitFormat.msec=!0,this.timeStamp={day:"澶",hour:"鏃",min:"鍒",sec:"绉"},this.milliSec=!0,this.interval=100,this.doubleBlock=!0):"NORMAL"!=e?(this.unitFormat.msec=!0,this.unitFormat.day=!1,this.timeStamp={hour:"鏃",min:"鍒",sec:"绉"},this.milliSec=!0,this.interval=100,this.doubleBlock=!0):(this.unitFormat.day=!1,this.doubleBlock=!1)}},components:{countdown:k.a},props:{timer:{type:Object,default:function(){return{}}},wapsize:{type:Number,default:100}}},C={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.showCountdown?n("div",{class:e.getStyleClass()},[n("countdown",{staticClass:"countdown-inner",attrs:{time:e.remainingTime,interval:e.interval,tag:"div"},on:{end:e.countdownEndHandle},scopedSlots:e._u([{key:"default",fn:function(t){return[e.unitFormat.day&&t.days?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.days/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.days%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.days/10))+e._s(parseInt(t.days%10)))])],e.timeStamp.day?n("span",[e._v(e._s(e.timeStamp.day))]):e._e()]:e._e(),e.unitFormat.hour?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.hours/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.hours%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.hours/10))+e._s(parseInt(t.hours%10)))])],e.timeStamp.hour?n("span",[e._v(e._s(e.timeStamp.hour))]):e._e()]:e._e(),e.unitFormat.min?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.minutes/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.minutes%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.minutes/10))+e._s(parseInt(t.minutes%10)))])],e.timeStamp.min?n("span",[e._v(e._s(e.timeStamp.min))]):e._e()]:e._e(),e.unitFormat.sec?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.seconds/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.seconds%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.seconds/10))+e._s(parseInt(t.seconds%10)))])],e.timeStamp.sec?n("span",[e._v(e._s(e.timeStamp.sec))]):e._e()]:e._e(),e.unitFormat.msec?[n("span",{staticClass:"millisecond"},[e._v(e._s(t.milliseconds))])]:e._e()]}}])})],1):e._e()},staticRenderFns:[]};var S=n("VU/8")(x,C,!1,function(e){n("V/t2")},"data-v-683b666f",null).exports,T=n("j8ZI"),I=n("oyG6"),O={name:"native-operate-comp",data:function(){return{}},mounted:function(){T.a.init()},methods:{getCoupon:function(e,t){var n=t,r=e.currentTarget,a={coupon_info:n.extra_data.coupon_info,left_button:n.extra_data.button.left_button,mid_button:n.extra_data.button.mid_button,right_button:n.extra_data.button.right_button,coupon_image:n.extra_data.coupon_image,target_param:n.extra_data&&n.extra_data.button&&n.extra_data.button.right_button&&n.targetParam,$parent:r.parentNode};T.a.getCoupon(a)},jumpAction:function(e,t){var n=e,r=n.jumper;this.sendOperation(n),m.a.seed("a","click","wap_oper_expose"),Object(v.b)("oper_special_"+(this.sort+1)+"_"+(t+1)),w.a.setLocalStorage("cartAttribution",f()({s:1,adid:n.buryPoint.adsBannerId,oi:this.code,opz_unid:n.opz_unid,chi:this.navCurrent.id,ot:2}));var a,i=l.a.mojumper(r);location.href=i.appUrl||i.wapUrl,i.appUrl&&(a=i.appUrl,I.a.set("hasSuccessWakeUp",1,{expires:1}),setTimeout(function(){I.a.get("hasSuccessWakeUp")&&(location.href=a)},3e3))},sendOperation:function(e){var t={chi:this.navCurrent.id,oi:this.code,adid:e.buryPoint.adsBannerId,opz_unid:e.opz_unid};m.a.seed("link","click","index_click_operation",f()(t))}},props:{item:{type:Object,default:function(){return{}}},code:{type:String,default:""},sort:{type:Number,default:0},absolutePosition:{type:Number,default:0},navCurrent:{type:Object,default:function(){return{}}}},components:{operateCountdown:S}},A={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"operate"},[e.item.block&&e.item.block.length>0?n("div",{staticClass:"operate-inner clearfix"},[e.item.backgroundPic?n("div",{staticClass:"operate-bg"},[n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:e.item.backgroundPic,expression:"item.backgroundPic"}]})]):e._e(),e._l(e.item.block,function(t,r){return n("div",{key:r+"operate-inner",staticClass:"operate-inner-common",style:{width:t.width,height:t.height}},e._l(t.child,function(r,a){return n("div",{key:a+"block-child",staticClass:"operate-inner-common"},[n("a",{staticClass:"operate-inner-item",attrs:{href:"javascript:;",mars_exposure_module:"wap|operates|"+e.navCurrent.name+"|"+e.navCurrent.id+"|浠婃棩涓婄嚎|1|"+r.data.opz_unid+"|special_"+(e.sort+1)+"_"+(a+1)},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.jumpAction(r.data,a)}}},[r.data.extra_data&&r.data.extra_data.coupon_info?n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:r.data.imageUrl,expression:"v.data.imageUrl"}],style:{width:t.width||r.width,height:t.height||r.height},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.getCoupon(t,r.data)}}}):n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:r.data.imageUrl,expression:"v.data.imageUrl"}],style:{width:t.width||r.width,height:t.height||r.height}}),r.timer.endTime?n("operate-countdown",{attrs:{timer:r.timer,wapsize:r.wapsize}}):e._e(),n("div",{staticClass:"coupon-signet"})],1)])}),0)})],2):e._e()])},staticRenderFns:[]};var j=n("VU/8")(O,A,!1,function(e){n("5K0O")},"data-v-4bae17a0",null).exports,L=n("wkJ7"),P=n("ArKR"),E=n("3+cY"),U={name:"native-adv-slider-comp",data:function(){return{loop:!0,bounce:!1}},mounted:function(){},methods:{sendAdvClickMar:function(e){var t={chi:"20170217:1",oi:e.zone_id,adid:e.bannerid,opz_unid:e.ad_unid};m.a.seed("link","click","index_click_banner",f()(t))},addSalesAttribution:function(e){e.value&&!L.a.isWechat()&&I.a.set(e.name||"mar_ref",e.value,{expires:365,domain:"vip.com"})},jumpAction:function(e,t){var n=e,r=n.url;this.sendAdvClickMar(n);encodeURIComponent(""),encodeURIComponent("浠婃棩涓婄嚎");if(this.addSalesAttribution({value:"adv"}),window.localStorage.setItem("cartAttribution",f()({s:1,adid:n.bannerid,oi:n.zone_id,opz_unid:n.ad_unid,ot:1})),L.a.isWechat()){if(!P.a.hasQuery({name:"ad_from",url:r}))return void(document.location=r);var a=P.a.getQuery({name:"ad_from",url:r});I.a.set("WAP[ad_from]",a,{expires:1,path:"/",domain:"vip.com"}),document.location=r||"javascript:;"}else location.href=r||"javascript:;"}},components:{mtSwipe:E.a,mtSwipeItem:E.b},props:{ads:{type:Object,default:function(){return{}}},navCurrent:{type:Object,default:function(){return{}}}}},M={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"adv-slider"},[n("mt-swipe",e._l(e.ads.ad_list,function(t,r){return n("mt-swipe-item",{key:t.ad_unid},[n("a",{staticClass:"adv-item",style:{height:t.sliderHeight},attrs:{href:t.url,mars_exposure_sead:"wap_adv_expose",mars_exposure_module:"wap|adverts|"+e.navCurrent.name+"|"+e.navCurrent.id+"|鍏ㄩ儴|0|"+t.ad_unid},on:{click:function(n){return n.preventDefault(),e.jumpAction(t,r)}}},[n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:t.imgFullPath,expression:"ad.imgFullPath"}]})])])}),1)],1)},staticRenderFns:[]};var D=n("VU/8")(U,M,!1,function(e){n("3jGs")},null,null).exports,W={name:"native-scroll-comp",data:function(){return{sliderCls:""}},mounted:function(){this.init()},methods:{init:function(){var e=null;switch(this.item.template){case"medium":case"medium_lower":e="medium";break;case"three":e="three";break;case"small":e="small";break;case"none":e="brand-wall";break;case"swap":e="swap"}this.sliderCls=e},bindEvent:function(e,t,n,r){var a=e;Object(v.c)({value:"oper_special_"+(this.sort+1)+"_"+(t+1)}),window.localStorage.setItem("cartAttribution",f()({s:1,oi:n,opz_unid:a.opzUnid,chi:this.navCurrent.id,ot:2}));var i=l.a.mojumper(r);location.href=i.appUrl||i.wapUrl}},watch:{item:function(){var e=this;this.$nextTick(function(){e.init()})}},props:{item:{type:Object,default:function(){return{}}},sort:{type:Number,default:0},absolutePosition:{type:Number,default:0},navCurrent:{type:Object,default:function(){return{}}}},components:{}},R={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e.item.contents&&e.item.contents.length>0?["picture"==e.item.sliderType?["swap"!=e.sliderCls?n("div",{staticClass:"operate-slider picture",class:e.sliderCls,attrs:{"data-type":"picture","data-id":e.item.sliderCode}},["medium-lower"!=e.sliderCls&&e.item.sliderTitle?n("h2",[e._v(e._s(e.item.sliderTitle))]):e._e(),n("div",{staticClass:"operate-container"},[n("ul",{ref:"singleSlideGroup",staticClass:"operate-single-ul"},e._l(e.item.contents,function(t,r){return n("li",{key:r,ref:"operateSlideItem",refInFor:!0,class:{more:r==e.item.contents.length-1}},[n("a",{staticClass:"href",attrs:{href:t.targetParam,mars_sead:"index_slideop_"+t.targetMethod+"_"+t.oldTargetParam+"_btn","data-show-mars":"index_slideop_"+t.targetMethod+"_"+t.oldTargetParam+"_show","data-mar-ref-position":"oper_special_"+e.sort+"_"+(r+1),"data-rawurl":t.raw_url,"data-id":"{$v.data.id}","data-unid":"{$v.data.opz_unid}"},on:{click:function(n){return n.stopPropagation(),n.preventDefault(),e.bindEvent(t,r,0,t.jumper)}}},[n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:t.pic,expression:"content.pic"}],attrs:{alt:t.productName}})])])}),0)]),"medium-lower"==e.sliderCls&&e.item.sliderTitle?n("h2",[e._v(e._s(e.item.sliderTitle))]):e._e()]):e._e()]:e._e()]:e._e()],2)},staticRenderFns:[]};var $=n("VU/8")(W,R,!1,function(e){n("6vcI")},"data-v-7c746661",null).exports,F=u.a.extend(D),H=u.a.extend(j),N=u.a.extend($),B=new(function(){function e(t){o()(this,e),this.sort=0,this.absolutePosition=0,this.navCurrent={}}return c()(e,[{key:"setNavCurrent",value:function(e){this.navCurrent=e||{}}},{key:"render",value:function(e,t,n){switch(e){case"vs_ads_scroller":this.advSliderHandler(t,n);break;case"vs_mo_normal_view":this.normalViewHandler(t,n);break;case"vs_mo_scroll_view":this.scrollViewHandler(t,n);break;case"vs_mo_group_view":this.moGroupViewHandler(t,n)}}},{key:"advSliderHandler",value:function(e,t){var n=e;n.ad_list.forEach(function(e){e.url=l.a.mojumper(e.jumper).wapUrl||"javascript:;",e.sliderHeight=(e.height||300)/(e.width||750)+"rem"});var r=new F({el:t});r.ads=n,r.navCurrent=this.navCurrent}},{key:"normalViewHandler",value:function(e,t){var n,r=e;n=r.data.block.length*r.data.block[0].child.length;var a=new H({el:t});a.item=this._normalViewDataProcess(r.data),a.code=r.code,a.navCurrent=this.navCurrent,a.sort=this.sort,a.absolutePosition=this.absolutePosition,this.absolutePosition+=n,this.sort++}},{key:"calculatePlaceholder",value:function(e){return e/100*10+"rem"}},{key:"_normalViewDataProcess",value:function(e){var t=e,n=0;if(t.block&&t.block.length>0)for(;n1&&void 0!==arguments[1])||arguments[1];this._renderLoadMoreDom({noMore:!1,background:!1,btnText:e.btnText||"鐐瑰嚮",loadMoreText:e.loadMoreText,reloadCallback:this.reloadCallbackHandler(e.reloadCallback,t),customLoadMoreClassName:e.customLoadMoreClassName||""})}},{key:"reloadCallbackHandler",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=e,r=this;return n&&(e=function(){t&&(r.loadingDomInstance.btnText="",r.loadingDomInstance.background=!0),n.call(this)}),e}},{key:"noMore",value:function(){this._renderLoadMoreDom({text:"鏃10鏅8锛屾洿澶氱壒鍗栵紝鏁鏈熷緟锛",noMore:!0,background:!1})}},{key:"hasMore",value:function(){this.loadingDomInstance.noMore=!0,this.loadingDomInstance.background=!0,this.loadingDomInstance.text="100% 姝e搧淇濊瘉"}},{key:"_onNativeCompRender",value:function(e,t,n){B.render(e,t,n),"vs_load_more"==e&&(this.loadingDomInstance=new Y({el:n}))}},{key:"_renderLoadMoreDom",value:function(e){var t=e.noMore,n=e.text,r=e.background,a=void 0===r||r,i=e.loadMoreText,o=e.btnText,s=void 0===o?"鐐瑰嚮":o,c=e.customLoadMoreClassName,u=e.reloadCallback,l=void 0===u?function(){}:u;this.loadingDomInstance.noMore=t,this.loadingDomInstance.text=n,this.loadingDomInstance.btnText=s,this.loadingDomInstance.background=a,this.loadingDomInstance.loadMoreText=i||"鏌ョ湅鏇村鍚屽搧鐗岀殑鍟嗗搧",this.loadingDomInstance.className=c||"",Y.prototype.reload=l}},{key:"_onHref",value:function(){this.instance&&this.instance.onHref(function(e){var t,n=l.a.go(e.url),r=n.appUrl,a=n.wapUrl;location.href=r||a,r&&(t=a,I.a.set("hasSuccessWakeUp",1,{expires:1}),setTimeout(function(){I.a.get("hasSuccessWakeUp")&&(location.href=t)},3e3))})}},{key:"_onStatClick",value:function(e){this.instance&&this.instance.onStatClick(function(e){y(e)})}},{key:"_onStatExpose",value:function(){this.instance.onStatExpose(function(e){e.forEach(function(e){})})}},{key:"MarsExposure",value:function(e){}},{key:"getVersion",value:function(){return this.instance&&this.instance.getVersion()}},{key:"onLightartImageError",value:function(){setTimeout(function(){var e=document.querySelectorAll(".ltart-lzloading:not(.ltart-lzreport)");e&&e.length>0&&e.forEach(function(e){var t=e.dataset.lzsrc;G.a.adapter(t,function(n){if(!n){var r=(new Date).getTime(),a={request_time:r,response_time:r,status:-1,request_url:t,data_length:0,retry_times:""};V.a.reportResourceError(a)}Object(z.a)(e,"ltart-lzreport")})})},2e3)}}]),e}();te.version="1.4.24";t.a=te},xhcK:function(e,t,n){"use strict";var r=n("pD4m"),a=n("ExBf"),i=n("1M/o"),o=n("wkJ7"),s={name:"common-header",components:{vipIcon:n("Xj+z").a},props:{checkCanal:{type:Boolean,default:!0},borderPosition:{type:String,default:"bottom"},hideHeader:{type:Boolean,default:!1},titleContent:{type:String,default:""},showLeft:{type:Boolean,default:!0},showRight:{type:Boolean,default:!0},backgroundColor:{type:String,default:"#fff"},fontColor:{type:String,default:"#555"},nativeBack:{type:Boolean,default:!1}},watch:{hideHeader:function(e){this.hide=e},hide:function(e){this.$emit("header-change",e)}},methods:{back:function(){this.nativeBack?this.$emit("back"):document.referrer?history.go(-1):location.href="https://m.vip.com/index.html"},backHome:function(){i.a.seed("a","click","nav_home_btn"),location.href="https://m.vip.com/index.html"},isHideTopNav:function(){var e=this;this.hideHeader?this.hide=!0:this.checkCanal&&(a.a.utils.platform.isWXLite||a.a.utils.platform.isQuickApp?this.hide=!0:o.a.isWxkApp()?this.hide=!0:r.a.getConfig({type:"wapCanal"}).then(function(t){var n=t.customSetting||{};e.hide=!!n.hideTopNav}))}},data:function(){return{hide:!1}},mounted:function(){this.isHideTopNav()}},c={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.hide?e._e():n("header",{staticClass:"header-container",class:["border-"+e.borderPosition],style:{backgroundColor:e.backgroundColor,color:e.fontColor}},[n("div",{staticClass:"header-left"},[e._t("left",[n("a",{directives:[{name:"show",rawName:"v-show",value:e.showLeft,expression:"showLeft"}],staticClass:"header-left-button",style:{color:e.fontColor},attrs:{href:"javascript:;"},on:{click:e.back}},[n("vip-icon",{attrs:{name:"back"}})],1)])],2),n("div",{staticClass:"header-title"},[e._t("title",[n("h1",[e._v(e._s(e.titleContent))])])],2),n("div",{staticClass:"header-right"},[e._t("right",[n("a",{directives:[{name:"show",rawName:"v-show",value:e.showRight,expression:"showRight"}],staticClass:"header-right-button",style:{color:e.fontColor},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.backHome(t)}}},[n("vip-icon",{attrs:{name:"home"}})],1)])],2)])},staticRenderFns:[]};var u=n("VU/8")(s,c,!1,function(e){n("2Pub")},"data-v-fbdac0e6",null);t.a=u.exports},y1FO:function(e,t,n){"use strict";var r=n("vNF5"),a=n("GKmE"),i={name:"font-label",components:{},props:{align:{type:String,default:"center"},justify:{type:String,default:"center"},lineClamp:{type:String,default:"0"},text:[String,Number],ellipsis:{type:Boolean,default:!1},fontSize:{type:Number,default:12}},data:function(){return{smallFontSupport:r.m,androidSmallFontTransform:r.b}},computed:{labelClass:function(){return"label-smfont-"+this.align+(this.ellipsis?" ellipsis":"")},scale:function(){return this.getScaleFontPercent(this.fontSize)},scaleObject:function(){return this.getScaleFontPercent(this.fontSize)},styleObject:function(){return{textAlign:this.align,fontSize:Object(a.r)(this.fontSize)}}},watch:{},methods:{getScaleFontPercent:function(e){var t=parseFloat(e,10),n={};return!r.m&&t<12&&!/(px|%)$/i.test(e)&&(n[r.c?r.c+"Transform":"transform"]="scale("+String(t/12).substr(0,5)+")"),n}},created:function(){},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},o={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"font-label-container",class:["justify-"+e.justify],style:e.styleObject},[e.$slots.default?n("span",{staticClass:"font-label-text",class:[e.labelClass,e.androidSmallFontTransform,"line-clamp"+e.lineClamp],style:e.scaleObject},[e._t("default")],2):n("span",{staticClass:"font-label-text",class:[e.labelClass,e.androidSmallFontTransform,"line-clamp"+e.lineClamp],style:e.scaleObject},[e._v(e._s(e.text))])])},staticRenderFns:[]};var s=n("VU/8")(i,o,!1,function(e){n("gFLC")},"data-v-f573761e",null);t.a=s.exports},y8js:function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("/5sW"),c={name:"page-loading",props:{show:{type:Boolean,default:!1}}},u={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{directives:[{name:"show",rawName:"v-show",value:this.show,expression:"show"}],staticClass:"page-loading"},[t("svg",{staticClass:"page-loading page-loading-curve",attrs:{width:"1.5rem",height:"1.5rem",viewBox:"0 0 50 50"}},[t("circle",{attrs:{r:"24",cx:"25",cy:"25",fill:"none",stroke:"#f0f0f0","stroke-width":"2"}}),t("circle",{staticClass:"page-loading-progress",attrs:{r:"24",cx:"25",cy:"25",fill:"none",stroke:"#e4007f","stroke-width":"2"}}),t("text",{staticClass:"page-loading-text",staticStyle:{"font-size":"21px"},attrs:{x:"25",y:"25",dy:".27em",fill:"#dedede"}},[this._v("vip")])])])},staticRenderFns:[]};var l=n("VU/8")(c,u,!1,function(e){n("A11p")},"data-v-e35befe6",null).exports,p=s.a.extend(l),d=function(){function e(){a()(this,e),this.getDom()}return o()(e,[{key:"getDom",value:function(){this.el=document.querySelector(".page-loading")}},{key:"show",value:function(){this.el||(this.appendPageLoadingDom(),this.getDom()),this.el&&(this.el.style.display="block")}},{key:"hide",value:function(){this.el&&(this.el.style.display="none")}},{key:"appendPageLoadingDom",value:function(){this.instance=new p({el:document.createElement("div")}),document.body.appendChild(this.instance.$el)}}]),e}();t.a=new d},ye8Q:function(e,t,n){"use strict";t.i=function(e){return Object(c.a)({url:"vips-mobile/rest/user/userType/get",retries:1,params:o()({},e,{mvip:!0}),method:"get"})},t.q=function(e){return new a.a(function(t,n){Object(s.a)("//weixin-api.vip.com/user/getUserInfo",{params:e},function(e,r){e?n(e):t(r)})})},t.p=function(e){return Object(c.a)({url:"vips-mobile/rest/user/info/get_web",method:"get",params:o()({},e,{mvip:!0})})},t.d=function(e){return Object(c.a)({url:"vips-mobile/rest/user/create_temp_token",method:"get",params:o()({},e,{mvip:!0})})},t.n=function(e){return Object(c.a)({url:"vips-mobile/rest/fav/goods/list/v7",method:"get",retries:1,params:o()({},e,{mvip:!0,needLogin:!0})})},t.m=function(e){return Object(c.a)({url:"vips-mobile/rest/fav/brand/list/v4",method:"get",retries:1,params:o()({},e,{mvip:!0,needLogin:!0})})},t.c=function(){return Object(c.a)({url:"https://mshop-api.vip.com/user/check",method:"get"})},t.o=function(e){return Object(c.a)({url:"vips-mobile/rest/fav/browse/history/list/rank/v1",method:"get",retries:1,params:o()({},e,{needLogin:!0,client:"wap",mvip:!0,count:"60"})})},t.e=function(e){return Object(c.a)({url:"vips-mobile/rest/favourite/browsing/history/delete",method:"get",retries:1,params:o()({},e,{mvip:!0})})},t.h=function(){return Object(c.a)({url:"//mlogin-api.vip.com/ajaxapi-user.html?act=getUserInfo",method:"get"})},t.f=function(e){return Object(c.a)({url:"vips-mobile/rest/user/address/list",method:"get",retries:1,params:o()({},e,{needLogin:!0,mvip:!0})})},t.b=function(e){return Object(c.a)({url:"vips-mobile/rest/order/check_address/v1",method:"get",retries:1,params:o()({},e,{needLogin:!0,mvip:!0})})},t.g=function(e){return Object(c.a)({url:"vips-mobile/rest/activity/coupon/user/list",method:"get",params:o()({},e,{mvip:!0,needLogin:!0})})},t.a=function(e){return Object(c.a)({url:"vips-mobile/router.do",method:"get",params:o()({},e,{service:"user.coupon.combine.activate",mvip:!0})})},t.r=function(e){return Object(c.a)({url:"vips-mobile/rest/user/wap/setswitch/v1",method:"post",needLogin:!0,data:o()({},e,{mvip:!0})})},t.l=function(e){return Object(c.a)({url:"vips-mobile/rest/user/wap/getswitch/v1",method:"post",needLogin:!0,data:o()({},e,{mvip:!0})})},t.j=function(){return Object(c.a)({url:"vips-mobile/rest/point/integral_total/v1",method:"get",needLogin:!0,params:{mvip:!0}})},t.k=function(e){return Object(c.a)({url:"vips-mobile/rest/point/integral_list/v1",method:"post",needLogin:!0,data:o()({},e,{mvip:!0})})};var r=n("//Fk"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("swYn"),c=n("vLgD")},zWU1:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("6+Wl"),d=n("Rjba"),h=n("ArKR"),f=n("oyG6"),m=n("HnKq"),v=function(){function e(){c()(this,e),this.isWechat=!0,this.shareConf={width:"310",title:"鍞搧浼氳秴鍊肩壒鍗",desc:"鍞搧浼氳秴鍊肩儹鍗栵紝鏃╁崄鏅氬叓涓婃柊锛屽浗鍐呭姝e搧鎶樻墸锛屽崈涓囧ぇ鐗屾姠涓嶅仠",link:"",imgUrl:"https://h2.vipstatic.com/ms2-m.vipstatic.com/static/base/img/default-wx-share-3f25d20336.png"}}return l()(e,[{key:"init",value:function(e){var t=this;this.initOpt(e).then(function(){d.a.initSdk(function(){p.a.onMenuShareAppMessage(t.shareConf),p.a.onMenuShareTimeline(t.shareConf),p.a.onMenuShareWeibo(t.shareConf),p.a.onMenuShareQQ(t.shareConf)})})}},{key:"initOpt",value:function(e){var t=this;return new o.a(function(n,r){e&&a()(e).forEach(function(n){t.shareConf[n]=e[n]}),t.getLink(),n()})}},{key:"setLink",value:function(e){this.shareConf.link=e}},{key:"getLink",value:function(){var e=this,t=h.a.setQuery({name:"from",value:"wechat"}),n=null;this.isCps()&&Object(m.c)("//ms.vipstatic.com/union/cps.js").then(function(){if(void 0!==(n=JSON.parse(encodeCpsLink())).cps_link&&""!==n.cps_link){var r=n.cps_link;r=h.a.setQuery({url:r,name:"desturl",value:encodeURIComponent(t)}),e.setLink(r)}}).catch(function(n){e.setLink(t)}),this.setLink(t)}},{key:"isCps",value:function(){var e=f.a.get("cps_share"),t=f.a.get("cps");return e&&decodeURIComponent(t).indexOf("::::")<0}}]),e}();t.a=new v},zhOP:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("Xxa5"),c=n.n(s),u=n("Dd8w"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("3USl"),w=n("wkJ7"),b=n("oyG6"),_=n("HnKq"),y=n("pD4m"),k=n("ye8Q"),x=n("r7MF"),C=n("HMTI"),S=n("VKKs"),T=n.n(S),I=n("ExBf"),O=n("83Tv"),A=n("ArKR"),j=n("PEP6"),L=n("8hGu"),P=new(n("p6Um").a);var E=function(){function e(){f()(this,e),this.isWechat=w.a.isWechat()}return v()(e,[{key:"go",value:function(){var t=d()(c.a.mark(function t(){var n,r,a,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!w.a.isAndroidMiniApp()){t.next=3;break}return this.nativeLogin(),t.abrupt("return");case 3:return n=this,t.next=6,y.a.getConfig({type:"switch",code:596});case 6:if(1!=t.sent){t.next=10;break}return this.goPageMlogin(),t.abrupt("return");case 10:if(r={needReg:!1,isviva:!1,isChangeWeixinBind:!1,onWinLogin:function(e){e.success&&(window.location.href=A.a.setQuery({name:"hack_time",value:Date.now()}))}},i.backUrl&&(i.backUrl=(o=i.backUrl,void 0,void 0,s=location.protocol,c=location.origin,/^http(s)?:/.test(o)?o:/(^\/\/)/.test(o)?s+o:/(^\/)/.test(o)?c+o:c+"/"+o)),(a=i.onWinLogin)&&(i.onWinLogin=function(t){return t.success?(C.c.init(),e.hasLogin=!0,n.emitEvents()):(e.hasLogin=!1,n.emitEvents()),a.call(this,t)}),i=l()({},r,i),!(location.href.indexOf("vipglobal.hk")>-1)){t.next=18;break}return P.open({content:"鎮ㄥ皻鏈櫥褰曪紝璇风櫥褰曞悗鍐嶈瘯",btns:["鍐嶉涢","鍘荤櫥褰"],onBtnClick:function(e,t){P.close(),1===t&&n.vipglobalLogin()}}),t.abrupt("return");case 18:e.hasLoginComponent?this.isWechat?this.getWxUserInfo().then(function(e){var t=e.code,n=e.data,r=void 0===n?{}:n;i=l()({},i,r),0==t&&window.loginDeal.go(i),-33==t&&(window.location.href=r.redirectUrl+"?fs="+r.fs+"&type="+r.type+"&src="+encodeURIComponent(location.href))}).catch(function(){window.loginDeal.go(i)}):window.loginDeal.go(i):this.goPageMlogin();case 19:case"end":return t.stop()}var o,s,c},t,this)}));return function(){return t.apply(this,arguments)}}()},{key:"nativeLogin",value:function(){I.a.user.login(null,function(){},function(e){var t;t="鐧诲綍澶辫触锛岃绋嶅悗閲嶈瘯",Object(O.a)({message:t})})}},{key:"autoLogin",value:function(){var e=d()(c.a.mark(function e(){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.getLoginCondition()){e.next=6;break}return e.next=3,this.loadLoginComponent();case 3:return e.next=5,this.handleAutoLogin();case 5:case 6:return e.abrupt("return",!0);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"isLogin",value:function(){return e.hasLogin}},{key:"getLoginCondition",value:function(){return x.a.isLogin()?(e.hasLogin=!0,!0):(e.hasLogin=!1,!1)}},{key:"vipglobalLogin",value:function(t){var n=encodeURIComponent("https://www.vipglobal.hk/gw/login?platform=wap&targe_url="+encodeURIComponent(t||location.href));location.href=e.globalLoginUrl+n}},{key:"handleAutoLogin",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isWechat||A.a.getQuery("has_reload")){e.next=13;break}if(!(location.href.indexOf("vipglobal.hk")>-1)){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,this.getWxUserInfo().catch(function(e){});case 5:if(t=e.sent,r=(n=t||{}).data,0!==(a=n.code)){e.next=12;break}return e.next=10,this.automaticLoginWx(r);case 10:e.next=13;break;case 12:-33===a&&(i="fs="+r.fs+"&type="+r.type+"&src="+encodeURIComponent(location.href),location.href=r.redirectUrl+"?"+i);case 13:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"automaticLoginWx",value:function(e){var t=this;return new o.a(function(n){try{window.loginDeal.automaticLogin(e,function(e){e.success?A.a.getQuery("back_act")?location.href=A.a.getQuery("back_act"):location.href=A.a.setQuery({name:"has_reload",value:"true"}):location.pathname.indexOf("checkout.html")>-1&&t.go(),n()})}catch(e){n(),window.console&&window.console.error("寰俊闈欓粯鐧婚檰澶辫触锛",e)}})}},{key:"loadLoginComponent",value:function(){return window.loginDeal?o.a.resolve():this.loadLoginJsCss()}},{key:"loadLoginJsCss",value:function(){return o.a.all([Object(_.a)(g.a.mloginHost+"/asserts/css/login.css?v=1.0.0"),Object(_.c)(g.a.mloginHost+"/asserts/js/login-deal.min.js?v=1.0.0")]).then(function(){e.hasLoginComponent=!0}).catch(function(){e.hasLoginComponent=!1})}},{key:"goPageMlogin",value:function(){var e=g.a.mloginHost+"/asserts/login/login.html",t=document.location.href,n=b.a.get("WAP[from]")?b.a.get("WAP[from]"):"";e+="?f="+encodeURIComponent(n),e+="&callback="+encodeURIComponent(t),window.location.href=e+"&hack_time="+(new Date).getTime()}},{key:"getWxUserInfo",value:function(){var e=JSON.parse(window.sessionStorage.getItem("wxUserInfo")||"{}"),t=e.timestamp,n=e.openid,r=e.unionid,i=e.nickname,s=e.headimgurl;return n&&r&&i&&s&&t&&(new Date).valueOf()/1e3-t<32400?o.a.resolve({code:0,data:{openid:n,unionid:r,nickname:i,headimgurl:s}}):(window.sessionStorage.removeItem("wxUserInfo"),Object(k.q)({type:3}).then(function(e){var t=e.code,n=e.data,r=void 0===n?{}:n;if(0==t){var i=(new Date).valueOf()/1e3;r.timestamp=i,window.sessionStorage.setItem("wxUserInfo",a()(r))}return{code:t,data:r}}))}},{key:"getUserInfo",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=JSON.parse(window.sessionStorage.getItem("userInfo")||"{}"),n=32400,r=t.timestamp,!(t.user_id&&r&&(new Date).valueOf()/1e3-r=o)?15:t.t0===("detail"==n&&u.frequency_for_detail>=s)?15:t.t0===("detail"==n)?18:t.t0===("list"==n)?21:24;break;case 13:return T.a.setLocalStorage("frequency_to_log_in",a()({frequency_for_list:1,frequency_for_detail:1})),t.abrupt("break",25);case 15:return this.go({usePop:!0,needReg:!1,onWinLogin:function(e){e.success&&j.a.reload(!0)}}),T.a.setLocalStorage("frequency_to_log_in",a()({frequency_for_list:1,frequency_for_detail:1})),t.abrupt("break",25);case 18:return u.frequency_for_detail++,T.a.setLocalStorage("frequency_to_log_in",a()(u)),t.abrupt("break",25);case 21:return u.frequency_for_list++,T.a.setLocalStorage("frequency_to_log_in",a()(u)),t.abrupt("break",25);case 24:return t.abrupt("break",25);case 25:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}()},{key:"emitEvents",value:function(){L.a.emit("loginModules","chageState",e.hasLogin)}}]),e}();E.hasLoginComponent=null,E.hasLogin=!1,E.globalLoginUrl="https://mlogin.vip.com/asserts/login/login.html?f=vipglobal&callback=",t.a=new E}},["U67u"]); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.fa89f7db7d2f1f3f247918942fe24d5c.css" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.fa89f7db7d2f1f3f247918942fe24d5c.css" new file mode 100644 index 0000000000000000000000000000000000000000..f5b0a711a758de018c200f32d6d22b8a5be2c88a --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.fa89f7db7d2f1f3f247918942fe24d5c.css" @@ -0,0 +1,6 @@ +.vip-toast{-webkit-box-sizing:border-box;box-sizing:border-box;position:fixed;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:#fff;text-align:center;z-index:10000;border-radius:.13333rem;-webkit-transition:opacity .3s linear;transition:opacity .3s linear;background-color:rgba(0,0,0,.8)}.vip-toast-icon{font-size:.85333rem}.vip-toast-text{text-align:left;font-size:.37333rem;font-family:PingFangSC-Regular;line-height:.45333rem}.vip-toast.is-postop{top:1.33333rem}.vip-toast.is-posbottom,.vip-toast.is-postop{left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.vip-toast.is-posbottom{bottom:1.33333rem}.vip-toast.is-posmiddle{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.vip-toast-pop-enter,.vip-toast-pop-leave-active{opacity:0}.header-container[data-v-fbdac0e6]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:1.17333rem;line-height:1.17333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.header-container.border-bottom[data-v-fbdac0e6]{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.header-container .header-left[data-v-fbdac0e6],.header-container .header-right[data-v-fbdac0e6],.header-container .header-title[data-v-fbdac0e6]{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:.58667rem;width:1.57333rem;z-index:2;display:block;height:100%;font-size:.42667rem}.header-container .header-left[data-v-fbdac0e6],.header-container .header-right[data-v-fbdac0e6]{width:1.49333rem;padding:0 .4rem}.header-container .header-title[data-v-fbdac0e6]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;z-index:1;font-size:.48rem}.header-container .header-title h1[data-v-fbdac0e6]{width:100%;height:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;text-align:center;font-weight:400}.header-container .header-right[data-v-fbdac0e6]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.header-container .header-left-button[data-v-fbdac0e6],.header-container .header-right-button[data-v-fbdac0e6]{color:#555}.header-container .header-left-button[data-v-fbdac0e6]:active,.header-container .header-right-button[data-v-fbdac0e6]:active{opacity:.3}.header-container .header-left-button .icon-back[data-v-fbdac0e6],.header-container .header-right-button .icon-back[data-v-fbdac0e6]{font-size:.69333rem}.header-container .header-left-button .icon-home[data-v-fbdac0e6],.header-container .header-right-button .icon-home[data-v-fbdac0e6]{font-size:.53333rem}.header-container .header-left-button[data-v-fbdac0e6]{display:block}.vip-icon{position:relative}@font-face{font-family:icomoon;src:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.cbe0bc0.eot#iefix);src:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/icomoon.827a2ec.svg#icomoon) format("svg"),url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.cbe0bc0.eot#iefix) format("eot"),url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.09b4ab6.ttf) format("truetype"),url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.1cb4643.woff) format("woff")}[class*=" icon-"],[class^=icon-]{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;text-transform:none}.icon-addcollect:before{content:"\E001"}.icon-arrow-down-left:before{content:"\E002"}.icon-arrow-down:before{content:"\E003"}.icon-arrow-left:before{content:"\E004"}.icon-arrow-right:before{content:"\E005"}.icon-arrow-up:before{content:"\E006"}.icon-back:before{content:"\E007"}.icon-bag:before{content:"\E008"}.icon-beautiful:before{content:"\E009"}.icon-big-circle:before{content:"\E00A"}.icon-bookmark:before{content:"\E00B"}.icon-browse-history:before{content:"\E00C"}.icon-cart-rmb:before{content:"\E00D"}.icon-cart:before{content:"\E00E"}.icon-circle-selected:before{content:"\E00F"}.icon-circle:before{content:"\E010"}.icon-clean:before{content:"\E011"}.icon-clock:before{content:"\E012"}.icon-close-round:before{content:"\E013"}.icon-close-round2:before{content:"\E014"}.icon-close:before{content:"\E015"}.icon-cross:before{content:"\E016"}.icon-deliver:before{content:"\E017"}.icon-dress:before{content:"\E018"}.icon-filter-brand:before{content:"\E019"}.icon-filter-checked:before{content:"\E01A"}.icon-filter:before{content:"\E01B"}.icon-function-home:before{content:"\E01C"}.icon-global:before{content:"\E01D"}.icon-gps:before{content:"\E01E"}.icon-heart-ed:before{content:"\E01F"}.icon-heart-empty:before{content:"\E020"}.icon-home:before{content:"\E021"}.icon-icon-screen:before{content:"\E022"}.icon-life:before{content:"\E023"}.icon-list:before{content:"\E024"}.icon-location:before{content:"\E025"}.icon-man:before{content:"\E026"}.icon-maternal:before{content:"\E027"}.icon-member:before{content:"\E028"}.icon-message:before{content:"\E029"}.icon-minus:before{content:"\E02A"}.icon-more:before{content:"\E02B"}.icon-multiple-choice-normal:before{content:"\E02C"}.icon-multiple-choice-selected:before{content:"\E02D"}.icon-new-logo:before{content:"\E02E"}.icon-notification:before{content:"\E02F"}.icon-online-service:before{content:"\E030"}.icon-orders:before{content:"\E031"}.icon-outdoor:before{content:"\E032"}.icon-pay:before{content:"\E033"}.icon-phone:before{content:"\E034"}.icon-plus:before{content:"\E035"}.icon-punctuation:before{content:"\E036"}.icon-quality:before{content:"\E037"}.icon-question-mark:before{content:"\E038"}.icon-refresh:before{content:"\E039"}.icon-right-circle:before{content:"\E03A"}.icon-right:before{content:"\E03B"}.icon-rmb:before{content:"\E03C"}.icon-rmb2:before{content:"\E03D"}.icon-safe:before{content:"\E03E"}.icon-search:before{content:"\E03F"}.icon-service:before{content:"\E040"}.icon-share-link:before{content:"\E041"}.icon-share-pengyou:before{content:"\E042"}.icon-share-qq:before{content:"\E043"}.icon-share-qzone:before{content:"\E044"}.icon-share-sina:before{content:"\E045"}.icon-share-weixin:before{content:"\E046"}.icon-share:before{content:"\E047"}.icon-spot:before{content:"\E048"}.icon-star-checked:before{content:"\E049"}.icon-star-normal:before{content:"\E04A"}.icon-success:before{content:"\E04B"}.icon-time:before{content:"\E04C"}.icon-tuan:before{content:"\E04D"}.icon-up:before{content:"\E04E"}.icon-vip-close:before{content:"\E04F"}.icon-vip-v:before{content:"\E050"}.icon-warning:before{content:"\E051"}.vip-1px,.vip-1px-b,.vip-1px-golden,.vip-1px-haitao,.vip-1px-l,.vip-1px-r,.vip-1px-red,.vip-1px-t{position:relative}.vip-1px:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #e7e7e7;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100}.vip-1px-t:before{top:0;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.vip-1px-b:after,.vip-1px-t:before{content:"";position:absolute;left:0;width:100%;height:1px;background-color:#e7e7e7;z-index:100}.vip-1px-b:after{bottom:0;-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.vip-1px-l:before{left:0;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.vip-1px-l:before,.vip-1px-r:after{content:"";position:absolute;top:0;height:100%;width:1px;background-color:#e7e7e7;z-index:100}.vip-1px-r:after{right:0;-webkit-transform-origin:right top;transform-origin:right top;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.vip-1px-haitao{border-radius:100px}.vip-1px-haitao:after{border-radius:inherit;border:1px solid #6c5eab}.vip-1px-golden:before,.vip-1px-haitao:after{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;left:0;top:0;width:200%;height:198%;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100}.vip-1px-golden:before{border-radius:inherit;border:1px solid #f79200}.vip-1px-red:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #de3d96;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;font-weight:400;vertical-align:middle}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}button,html,input,select,textarea{font-family:PingFangSC-Regula,Helvetica Neue,Helvetica,microsoft yahei,sans-serif}body,html{background-color:#fff}body{-webkit-text-size-adjust:none!important;font-size:12px;margin:0 auto;font-family:PingFangSC-Regula,Helvetica Neue,Helvetica,microsoft yahei,sans-serif}a{color:#555;text-decoration:none}.f-left{float:left}.f-right{float:right}.clearfix{zoom:1;clear:both}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.p-relative{position:relative}.p-absolute{position:absolute}.hide,.none{display:none}.show{display:block}img{vertical-align:middle}img:not([src]),img[src=""]{opacity:0}.vip-red{color:#e80080}a,button,div,em,i,input,li,p,section,span,ul{-webkit-tap-highlight-color:rgba(255,0,0,0)}.container-fluid{max-width:10rem;margin:0 auto}.indicator{line-height:40px;font-size:12px;color:#98989f;text-align:center}.page-footer__btn-wrap,.popup-footer__btn-wrap{background-color:#fff;padding:10px 15px;border-top:1px solid #e7e7e7}.page-footer__btn-wrap{margin-top:20px}.border-t{border-top:1px solid #ccc}.border-b,.border-tb{border-bottom:1px solid #ccc}.border-tb{border-top:1px solid #ccc;background-image:none}.border-l{border-left:1px solid #ccc}.border-r{border-right:1px solid #ccc}.border,.border-radius{border:1px solid #ccc}.border-radius{border-radius:2px}@media screen and (-webkit-min-device-pixel-ratio:2){.border-radius{position:relative;border:0}.border-radius:before{content:"";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid #ccc;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;pointer-events:none}}@media screen and (-webkit-min-device-pixel-ratio:2){.border-b,.border-l,.border-r,.border-t,.border-tb{border:0}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-t{background-position:0 0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-b,.border-t{border:0;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px}.border-b{background-position:0 100%;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-tb{border:0;background-position:top,bottom;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l{background-position:0 0;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(270deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l,.border-r{border:0;background-repeat:repeat-y;-webkit-background-size:1px 100%;background-size:1px 100%}.border-r{background-position:100% 0;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(90deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border{position:relative;border:0}.border:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;-webkit-background-size:100% 1px,1px 100%,100% 1px,1px 100%;background-size:100% 1px,1px 100%,100% 1px,1px 100%;background-repeat:no-repeat;background-position:top,100%,bottom,0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0),linear-gradient(270deg,transparent 50%,#ccc 0),linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(90deg,transparent 50%,#ccc 0)}}.page-loading{width:50px;height:50px;background-color:#fff;border-radius:25px;text-align:center;font-size:0;margin-left:-25px;margin-top:-25px;left:50%;z-index:1550;top:43%;position:fixed;vertical-align:middle}.page-loading:after{content:"";display:inline-block;height:100%;width:0;overflow-y:hidden;vertical-align:middle}.page-loading-progress{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:10 150.796;-webkit-animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite;animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite}.page-loading-text{text-anchor:middle;font:21px/1 Helvetica}.page-loading-curve .page-loading-progress{-webkit-animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite;animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite}@-webkit-keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}body.vip-prevent-scroll{position:fixed;overflow:hidden;left:0;right:0}.vip-mask[data-v-05192920]{top:0;left:0;right:0;bottom:0;background-color:#000;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .5s ease-in;transition:opacity .5s ease-in;z-index:1450}.popup[data-v-05192920],.vip-mask[data-v-05192920]{position:fixed;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;opacity:0}.popup[data-v-05192920]{border-radius:.48rem .48rem 0 0;overflow:hidden;background-color:transparent;-webkit-transition:all .5s;transition:all .5s;pointer-events:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;z-index:1470}.popup-header[data-v-05192920]{border-radius:.48rem .48rem 0 0;position:relative}.popup-header__inner[data-v-05192920]{border-bottom:.02667rem solid #e7e7e7;height:1.54667rem;line-height:1.54667rem;font-size:.48rem}.popup-title[data-v-05192920]{color:#222;text-align:center}.popup .close-btn[data-v-05192920]{position:absolute;top:0;right:.4rem}.popup-content[data-v-05192920]{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative;overflow-y:auto;overflow-x:hidden;height:100%;-webkit-overflow-scrolling:touch}.popup-left[data-v-05192920]{-webkit-transform:translate(-100%);transform:translate(-100%);left:0;top:0;height:100%}.popup-right[data-v-05192920]{-webkit-transform:translate(100%);transform:translate(100%);right:0;top:0;height:100%}.popup-bottom[data-v-05192920]{-webkit-transform:translateY(100%);transform:translateY(100%);right:0;bottom:0}.popup-show[data-v-05192920]{pointer-events:auto;-webkit-transform:translate(0);transform:translate(0);opacity:1}.popup-center[data-v-05192920]{z-index:1480;position:fixed;top:50%;left:50%;opacity:0;-webkit-transform:translate(-50%,-50%) scale(.95);transform:translate(-50%,-50%) scale(.95);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:-webkit-transform .1s;transition:-webkit-transform .1s;transition:transform .1s;transition:transform .1s,-webkit-transform .1s;pointer-events:none}.popup-center [data-v-05192920]{pointer-events:none}.popup-center.popup-show[data-v-05192920]{opacity:1;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);pointer-events:auto}.popup-center.popup-show [data-v-05192920]{pointer-events:auto}.pop-no-radius[data-v-05192920]{border-radius:0}.vip-button{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;font-size:0;outline:0;padding:0;margin:0;line-height:1}.vip-button .text-box{font-size:.37333rem;text-align:left}.vip-button .icon,.vip-button .text-box{display:inline-block;vertical-align:middle}.vip-button--radius-default{border-radius:.58667rem}.vip-button--radius-small{border-radius:.16rem}.vip-button--radius-mini{border-radius:.08rem}.vip-button.is-plain{background-color:#fff}.vip-button-default{background-color:#caccd2}.vip-button-default.is-plain{color:#585c64}.vip-button-default.is-plain:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #585c64;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100;border-radius:.58667rem}.vip-button-info{background-color:#f3f4f5;color:#222}.vip-button-primary{background-color:#f03867}.vip-button-primary.is-plain{color:#f03867}.vip-button-primary.is-plain:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #f03867;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100;border-radius:.58667rem}.vip-button-dark-primary{background-color:#ce2d56}.vip-button-danger{background-color:#f03867}.vip-button-danger.is-plain{background-color:#fff0f7;color:#d73f83}.vip-button-normal-a{height:.8rem;width:1.92rem}.vip-button-normal-b{width:2.53333rem;height:.96rem}.vip-button-small{width:1.70667rem;height:.64rem;font-size:.32rem}.vip-button-small .text-box{font-size:.32rem}.vip-button-mini{height:.4rem;padding:0 .10667rem}.vip-button-mini,.vip-button-mini .text-box{font-size:.26667rem}.vip-button-large{width:2.77333rem;height:1.12rem;font-size:.42667rem}.vip-button-large-full{width:9.2rem;height:1.12rem;font-size:.42667rem;border-radius:.16rem}.vip-button-flex-small{padding:.16rem .32rem;font-size:.32rem}.vip-button-flex-small .text-box{font-size:.32rem}.vip-button-flex-normal{margin:0 .10667rem;width:100%;height:1.17333rem;font-size:.42667rem}.vip-button-flex-normal .text-box{font-size:.42667rem}.vip-button:disabled{background-color:#caccd2;opacity:.6}.vip-button:disabled.is-plain{color:#caccd2;background-color:#fff}.vip-button:disabled.is-plain:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #caccd2;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100;border-radius:.58667rem}.font-label-container[data-v-f573761e]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.font-label-container.justify-center[data-v-f573761e]{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.font-label-container.justify-start[data-v-f573761e]{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.font-label-container.justify-end[data-v-f573761e]{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.font-label-container span[data-v-f573761e]{text-decoration:inherit;text-overflow:ellipsis}.font-label-container span.ellipsis[data-v-f573761e]{overflow:hidden}.font-label-container span.line-clamp1[data-v-f573761e]{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.font-label-container span.line-clamp2[data-v-f573761e]{width:100%;word-break:break-all;text-overflow:ellipsis;white-space:normal;display:-webkit-box; + /*! autoprefixer: off */-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.label-android-smfont-center[data-v-f573761e]:before{content:"";display:block;vertical-align:middle;width:0;height:100%;margin-top:.05333rem}.label-smfont-center[data-v-f573761e],.label-smfont-left[data-v-f573761e],.label-smfont-right[data-v-f573761e]{display:inline-block;white-space:nowrap;overflow:visible;-webkit-box-sizing:border-box;box-sizing:border-box}.label-smfont-left[data-v-f573761e]{-webkit-transform-origin:0 50%;transform-origin:0 50%}.label-smfont-center[data-v-f573761e]{-webkit-transform-origin:50% 60%;transform-origin:50% 60%}.label-smfont-right[data-v-f573761e]{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.support-cookie-win .dialog-body{line-height:1.5}.wap-eggs[data-v-53053184]{position:fixed;z-index:2010;left:0;top:0;right:0;bottom:0;background:#fff;padding:.26667rem;font-size:.32rem;line-height:1.5em;overflow-x:hidden;overflow-y:scroll;-webkit-box-sizing:border-box;box-sizing:border-box;padding-bottom:1.6rem;word-wrap:break-word;-webkit-overflow-scrolling:touch;will-change:scroll-position}.wap-eggs .wap-eggs-title[data-v-53053184]{font-weight:700}.wap-eggs .wap-eggs-clear-btn[data-v-53053184]{display:inline-block;color:#fff;border:.02667rem solid #efefef;border-radius:.05333rem;background:rgba(0,0,0,.5);padding:.05333rem .10667rem}.wap-eggs .wap-eggs-content[data-v-53053184]{padding-bottom:.26667rem}.wap-eggs .wap-eggs-copy[data-v-53053184],.wap-eggs .wap-eggs-hide[data-v-53053184]{color:#fff;border:.02667rem solid #efefef;border-radius:.13333rem;margin:.26667rem;background:rgba(0,0,0,.5);position:fixed;bottom:0;padding:.26667rem .53333rem}.wap-eggs .wap-eggs-copy[data-v-53053184]{left:0}.wap-eggs .wap-eggs-hide[data-v-53053184]{right:0}.page-loading[data-v-e35befe6]{width:1.33333rem;height:1.33333rem;background-color:#fff;border-radius:.66667rem;text-align:center;font-size:0;margin-left:-.66667rem;margin-top:-.66667rem;left:50%;z-index:1450;top:43%;position:fixed;vertical-align:middle}.page-loading[data-v-e35befe6]:after{content:"";display:inline-block;height:100%;width:0;overflow-y:hidden;vertical-align:middle}.page-loading-progress[data-v-e35befe6]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:10 150.796;-webkit-animation:loadingLinearLine-data-v-e35befe6 linear 2s infinite,loadingLinearSpin-data-v-e35befe6 linear 2s infinite;animation:loadingLinearLine-data-v-e35befe6 linear 2s infinite,loadingLinearSpin-data-v-e35befe6 linear 2s infinite}.page-loading-text[data-v-e35befe6]{text-anchor:middle;font:.56rem/1 Helvetica}.page-loading-curve .page-loading-progress[data-v-e35befe6]{-webkit-animation:loadingCurveLine-data-v-e35befe6 linear 2s infinite,loadingCurveSpin-data-v-e35befe6 linear 2s infinite;animation:loadingCurveLine-data-v-e35befe6 linear 2s infinite,loadingCurveSpin-data-v-e35befe6 linear 2s infinite}@-webkit-keyframes loadingLinearLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .5s;transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0}.dialog-wrapper{position:relative;width:100%;height:0;z-index:1510}.dialog-wrapper .dialog{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:7.2rem;z-index:1510;font-size:.37333rem;text-align:center;border-radius:.08rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:fixed;left:50%;top:50%;overflow:hidden;background-color:#fff;-webkit-box-shadow:0 0 .13333rem .02667rem rgba(0,0,0,.3);box-shadow:0 0 .13333rem .02667rem rgba(0,0,0,.3);min-width:1.92rem;min-height:.48rem;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box}.dialog-wrapper .dialog .border-t{border-top:.02667rem solid #ccc}@media screen and (-webkit-min-device-pixel-ratio:2){.dialog-wrapper .dialog .border-t{border:0;background-position:0 0;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}.dialog-wrapper .dialog img{width:100%;vertical-align:middle}.dialog-wrapper .dialog.popup{padding:0}.dialog-wrapper .dialog .dialog-title{padding:.53333rem .4rem 0;line-height:.42667rem;font-size:.42667rem;font-weight:700;color:#000;text-align:center}.dialog-wrapper .dialog .dialog-body{padding:.4rem;font-size:.42667rem;white-space:pre-line}.dialog-wrapper .dialog .dialog-body.left{text-align:left}.dialog-wrapper .dialog .dialog-foot{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.dialog-wrapper .dialog .dialog-foot:empty{border:none}.dialog-wrapper .dialog .dialog-foot button{display:block;color:#1b81fb;background-color:transparent;border:none;outline:0;font-size:.42667rem;padding:.32rem 0;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dialog-wrapper .dialog .dialog-foot button:nth-child(2){background-position:0 0;background-repeat:repeat-y;-webkit-background-size:.02667rem 100%;background-size:.02667rem 100%;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(270deg,transparent 50%,#dbdbdb 0)}.dialog-wrapper .dialog .dialog-foot button:active{background-color:#eee}.dialog-wrapper .mask{position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:1500}.error-retry-container[data-v-eae38f38]{text-align:center}.error-retry-container img[data-v-eae38f38]{height:6.08rem;width:9.38667rem}.error-retry-container .error-text[data-v-eae38f38]{font-size:.48rem;padding:.64rem 0 1.01333rem}.error-retry-container .error-code[data-v-eae38f38]{font-size:.37333rem;color:#98989f;padding:.64rem 0 1.01333rem}.error-retry-container .button button[data-v-eae38f38]{height:auto;width:4.93333rem;line-height:1;font-size:.42667rem;padding:.29333rem 0;background-color:transparent;color:#e4007f;border:.02667rem solid #e4007f}.sticky-box-container{z-index:1270}.sticky-box-container.sticky{width:100%;position:-webkit-sticky;position:sticky;top:0}.sticky-box-container .sticky-box{position:relative;z-index:1270;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.sticky-box-container .sticky-box.fixed{width:100%;position:fixed;top:0}.sticky-box-container .sticky-box.fixed+.sticky-fill{display:block}.sticky-box-container .sticky-box.fixed__bottom{width:100%;position:fixed;bottom:0}.sticky-box-container .sticky-box.fixed__bottom+.sticky-fill{display:block}.sticky-box-container .sticky-fill{display:none}.download-container div.download-fixed[data-v-453cdfc0]{position:fixed;top:0;left:0;right:0}.download-container div.download-footer-fixed[data-v-453cdfc0]{position:fixed;top:1.33333rem;left:0;right:0}.download-container.has-developer-info div.download-footer-fixed[data-v-453cdfc0]{top:1.73333rem}.download-container .download-footer[data-v-453cdfc0]{z-index:1260;position:relative;-webkit-transform:translate(0);transform:translate(0)}.download-container .download-footer-animation[data-v-453cdfc0]{-webkit-transition:top .3s ease-in;transition:top .3s ease-in}.download-container .download-bar-place-holder[data-v-453cdfc0]{height:1.73333rem}.download-container .u-download-bar-wrap[data-v-453cdfc0]{position:relative;z-index:1260}.download-container .u-download-bar[data-v-453cdfc0]{position:relative;z-index:1260;height:1.33333rem;background:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/download-banner.9c5f7be.jpg);-webkit-background-size:cover;background-size:cover}.download-container .u-download-bar .download-text[data-v-453cdfc0]{position:absolute;left:0;top:50%;right:0;line-height:.53333rem;padding:0 2.66667rem;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0);font-weight:lighter;color:#fff}.download-container .u-download-bar .download-text .content[data-v-453cdfc0],.download-container .u-download-bar .download-text .title[data-v-453cdfc0]{font-family:PingFangSC-Regular;width:100%;overflow:hidden;white-space:nowrap;text-overflow:clip}.download-container .u-download-bar .download-text .title[data-v-453cdfc0]{font-size:.34667rem;word-break:break-all}.download-container .u-download-bar .download-text .content[data-v-453cdfc0]{font-size:.26667rem;opacity:.7}.download-container .u-download-bar .download-btn[data-v-453cdfc0]{position:absolute;right:0;top:0}.download-container .u-download-bar .download-close[data-v-453cdfc0]{position:absolute;left:0;top:0;width:.64rem;height:.64rem;z-index:4;font-size:.32rem;color:hsla(0,0%,100%,.6)}.download-container .u-download-bar .icon-close[data-v-453cdfc0]:before{margin-top:.10667rem;margin-left:.10667rem;display:inline-block}.download-container .u-download-info[data-v-453cdfc0]{line-height:.4rem;height:.4rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:0 .66667rem;color:#222;background-color:#fff;position:relative}.download-container .u-download-info__href[data-v-453cdfc0]{position:absolute;right:0;top:0}.dialog-wrapper .launch-weapp .dialog-foot button{position:relative}.dialog-wrapper .launch-weapp .dialog-foot #launch-btn{z-index:10;position:absolute;top:0;right:0;left:0;bottom:0;background:transparent}.wakeup-bar-container[data-v-8cea33a8]{position:relative}.wakeup-bar-container .wakeup-bar-wrap[data-v-8cea33a8]{position:fixed;top:0;left:0;right:0;color:#fff;font-size:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:1.33333rem;background-color:#232227;z-index:1260}.wakeup-bar-container .wakeup-bar-wrap .left[data-v-8cea33a8]{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-size:.32rem;overflow:hidden}.wakeup-bar-container .wakeup-bar-wrap .left div[data-v-8cea33a8]{display:inline-block}.wakeup-bar-container .wakeup-bar-wrap .left .close-btn-wrap[data-v-8cea33a8]{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transform:translateY(-50%) scale(.8);transform:translateY(-50%) scale(.8);margin-left:.13333rem;width:.45333rem;height:.45333rem;line-height:.45333rem;text-align:center}.wakeup-bar-container .wakeup-bar-wrap .left .close-btn-wrap i[data-v-8cea33a8]{font-size:.34667rem}.wakeup-bar-container .wakeup-bar-wrap .left .new-logo-wrap[data-v-8cea33a8]{margin-left:.98667rem;width:1.01333rem;height:1.01333rem;line-height:.93333rem;text-align:center;background-color:#e90684;border-radius:.21333rem;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wakeup-bar-container .wakeup-bar-wrap .left .new-logo-wrap i[data-v-8cea33a8]{display:inline-block;font-size:.32rem;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%) scale(.9);transform:translate(-50%,-50%) scale(.9)}.wakeup-bar-container .wakeup-bar-wrap .left .description[data-v-8cea33a8]{margin-left:2.45333rem;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wakeup-bar-container .wakeup-bar-wrap .left .description p[data-v-8cea33a8]{line-height:.53333rem;font-size:.37333rem;color:#fff;font-weight:700}.wakeup-bar-container .wakeup-bar-wrap .left .description p[data-v-8cea33a8]:last-child{font-size:.32rem;line-height:.42667rem;color:#e80583;font-weight:400}.wakeup-bar-container .wakeup-bar-wrap .wakeup-btn[data-v-8cea33a8]{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:2.50667rem;height:1.33333rem;line-height:1.33333rem;font-size:.37333rem;text-align:center;letter-spacing:.05333rem;overflow:hidden;background-color:#e90684}.wakeup-bar-container .wakeup-bar-wrap-placeholder[data-v-8cea33a8]{position:relative;height:1.33333rem;width:100%}.wakeup-bar-container .wakeup-fixed-right-btn[data-v-8cea33a8]{position:fixed;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAAA8CAMAAAD8BbCIAAABdFBMVEUAAADeAH3fAHzfAHzeAHzgAHzfAH/fAH/gAIXoAIPeAHzfAHzfAH3eAH3fAHzmAID/AJLgAH7eAHzjAH7hAH3////VAHbWAHfXAHfbAHrXAHjaAHjfBn/zpdDfAHr85/P//P7aAXnfDIHZAHbeAHj+9fr+9fnlKZLXAHPtfLvymsvvcbfrbrPqaLHcAHjaAHT97vf1uNruisLsc7bdAXvwmsrxkMbZAHjcAHX2stfjGYngEIPYAHT4yeP3yOLwjsTpTaPjQJviOZfhFYfgCIH63O33w+Dzq9Pxos7xi8Psd7jqWKnnQJzcEYL75PH50+j2wN3wlMfsgr3pY67oX6vmXKjkS5/aGITkAH/bCX34zuX0n87mTaHfMpLkJo/kCoPjBoH0qNLwhMDoVafrUKbbAHD98vn0r9XnUaTqSKLmJJDeI4vlE4f96/X3wd71u9zXCXv+9/v61urlQ53nNZjkLpPfKY7eG4fdAHrlR5/iH4z5z+aAFMLhAAAAEnRSTlMA+qLHw3FHPxkV8Ozfs3kKB0Frao2tAAAF60lEQVRo3tSW60/aUBTA2dzb13bL+UDWx13TltBCKYINlIBogQUhEIcmiyyAvESjGBQy1H9+t634yNT5rd0v7em5ST/8cnLuudf3OKvvVl4vLC2+Qh7lMeePb9941vdJ7ffLXnd+RPvLG/Q/8FD6w2t0Ax0sl4oFSSoUS+UgjbzGA+t3n5BNPpeBB2RyeeQp7lu/RTa8DgBiSjk6Pmm3T46PlJQIADqPPMSd9GenQWgFQGv0WtQ9Wr2GBqB4qFfupt6Cvc6JIHVa1E8HomylJLQ6Eog55BVua+1YbwCWDepRDBnDBvIIc227Q+gRVCfUk0yqMPJIo9zfjSYHGYN6BiMDnIm8wM3ks1KaA6ZNPUubAc4T9XZOGXtej4ChKD/l99uGdvx7zcAIeYC7xt6AbN7/T/JZT+xL+/JkJTmoGv4XYFTBA3PQ0rZuT7SIJ/4XMcGi++09L7YCsmPFksdJ5vgdbjMZFOQ2RHuZfHiQDFYQBNYfNPJNu8ebQYdmmrWkydpwvA0JXL+fkFP9Ffno0GGNcFyphLRJZTxNsqypVfctajgiIMSyITw4rZCM0AEduYxz0uRB44UKXJ9yOBNisLxtCuY4bEmyVyLRZoU4xCbnmuOd1iCP3MXZkDloIKHCpXe4c67zHTdClnakLxAMkegLEbxv9q9qN/VuuD5MfKtWj2Sgh1SiLcvMfr8yDvZnMxM3ht1ut/cDyqpax9AZdoch0Coq+b0HGeQu9rlOg9iaa2vrZzi1Y8x4mWGYA/LGabUONZIfkFVWy80Qaong8gz0rZAQhBQ11+bCMtYjaXTVnE6bPInNplku55MOqDsk/1MpCCJXsQ/2MihUQt3k0uvywXX/Yjztz8zqaG2H2y1k13SuzEfCkXDcps7PEglKgTJyFd8CCSU4srX5HZkZMEV8JpvpQbxPn0e4TjRR2zVKBxDb0HW9tFYyVaJ9BCXkKr4lEopwbGmfNmMyU+2u4dCQTw+2o/x5nWjTtXoyGpaukqqanO6qgQTRPoYichXfIgkFOKECyS18Ohgy19FfeCupWtVGVrX7aq0e5QupBOHblnT5NRAIUCdQQK7is+afBG0qoPKbF8HoIY7tjzOHv9Pi4V5ocKnF9ralzegucMUsoQaRpKXdBgm5yZ02sfnTrdW1tg1D0b1trys4lWVCp+pFAZvOzlwtVGuwobVncGI7/sDFfgiBpWDahAUS8u8np/EgW9P1bXIPln3lp4PQ1z3n4q8K7purlbWy8nPTcRxt91ZltO15vR0m57IYtH9Pkj2UHepAVvDuB+aNXdRg7EKWxZgkzZL8g7LMCTL+wbmM5S81W+WC5QrDiIcCLMlmA+S8/Oi7YVzOFIRiNUmDMNkocjq3bWNR+Iqy1ibjaHIvywgJsAE2xw1CuPppVxvTxQqadg29uwgKli8+R0V3PPEpKjzvR+hpvoKQAMdNc7hz2ptx1FeDPlPQXB8G+u11yipDj7XpnWphpLqG4XpjHiEBDvfmKkUprjQvUdUyp2ge2YPBXLeZv9HjbaqGawzWw6Gl+/0SUyrAVaq5uFLKHPcxdsy7lKGp3lMfHRtT330wL8PbM/4vDc3iW5nllFIBLq5NmgAp0UvDm/vujKCu5y7chzDFeRnYvW08oNjvReHNp4VhYQoFSBOapCyHRPcGmh4HKdmYybCyb6wMYBjYVmw4BMIqNczESXwAcxGSsn0KHEGQqol/r81ykK3XK7Ls5RgC2K9IZdgAokmyhsRPSgAjEVLgRnDIYIcQQHiDAIAOhDzgqLuE1QE5rcNTmAkhODTyjgkAfAIAu3asb4oh7zRiWglehVIQMe3dxzoopFF2+gpkI6k4+e84EIqX/2a9FEco3svygeQ+Uet06lY/f/ddKTgRAIcmiLvsvIilK5IJsrecrs6k6+wl1tm1dHZ1IgIODb5AGpXHWZcjKRBirJ+zU83syFCbAtqpjXldcPM6Wj4zqyNuXguw872RUoG2Fma0tgymrUVHHO/bWOLV2oK6Gh/aWL7YimLRX4Vrzc+N+XouAAAAAElFTkSuQmCC) 50% no-repeat;-webkit-background-size:contain;background-size:contain;width:2.42667rem;height:.8rem;right:0;top:45%;z-index:1260;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 .26667rem 0 .8rem;text-align:center;line-height:.8rem;color:#fff;font-size:.32rem}.vui-loading-container[data-v-d94f9d8a]{position:relative;z-index:1550}.vui-loading-container .vui-mask[data-v-d94f9d8a]{position:fixed;z-index:1550;top:0;right:0;left:0;bottom:0}.vui-loading-container.vui-loading-no-text .vui-toast[data-v-d94f9d8a]{min-height:2.61333rem}.vui-loading-container .vui-toast[data-v-d94f9d8a]{position:fixed;width:3.22667rem;min-height:3.22667rem;line-height:1.6;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:1550;top:6.53333rem;left:50%;background:hsla(0,0%,7%,.7);text-align:center;border-radius:.13333rem;color:#fff}.vui-loading-container .vui-toast .vui-loading[data-v-d94f9d8a]{margin:.8rem 0 0;width:1.01333rem;height:1.01333rem;vertical-align:baseline;display:inline-block;-webkit-animation:weuiLoading-data-v-d94f9d8a 1s steps(12) infinite;animation:weuiLoading-data-v-d94f9d8a 1s steps(12) infinite;background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat;-webkit-background-size:100% 100%;background-size:100%}.vui-loading-container .vui-toast .vui-toast-content[data-v-d94f9d8a]{font-size:.42667rem;letter-spacing:.02667rem;margin:0 0 .4rem}.vui-mask-enter-active[data-v-d94f9d8a],.vui-mask-enter[data-v-d94f9d8a],.vui-mask-leave-active[data-v-d94f9d8a]{position:relative;z-index:1}.vui-mask-enter[data-v-d94f9d8a],.vui-mask-leave-active[data-v-d94f9d8a]{opacity:0}.vui-mask-enter-active[data-v-d94f9d8a],.vui-mask-leave-active[data-v-d94f9d8a]{-webkit-transition:opacity .3s;transition:opacity .3s}@-webkit-keyframes weuiLoading-data-v-d94f9d8a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes weuiLoading-data-v-d94f9d8a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.vip-backtop[data-v-9e47b6c0]{position:fixed;right:.4rem;bottom:2.02667rem;width:1.17333rem;height:1.17333rem;background-color:rgba(34,34,34,.9);border-radius:50%;z-index:1240;text-align:center;line-height:1.17333rem;font-size:0}.vip-backtop .icon-up[data-v-9e47b6c0]{font-size:.56rem;color:#fff}.u-shopbag[data-v-3f94e833]{position:fixed;bottom:.6rem;left:.4rem;min-width:1.2rem;height:1.2rem;z-index:1350;background-color:rgba(25,29,38,.95);border-radius:.6rem}.u-shopbag.add-bottom[data-v-3f94e833]{bottom:2.28rem}.u-shopbag.add-bottom2[data-v-3f94e833]{bottom:3.57333rem}.u-shopbag a[data-v-3f94e833]{display:block;position:relative;width:100%;height:100%}.u-shopbag .i-flow-carticon[data-v-3f94e833]{display:block;float:left;width:1.12rem;height:1.2rem;line-height:1.2rem;font-size:.6rem;text-align:center;color:#fff}.u-shopbag .u-flow-cartnum[data-v-3f94e833]{position:absolute;left:.64rem;top:.16rem;width:.37333rem;height:.37333rem;font-style:normal;text-align:center;line-height:.37333rem;background-color:#fbe943;border-radius:.18667rem;color:#4c1f02;font-size:.32rem;display:none}.u-shopbag.show-cart[data-v-3f94e833]{background:rgba(228,52,148,.9)}.u-shopbag.show-cart .u-flow-cartnum[data-v-3f94e833],.u-shopbag.show-cart .u-flow-carttime[data-v-3f94e833]{display:inline-block}.u-shopbag .u-flow-carttime[data-v-3f94e833]{font-size:0;line-height:1.2rem;font-style:normal;padding-right:.32rem;color:#fff;display:none}.u-shopbag .u-flow-carttime span[data-v-3f94e833]{font-size:.48rem}.m-common-footer[data-v-94ea3856]{width:100%;overflow:hidden;background-color:#f3f4f5;font-size:.37333rem}.m-common-footer a[data-v-94ea3856]{color:#585c64}.m-common-footer .footer-list[data-v-94ea3856]{overflow:hidden;padding:.53333rem 0}.m-common-footer .footer-list li[data-v-94ea3856]{float:left;width:25%;text-align:center}.m-common-footer .footer-list li:last-child a[data-v-94ea3856]{border-right:0}.m-common-footer .footer-list li a[data-v-94ea3856]{display:block;border-right:.02667rem solid #ccc}.m-common-footer .footer-list span[data-v-94ea3856]{display:block;line-height:.504rem}.m-common-footer .footer-list .u-icon[data-v-94ea3856]{display:inline-block;position:relative;width:.98667rem;height:.98667rem;font-size:.98667rem;color:#ff5cae;font-weight:100}.m-common-footer .footer-nav[data-v-94ea3856]{overflow:hidden;padding:.26667rem .26667rem 0}.m-common-footer .footer-nav a[data-v-94ea3856]{font-size:.37333rem;color:#585c64;padding:0 .13333rem}.m-common-footer .copyright[data-v-94ea3856]{overflow:hidden;line-height:.53333rem;padding:.4rem 0 0;text-align:center;font-size:.32rem;color:#ccc}.m-common-footer .psb[data-v-94ea3856]{margin-top:.53333rem;font-size:.32rem;text-align:center}.m-common-footer .psb p[data-v-94ea3856]{margin:0 0 0 .13333rem;height:.53333rem;line-height:.53333rem;font-size:.32rem;color:#ccc}.m-common-footer .psb a[data-v-94ea3856]{text-align:center;color:#ccc}.m-common-footer .psb .psb-sign[data-v-94ea3856]{display:inline-block;vertical-align:middle;width:.53333rem;height:.53333rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAFDklEQVQ4EQXBbWwbZwHA8f89dz6fz2/nxLFj4tI1jdamrG1GW2AjpFuH9oLaMIJUVoQQQ2VMoDGB2AfQ+DCND+NLJaZpgMqQ6NQPwJAm2qqsy4LY1ooOphbaqi9Zmqax0zSx49hn34vPdw+/nyKlBKcDQIRAyAhXr5CIDQLtQefmhcl/nP7393y3pz/06M6jfTt2vA3DFd+XxF0XhAIIAMikUaSUBE4TFIkIJaqeA95/ePb0mWfP/v3GpHRnjUXfRM1ZbMwbuDWzN/7I8InRA1N/kOE9J6XfRioKIFGzQwiAlmLTlutIMwe6Z8z85o2Zbz8zfbDtLRj3plQOG3d51ljkwQeK9D1Q1A4/8+7Xzrz6ygklocYdXcHjPwTaxwAIAFSBUDNool72L7z8zq+PNzl0eJjvlFtkf3eF+vWQ+lxIc/9v+Wp4ieePPcXRvwbI67//S8r0DGGkMJJxAARAyrdJxpujt0++ODex/9KENVLkh/lLzB9vITZYhHYX/AhlwOLcc2c5aF6g+MX7+fL+UwdWP3zjprNwccvV9/4GgACI+y6a907qxPW0/tHSbp7YbdO+2ELcbqJYceJrId7Zu8Q29WO0XWp/PM/UY11mPtnGmx+EpZTSSSDGABAAzdVaOfrXe0ciJQGaQ8ZeorUMsTCANQ9ls4m+y0Lc6aATUZt3GerzQVFotAXxAe3I1vGpTQACYOHau1/vVqvjuZQOvTiyVCI/Pkgbif1gP+GhMqmXxjCf34EYMCnsytNxuiAlpYIJlYsPry2e+y6AADBTudGWHTA84IHRz5nzJtq+DPUDGwmrNsr/Ojin7hLMr6O/ME7fj3fy1rEGkGRsu0ZnbgWvMlcGEADR2tKBVkPjvrJN+XM6r7+Z5J+vVBjbUyJrpnGuNIhWfLxLDdLVdS6/fINXj8UpjllsH2pSq/oEa9fGAQSA0DqW3RJkVm9w8LGQXpAiOLlM/58+RgzF6A6oRAWN/L4SpZmb1I5eptNVmZqMka7PYrc0tLSIAWgACfPT02LLrcmwOMTTn7c5MjTA69VRgsUr9NdnEdkE7pUG9kiBaq7En0UCMhZPf2GFXrqM9RkFM7fhFIAGAKIgW5KlOZv7Ruf55U938eILE5y0t0MrYNKp02cJ3jqVpo0J5PjJDwz2jMyyNAt4DlHP3gmgAWhWd3cvXSRYDqisXOVH43GmppPMnHa4Jnbw+LZPKCVq9E4M0W24bNhq8vPHb3H33C2cwMDI62iWvhVAkVLitz/6Zv38r467y138WgCVBTY/OUa8aEBYJ6xrtFdcspv6YGM/VGrMv30dN50nNZwiMWiSHTm0V8995X1FSglAr/Pfb61dPvJa6LnZ2gfLaEnJ4N5RwjWXwOkgTAOjL4mix6ifm6MXamR3bybwqGe3TDyVtDLTiv4oGkDgLuCuulVvOeEaxShb3DdC2OwQ2i0wdVTdQk9Ad71Np9LA2NiPUS7irzt4VVsmNrRRMxkSgACQ3ZuofPizwmfTg7FcCb8ZEYUaUajirdogI7r1Ju3ZVRQ1BoqCd6dGLCEofqmU1037+5ELAAJAVzPE+/c8aTvZ15xKpaOr62QKPWKKg64EqP460nVJb82TGckg9DZaVkfJDd7uaff/QjPv/YaqrwKgASADlJjmtOrJ59yrxZfc5uoTfrC491PbBrZFtpIyLNGnJdLYd7idGLAcrTBxcW1uZdpdaJwZ2luIFFVFhh4A/wcuIjcTHG3F4QAAAABJRU5ErkJggg==) no-repeat}.u-download-footer .download-text[data-v-5f9185c8]{max-width:100%;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.u-download-footer[data-v-5f9185c8]{height:1.12rem;line-height:1.12rem;padding:.26667rem .4rem;background-color:#f3f4f5;border-bottom:.02667rem solid #ccc;font-size:0}.u-download-footer a[data-v-5f9185c8]{color:#555;text-decoration:none}.u-download-footer .download-logo[data-v-5f9185c8]{display:inline-block;vertical-align:middle;margin:0 .26667rem 0 0;width:1.12rem;height:1.12rem;background:#ea4c88;border-radius:.26667rem;font-size:.32rem;color:#fff;line-height:1.12rem;text-align:center;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e2007e),color-stop(1,#d40075))}.u-download-footer .download-text[data-v-5f9185c8]{display:inline-block;vertical-align:middle;font-size:.37333rem;color:#222}.u-download-footer .download-btn[data-v-5f9185c8]{float:right;margin-top:.21333rem;height:.74667rem;line-height:.74667rem;padding:0 .58667rem;border:.02667rem solid #cf3e8e;border-radius:.05333rem;background-color:#f3f4f5;font-size:.32rem;color:#cf3e8e}.operate[data-v-4bae17a0]{background-color:#fafafa;text-align:center;position:relative}.operate .operate-bg[data-v-4bae17a0]{position:absolute;width:100%;height:100%;left:0;right:0;top:0;bottom:0}.operate .operate-bg img[data-v-4bae17a0]{width:100%;display:block;max-height:100%}.operate .operate-inner[data-v-4bae17a0]{position:relative;z-index:2}.operate .operate-inner .operate-inner-common[data-v-4bae17a0]{float:left;text-align:center}.operate .operate-inner .operate-inner-common .operate-inner-item[data-v-4bae17a0]{width:100%;height:100%;display:block}.operate .operate-inner .operate-inner-common .operate-inner-item img[data-v-4bae17a0]{width:100%;-o-object-fit:contain;object-fit:contain;height:auto}.operate .operate-inner .operate-inner-common .operate-inner-item img[lazy=loading][data-v-4bae17a0]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIBAMAAABfdrOtAAAAGFBMVEX6+vry8vLr6+v4+Pj29vb09PTu7u7w8PBu45v7AAADAUlEQVR42u2ZTW/iMBCGjQzbKwHSnpmW9Gq2ZPeaQNlz3NA7pPtxrbor9e+vHWwsUgVX8uQQaZ5DG0HI6/lybA8jCIIgCIIgCIIgCIIgCIIgCKJH8NVWRlH0vBHMgi8hI0PclQx/1kY8KuqLjHXAUJmx2zwwxcNqq4zRKvga8YadWMkOVLiMduLsg61TQddwKBXc6OfRTHwQzqMdakDsoJvmBTvM/7QRpsPSqPR8gWFILDzfYBiStQerxDJkxlqRMUNhFGWX8q7AqZGLg1VmhuJ3exphhH55+Sk8mrJw5MzrzWC4L7KjcH/5n8ER8iufBd/hR3pLOo2DE7hRiYM/oqVYAxg1ZsAnGOMHZdlw+ARe8YMiG6X2DcTHgcTIVcJ3LS4NEsk+lRyBySXCR+JPrvopG/O0R3Wp/wk2vHl34ZYFQnINIDtGPRFXiRKAbFgBwE9myKcIIkOTt+s5+wJapJiA5q+9K0TEjpFXt0xT3RkRCYdydQ0JTqHk5bEE50eDxkakuhd19b+izF6ytMFQf69AGBEYHw1c4Ihk7Bh5nT9fE2ZEjJ+eEpeDAZgK4LVjJgsrokNUm1aYasIQYZNb7Z29ETGx0BeYIut75RQYW5GCGQP3aCIu5lbETiPVC5aIyV5dit2KMFWOb3es6a4KxV3SikzmOspWZNyISXgxmnIcQHYSqb1kUiG8GHMrMoAfCTuJLM7fxeksdIK0noGFEzGRf5vbuRppsTKB/UnEvEq+wwvW+8SwhrETuYapYKsKslARN/XZcnQiZQWHmwp+udcvzkKCz5kTKZagmIvghUTz9//sWqIuxvQ3HDI3EvQtkBbB3QbJqV9kGQcvuP0i+TR86+AT4bLA3AQ5keYt+Nu50blIGnexMeXv2fkd/dhif+awoB/HHgEHOJhHUVlfDtUCjgexDjrzWPTnyNZz+NynY/TWhoBuRvSrtdHapJl13W7ipt3UdeNM9LEFGNDMDGnLNnzVpwbzqVUe75QEQRAEQRAEQRAEQRAEQRAEQRD94T9cfYUtpey2sgAAAABJRU5ErkJggg==);background-repeat:no-repeat;-webkit-background-size:contain;background-size:contain;background-position:50%}.operate a[data-v-4bae17a0]{width:100%;display:block;position:relative}.operate a.got-coupon>.coupon-signet[data-v-4bae17a0]{position:absolute;top:0;right:0;width:1.46667rem;height:1.41333rem;background:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/got-coupon.26091aa.png) 0 0 no-repeat;-webkit-background-size:cover;background-size:cover}.operate a.no-coupon>.coupon-signet[data-v-4bae17a0]{position:absolute;top:0;right:0;width:1.46667rem;height:1.41333rem;background:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/no-coupon.df353dc.png) 0 0 no-repeat;-webkit-background-size:cover;background-size:cover}.operate .countdown-inner[data-v-683b666f]:after,.operate .countdown-inner[data-v-683b666f]:before{content:"";display:table}.operate .countdown-inner[data-v-683b666f]:after{clear:both}.operate .countdown-normal[data-v-683b666f]{position:absolute;bottom:11.5%;right:4.5333%}.operate .countdown-left[data-v-683b666f]{left:4.5333%}.operate .countdown-right[data-v-683b666f]{left:auto;right:4.5333%}.operate .countdown-center[data-v-683b666f]{width:100%;text-align:center;right:auto;bottom:auto}.operate .countdown-center .countdown-inner[data-v-683b666f]{display:inline-block}.operate .countdown-center.countdown-bottom[data-v-683b666f]{bottom:7.77%}.operate .countdown-top[data-v-683b666f]{top:21.8%}.operate .countdown-bottom[data-v-683b666f]{top:auto;bottom:11.5%}.operate .countdown-vertical-center[data-v-683b666f]{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.operate .countdown-default[data-v-683b666f]{text-align:center}.operate .countdown-default span[data-v-683b666f]{display:inline-block;font-size:.32rem}.operate .countdown-default span[data-v-683b666f]:nth-child(3n){width:.53333rem;text-align:center;font-style:normal;color:#001406}.operate .countdown-default span[data-v-683b666f]:nth-child(3n+1){margin-right:.05333rem}.operate .countdown-default .millisecond[data-v-683b666f],.operate .countdown-default .numbers[data-v-683b666f]{-webkit-box-sizing:border-box;box-sizing:border-box;width:.53333rem;height:.64rem;line-height:.53333rem;color:#fefefe;text-align:center;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b2a26),to(#030007));background-image:linear-gradient(180deg,#2b2a26,#030007);border-radius:.05333rem;border:.02667rem solid #030007;font-weight:400}.operate .countdown-default span.millisecond[data-v-683b666f]{background:#dc1518;border-color:#dc1518;color:#fff}.operate .countdown-normal span[data-v-683b666f]{float:left;font-size:.32rem}.operate .countdown-normal .colon[data-v-683b666f],.operate .countdown-normal .numbers+span[data-v-683b666f]{width:.24rem;text-align:center;line-height:.64rem;height:.64rem;font-style:normal;color:#001406;font-size:.42667rem}.operate .countdown-normal .numbers[data-v-683b666f]{-webkit-box-sizing:border-box;box-sizing:border-box;width:.53333rem;height:.64rem;line-height:.53333rem;color:#fefefe;text-align:center;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b2a26),to(#030007));background-image:linear-gradient(180deg,#2b2a26,#030007);border-radius:.05333rem;border:.02667rem solid #030007;font-weight:400}.operate .countdown-custom[data-v-683b666f]{width:100%;top:28%;bottom:auto;right:0;text-align:center;position:absolute}.operate .countdown-custom .countdown-inner[data-v-683b666f]{display:inline-block}.operate .countdown-custom span[data-v-683b666f]{float:left}.operate .countdown-custom .numbers+span[data-v-683b666f]:not([class=numbers]),.operate .countdown-custom .separate-txt[data-v-683b666f]{font-size:.32rem;width:.37333rem;line-height:.42667rem;margin-top:.26667rem;margin-left:.10667rem;margin-right:.05333rem;color:#fff}.operate .countdown-custom .millisecond[data-v-683b666f],.operate .countdown-custom .numbers[data-v-683b666f]{display:inline-block;width:.66667rem;text-align:center;height:.74667rem;line-height:.74667rem;font-size:.53333rem;color:#000;margin-left:.08rem;border:none;position:relative;border-radius:.05333rem}.operate .countdown-custom .numbers[data-v-683b666f]:first-child{margin-left:0}.operate .countdown-custom span.millisecond[data-v-683b666f]{background-color:#dc1518;color:#fff}.operate .countdown-white .numbers[data-v-683b666f]{background-color:#fff;color:#000}.operate .countdown-white .separate-txt[data-v-683b666f]{color:#525252}.operate .countdown-black[data-v-683b666f]{top:25.6%}.operate .countdown-black .numbers[data-v-683b666f]{background-image:-webkit-gradient(linear,left top,left bottom,from(#2b2a26),to(#030007));background-image:linear-gradient(180deg,#2b2a26,#030007);color:#fff}.operate .countdown-black span.millisecond[data-v-683b666f]{background-image:none;background-color:#dc1518}.operate .countdown-black .separate-txt[data-v-683b666f]{color:#525252}.operate .countdown-black .numbers+span[data-v-683b666f]:not([class=numbers]){color:#151515}@media (max-width:375px){.operate .countdown-custom[data-v-683b666f]{top:28%}.operate .countdown-custom .millisecond[data-v-683b666f],.operate .countdown-custom .numbers[data-v-683b666f]{height:.69333rem;line-height:.69333rem;font-size:.48rem}.operate .countdown-custom .separate-txt[data-v-683b666f]{margin-top:.24rem;margin-left:.08rem;margin-right:.05333rem}.operate .countdown-black[data-v-683b666f]{top:28%}}@media (max-width:320px){.operate .countdown-custom[data-v-683b666f]{top:23%}.operate .countdown-custom .millisecond[data-v-683b666f],.operate .countdown-custom .numbers[data-v-683b666f]{height:.58667rem;line-height:.58667rem;font-size:.42667rem}.operate .countdown-custom .separate-txt[data-v-683b666f]{margin-top:.16rem;margin-left:.08rem;margin-right:.02667rem}}.operate-coupon-pop img[data-v-683b666f]{width:100%}.operate-coupon-pop .dialog-foot button[data-v-683b666f]{color:#222!important} +/*! inline-style-end */.secure-code-wrapper .vipsc_wap_box .vipsc_inner .vipsc_ft .vipsc_code_qimg{height:22px}.adv-slider{height:4rem;overflow-y:hidden}.adv-slider .adv-item img{height:100%}.adv-slider div.mint-swipe-indicators{position:absolute;right:.21333rem;left:0;text-align:right;line-height:.37333rem;bottom:.05333rem;-webkit-transform:translateZ(.02667rem);transform:translateZ(.02667rem);text-align:center;font-size:0}.adv-slider div.mint-swipe-indicators .mint-swipe-indicator{opacity:1;border:.02667rem solid hsla(0,0%,100%,.6);border-radius:50%;background-color:#fafafa}.adv-slider div.mint-swipe-indicators .mint-swipe-indicator.is-active{background-color:#000;border:.02667rem solid #fff}.mint-swipe,.mint-swipe .mint-swipe-items-wrap{overflow:hidden;position:relative;height:100%}.mint-swipe .mint-swipe-items-wrap>div{position:absolute;-webkit-transform:translateX(-100%);transform:translateX(-100%);width:100%;height:100%;display:none}.mint-swipe .mint-swipe-items-wrap>div.is-active{display:block;-webkit-transform:none;transform:none}.mint-swipe .mint-swipe-indicators{position:absolute;bottom:.26667rem;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.mint-swipe .mint-swipe-indicator{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2;margin:0 3px}.mint-swipe .mint-swipe-indicator.is-active{background:#fff}.operate-slider[data-v-7c746661]{background-color:#fff;width:100%;overflow:hidden}.operate-slider h2[data-v-7c746661]{font-size:.42667rem;padding-top:.45333rem;padding-bottom:.08rem;line-height:.53333rem;text-align:center;font-weight:400}.operate-slider .operate-container[data-v-7c746661]{will-change:scroll-position;width:100%;overflow-y:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.operate-slider .operate-container ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.operate-slider .operate-container ul[data-v-7c746661]::-webkit-scrollbar{display:none}.operate-slider .operate-container li[data-v-7c746661]{float:left}.operate-slider.picture.small ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;height:3.62667rem}.operate-slider.picture.small li[data-v-7c746661]{float:left;width:2.64rem;height:3.62667rem}.operate-slider.picture.small a[data-v-7c746661]{position:relative;display:block;width:2.64rem;height:3.62667rem}.operate-slider.picture.small a img[data-v-7c746661]{position:relative;display:block;width:100%;z-index:1}.operate-slider.picture.medium ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;height:5.04rem}.operate-slider.picture.medium li[data-v-7c746661]{float:left;width:3.76rem;height:5.04rem}.operate-slider.picture.medium a[data-v-7c746661]{position:relative;display:block;width:3.76rem;height:5.04rem}.operate-slider.picture.medium a img[data-v-7c746661]{position:relative;display:block;width:100%;z-index:1}.operate-slider.picture.medium-lower ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;height:4.26667rem}.operate-slider.picture.medium-lower li[data-v-7c746661]{float:left;width:3.76rem;height:4.26667rem}.operate-slider.picture.medium-lower a[data-v-7c746661]{position:relative;display:block;width:3.76rem;height:4.26667rem}.operate-slider.picture.medium-lower a img[data-v-7c746661]{position:relative;display:block;width:100%;z-index:1}.operate-slider.picture.medium-lower h2[data-v-7c746661]{padding:.32rem .29333rem .29333rem .26667rem;width:95%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;font-size:.32rem;color:#98989f;line-height:.32rem;text-align:left;background-color:#fff}.operate-slider.single-product h2[data-v-7c746661]{padding-top:.45333rem;padding-bottom:.08rem;line-height:.53333rem;font-size:.37333rem;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis}.operate-slider.single-product ul[data-v-7c746661]{padding-left:.4rem;padding-right:.4rem;padding-top:.26667rem;height:3.94667rem;border-bottom:.21333rem solid #f3f4f5;overflow:hidden;display:block}.operate-slider.single-product li[data-v-7c746661]{padding-right:.53333rem}.operate-slider.single-product li[data-v-7c746661]:last-child{padding-right:0}.operate-slider.single-product li a[data-v-7c746661]{display:block;width:2.05333rem;height:3.46667rem;overflow:hidden}.operate-slider.single-product .img[data-v-7c746661]{position:relative;width:2.05333rem;height:2.61333rem;background-color:#fff;display:block;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.operate-slider.single-product .img img[data-v-7c746661]{position:relative;z-index:1;width:100%;border-radius:.08rem}.operate-slider.single-product .title[data-v-7c746661]{width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;text-align:center;font-size:.32rem;line-height:.42667rem;padding-top:.16rem;padding-bottom:.26667rem;height:.85333rem}.operate-slider.single-product .operate-container[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box}.operate-slider.single-product .more[data-v-7c746661]{position:relative;vertical-align:middle}.operate-slider.single-product .more .title[data-v-7c746661]{visibility:hidden}.operate-slider.single-product .more .center[data-v-7c746661]{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.operate-slider.single-product .more .img[data-v-7c746661]:after{display:none}.operate-slider.single-product .more span[data-v-7c746661]{display:block;font-size:.32rem;width:1.33333rem;line-height:.53333rem;text-align:center}@media screen and (-webkit-min-device-pixel-ratio:2){.operate-slider.single-product .more span[data-v-7c746661]:first-child{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#98989f));background-image:linear-gradient(180deg,transparent 50%,#98989f 0)}}.listview-loading[data-v-2eaaeabd]{font-size:.32rem;line-height:1;color:#999;padding:.53333rem .26667rem;text-shadow:0 .02667rem 0 #fff;text-align:center;vertical-align:middle;background:url(data:image/gif;base64,R0lGODlhJAAkAMQAAP////f39+/v7+bm5t7e3tbW1szMzMXFxb29vbW1ta2traWlpZmZmZmZmYyMjISEhHt7e3Nzc2ZmZmZmZlpaWlJSUkpKSkJCQjMzMykpKRkZGf///wAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmS5DRg2mGzrio6mOW89FhJTxnMZBAAbKZJKkHi00e8nHDFSFsEIOQIsA02R4JLSwWTJzTWY3SRSKtFCthBZl+WRpDtSKJTwGuGxwN4uFwUtb2RuAgJ+IhAWFhQIcT4DklIjC4yMEASQAQKSkyUIEpcUkJ6SiSQBlo2lp4UsAwuacT+vkLe4cQIJvLwHuRuHwogQEsbHv7cCBczNBMXHxsmQy83MBLu9CdPKw4jA4OEuAggrtAOoJgEID+2QBvADtiIGDu0PYVnw8AWUI+z3FpgrE6DAPgMDNyxo58AAsGX8SMRCgErAggX+fBw4gArAAALpWCRgwMChCEkjCEogQGAyTgGSDCgN4GVu3cqEQlSRbFmAlyARKhEcmPfCAMk+N3xWObByVhMEJH+K6JlA6omVVm3sajlVKQkCBkJCoppVnAibYl2EAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmQpWpapruzIYBjTziMBLeUbl05V0KQHCkHSyUYLjUYCRKIkARfsuBFglI6mKEBB4UTGkUOZEWhFCBRllIAlRAOl5nveQLzst2isqdAGDHo1FBQEKwUZGT8kAQEAJA4SEhEHdSaNjSQJkpIOA5YAmJglBxCcEZaijiubk6mZMwIJn3WPlre4uWgIvAgGulEkAA4Pxca/twEDy8wDxMbFyKnNzBu9vNLJqra63d4rBmaW4i0GCwx0WgQFBeQlBecM6Jbr7IYlBvLyCe5aA+zs3CWQt2BRrnq0RAjwZSKBIBUGsilM2OKAQ4MlBkTE6M9hgmDWiIyIGM4Sgos1eC3d26AxYp0CDkWKIKCSRIGIFGkYcEiRJoKVVSICBXKAo8+h/74d/bbiQKUzIQAAIfkEBQcAGwAsAAAAACQAJAAABf/gJo5kKUqSqa7suFjW0s7j4CTlG5dMSpM9yYGkk40SGEzkd0RBiDCjyJJkMEcRFE5UHDGSl+vogJIIRAgYYnRJbsUbh3aEWIu+GN9sYa9FIgMsF2EkAnIFRA+KBnA5GRoaFSQIiopSYgUVkJAOJQYOlQ+Nj5AYCiuUD51wpA5nLX2YDoGNtba3Brm5iLcbAb+/GwsMxMW8tcDJw8XEx43JwBu6u70AvdfYVwHOcNYtBQnhjQPkLAMI4eJw5OwBJeDpQ7UC7LRj6fbI7K8jBtwBBw64W0GAgIkA/FoYqGNQhAB+AgoUyCemTh8BufhJ5PYDwAGGNXLZi1ig4RUCdQ4leNswQCQJAhIT0ihQp0RLAxQlUpwRwIBJETcp0ssWNNsKiXBCAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmS5CRAkmGzriokkJW9NLkgZz+UCEbbb42Eg7WgjhMXyCCaHDqMMuQlIlgvnyDHMwaajxZIS0IoMw6boIDuMlhavebPojg5ukdgCsQkQRSUOUS0EFBRAJAwROgwMCwVzOhcYGBIkBo6OCSuSEpWVDCUFC5pZc5SVFlQlmY+SqaI1Bp1zspK4ubkBBb29A7p0g8MDCAnHyMC4CxrNzhjGyMfKkszOzRi8vgXUuArDg93B4+QmBGVzAOguAAQICHlmAfPrJgfv8JL09CXu+Ab1nKjbV8/Au3i5Bs4jwYsAgFaBWgwQJyLAwxoFDBigOGJiLTMCNEbc0GsEgIkDAi0GybhxhIBeH1HOGaAxkkuYJGSaIaDx48sCHwN4nMOtxM+PVZDmOlquUCItIQAAIfkEBQcAGwAsAAAAACQAJAAABf/gJo5kKTqOqa7siDwP0s6jkBjlG5eJM9AkBINRCMJko4NEwgCODMOFcTeCLBPO0WKIE+mQm8Qykh0Vhk2RAdYVLCWH8ijBfXbDyxTNUCQJFgsCKwMRET8jAQsPBCQHCQkIh3IuFBYWECQFj49xkwQQlpZSJAMIm1hylZYSYCWaj5OVFAsBLQF9cgSjk7y9vgTAwL4idGhNBwjJyr4JGM7PFsjKyczP0BvBwsPFaMPe3zOSZQU+4QbnkxkaGg6CJgIF5+hy6usYuyID8ny8BRXr6/SIiHfOXS8F9SqUICBOhDYVAAIEAODHgQRcLAYUKGBQIiKJtfptRDRgQMgNIHknEdhocENJEiBPOoFXgBGphjHLaMSYD2dKnS17qpgI7iU4iCUpZgkBACH5BAUHABsALAAAAAAkACQAAAX/4CaOZCkui6mu7GgwjNHO5FGUb1wiKU0aicTgB5O5Ho+eb1MIIoi6kQP5XIqCiZsoZ9wgkA7raIANiAow7Qb56IoPQXVB/U3SAgUCoBRsOcJ8DEMuCAgHYioHERISgCIEhYUGZogDDoyMCSYHkYeIi4wQniUABJyjVqCaMwSUYmQCiLKztCUDt7extTwoKEwGwMG6sggWxscSBcHCtMXHxhIbuLm1Xr2+1dnaLcOIgjMCcwSyFxgYDCwEc3nk5hgWqyPh64OyEu7nJAPi2QnlGNH0dRNxi0WBDBnUiGAQwYeAgiscaNBQYVYAXHtEBHA1YKIGJVZwkdi4UcrEDANpJogcQdKVAAwTHTm85WpDSxILJga0IqCmTZIlHFRQSOvmNhUlxYQAACH5BAUHABsALAAAAAAkACQAAAX/4CaOZLkFCBKYbOuKRZIUbz0GBlHGc2kkAhupkNrJaKMCg4EQjgipAyB5JC2WBqcIcEjpYFWRYbnQklJN0UA2GC0ZSPPG4B0N2uJlQkjA3w4HKywCCwtBZ2VDBgYFh3IjBg+SiWqLi3FyC5KSaSMCBZZZcpsPDqImA5aPDqWdLn5yro+ztLMCt7i1GwcyvQIEBcHCtQcSxscQwMLBxMfIG7i5xL0yjrrX2CZTswSUL3ewThQWFguCJQHgd4/j5BKyG+rWWgQQ5OTeAuDnswgS5BBKCOC3AUCAANtYXLiATtOXFwcPjijkBgMGCbQiTtSggdIFi3vkRDzngKODihgYJ5oZSaKkhpMjLFhksFJiS5MkEliMYMagCZcw3WDEBjQbiwEWw9UIAQAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmQpHoepruxIIAjRzmQxlG9cFilNEgaD4AeTjQaJhMF3DBaIuhEi+WSKgoabKGfcFJII60iAJcFGgWRCK/YG2btkbzYYloKtpMmAsIsGBQVdbSMFCwwMCSQCgYFwVgIJiIhLOI2DTIeIC1UmjIKEhwuVLX5iZISpqqsbACUBrHwwZwO1tgOwqQYPvL0Ot7a5hLu9vA4AAcnKsbNnrM/QLQGubUimKsrCVhESEoor2dpM3N0QcyLh04QDDt3d3+jK1KoH5A4kyCYFGRmdOBQUMEl6pKKCBg33ROgRscCCBQipFhzUoCUBBgzwKDgMcyrDwYQbGFxkMKKhBQriZi04OIjBj0gMJNFJcLhAjISDNUe8jCkCgcMHYgpUACliZ4kFEDClMhpNhcM2IQAAIfkEBQcAGwAsAAAAACQAJAAABf/gJo5kKRaFqa7sOBjG0M7kIJRvXBJGQNcoHExGQiBSP5EARagNR4CDsZkUEVA3UY64IRgPgOoIhdwIYNmNFCEGFtKCtBdh+KVJBKoqcDj4SAV1JAIDhX9tLgmKBziFNogiB4qKZSIBjoWIkwkIXCWXmW2TlSoAh20Fp5CrrFUBr7CtgTAwG7C3rAUMu7wLt7Grury7CyZhubS1rcvMLAMOpElsLQIOGhoZiA/b0yYLGNfYiA7bDw6CI9bhFdE/C+UP3RsV1xkKrQbkD8VjEg53Gy5ccBYhgqcNCPjNkIABA4MRRkYkkOAPUoKGGCBasDBNQASKjNpcaPhQxIKNCicuSojQhkFDCyROWlC4AQLFBGIiNMQ5QibNAxRLVpEg1CTKEgkcHITks9kKim1CAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmQpEoSpruwoFIXQzqRcvnE5FPQ9DIEazCYSGAyp3ug3EOZGhWNTKWI6iYMjjyoKMAHQrehoIHIFP1bWIGYBAkHddHUsAQiFeBeu55YOCAgGJHx8YH4BBoGBSSNvhX4bgIEHLXyRkwSHLZtUAY2RoaKhAw6mpgujGzswMAEYGrGyqaQJtrcIsLKxtJEDt7ilpw4KqqytfarKyyYMoUY0DBcYF5ELDAyDKgkWGN7VftfYC20bDN7eEs8J2NjaIhLfCaoF4vMkEc4kBBQUoCUPHphQZGYFBAsWeh2oJAJBwF5cECC0MOKABAkMNzgI+E5JAAkIeyW4eG+Dw4DhEClK0DNSQkmNARFweYBQ5oiWLw085EIAAsQNOEsg+CkqKDMTAiBAKDgjBAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmS5AcMAmGzrjukrk0AQmHEpDHNp36UcqVDg9UQ/IMw4IhAFx1GSJNwIiIQo6SdNKZ0F7ZaLVF6Ls4LEAR3VAqsWIRukjyoaTWYh1hn+YSMOeXkVgWIFf39MIgoYhBl9igYFbTqDepKLMgMOh1qMfaKjogympgmkInOsGxYYsLGpowi1tgevsbCzora3G6eoqhusc8PHyC0LdloFSiwBCxQWFH0J158kCBIW3dVi19cIoQvd3RDMUQfhCZ8Q3giqAwjXByQEDwvPAxERoSMCFiywJCJRDwcSJPD6M8KAsD4HEkpoY+DBAwMjFpjK1gNCQl4ILMYT4ZABHy0JEilC0CaShEYGGKMwSGhvRMgHIwuaytmjEy8RN3luMJCAIK2WyUw4YKMlBAAh+QQJBwAbACwAAAAAJAAkAAAF/+AmjmQpBoGpruyIom08FpVTvmkpyKWkaQsSTjgY7Hgixw9z3AxHRSNSJMj8bKcXKTodLX6agSu3AUTJ3cp1BABspbIIo1TIZAqsokkgJkkwGBcJXSoEBQV9IgyAgBKEUIeHTSIJFowXj4aHBCwMF4GZkjJzjxuTpaipXQusrAiqfFFiEha1tq+lAga7vAW0trW4j7q8u3itrrCyiarNzioCCcxIAZwxCRESEY8HCAgEbiYHEBLl24Td3gcmCeXlDtM8AQbe3tZJ5uuq6QZbDIMlHjxokQAgG0NoViwQKOzQjIL6CBkQOFBEAQYM8DgpKO2RA4YjDGDsZ5EjIQQCsSWIEMmApAgEBTUiWfjA5QaWNgcUtMljgbCVI+lEVIXzmcIgXUIAADs=) no-repeat 3.264rem;-webkit-background-size:.48rem .48rem;background-size:.48rem;text-indent:.8rem}.listview-loading a[data-v-2eaaeabd]{text-decoration:underline;color:#e4007f}.no-background[data-v-2eaaeabd]{background:transparent}.v-skeleton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAMsCAYAAACvFuLjAAAN70lEQVR4nO3d0XLa1hqA0Q0InNh9/yc1nhHY1rlI3dNmek6BQHG+rHUnj4F9kfmy/UtIq3k+LAOAlPW9FwDA9Yk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETfdeAH+13z/fewn8i56efrv3EoiycwcIEneAIHH/hJZlcfwLHcMtrOb54F/aJ2Lm/msxc+dW7NwBgsQdIEjcP6F7z4Adm7nz8zNz/2TM3H8tZu7cirgDBBnLAASJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtA0HSrN35/fx/H42G8vb15rBjAd1ar9Zimaex2u9u8/zWfxHQ8HsbhcPj2xqvVWG82Y71ejzFW1/oIgIRlWcb7+9t4f3v742ePj09jtbpOL68S99fX45jneaxWqzFtb/O/EEDd8TCPMa7zbN0fjvvHA523u4cfXgwA3yI/Tdvx8HB5V3/ohOp+/zw2m0nYAa5ou3sYr6/H8fKyv/g9Lo77fv88pu12rDebiz8cgL+33T2MZRnj5eXlotdfFPePHftq5UpKgFvZ7nZjWd7H6+vx7NeefSnkx4f8vx37x0kB/sr4CjjXdvcw5vnbDP4cZ2+953kWKYB/0Waa/rh45VRnxf14PFztGkwATrNen39u86y4Hw6Hk69j//5bqY59Sxe43HqzGfN8+sj7ZmdEv9/hO/YXD3C5zWY668TqyXF/f38XKICfxMlxPx4PrmkH+EmcHPe3t7ffbwJ2mnvPtD/7McAtnVzrb3E6fSxz75n2Zz8GuKWT475are0+AX4SJ8d9mqbx/v72z78IwN2dHPfdbveXm8r/k3vPtD/7McAtuc79TscAt+S2jgA/gePhML58+Xry758V98fHJ3d8BLiLZWzO+K7RWXE/Z7Rw75n2Zz8GONXr8TC2Zz6f+uyxzNPTbyft3u890/7sxwCnWpZl7Hbnxf3sh3WMMcY0bcfx8L/v6+5+7wDXcTzM4+npt7Nfd9EJ1YeHh7FarcbxcLjk5QCc4HiYx9evjxe99uKrZR4fn34PvBOsANf2EfZz7un1Z6t5PvzQmb7X1+OY53lspumip4UA8F+vx8NYluWiUcyf/XDcP3w832+92YzN5qJRPsAv69uYexnb7e7sk6d/52px/zDP81lPCwFgjC9fvp51Hfs/uXrcAbg/tx8ACBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwia9vvne68BgCubtruHe68BgCszlgEIEneAIHEHCBJ3gKDVsizLvRcBwHXZuQMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETc/7l3uvAYArs3MHCBJ3gCBxBwgSd4Cg1bIsy70XAcB12bkDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETc/7l3uvAYArs3MHCBJ3gCBxBwgSd4Cg1bIsy70XAcB12bkDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETc/7l3uvAYArs3MHCBJ3gCBxBwgSd4Cg1bIsy70XAcB12bkDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QNB/ANQUlnozllhCAAAAAElFTkSuQmCC);-webkit-background-size:cover;background-size:cover;min-height:100vh;position:absolute;top:0;left:0;width:100%;height:100%}.index-container .lightart-container{padding-bottom:16.05333rem;opacity:0;max-width:10rem;margin:0 auto}.index-container .lightart-container.actived{padding-bottom:1.6rem;opacity:1}.index-container .header-right-button{font-size:.64rem}.ltart-sectionlist-col-item{max-width:10rem;overflow-x:hidden} +/*! inline-style-start */.header{height:2.26667rem;line-height:1.17333rem;overflow:hidden;font-size:.37333rem;background-color:#fbfbfa;text-align:center;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;position:relative}@media screen and (-webkit-min-device-pixel-ratio:2){.header{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.header .header-title{height:1.17333rem;line-height:1.17333rem;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.header .header-title>h1{font-size:.48rem;font-weight:400;max-width:100%;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;width:auto}.header .header-title>sub{font-size:.34667rem;vertical-align:baseline;color:#98989f}.header .header-left,.header .header-right{z-index:2;height:1.17333rem;line-height:1.17333rem;position:relative}.header .header-left{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.header .header-left,.header .header-right{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0}.header .header-left-button,.header .header-right-button{display:block;padding:0 .4rem;height:100%;font-size:.42667rem}.header .header-left-button:active,.header .header-right-button:active{opacity:.3}.header .header-left-button .icon-back,.header .header-right-button .icon-back{font-size:.69333rem}.header .header-left-button .icon-home,.header .header-right-button .icon-home{font-size:.53333rem}.header .header-left-button{padding-right:.13333rem}div.is-android-mini-app,div.is-android-mini-app .header{height:auto}.index-header-container.sticky{position:absolute;height:100vh;top:0;bottom:0;left:0;right:0;background-color:#fff;z-index:1400}.index-header.header{position:relative;background-image:none;background-color:#f9f9fa;width:100%}.index-header.header a{color:#585c64}.index-header.header .top-logo{float:left}.index-header.header .top-logo i{width:.02667rem;height:.53333rem;margin:0 .18667rem;background:#eaebef;border-radius:.05333rem;display:inline-block;vertical-align:middle}.index-header.header .top-logo img{margin-left:.26667rem;width:2rem;height:.50667rem}.index-header.header .top-logo span{color:#98989f;line-height:.53333rem;vertical-align:middle}.index-header.header .v-search{height:100%;overflow:hidden;background-color:transparent}.index-header.header .v-search .search-header,.index-header.header .v-search .searchbar{background-color:transparent}.index-header.header .v-search .searchbar{position:relative}.index-header.header .v-search .searchbar,.index-header.header .v-search .searchbar-back,.index-header.header .v-search .searchbar-btn,.index-header.header .v-search .searchbar-inner{display:block}.index-header.header .v-search .searchbar-back{position:absolute;left:0;top:0;bottom:0}.index-header.header .v-search .searchbar-btn{position:absolute;right:0;top:0;bottom:0}.index-header.header .v-search .searchbar,.index-header.header .v-search .searchbar-back,.index-header.header .v-search .searchbar-btn{height:1.17333rem;line-height:1.17333rem}.index-header.header .v-search .searchbar-btn{font-size:.37333rem}.index-header.header .v-search .searchbar-back,.index-header.header .v-search .searchbar-btn{width:1.17333rem;-webkit-box-sizing:border-box;box-sizing:border-box}.index-header.header .v-search .search-inner,.index-header.header .v-search .searchbar{width:auto;overflow:hidden}.index-header.header .v-search .searchbar-inner-close{width:9.46667rem;margin:0 .26667rem .13333rem;position:relative;z-index:7;padding-right:0;border-radius:2.66667rem;border:.02667rem solid #ccc}.index-header.header .v-search .searchbar-inner-close:before{background-color:transparent}.index-header.header .v-search .searchbar-inner{width:7.6rem;margin:.18667rem auto;position:relative;z-index:7;padding-right:0;border-radius:2.66667rem}.index-header.header .v-search .searchbar-core,.index-header.header .v-search .searchbar-inner:before{background-color:transparent}.index-header.header .v-search .search-body{height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;will-change:scroll-position;-webkit-overflow-scrolling:touch;padding-top:0}.index-header.header .v-search .search-header{position:static}.index-header.header .v-search .search-bar{background-image:none}.index-header.header.header.hack-fixed{display:block}.index-header.header.header.hack-fixed .header-left,.index-header.header.header.hack-fixed .header-right{display:block;float:right}.index-header.header.header.hack-fixed .header-right{float:right}.index-header.header.header .header-left,.index-header.header.header .header-right{width:1.17333rem;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.index-header.header.header .header-right-button{padding:0 .24rem}.index-header.header.header .header-left-button{padding:0}.index-header.header.header .header-left-button.text{font-size:.34667rem}.index-header.header.header .icon-member{font-size:.64rem}.index-header.header.header .icon-classify{width:.64rem;height:.64rem;display:block}.index-header.header.header .icon-classify:after{content:"";width:.64rem;height:.64rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAAEgBckRAAAAAXNSR0IArs4c6QAAAb9JREFUaAXtV9FtAyEMJVWHuBGaJU7NYo3SLdJlUt0S6Qi3QvrT9p1kZKgBX4XTEMEPYB42fjb4bnO5fH45oT0IskV0jYVNW6daTdU9b0jGrq7T2+1ToBBzSQZQMmUDDWxiv+FvLEkOSrJ7cXo1SyyGquEjR8VM8jWMh2Fwp9P7rzRL4SAPDEBwPn+gExs/gBa3OlVFyxmhuYGAInDMaYgPdjy+LSItDuAgi3LKAe5BBgvV23WDXP34PwqDLLIwYH7RzA34IO92z26e5yxLeOC0OFLkDUC55oXU4siAOUXdAFGd7NunyKcpqlWu4KDYoGlxxJn5W+Q90N5QLY488Aa0N1SLIwPtZ1H3gGKZ7M0p8mmqvaFaHLlkfpPNKTL3gKiy6s0Zsjo46fVJSgL00zS5/f6l+BnG9/AxStPh8OrGcVzEtfVxW2IKUd3MfeZxJfE43h/PY3xpntvffAp1B0rht17vEbBmuKS/+QiIdQDvOL6d6fkqsSCt028K1mrr4/bEOsABtz4WI1C7ctbWx0kVI0Cp0ysxp8po3Pwr1B0wygy12h4BNVVGQLEO1K6ctfVxLsQ6wAG3Pu534L8j9A0FpO2FAWiBwgAAAABJRU5ErkJggg==);display:block;-webkit-background-size:cover;background-size:cover;background-repeat:no-repeat;position:absolute;top:50%;transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0)}.index-header.header.header.open{line-height:normal}.index-header.header.header.open .v-search{background-color:#fff}.index-header.header.header.open .v-search .search-header{position:absolute}.index-header.header.header.open .v-search .search-body{padding-top:1.2rem}.index-header.header.header.open .v-search .search-inner,.index-header.header.header.open .v-search .searchbar{margin:0}.index-header.header.header.open .header-title{line-height:normal;width:100%;margin-top:0}.index-header.header.header.open .header-left,.index-header.header.header.open .header-right{display:none}.search-list-wrapper{height:100%;overflow:scroll}.search-page-container{height:100%}.close{position:relative;height:2.13333rem}.close .index-header.header{position:relative;background-image:none;background-color:#f9f9fa;width:100%}.close .index-header.header a{position:absolute;top:50%;left:50%;width:100%;height:100%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.close .index-header.header .v-search{width:100%}.close .index-header.header.header.hack-fixed .header-left,.close .index-header.header.header.hack-fixed .header-right{overflow:hidden;position:relative}.close .index-header.header.header .header-title{width:100%;margin-top:.18667rem}.close .index-header.header.header .header-right-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:0}.close .index-header.header.header .icon-classify{width:.64rem;height:.64rem;display:block}.close .index-header.header.header .icon-classify:after{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);-webkit-transform:translate3d(-50%,-50%,0)}.header-search .index-header.header{background-color:#fff}.open-search{overflow:hidden;height:100%;max-height:100%}.open-search .container,.open-search .tab-bar{display:none}.open-search .header,.open-search .header-title,.open-search .search,.open-search .v-search{height:100%;overflow:hidden}@media screen and (-webkit-min-device-pixel-ratio:2){.index-header.header .searchbar-inner:before{border-radius:2.66667rem}} +/*! inline-style-end */.list .item-content:after,.list .item-content:before{content:"";display:table}.list .item-content:after{clear:both}.list{position:relative;margin:.53333rem 0}.list .list-header{padding:0 .4rem;line-height:.85333rem}.list .list-title{height:.64rem;line-height:.64rem;background-color:#fafafa;padding:0 .4rem}.list .list-footer{padding:0 .4rem;line-height:.48rem;margin-top:.18667rem}.list .list-item{width:100%;overflow-x:hidden;list-style-type:none;font-weight:400;background-color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.list .list-item+.list-item{position:relative}.list .list-item.align-top .item-content,.list .list-item.align-top .item-inner{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}@media screen and (-webkit-min-device-pixel-ratio:2){.list .list-item:not(:last-child) .item-inner{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}.list .list-item .item-title-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.list .list-item .item-subtitle,.list .list-item .item-text,.list .list-item .item-title-row{font-size:.37333rem;line-height:.53333rem}.list .list-item .item-text{color:#585c64;position:relative;display:-webkit-box;overflow:hidden;text-overflow:ellipsis; + /*! autoprefixer: off */-webkit-box-orient:vertical;-webkit-line-clamp:2}.list .list-item.disabled{color:#ccc}.list .list-item.disabled .item-content,.list .list-item.disabled .item-inner,.list .list-item.disabled .item-input,.list .list-item.disabled .item-label,.list .list-item.disabled .select,.list .list-item.disabled:after{color:#ccc!important}.list .list-item.more{position:relative}.list .list-item.more .icon-arrow-right,.list .list-item.more .icon-back{font-size:.53333rem;position:absolute;right:.4rem}.list .list-item.more .icon-back{top:50%;transform:translate3d(0,-50%,0) rotate(180deg);-webkit-transform:translate3d(0,-50%,0) rotate(180deg)}.list .list-item.more .item-inner{padding-right:1.09333rem}.list .list-item.more:not(.disabled):active{background-color:rgba(0,0,0,.1)}.list .list-item.unfold{position:relative}.list .list-item.unfold .icon-back{font-size:.53333rem;position:absolute;right:.32rem;top:50%;transform:translate3d(0,-50%,0) rotate(270deg);-webkit-transform:translate3d(0,-50%,0) rotate(270deg);margin-top:-.08rem}.list .list-item.unfold .item-inner{padding-right:1.09333rem}.list .list-item.unfold:not(.disabled):active{background-color:rgba(0,0,0,.1)}.list .list-item.fold{position:relative}.list .list-item.fold .icon-back{font-size:.53333rem;position:absolute;right:.32rem;top:50%;transform:translate3d(0,-50%,0) rotate(90deg);-webkit-transform:translate3d(0,-50%,0) rotate(90deg);margin-top:.10667rem}.list .list-item.fold .item-inner{padding-right:1.09333rem}.list .list-item.fold:not(.disabled):active{background-color:rgba(0,0,0,.1)}.list .list-item.media .item-left{padding-top:.26667rem;padding-bottom:.26667rem}.list .list-item.media .item-left img{display:block}.list .list-item.checkbox .item-inner,.list .list-item.media .item-inner,.list .list-item.radio .item-inner{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;display:block}.list .list-item.checkbox .icon-circle,.list .list-item.checkbox .icon-circle-selected,.list .list-item.checkbox .icon-multiple-choice-normal,.list .list-item.checkbox .icon-multiple-choice-selected,.list .list-item.radio .icon-circle,.list .list-item.radio .icon-circle-selected,.list .list-item.radio .icon-multiple-choice-normal,.list .list-item.radio .icon-multiple-choice-selected{font-size:.53333rem;color:#98989f}.list .list-item.checkbox .icon-circle-selected,.list .list-item.radio .icon-circle-selected{color:#64bd63}.list .list-item.checkbox input[type=checkbox],.list .list-item.checkbox input[type=radio],.list .list-item.radio input[type=checkbox],.list .list-item.radio input[type=radio]{display:none}.list .list-item.checkbox input[type=checkbox]:checked+.item-left .icon-circle-selected,.list .list-item.checkbox input[type=checkbox]:checked+.item-left .icon-multiple-choice-selected,.list .list-item.checkbox input[type=radio]:checked+.item-left .icon-circle-selected,.list .list-item.checkbox input[type=radio]:checked+.item-left .icon-multiple-choice-selected,.list .list-item.radio input[type=checkbox]:checked+.item-left .icon-circle-selected,.list .list-item.radio input[type=checkbox]:checked+.item-left .icon-multiple-choice-selected,.list .list-item.radio input[type=radio]:checked+.item-left .icon-circle-selected,.list .list-item.radio input[type=radio]:checked+.item-left .icon-multiple-choice-selected{color:#64bd63}.list .item-content{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-left:.4rem;line-height:.69333rem;-webkit-box-sizing:border-box;box-sizing:border-box}.list .item-right{font-size:.37333rem;white-space:nowrap;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-left:.26667rem}.list .item-inner{padding:.32rem .4rem .32rem 0;min-height:.69333rem;width:100%;position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.list .item-title{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:.42667rem}.list .item-left{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.list .item-left [class*=" icon-"],.list .item-left [class^=icon-]{font-size:.64rem}.list .item-left+.item-inner{margin-left:.26667rem}.search-list{height:100%;overflow:hidden}.search-list .list{height:100%;margin-top:0;overflow:scroll}.search-list .list-header{font-size:.32rem;color:#585c64;line-height:.58667rem;padding-top:.4rem}.search-list .item-title{font-size:.37333rem}.search-list .item-inner{padding:.4rem 0}.search-list .item-content{line-height:.64rem;padding-right:.4rem}.v-search{position:relative;width:100%;background-color:#fff}.v-search .searchbar,.v-search .searchbar-inner,.v-search .searchbar-inner-close{width:100%;height:1.2rem;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.v-search .search-header{position:absolute;top:0;left:0;right:0;z-index:2;background-color:#fff}.v-search .searchbar{background-color:#fff}.v-search .searchbar .searchbar-inner{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:.8rem;border-radius:.10667rem;background-color:#f3f4f5;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-right:.26667rem}.v-search .searchbar .searchbar-inner .placeholder{color:#98989f;font-size:.37333rem;left:.26667rem;text-align:left;right:0;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;position:absolute;top:50%;transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0)}.v-search .searchbar .searchbar-inner.center .placeholder{text-align:center;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);-webkit-transform:translate3d(-50%,-50%,0)}.v-search .searchbar .searchbar-inner-close{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:.8rem;border-radius:.10667rem;background-color:#f3f4f5;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-right:.26667rem}.v-search .searchbar .searchbar-inner-close .placeholder{color:#98989f;font-size:.37333rem;left:.26667rem;text-align:left;right:0;height:100%;overflow:hidden;line-height:.74667rem;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;position:absolute;top:50%;transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0)}.v-search .searchbar .searchbar-inner-close.center .placeholder{text-align:center;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);-webkit-transform:translate3d(-50%,-50%,0)}.v-search .searchbar .searchbar-core{border:0;outline:0;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-size:.37333rem;height:100%;width:100%;padding:.16rem .26667rem;-webkit-appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#f3f4f5;display:block;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.v-search .searchbar .searchbar-btn{width:1.6rem;text-align:center;height:1.2rem;line-height:1.2rem;font-size:.42667rem;display:block}.v-search .searchbar .searchbar-btn .icon-home{font-size:.53333rem}.v-search .searchbar .icon-close-round2{color:#ccc;font-size:.42667rem;padding:.13333rem 0 .13333rem .29333rem}.v-search .searchbar .searchbar-back{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 0 0 .37333rem;height:1.2rem;font-size:.42667rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.v-search .searchbar .searchbar-back:active{opacity:.3}.v-search .searchbar .searchbar-back .icon-back{font-size:.69333rem}.v-search .search-body{padding-top:1.2rem}.atmosphere-box[data-v-1c46ae7d]{display:inline-block;position:relative;position:absolute;bottom:50%;left:5%;z-index:999}.atmosphere-box .scorll-list[data-v-1c46ae7d]{position:relative;width:4rem;padding:0;margin:0}.atmosphere-box .scorll-list li[data-v-1c46ae7d]{position:absolute;bottom:0;left:0;right:0;width:4rem;height:.74667rem;line-height:.74667rem;opacity:0;font-size:.32rem;background:#f8f8f8;border-radius:.37333rem;list-style:none;-webkit-transition:all .5s linear;transition:all .5s linear}.atmosphere-box .scorll-list li img[data-v-1c46ae7d]{width:.48rem;height:.48rem;border-radius:50%;padding:0 .13333rem;line-height:.48rem}.atmosphere-box .scorll-list li.step1[data-v-1c46ae7d]{-webkit-transform:translateY(-1.01333rem);transform:translateY(-1.01333rem);opacity:1}.atmosphere-box .scorll-list li.step2[data-v-1c46ae7d]{-webkit-transform:translateY(-2.02667rem);transform:translateY(-2.02667rem);opacity:.8}.atmosphere-box .scorll-list li.step3[data-v-1c46ae7d]{-webkit-transform:translateY(-3.04rem);transform:translateY(-3.04rem);opacity:0}.button[data-v-da12f782]{border:.02667rem solid #98989f;color:#98989f;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#222}.button input[type=button][data-v-da12f782],.button input[type=submit][data-v-da12f782]{width:100%}.button[data-v-da12f782]:active{color:#7e7e86;border-color:#7e7e86}.button.button-round[data-v-da12f782]{border-radius:.8rem}.button.active[data-v-da12f782]:active{color:#7e7e86;border-color:#7e7e86}.button.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button.button-small.loading[data-v-da12f782]{min-height:.64rem}.button.button-fill[data-v-da12f782]{color:#fff;background:#98989f;border-color:#98989f;line-height:.8rem}.button.button-fill.active[data-v-da12f782],.button.button-fill[data-v-da12f782]:active{background:#7e7e86;border-color:#7e7e86}.button.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#98989f;background-color:transparent;border:0}.button i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button.loading[data-v-da12f782]{min-height:.85333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.button.border-radius[data-v-da12f782],.button.border[data-v-da12f782]{border:0}}.button-fill.loading[data-v-da12f782]:after{border-color:#fff;border-right-color:transparent;border-top-color:transparent}.button-default.button-fill[data-v-da12f782]{background-color:#fdfdfd;color:#222;border:.02667rem solid #ccc;line-height:.8rem}.button-default.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-primary[data-v-da12f782]{border:.02667rem solid #de3c96;color:#de3c96;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-primary input[type=button][data-v-da12f782],.button-primary input[type=submit][data-v-da12f782]{width:100%}.button-primary[data-v-da12f782]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-round[data-v-da12f782]{border-radius:.8rem}.button-primary.active[data-v-da12f782]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-primary.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-primary.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-primary.button-fill[data-v-da12f782]{background:#de3c96;border-color:#de3c96}.button-primary.button-fill.active[data-v-da12f782],.button-primary.button-fill[data-v-da12f782]:active{background:#c6217d;border-color:#c6217d}.button-primary.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-primary .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#de3c96;background-color:transparent;border:0}.button-primary i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-primary i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-primary i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-primary.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-primary.button-fill[data-v-da12f782]{background-color:#de3c96;color:#fff;border:.02667rem solid #de3c96;line-height:.8rem}.button-primary.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-success[data-v-da12f782]{border:.02667rem solid #46c33b;color:#46c33b;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-success input[type=button][data-v-da12f782],.button-success input[type=submit][data-v-da12f782]{width:100%}.button-success[data-v-da12f782]:active{color:#389c2f;border-color:#389c2f}.button-success.button-round[data-v-da12f782]{border-radius:.8rem}.button-success.active[data-v-da12f782]:active{color:#389c2f;border-color:#389c2f}.button-success.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-success.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-success.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-success.button-fill[data-v-da12f782]{color:#fff;background:#46c33b;border-color:#46c33b;line-height:.8rem}.button-success.button-fill.active[data-v-da12f782],.button-success.button-fill[data-v-da12f782]:active{background:#389c2f;border-color:#389c2f}.button-success.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-success.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-success .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#46c33b;background-color:transparent;border:0}.button-success i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-success i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-success i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-success.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-danger[data-v-da12f782]{border:.02667rem solid #ec5042;color:#ec5042;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-danger input[type=button][data-v-da12f782],.button-danger input[type=submit][data-v-da12f782]{width:100%}.button-danger[data-v-da12f782]:active{color:#e42817;border-color:#e42817}.button-danger.button-round[data-v-da12f782]{border-radius:.8rem}.button-danger.active[data-v-da12f782]:active{color:#e42817;border-color:#e42817}.button-danger.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-danger.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-danger.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-danger.button-fill[data-v-da12f782]{color:#fff;background:#ec5042;border-color:#ec5042;line-height:.8rem}.button-danger.button-fill.active[data-v-da12f782],.button-danger.button-fill[data-v-da12f782]:active{background:#e42817;border-color:#e42817}.button-danger.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-danger.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-danger .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#ec5042;background-color:transparent;border:0}.button-danger i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-danger i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-danger i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-danger.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-warning[data-v-da12f782]{border:.02667rem solid #f60;color:#f60;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-warning input[type=button][data-v-da12f782],.button-warning input[type=submit][data-v-da12f782]{width:100%}.button-warning[data-v-da12f782]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-round[data-v-da12f782]{border-radius:.8rem}.button-warning.active[data-v-da12f782]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-warning.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-warning.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-warning.button-fill[data-v-da12f782]{color:#fff;background:#f60;border-color:#f60;line-height:.8rem}.button-warning.button-fill.active[data-v-da12f782],.button-warning.button-fill[data-v-da12f782]:active{background:#cc5200;border-color:#cc5200}.button-warning.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-warning.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-warning .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#f60;background-color:transparent;border:0}.button-warning i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-warning i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-warning i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-warning.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.buttons-row[data-v-da12f782],.buttons-tab[data-v-da12f782]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.buttons-row .button[data-v-da12f782]{border-radius:0;width:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;border-color:#585c64;color:#585c64;margin-left:-.02667rem;display:block}.buttons-row .button.active[data-v-da12f782]{background-color:#585c64;color:#fff}.buttons-row .button[data-v-da12f782]:first-child{border-radius:.10667rem 0 0 .10667rem;margin-left:0;border-left-width:.02667rem;border-left-style:solid}.buttons-row .button[data-v-da12f782]:last-child{border-radius:0 .10667rem .10667rem 0}.buttons-row .button[data-v-da12f782]:not(:last-child){border-right-color:transparent}.buttons-row .button.button-round[data-v-da12f782]:first-child{border-radius:.72rem 0 0 .72rem}.buttons-row .button.button-round[data-v-da12f782]:last-child{border-radius:0 .72rem .72rem 0}.buttons-tab[data-v-da12f782]{background:#fff;position:relative}@media screen and (-webkit-min-device-pixel-ratio:2){.buttons-tab[data-v-da12f782]{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.buttons-tab .button[data-v-da12f782]{color:#585c64;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:.42667rem;width:100%;height:1.06667rem;line-height:1.06667rem;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block;border:0;border-bottom:.05333rem solid transparent;border-radius:0}.buttons-tab .button.active[data-v-da12f782]{color:#585c64;border-color:#585c64}.border-t[data-v-da12f782]{border-top:1px solid #ccc}.border-b[data-v-da12f782],.border-tb[data-v-da12f782]{border-bottom:1px solid #ccc}.border-tb[data-v-da12f782]{border-top:1px solid #ccc;background-image:none}.border-l[data-v-da12f782]{border-left:1px solid #ccc}.border-r[data-v-da12f782]{border-right:1px solid #ccc}.border[data-v-da12f782]{border:.02667rem solid #ccc}.border-radius[data-v-da12f782]{border:1px solid #ccc;border-radius:2px}@media screen and (-webkit-min-device-pixel-ratio:2){.border-radius[data-v-da12f782]{position:relative;border:0}.border-radius[data-v-da12f782]:before{content:"";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid #ccc;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;pointer-events:none}}@media screen and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-da12f782],.border-l[data-v-da12f782],.border-r[data-v-da12f782],.border-t[data-v-da12f782],.border-tb[data-v-da12f782]{border:0}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-t[data-v-da12f782]{background-position:0 0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-da12f782],.border-t[data-v-da12f782]{border:0;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px}.border-b[data-v-da12f782]{background-position:0 100%;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-tb[data-v-da12f782]{border:0;background-position:top,bottom;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-da12f782]{background-position:0 0;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(270deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-da12f782],.border-r[data-v-da12f782]{border:0;background-repeat:repeat-y;-webkit-background-size:1px 100%;background-size:1px 100%}.border-r[data-v-da12f782]{background-position:100% 0;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(90deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border[data-v-da12f782]{position:relative;border:0}.border[data-v-da12f782]:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;-webkit-background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-repeat:no-repeat;background-position:top,100%,bottom,0;padding:.02667rem;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0),linear-gradient(270deg,transparent 50%,#ccc 0),linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(90deg,transparent 50%,#ccc 0)}}.hot-search .hot-list p[data-v-da12f782]{white-space:normal;word-wrap:break-word;word-break:break-all}.hot-search[data-v-da12f782]{padding:.4rem .4rem 0;margin-top:-.16rem}.hot-search .hotbar[data-v-da12f782]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;font-size:.32rem}.hot-search .hot-list[data-v-da12f782]{margin:.13333rem 0;padding-bottom:.50667rem}.hot-search .hot-list .button[data-v-da12f782]{color:#5d78ab;font-size:.32rem;padding:0 .4rem;line-height:.74667rem;height:.74667rem;max-height:.74667rem;margin:.13333rem .13333rem .16rem 0;max-width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;float:left}.hot-search .hot-list p[data-v-da12f782]{max-width:100%;height:100%;overflow:hidden}.hot-search .hot-list .highlight[data-v-da12f782]{color:#e4007f;border-color:#f7add6}.hot-search .search-list-button[data-v-da12f782]{margin:.32rem .21333rem 0 0;float:left}@media screen and (-webkit-min-device-pixel-ratio:2){.hot-search .border-radius[data-v-da12f782]:before{border:.02667rem solid #c4cddc}.hot-search .highlight[data-v-da12f782]:before{border-color:#f7add6}}.button[data-v-8b35437c]{border:.02667rem solid #98989f;color:#98989f;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#222}.button input[type=button][data-v-8b35437c],.button input[type=submit][data-v-8b35437c]{width:100%}.button[data-v-8b35437c]:active{color:#7e7e86;border-color:#7e7e86}.button.button-round[data-v-8b35437c]{border-radius:.8rem}.button.active[data-v-8b35437c]:active{color:#7e7e86;border-color:#7e7e86}.button.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button.button-fill[data-v-8b35437c]{color:#fff;background:#98989f;border-color:#98989f;line-height:.8rem}.button.button-fill.active[data-v-8b35437c],.button.button-fill[data-v-8b35437c]:active{background:#7e7e86;border-color:#7e7e86}.button.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#98989f;background-color:transparent;border:0}.button i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button.loading[data-v-8b35437c]{min-height:.85333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.button.border-radius[data-v-8b35437c],.button.border[data-v-8b35437c]{border:0}}.button-fill.loading[data-v-8b35437c]:after{border-color:#fff;border-right-color:transparent;border-top-color:transparent}.button-default.button-fill[data-v-8b35437c]{background-color:#fdfdfd;color:#222;border:.02667rem solid #ccc;line-height:.8rem}.button-default.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-primary[data-v-8b35437c]{border:.02667rem solid #de3c96;color:#de3c96;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-primary input[type=button][data-v-8b35437c],.button-primary input[type=submit][data-v-8b35437c]{width:100%}.button-primary[data-v-8b35437c]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-round[data-v-8b35437c]{border-radius:.8rem}.button-primary.active[data-v-8b35437c]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-primary.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-primary.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-primary.button-fill[data-v-8b35437c]{background:#de3c96;border-color:#de3c96}.button-primary.button-fill.active[data-v-8b35437c],.button-primary.button-fill[data-v-8b35437c]:active{background:#c6217d;border-color:#c6217d}.button-primary.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-primary .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#de3c96;background-color:transparent;border:0}.button-primary i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-primary i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-primary i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-primary.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-primary.button-fill[data-v-8b35437c]{background-color:#de3c96;color:#fff;border:.02667rem solid #de3c96;line-height:.8rem}.button-primary.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-success[data-v-8b35437c]{border:.02667rem solid #46c33b;color:#46c33b;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-success input[type=button][data-v-8b35437c],.button-success input[type=submit][data-v-8b35437c]{width:100%}.button-success[data-v-8b35437c]:active{color:#389c2f;border-color:#389c2f}.button-success.button-round[data-v-8b35437c]{border-radius:.8rem}.button-success.active[data-v-8b35437c]:active{color:#389c2f;border-color:#389c2f}.button-success.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-success.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-success.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-success.button-fill[data-v-8b35437c]{color:#fff;background:#46c33b;border-color:#46c33b;line-height:.8rem}.button-success.button-fill.active[data-v-8b35437c],.button-success.button-fill[data-v-8b35437c]:active{background:#389c2f;border-color:#389c2f}.button-success.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-success.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-success .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#46c33b;background-color:transparent;border:0}.button-success i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-success i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-success i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-success.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-danger[data-v-8b35437c]{border:.02667rem solid #ec5042;color:#ec5042;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-danger input[type=button][data-v-8b35437c],.button-danger input[type=submit][data-v-8b35437c]{width:100%}.button-danger[data-v-8b35437c]:active{color:#e42817;border-color:#e42817}.button-danger.button-round[data-v-8b35437c]{border-radius:.8rem}.button-danger.active[data-v-8b35437c]:active{color:#e42817;border-color:#e42817}.button-danger.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-danger.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-danger.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-danger.button-fill[data-v-8b35437c]{color:#fff;background:#ec5042;border-color:#ec5042;line-height:.8rem}.button-danger.button-fill.active[data-v-8b35437c],.button-danger.button-fill[data-v-8b35437c]:active{background:#e42817;border-color:#e42817}.button-danger.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-danger.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-danger .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#ec5042;background-color:transparent;border:0}.button-danger i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-danger i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-danger i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-danger.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-warning[data-v-8b35437c]{border:.02667rem solid #f60;color:#f60;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-warning input[type=button][data-v-8b35437c],.button-warning input[type=submit][data-v-8b35437c]{width:100%}.button-warning[data-v-8b35437c]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-round[data-v-8b35437c]{border-radius:.8rem}.button-warning.active[data-v-8b35437c]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-warning.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-warning.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-warning.button-fill[data-v-8b35437c]{color:#fff;background:#f60;border-color:#f60;line-height:.8rem}.button-warning.button-fill.active[data-v-8b35437c],.button-warning.button-fill[data-v-8b35437c]:active{background:#cc5200;border-color:#cc5200}.button-warning.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-warning.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-warning .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#f60;background-color:transparent;border:0}.button-warning i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-warning i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-warning i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-warning.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.buttons-row[data-v-8b35437c],.buttons-tab[data-v-8b35437c]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.buttons-row .button[data-v-8b35437c]{border-radius:0;width:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;border-color:#585c64;color:#585c64;margin-left:-.02667rem;display:block}.buttons-row .button.active[data-v-8b35437c]{background-color:#585c64;color:#fff}.buttons-row .button[data-v-8b35437c]:first-child{border-radius:.10667rem 0 0 .10667rem;margin-left:0;border-left-width:.02667rem;border-left-style:solid}.buttons-row .button[data-v-8b35437c]:last-child{border-radius:0 .10667rem .10667rem 0}.buttons-row .button[data-v-8b35437c]:not(:last-child){border-right-color:transparent}.buttons-row .button.button-round[data-v-8b35437c]:first-child{border-radius:.72rem 0 0 .72rem}.buttons-row .button.button-round[data-v-8b35437c]:last-child{border-radius:0 .72rem .72rem 0}.buttons-tab[data-v-8b35437c]{background:#fff;position:relative}@media screen and (-webkit-min-device-pixel-ratio:2){.buttons-tab[data-v-8b35437c]{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.buttons-tab .button[data-v-8b35437c]{color:#585c64;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:.42667rem;width:100%;height:1.06667rem;line-height:1.06667rem;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block;border:0;border-bottom:.05333rem solid transparent;border-radius:0}.buttons-tab .button.active[data-v-8b35437c]{color:#585c64;border-color:#585c64}.border-t[data-v-8b35437c]{border-top:1px solid #ccc}.border-b[data-v-8b35437c],.border-tb[data-v-8b35437c]{border-bottom:1px solid #ccc}.border-tb[data-v-8b35437c]{border-top:1px solid #ccc;background-image:none}.border-l[data-v-8b35437c]{border-left:1px solid #ccc}.border-r[data-v-8b35437c]{border-right:1px solid #ccc}.border[data-v-8b35437c]{border:.02667rem solid #ccc}.border-radius[data-v-8b35437c]{border:1px solid #ccc;border-radius:2px}@media screen and (-webkit-min-device-pixel-ratio:2){.border-radius[data-v-8b35437c]{position:relative;border:0}.border-radius[data-v-8b35437c]:before{content:"";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid #ccc;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;pointer-events:none}}@media screen and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-8b35437c],.border-l[data-v-8b35437c],.border-r[data-v-8b35437c],.border-t[data-v-8b35437c],.border-tb[data-v-8b35437c]{border:0}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-t[data-v-8b35437c]{background-position:0 0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-8b35437c],.border-t[data-v-8b35437c]{border:0;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px}.border-b[data-v-8b35437c]{background-position:0 100%;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-tb[data-v-8b35437c]{border:0;background-position:top,bottom;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-8b35437c]{background-position:0 0;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(270deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-8b35437c],.border-r[data-v-8b35437c]{border:0;background-repeat:repeat-y;-webkit-background-size:1px 100%;background-size:1px 100%}.border-r[data-v-8b35437c]{background-position:100% 0;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(90deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border[data-v-8b35437c]{position:relative;border:0}.border[data-v-8b35437c]:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;-webkit-background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-repeat:no-repeat;background-position:top,100%,bottom,0;padding:.02667rem;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0),linear-gradient(270deg,transparent 50%,#ccc 0),linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(90deg,transparent 50%,#ccc 0)}}.search-history[data-v-8b35437c]{padding:.4rem .4rem 0}.search-history .historybar[data-v-8b35437c]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;font-size:.32rem}.search-history .history-list[data-v-8b35437c]{margin:.13333rem 0;padding-bottom:.50667rem}.search-history .history-list-button[data-v-8b35437c]{margin:.32rem .21333rem 0 0;float:left}.search-history .historybar[data-v-8b35437c]{padding:0}.search-history .historybar-clear[data-v-8b35437c]{color:#585c64;text-align:right;padding-left:.53333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.search-history .border-radius[data-v-8b35437c]:before{border:.02667rem solid #c4cddc}.search-history .border-b[data-v-8b35437c]{background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#e7e7e7));background-image:linear-gradient(180deg,transparent 50%,#e7e7e7 0)}}.tab-bar-container{position:relative;background-color:#f9f9fa;border-bottom:.02667rem solid #e5e5e5}.tab-bar-container .menu-name{display:block;padding:0 .08rem}.tab-bar-container .tab-bar-wrap{margin-right:1.06667rem;opacity:0}.tab-bar-container .tab-bar-wrap.fill-width{margin-right:0}.tab-bar-container .tab-bar-wrap .tab-bar__item{padding-right:.26667rem}.tab-bar-container .tab-bar-more{position:absolute;top:0;left:0;right:0;z-index:2}.tab-bar-container .tab-bar-more .more{width:1.06667rem;height:.90667rem;line-height:.90667rem;position:absolute;right:0;top:0;bottom:0;z-index:4;background:-webkit-gradient(linear,left top,left bottom,from(#e5e5e5),color-stop(#e5e5e5),to(hsla(0,0%,90%,0))) 0 100% no-repeat;background:linear-gradient(180deg,#e5e5e5,#e5e5e5,hsla(0,0%,90%,0)) 0 100% no-repeat;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;text-align:center}.tab-bar-container .tab-bar-more .more .icon-arrow-down,.tab-bar-container .tab-bar-more .more .icon-arrow-up{font-size:.48rem;display:inline-block}.tab-bar-container .tab-bar-more .more .icon-arrow-up{display:none}.tab-bar-container .tab-bar-more .channel-box{position:absolute;left:0;right:0;background-color:#fff}.tab-bar-container .tab-bar-more.open{display:block}.tab-bar-container .tab-bar-more.open .more{background-color:transparent;background-image:none}.tab-bar-container .tab-bar-more.open .more .icon-arrow-up{display:inline-block}.tab-bar-container .tab-bar-more.open .more .icon-arrow-down{display:none}.vui-tab-ink-bar{position:absolute;height:.05333rem;bottom:.02667rem;left:0;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent;text-align:center}.vui-tab-ink-bar-transition-forward{-webkit-transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1) .09s;transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1) .09s}.vui-tab-ink-bar-transition-backward{-webkit-transition:right .3s cubic-bezier(.35,0,.25,1) .09s,left .3s cubic-bezier(.35,0,.25,1);transition:right .3s cubic-bezier(.35,0,.25,1) .09s,left .3s cubic-bezier(.35,0,.25,1)}.vui-tab-ink-bar-transition-backward-v2,.vui-tab-ink-bar-transition-forward-v2{-webkit-transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1);transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1)}.vui-tab-ink-bar .vui-tab-bar-inner{display:block;height:100%;width:100%;background-color:#f90;position:absolute;top:0;left:50%;bottom:0;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.vui-tab-bar-top .vui-tab .vui-tab-ink-bar{top:0}.vui-tab{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:100%;position:relative;overflow:hidden;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.vui-tab button{padding:0;border:0;outline:0;background:0 0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vui-tab .vui-tab-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;white-space:nowrap;height:100%;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:.37333rem;text-align:center;color:#666}.vui-tab .vui-tab-item.tab-item-border{background:-webkit-gradient(linear,left top,left bottom,from(#e5e5e5),color-stop(#e5e5e5),to(hsla(0,0%,90%,0))) 0 100% no-repeat;background:linear-gradient(180deg,#e5e5e5,#e5e5e5,hsla(0,0%,90%,0)) 0 100% no-repeat;-webkit-background-size:100% .02667rem;background-size:100% .02667rem}.vui-tab .vui-tab-item.vui-tab-disabled{color:#ddd}.vui-tab-bar-top .vui-tab .vui-tab-item{background:-webkit-gradient(linear,left top,left bottom,from(#e5e5e5),color-stop(#e5e5e5),to(hsla(0,0%,90%,0))) 0 0 no-repeat;background:linear-gradient(180deg,#e5e5e5,#e5e5e5,hsla(0,0%,90%,0)) 0 0 no-repeat;-webkit-background-size:100% .02667rem;background-size:100% .02667rem}.vui-tab-item-badge{position:absolute;top:0;bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;height:.48rem;min-width:.48rem;padding:0 .10667rem;border-radius:.8rem;margin:auto 0 auto .10667rem;line-height:.48rem;font-size:.29333rem;-webkit-background-clip:padding-box;background-clip:padding-box;vertical-align:middle}.vui-tab-wrap{position:relative;background-color:#f9f9fa;padding-top:.90667rem}.vui-tab-container{height:100%;top:0;left:0;right:0;overflow:hidden;position:absolute}.scrollable{overflow-y:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch;-webkit-box-sizing:content-box;box-sizing:content-box}.scrollable::-webkit-scrollbar{display:none}.scrollable .vui-tab-ink-bar{bottom:.02667rem;position:absolute}.channel-list h3{font-size:.32rem;height:.90667rem;padding-left:.26667rem}.channel-list h3 p{line-height:.90667rem}.channel-list a,.channel-list p{color:#585c64}.channel-list .well-chosen-channel .current span{color:#d34ba8}.channel-list .well-chosen-channel li{float:left;width:25%;height:1.92rem;text-align:center;position:relative}.channel-list .well-chosen-channel li a{display:block;width:100%;height:100%}.channel-list .well-chosen-channel li div{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);width:100%}.channel-list .well-chosen-channel li i{display:block;width:.53333rem;height:.53333rem;-webkit-background-size:cover;background-size:cover;background-repeat:no-repeat;margin:0 auto}.channel-list .well-chosen-channel li span{display:block;margin-top:.21333rem;font-size:.32rem}.channel-list .well-chosen-channel li:after{content:"";position:absolute;right:0;top:0;bottom:0;height:100%;width:.05333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.channel-list .well-chosen-channel li:after{border:0;background-position:100% 0;background-repeat:repeat-y;-webkit-background-size:.02667rem 100%;background-size:.02667rem 100%;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(90deg,transparent 50%,#dbdbdb 0)}}.channel-list .well-chosen-channel li:before{content:"";position:absolute;right:0;left:0;width:100%;height:.05333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.channel-list .well-chosen-channel li:before{border:0;background-position:0 0;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(0deg,transparent 50%,#dbdbdb 0)}}.channel-list .well-chosen-channel li:nth-child(4n):after{display:none}.channel-list .more-channel li{float:left;width:25%}.channel-list .more-channel li:nth-child(4n) a{margin-right:.26667rem}.channel-list .more-channel li:nth-child(4n+1) a{margin-left:.26667rem}.channel-list .more-channel a{display:block;margin:0 .13333rem .26667rem;background-color:#f3f4f5;-webkit-box-sizing:border-box;box-sizing:border-box;height:1.01333rem;line-height:1.01333rem;font-size:.32rem;border-radius:.05333rem;text-align:center}.body-ll[data-v-1e6287ca]{border-radius:.16rem}.before-image[data-v-1e6287ca],.body-ll[data-v-1e6287ca]{width:7.46667rem;height:10.66667rem;position:relative}.before-image img[data-v-1e6287ca]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.btn-close[data-v-1e6287ca]{width:.77333rem;position:absolute;bottom:-.66667rem;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);height:.72rem;-o-object-fit:contain;object-fit:contain;-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAABGdBTUEAALGPC/xhBQAABW5JREFUaAXlmz1vHFUUhm0kUqCEBoEiUeAUQAGdIwEFUVLyB+KUKyjpY6T8AWpo0qR2foIrr4vICS1KhBBSLISoSEVEpCDw8jzjeybr3Z31fNzxLt4jvXtn7sd7zjt3Zu6dO7Nraytm633pHY1GF+D+BHwGPkx4l/RSAsna84TfSX9OeEj6w/r6+t+ky22IvAgGYBf8BdqabeWQ62JO1Vl6mKDeJ6hvwC3wRgpwRPoY7IMnwB78FfwJ7FnN3n4TvAc8Cz4C18HHIGJ7wfZ98C29/gvp4gyhG2AH/Au0I7APvgRvt43MtolDLjk1fehroy1v63Y4vQDugBdAM6j7wJ7OanIm7hCuT317j+jfcHQZPARhe2xc7duzPoC+wozhcq9+cbAJfksen5J+0avDGeT6BPrWjGVzRrXuWRDfBHEKD9l+qztrOwZ9A2PQjOlmO6aKVhBuy5zsLunrFVXPLNsYgLGEbWdxDttWYvyH9OsspBlJjAkYm9atpyHwmo3TeOnExnEjRkVrxtrumqahd+O4Qd0N8mVNiTVOb2NudvemgeNsDD1Dthd+zZ52oI0RGKtm7PXHaSo7sGve/hd2Nz5N5GS5saaYSUZ3Jstn7lPR6WJct2c+zs4MqkEmsTtOa2rYOLUplXasje2dWnlJKxh7oQAtc0OkkvNWJ+lHoPfp4txgOhQae9Kglur5PYX3gObjWG2j/hAcgNZPSFXO5Ezcjc442vgwo92byU3BJeCDt71bfVRmtKa+YrXHIJtouRInyehghuvKLOp7tqpFTdOLCGQOgLZfyVJRQJvxwLKIzsGpFqANpkInc7co4uF9qrBGBm2zic7FBc9XSdPuCQlkOtGw6z0FWp+StgX2sNaqp2nXmSPEJa44rV9NRCi4BrQfo3LbFI7WAXdpWxWvmoB2razDzu0iazT6rszssAFXY9Ft2tQJEd7vk7bb1n8tNXLFUHtynHT7ZXXxDxhuJD5XIocKqmJNZUPKrWsMNxJHVZMm+a6caqFxbQ2HD4B2vSjK9APfqT1dp06XcNQEtAclDzuH5mAbZWamDTgrRc8ry+TezrwCtMOSk51nRVZPT0ZwT4melVcGlHEDPz5Bac9KWnZeFllNniHL1vU24B8X/RP7Qms1fNXzWlyuDrnay7KNO0VWj4J1hg9Fh1Bdul15MysD7LAB/wnBcZd+njh913PeLDSFxuLIH3IktCt9qYV7Uaf0zJtWL8NSHLwJscU1Oysv6udM8XNiWIpT2leZ2qvB+Xi/86/CIJmaVDSdnHQIJDQVGicFO9PJZlViw8EZifZdsxadWlzD2R4ejrnLO3KtJ6c+T2+44+Hh84jN4SLL42EQthHQpk34q0oT5/TjoQ0o7LQAEE67BN6lbfgfT+GbvQBgJQoHQNsfb9Rkm7bjQ0+rGVQOjohZLUAbRF6Zktl6EU8S2ncWG8Hk4IJj/iJeCrrtMm02sblEI3j+Mm0S3GohHvIDoLU6jUPkZArf+IGsvUxLu6vAm9X8hfgkuvGrFoj3gKKzPwjA+U7irr0QT33j0XYmD+LUPpU2wOq8TEu9vDqvS5NgJyL/xxfiMQw1eyGeRK/OJw9xYdPLq/NRy5joLYRr5/+zpTHR28eai1+/lln4Ry7GAIwlLM+HaWOi7ekYroZsL+xjF30DY9CMaSvizJpC7DUd3249ZfvMP3rRJ9C3ZiybWUVOkuHAu3cMWWwWs5revwfBj9PFmEHp1xiafYA2KabuPo4cp1fjA/Hxg4Jop6E7wEm6dgQc/Jf2LwDxR4pxHY23EfgBjbxL3gLn908ek0cG4avxN55J4e4j3m8qPk1wbVjU+aPWI+o9Ygl3+f+oRaBLb/8Bcy96WBaRfVEAAAAASUVORK5CYII=)}.before-title[data-v-1e6287ca]{top:2.4rem;font-size:.42667rem;line-height:.58667rem}.before-money[data-v-1e6287ca],.before-title[data-v-1e6287ca]{width:100%;overflow:hidden;text-align:center;position:absolute;color:#fee9d1}.before-money[data-v-1e6287ca]{top:3.04rem}.before-money .main-price[data-v-1e6287ca]{font-size:2.13333rem;line-height:2.4rem}.before-money .suffix[data-v-1e6287ca]{font-size:1.33333rem;line-height:2.4rem}.before-desc[data-v-1e6287ca]{top:5.49333rem;width:100%;overflow:hidden;text-align:center;position:absolute;color:#fee9d1;line-height:.53333rem;font-size:.37333rem}.clear-button-ss[data-v-1e6287ca]{position:relative;display:block;margin:0;padding:0;font-size:inherit;text-align:left;text-decoration:none;line-height:1;-webkit-tap-highlight-color:transparent;overflow:auto;color:#000;background-color:transparent;opacity:1!important;width:100%;height:100%}button.clear-button-ss[data-v-1e6287ca]:after{border:none!important;opacity:1!important;border-radius:0!important}.body-ll[data-v-1e6287ca] .popup-content{overflow:visible} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login-deal.min.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login-deal.min.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..912a52c94ab14153b7e5c9541928828a485ffd76 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login-deal.min.js.\344\270\213\350\275\275" @@ -0,0 +1,15 @@ +(function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="//mlogin.vip.com/asserts/",t(0)})([function(e,t,n){(function(t){"use strict";function i(e){if(w.emit("login-reg-win","render-loginReg-win"),!k){var t=!1;e.isviva&&(t=!0),y.loginWin.init({data:{captcha:0,text:0,isviva:t,registerTips:p,bgImg:e.bgImg||"",logoImg:e.logoImg,optsSource:e.source,isSwitchWeixinBinding:e.isSwitchWeixinBinding,isChangeWeixinBind:e.isChangeWeixinBind,challengeCallbackUrl:e.challengeCallbackUrl,disablePasswordLogin:e.disablePasswordLogin,hideCloseBtn:e.hideCloseBtn,remainOnSuccess:e.remainOnSuccess||!1,isGray:E,isGrayTicketLogin:A},loginSuccess:function(){var t={};try{t=s(),window.Mar&&Mar.Seed.request("body","load","H5_mlogin_success",JSON.stringify({phoneName:t.phoneName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2"),loginName:t.loginName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2")}))}catch(n){t={}}e.remainOnSuccess||y.loginWin.close(),e.onWinLogin({success:!0,channel:"login",phoneName:t.phoneName||"",loginName:t.loginName||""})},loginFail:function(){e.onWinLogin({success:!1,channel:"login"});try{var t=s();window.Mar&&Mar.Seed.request("body","load","H5_mlogin_fail",JSON.stringify({phoneName:t.phoneName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2"),loginName:t.loginName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2")}))}catch(n){}},thirdData:e.thirdData||{},className:e.className||""}),k=!0}}function o(e){g.weixinAutoLogin(window.weixinData).then(function(){var e=window.location.href.split("#");e[1]=e[1]?"#"+e[1]:"";var t=e[0].indexOf("?")===-1?"?":"&";window.location.href=""+e[0]+t+"time="+(new Date).getTime()+e[1]},function(){e&&e()})}function r(e){if(f.isWeixin()&&!e.disableWeixinAutoLogin)if(window.Mar&&Mar.Seed.request("body","load","H5_weixinlogin_mlogin",JSON.stringify({opts:e,host:location.host})),e.openid&&e.unionid){if(t.extend(window.weixinData,{openid:e.openid,unionid:e.unionid,source:e.source||"",loginType:e.loginType||""}),e.isChangeWeixinBind)return i(e),y.loginWin.open(),g.getweixinInfoStatus(window.weixinData).then(function(e){1===e.status&&t(".J-mlogin-login-weixin").css("display","inline")}),!1;e.isSwitchWeixinBinding?(i(e),y.loginWin.open()):o(function(){i(e),y.loginWin.open()})}else g.getWeixinInfo(_,function(n){if(0===n.code){if(t.extend(window.weixinData,n.data),e.isChangeWeixinBind)return i(e),y.loginWin.open(),g.getweixinInfoStatus(window.weixinData).then(function(e){1===e.status&&t(".J-mlogin-login-weixin").css("display","inline")}),!1;e.isSwitchWeixinBinding?(i(e),y.loginWin.open()):o(function(){i(e),y.loginWin.open()})}else n.code===-33?(window.localStorage.setItem("wxLoginPop",1),window.location.href=n.data.redirectUrl+"?fs="+n.data.fs+"&type="+n.data.type+"&src="+encodeURIComponent(location.href)):(i(e),y.loginWin.open())});else i(e),y.loginWin.open();var n=0;if(e.isviva?(n=1,window.Mar&&Mar.Seed.request("body","load","H5_login_pop",JSON.stringify({isviva:n.toString(),enter:"1"}))):window.Mar&&Mar.Seed.request("body","load","H5_login_first",JSON.stringify({enter:"1"})),window.localStorage){var r=s(),a=r.phoneName,c=r.loginName;/^1[3-9]\d{9}$/.test(a)&&t(".J-mlogin-ipt-mobile").val(a),(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(c)||/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(c))&&t(".J-mlogin-ipt-username").val(c);var l=t(".J-mlogin-ipt-mobile").val();l&&l.length>0&&t("button").removeClass("disabled")}}function s(){var e=localStorage.getItem("saveIphoneName"),t=localStorage.getItem("saveLoginName");return e=e?m.decode(e):"",t=t?m.decode(t):"",{phoneName:e,loginName:t}}function a(){Object.keys(T).forEach(function(e){var t=T[e];Object.keys(t).forEach(function(n){var i=t[n];w.on(e,n,i)})}),t("body").on("touchmove","#J-register-win",function(e){t(window).height()>=t(this).height()&&e.stopPropagation()}),t("body").on("touchmove","#J-login-win",function(e){t(window).height()>=t(this).height()&&e.stopPropagation()}),w.on("login-reg-win","open-win",function(e){e.type;t("body").css({padding:"0"})}),w.on("login-reg-win","close-win",function(e){e.type;t("body").css({padding:""})})}function c(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return C?void g.getVivaTips(n).then(function(n){C=!1,n.registerTips&&(p=''+n.registerTips,t("#J-footer-tips").html(p)),n&&n.isGray&&(E=n.isGray),n&&n.isGrayTicketLogin&&(A=n.isGrayTicketLogin),"function"==typeof e&&e()},function(){"function"==typeof e&&e()}):("function"==typeof e&&e(),!1)}function l(e){var n={usePop:!0,isWeixinLogin:!1,isChangeWeixinBind:!1,openid:"",unionid:"",isviva:!1,backUrl:"",onWinLogin:function(){},onBeforeJumpLogin:function(){}};t.extend(n,e),r(n),S||(S=!0,a())}n(1),n(4);var u=n(19),d=n(20),h=d.getId();window.weixinData={domain_id:h};var p,f=n(21),m=n(23),g=n(24),v=n(32),y={loginWin:v.loginWin,exchangeLogin:v.exchangeLogin},w=n(43),b=n(22),x=b.get("WAP[from]"),_={fs:x,type:3},S=!1,k=!1,T={},C=!0,E=0,A=0,I={go:function(e){console.log("opts:",e),T=e.eventHandlers||{},u&&"function"==typeof u&&(u(),u=null),c(function(){l(e)},e.tipsData||{})},automaticLogin:function(e,t){var n={};return f.isWeixin()&&""!=e.openid&&""!=e.unionid?void g.weixinAutoLogin(e).then(function(e){n.re=e,n.success=!0,t&&t(n)},function(e){n.r=e,n.success=!1,t&&t(n)}):(n.success=!1,t&&t(n),!1)}};y.exchangeLogin(),e.exports=I,window.loginDeal=I}).call(t,n(1))},function(e,t,n){n(2)(n(3)),e.exports=window._mlogin_zepto},function(e,t){e.exports=function(e){"function"==typeof execScript?execScript(e):eval.call(null,e)}},function(e,t){e.exports="'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* Zepto 1.1.4 - 20170316淇敼xhr by tinda.lliu zepto event ajax form ie detect fx fx_methods assets data callbacks deferred selector touch stack - zeptojs.com/license */\n\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) define(function () {\n return factory(global);\n });else factory(global);\n // 瑙e喅鎵撳寘鐨勬椂鍊檂this`涓簎ndefined锛岃繖閲屽啓姝粀indow\n})(window, function (window) {\n\n var Zepto = function () {\n var undefined,\n key,\n $,\n classList,\n emptyArray = [],\n _concat = emptyArray.concat,\n _filter = emptyArray.filter,\n _slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {},\n classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1, 'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n adjacencyOperators = ['after', 'prepend', 'before', 'append'],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize,\n uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray || function (object) {\n return object instanceof Array;\n };\n\n zepto.matches = function (element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false;\n var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector;\n if (matchesSelector) return matchesSelector.call(element, selector);\n // fall back to performing a selector:\n var match,\n parent = element.parentNode,\n temp = !parent;\n if (temp) (parent = tempParent).appendChild(element);\n match = ~zepto.qsa(parent, selector).indexOf(element);\n temp && tempParent.removeChild(element);\n return match;\n };\n\n function type(obj) {\n return obj == null ? String(obj) : class2type[toString.call(obj)] || \"object\";\n }\n\n function isFunction(value) {\n return type(value) == \"function\";\n }\n function isWindow(obj) {\n return obj != null && obj == obj.window;\n }\n function isDocument(obj) {\n return obj != null && obj.nodeType == obj.DOCUMENT_NODE;\n }\n function isObject(obj) {\n return type(obj) == \"object\";\n }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n }\n function likeArray(obj) {\n return typeof obj.length == 'number';\n }\n\n function compact(array) {\n return _filter.call(array, function (item) {\n return item != null;\n });\n }\n function flatten(array) {\n return array.length > 0 ? $.fn.concat.apply([], array) : array;\n }\n camelize = function camelize(str) {\n return str.replace(/-+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n };\n function dasherize(str) {\n return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\\d])([A-Z])/g, '$1_$2').replace(/_/g, '-').toLowerCase();\n }\n uniq = function uniq(array) {\n return _filter.call(array, function (item, idx) {\n return array.indexOf(item) == idx;\n });\n };\n\n function classRE(name) {\n return name in classCache ? classCache[name] : classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)');\n }\n\n function maybeAddPx(name, value) {\n return typeof value == \"number\" && !cssNumber[dasherize(name)] ? value + \"px\" : value;\n }\n\n function defaultDisplay(nodeName) {\n var element, display;\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getComputedStyle(element, '').getPropertyValue(\"display\");\n element.parentNode.removeChild(element);\n display == \"none\" && (display = \"block\");\n elementDisplay[nodeName] = display;\n }\n return elementDisplay[nodeName];\n }\n\n function _children(element) {\n return 'children' in element ? _slice.call(element.children) : $.map(element.childNodes, function (node) {\n if (node.nodeType == 1) return node;\n });\n }\n\n function Z(dom, selector) {\n var i,\n len = dom ? dom.length : 0;\n for (i = 0; i < len; i++) {\n this[i] = dom[i];\n }this.length = len;\n this.selector = selector || '';\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overriden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function (html, name, properties) {\n var dom, nodes, container;\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1));\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1>\");\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1;\n if (!(name in containers)) name = '*';\n\n container = containers[name];\n container.innerHTML = '' + html;\n dom = $.each(_slice.call(container.childNodes), function () {\n container.removeChild(this);\n });\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom);\n $.each(properties, function (key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value);else nodes.attr(key, value);\n });\n }\n\n return dom;\n };\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overriden in plugins.\n zepto.Z = function (dom, selector) {\n return new Z(dom, selector);\n };\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overriden in plugins.\n zepto.isZ = function (object) {\n return object instanceof zepto.Z;\n };\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overriden in plugins.\n zepto.init = function (selector, context) {\n var dom;\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z();\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim();\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector)) dom = zepto.fragment(selector, RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector);\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector;else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector);\n // Wrap DOM nodes.\n else if (isObject(selector)) dom = [selector], selector = null;\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector);\n };\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function $(selector, context) {\n return zepto.init(selector, context);\n };\n\n function extend(target, source, deep) {\n for (key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {};\n if (isArray(source[key]) && !isArray(target[key])) target[key] = [];\n extend(target[key], source[key], deep);\n } else if (source[key] !== undefined) target[key] = source[key];\n }\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function (target) {\n var deep,\n args = _slice.call(arguments, 1);\n if (typeof target == 'boolean') {\n deep = target;\n target = args.shift();\n }\n args.forEach(function (arg) {\n extend(target, arg, deep);\n });\n return target;\n };\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overriden in plugins.\n zepto.qsa = function (element, selector) {\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly);\n return element.getElementById && isSimple && maybeID ? // Safari DocumentFragment doesn't have getElementById\n (found = element.getElementById(nameOnly)) ? [found] : [] : element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 ? [] : _slice.call(isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n );\n };\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector);\n }\n\n $.contains = document.documentElement.contains ? function (parent, node) {\n return parent !== node && parent.contains(node);\n } : function (parent, node) {\n while (node && (node = node.parentNode)) {\n if (node === parent) return true;\n }return false;\n };\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg;\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value);\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value) {\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined;\n\n if (value === undefined) return svg ? klass.baseVal : klass;\n svg ? klass.baseVal = value : node.className = value;\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ? value == \"true\" || (value == \"false\" ? false : value == \"null\" ? null : +value + \"\" == value ? +value : /^[\\[\\{]/.test(value) ? $.parseJSON(value) : value) : value;\n } catch (e) {\n return value;\n }\n }\n\n $.type = type;\n $.isFunction = isFunction;\n $.isWindow = isWindow;\n $.isArray = isArray;\n $.isPlainObject = isPlainObject;\n\n $.isEmptyObject = function (obj) {\n var name;\n for (name in obj) {\n return false;\n }return true;\n };\n\n $.inArray = function (elem, array, i) {\n return emptyArray.indexOf.call(array, elem, i);\n };\n\n $.camelCase = camelize;\n $.trim = function (str) {\n return str == null ? \"\" : String.prototype.trim.call(str);\n };\n\n // plugin compatibility\n $.uuid = 0;\n $.support = {};\n $.expr = {};\n $.noop = function () {};\n\n $.map = function (elements, callback) {\n var value,\n values = [],\n i,\n key;\n if (likeArray(elements)) for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i);\n if (value != null) values.push(value);\n } else for (key in elements) {\n value = callback(elements[key], key);\n if (value != null) values.push(value);\n }\n return flatten(values);\n };\n\n $.each = function (elements, callback) {\n var i, key;\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++) {\n if (callback.call(elements[i], i, elements[i]) === false) return elements;\n }\n } else {\n for (key in elements) {\n if (callback.call(elements[key], key, elements[key]) === false) return elements;\n }\n }\n\n return elements;\n };\n\n $.grep = function (elements, callback) {\n return _filter.call(elements, callback);\n };\n\n if (window.JSON) $.parseJSON = JSON.parse;\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function concat() {\n var i,\n value,\n args = [];\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i];\n args[i] = zepto.isZ(value) ? value.toArray() : value;\n }\n return _concat.apply(zepto.isZ(this) ? this.toArray() : this, args);\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function map(fn) {\n return $($.map(this, function (el, i) {\n return fn.call(el, i, el);\n }));\n },\n slice: function slice() {\n return $(_slice.apply(this, arguments));\n },\n\n ready: function ready(callback) {\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($);else document.addEventListener('DOMContentLoaded', function () {\n callback($);\n }, false);\n return this;\n },\n get: function get(idx) {\n return idx === undefined ? _slice.call(this) : this[idx >= 0 ? idx : idx + this.length];\n },\n toArray: function toArray() {\n return this.get();\n },\n size: function size() {\n return this.length;\n },\n remove: function remove() {\n return this.each(function () {\n if (this.parentNode != null) this.parentNode.removeChild(this);\n });\n },\n each: function each(callback) {\n emptyArray.every.call(this, function (el, idx) {\n return callback.call(el, idx, el) !== false;\n });\n return this;\n },\n filter: function filter(selector) {\n if (isFunction(selector)) return this.not(this.not(selector));\n return $(_filter.call(this, function (element) {\n return zepto.matches(element, selector);\n }));\n },\n add: function add(selector, context) {\n return $(uniq(this.concat($(selector, context))));\n },\n is: function is(selector) {\n return this.length > 0 && zepto.matches(this[0], selector);\n },\n not: function not(selector) {\n var nodes = [];\n if (isFunction(selector) && selector.call !== undefined) this.each(function (idx) {\n if (!selector.call(this, idx)) nodes.push(this);\n });else {\n var excludes = typeof selector == 'string' ? this.filter(selector) : likeArray(selector) && isFunction(selector.item) ? _slice.call(selector) : $(selector);\n this.forEach(function (el) {\n if (excludes.indexOf(el) < 0) nodes.push(el);\n });\n }\n return $(nodes);\n },\n has: function has(selector) {\n return this.filter(function () {\n return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size();\n });\n },\n eq: function eq(idx) {\n return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1);\n },\n first: function first() {\n var el = this[0];\n return el && !isObject(el) ? el : $(el);\n },\n last: function last() {\n var el = this[this.length - 1];\n return el && !isObject(el) ? el : $(el);\n },\n find: function find(selector) {\n var result,\n $this = this;\n if (!selector) result = $();else if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object') result = $(selector).filter(function () {\n var node = this;\n return emptyArray.some.call($this, function (parent) {\n return $.contains(parent, node);\n });\n });else if (this.length == 1) result = $(zepto.qsa(this[0], selector));else result = this.map(function () {\n return zepto.qsa(this, selector);\n });\n return result;\n },\n closest: function closest(selector, context) {\n var node = this[0],\n collection = false;\n if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object') collection = $(selector);\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) {\n node = node !== context && !isDocument(node) && node.parentNode;\n }return $(node);\n },\n parents: function parents(selector) {\n var ancestors = [],\n nodes = this;\n while (nodes.length > 0) {\n nodes = $.map(nodes, function (node) {\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node);\n return node;\n }\n });\n }return filtered(ancestors, selector);\n },\n parent: function parent(selector) {\n return filtered(uniq(this.pluck('parentNode')), selector);\n },\n children: function children(selector) {\n return filtered(this.map(function () {\n return _children(this);\n }), selector);\n },\n contents: function contents() {\n return this.map(function () {\n return this.contentDocument || _slice.call(this.childNodes);\n });\n },\n siblings: function siblings(selector) {\n return filtered(this.map(function (i, el) {\n return _filter.call(_children(el.parentNode), function (child) {\n return child !== el;\n });\n }), selector);\n },\n empty: function empty() {\n return this.each(function () {\n this.innerHTML = '';\n });\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function pluck(property) {\n return $.map(this, function (el) {\n return el[property];\n });\n },\n show: function show() {\n return this.each(function () {\n this.style.display == \"none\" && (this.style.display = '');\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\") this.style.display = defaultDisplay(this.nodeName);\n });\n },\n replaceWith: function replaceWith(newContent) {\n return this.before(newContent).remove();\n },\n wrap: function wrap(structure) {\n var func = isFunction(structure);\n if (this[0] && !func) var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1;\n\n return this.each(function (index) {\n $(this).wrapAll(func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom);\n });\n },\n wrapAll: function wrapAll(structure) {\n if (this[0]) {\n $(this[0]).before(structure = $(structure));\n var children;\n // drill down to the inmost element\n while ((children = structure.children()).length) {\n structure = children.first();\n }$(structure).append(this);\n }\n return this;\n },\n wrapInner: function wrapInner(structure) {\n var func = isFunction(structure);\n return this.each(function (index) {\n var self = $(this),\n contents = self.contents(),\n dom = func ? structure.call(this, index) : structure;\n contents.length ? contents.wrapAll(dom) : self.append(dom);\n });\n },\n unwrap: function unwrap() {\n this.parent().each(function () {\n $(this).replaceWith($(this).children());\n });\n return this;\n },\n clone: function clone() {\n return this.map(function () {\n return this.cloneNode(true);\n });\n },\n hide: function hide() {\n return this.css(\"display\", \"none\");\n },\n toggle: function toggle(setting) {\n return this.each(function () {\n var el = $(this);(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide();\n });\n },\n prev: function prev(selector) {\n return $(this.pluck('previousElementSibling')).filter(selector || '*');\n },\n next: function next(selector) {\n return $(this.pluck('nextElementSibling')).filter(selector || '*');\n },\n html: function html(_html) {\n return 0 in arguments ? this.each(function (idx) {\n var originHtml = this.innerHTML;\n $(this).empty().append(funcArg(this, _html, idx, originHtml));\n }) : 0 in this ? this[0].innerHTML : null;\n },\n text: function text(_text) {\n return 0 in arguments ? this.each(function (idx) {\n var newText = funcArg(this, _text, idx, this.textContent);\n this.textContent = newText == null ? '' : '' + newText;\n }) : 0 in this ? this[0].textContent : null;\n },\n attr: function attr(name, value) {\n var result;\n return typeof name == 'string' && !(1 in arguments) ? !this.length || this[0].nodeType !== 1 ? undefined : !(result = this[0].getAttribute(name)) && name in this[0] ? this[0][name] : result : this.each(function (idx) {\n if (this.nodeType !== 1) return;\n if (isObject(name)) for (key in name) {\n setAttribute(this, key, name[key]);\n } else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)));\n });\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n this.nodeType === 1 && name.split(' ').forEach(function (attribute) {\n setAttribute(this, attribute);\n }, this);\n });\n },\n prop: function prop(name, value) {\n name = propMap[name] || name;\n return 1 in arguments ? this.each(function (idx) {\n this[name] = funcArg(this, value, idx, this[name]);\n }) : this[0] && this[0][name];\n },\n data: function data(name, value) {\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase();\n\n var data = 1 in arguments ? this.attr(attrName, value) : this.attr(attrName);\n\n return data !== null ? deserializeValue(data) : undefined;\n },\n val: function val(value) {\n return 0 in arguments ? this.each(function (idx) {\n this.value = funcArg(this, value, idx, this.value);\n }) : this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function () {\n return this.selected;\n }).pluck('value') : this[0].value);\n },\n offset: function offset(coordinates) {\n if (coordinates) return this.each(function (index) {\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n };\n\n if ($this.css('position') == 'static') props['position'] = 'relative';\n $this.css(props);\n });\n if (!this.length) return null;\n var obj = this[0].getBoundingClientRect();\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n };\n },\n css: function css(property, value) {\n if (arguments.length < 2) {\n var computedStyle,\n element = this[0];\n if (!element) return;\n computedStyle = getComputedStyle(element, '');\n if (typeof property == 'string') return element.style[camelize(property)] || computedStyle.getPropertyValue(property);else if (isArray(property)) {\n var props = {};\n $.each(property, function (_, prop) {\n props[prop] = element.style[camelize(prop)] || computedStyle.getPropertyValue(prop);\n });\n return props;\n }\n }\n\n var css = '';\n if (type(property) == 'string') {\n if (!value && value !== 0) this.each(function () {\n this.style.removeProperty(dasherize(property));\n });else css = dasherize(property) + \":\" + maybeAddPx(property, value);\n } else {\n for (key in property) {\n if (!property[key] && property[key] !== 0) this.each(function () {\n this.style.removeProperty(dasherize(key));\n });else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';';\n }\n }\n\n return this.each(function () {\n this.style.cssText += ';' + css;\n });\n },\n index: function index(element) {\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]);\n },\n hasClass: function hasClass(name) {\n if (!name) return false;\n return emptyArray.some.call(this, function (el) {\n return this.test(className(el));\n }, classRE(name));\n },\n addClass: function addClass(name) {\n if (!name) return this;\n return this.each(function (idx) {\n if (!('className' in this)) return;\n classList = [];\n var cls = className(this),\n newName = funcArg(this, name, idx, cls);\n newName.split(/\\s+/g).forEach(function (klass) {\n if (!$(this).hasClass(klass)) classList.push(klass);\n }, this);\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"));\n });\n },\n removeClass: function removeClass(name) {\n return this.each(function (idx) {\n if (!('className' in this)) return;\n if (name === undefined) return className(this, '');\n classList = className(this);\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function (klass) {\n classList = classList.replace(classRE(klass), \" \");\n });\n className(this, classList.trim());\n });\n },\n toggleClass: function toggleClass(name, when) {\n if (!name) return this;\n return this.each(function (idx) {\n var $this = $(this),\n names = funcArg(this, name, idx, className(this));\n names.split(/\\s+/g).forEach(function (klass) {\n (when === undefined ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass);\n });\n });\n },\n scrollTop: function scrollTop(value) {\n if (!this.length) return;\n var hasScrollTop = 'scrollTop' in this[0];\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset;\n return this.each(hasScrollTop ? function () {\n this.scrollTop = value;\n } : function () {\n this.scrollTo(this.scrollX, value);\n });\n },\n scrollLeft: function scrollLeft(value) {\n if (!this.length) return;\n var hasScrollLeft = 'scrollLeft' in this[0];\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset;\n return this.each(hasScrollLeft ? function () {\n this.scrollLeft = value;\n } : function () {\n this.scrollTo(value, this.scrollY);\n });\n },\n position: function position() {\n if (!this.length) return;\n\n var elem = this[0],\n\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat($(elem).css('margin-top')) || 0;\n offset.left -= parseFloat($(elem).css('margin-left')) || 0;\n\n // Add offsetParent borders\n parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0;\n parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0;\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n };\n },\n offsetParent: function offsetParent() {\n return this.map(function () {\n var parent = this.offsetParent || document.body;\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\") {\n parent = parent.offsetParent;\n }return parent;\n });\n }\n\n // for now\n };$.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function (dimension) {\n var dimensionProperty = dimension.replace(/./, function (m) {\n return m[0].toUpperCase();\n });\n\n $.fn[dimension] = function (value) {\n var offset,\n el = this[0];\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension];else return this.each(function (idx) {\n el = $(this);\n el.css(dimension, funcArg(this, value, idx, el[dimension]()));\n });\n };\n });\n\n function traverseNode(node, fun) {\n fun(node);\n for (var i = 0, len = node.childNodes.length; i < len; i++) {\n traverseNode(node.childNodes[i], fun);\n }\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function (operator, operatorIndex) {\n var inside = operatorIndex % 2; //=> prepend, append\n\n $.fn[operator] = function () {\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType,\n nodes = $.map(arguments, function (arg) {\n argType = type(arg);\n return argType == \"object\" || argType == \"array\" || arg == null ? arg : zepto.fragment(arg);\n }),\n parent,\n copyByClone = this.length > 1;\n if (nodes.length < 1) return this;\n\n return this.each(function (_, target) {\n parent = inside ? target : target.parentNode;\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null;\n\n var parentInDocument = $.contains(document.documentElement, parent);\n\n nodes.forEach(function (node) {\n if (copyByClone) node = node.cloneNode(true);else if (!parent) return $(node).remove();\n\n parent.insertBefore(node, target);\n if (parentInDocument) traverseNode(node, function (el) {\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) window['eval'].call(window, el.innerHTML);\n });\n });\n });\n };\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function (html) {\n $(html)[operator](this);\n return this;\n };\n });\n\n zepto.Z.prototype = Z.prototype = $.fn;\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq;\n zepto.deserializeValue = deserializeValue;\n $.zepto = zepto;\n\n return $;\n }();\n\n window.Zepto = Zepto;\n window.$ === undefined && (window.$ = Zepto);\n\n window._mlogin_zepto = Zepto;(function ($) {\n var _zid = 1,\n undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function isString(obj) {\n return typeof obj == 'string';\n },\n handlers = {},\n specialEvents = {},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' };\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents';\n\n function zid(element) {\n return element._zid || (element._zid = _zid++);\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event);\n if (event.ns) var matcher = matcherFor(event.ns);\n return (handlers[zid(element)] || []).filter(function (handler) {\n return handler && (!event.e || handler.e == event.e) && (!event.ns || matcher.test(handler.ns)) && (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector);\n });\n }\n function parse(event) {\n var parts = ('' + event).split('.');\n return { e: parts[0], ns: parts.slice(1).sort().join(' ') };\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del && !focusinSupported && handler.e in focus || !!captureSetting;\n }\n\n function realEvent(type) {\n return hover[type] || focusinSupported && focus[type] || type;\n }\n\n function add(element, events, fn, data, selector, delegator, capture) {\n var id = zid(element),\n set = handlers[id] || (handlers[id] = []);\n events.split(/\\s/).forEach(function (event) {\n if (event == 'ready') return $(document).ready(fn);\n var handler = parse(event);\n handler.fn = fn;\n handler.sel = selector;\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function fn(e) {\n var related = e.relatedTarget;\n if (!related || related !== this && !$.contains(this, related)) return handler.fn.apply(this, arguments);\n };\n handler.del = delegator;\n var callback = delegator || fn;\n handler.proxy = function (e) {\n e = compatible(e);\n if (e.isImmediatePropagationStopped()) return;\n try {\n e.data = data;\n } catch (e) {\n console.log(e.message);\n }\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args));\n if (result === false) e.preventDefault(), e.stopPropagation();\n return result;\n };\n handler.i = set.length;\n set.push(handler);\n if ('addEventListener' in element) element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n }\n function remove(element, events, fn, selector, capture) {\n var id = zid(element);(events || '').split(/\\s/).forEach(function (event) {\n findHandlers(element, event, fn, selector).forEach(function (handler) {\n delete handlers[id][handler.i];\n if ('removeEventListener' in element) element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n });\n }\n\n $.event = { add: add, remove: remove };\n\n $.proxy = function (fn, context) {\n var args = 2 in arguments && slice.call(arguments, 2);\n if (isFunction(fn)) {\n var proxyFn = function proxyFn() {\n return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments);\n };\n proxyFn._zid = zid(fn);\n return proxyFn;\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn);\n return $.proxy.apply(null, args);\n } else {\n return $.proxy(fn[context], fn);\n }\n } else {\n throw new TypeError(\"expected function\");\n }\n };\n\n $.fn.bind = function (event, data, callback) {\n return this.on(event, data, callback);\n };\n $.fn.unbind = function (event, callback) {\n return this.off(event, callback);\n };\n $.fn.one = function (event, selector, data, callback) {\n return this.on(event, selector, data, callback, 1);\n };\n\n var returnTrue = function returnTrue() {\n return true;\n },\n returnFalse = function returnFalse() {\n return false;\n },\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n };\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event);\n\n $.each(eventMethods, function (name, predicate) {\n var sourceMethod = source[name];\n event[name] = function () {\n this[predicate] = returnTrue;\n return sourceMethod && sourceMethod.apply(source, arguments);\n };\n event[predicate] = returnFalse;\n });\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented : 'returnValue' in source ? source.returnValue === false : source.getPreventDefault && source.getPreventDefault()) event.isDefaultPrevented = returnTrue;\n }\n return event;\n }\n\n function createProxy(event) {\n var key,\n proxy = { originalEvent: event };\n for (key in event) {\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key];\n }return compatible(proxy, event);\n }\n\n $.fn.delegate = function (selector, event, callback) {\n return this.on(event, selector, callback);\n };\n $.fn.undelegate = function (selector, event, callback) {\n return this.off(event, selector, callback);\n };\n\n $.fn.live = function (event, callback) {\n $(document.body).delegate(this.selector, event, callback);\n return this;\n };\n $.fn.die = function (event, callback) {\n $(document.body).undelegate(this.selector, event, callback);\n return this;\n };\n\n $.fn.on = function (event, selector, data, callback, one) {\n var autoRemove,\n delegator,\n $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.on(type, selector, data, fn, one);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = data, data = selector, selector = undefined;\n if (callback === undefined || data === false) callback = data, data = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function (_, element) {\n if (one) autoRemove = function autoRemove(e) {\n remove(element, e.type, callback);\n return callback.apply(this, arguments);\n };\n\n if (selector) delegator = function delegator(e) {\n var evt,\n match = $(e.target).closest(selector, element).get(0);\n if (match && match !== element) {\n evt = $.extend(createProxy(e), { currentTarget: match, liveFired: element });\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)));\n }\n };\n\n add(element, event, callback, data, selector, delegator || autoRemove);\n });\n };\n $.fn.off = function (event, selector, callback) {\n var $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.off(type, selector, fn);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = selector, selector = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function () {\n remove(this, event, callback, selector);\n });\n };\n\n $.fn.trigger = function (event, args) {\n event = isString(event) || $.isPlainObject(event) ? $.Event(event) : compatible(event);\n event._args = args;\n return this.each(function () {\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]();\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event);else $(this).triggerHandler(event, args);\n });\n };\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function (event, args) {\n var e, result;\n this.each(function (i, element) {\n e = createProxy(isString(event) ? $.Event(event) : event);\n e._args = args;\n e.target = element;\n $.each(findHandlers(element, event.type || event), function (i, handler) {\n result = handler.proxy(e);\n if (e.isImmediatePropagationStopped()) return false;\n });\n });\n return result;\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select keydown keypress keyup error').split(' ').forEach(function (event) {\n $.fn[event] = function (callback) {\n return 0 in arguments ? this.bind(event, callback) : this.trigger(event);\n };\n });\n\n $.Event = function (type, props) {\n if (!isString(type)) props = type, type = props.type;\n var event = document.createEvent(specialEvents[type] || 'Events'),\n bubbles = true;\n if (props) for (var name in props) {\n name == 'bubbles' ? bubbles = !!props[name] : event[name] = props[name];\n }event.initEvent(type, bubbles, true);\n return compatible(event);\n };\n })(Zepto);(function ($) {\n var jsonpID = 0,\n document = window.document,\n key,\n name,\n rscript = /)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a');\n\n originAnchor.href = window.location.href;\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName);\n $(context).trigger(event, data);\n return !event.isDefaultPrevented();\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data);\n }\n\n // Number of active Ajax requests\n $.active = 0;\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart');\n }\n function ajaxStop(settings) {\n if (settings.global && ! --$.active) triggerGlobal(settings, null, 'ajaxStop');\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context;\n if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false;\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]);\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context,\n status = 'success';\n settings.success.call(context, data, status, xhr);\n if (deferred) deferred.resolveWith(context, [data, status, xhr]);\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]);\n ajaxComplete(status, xhr, settings);\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context;\n settings.error.call(context, xhr, type, error);\n if (deferred) deferred.rejectWith(context, [xhr, type, error]);\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]);\n ajaxComplete(type, xhr, settings);\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context;\n settings.complete.call(context, xhr, status);\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]);\n ajaxStop(settings);\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function (options, deferred) {\n if (!('type' in options)) return $.ajax(options);\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ? _callbackName() : _callbackName) || 'jsonp' + ++jsonpID,\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function abort(errorType) {\n $(script).triggerHandler('error', errorType || 'abort');\n },\n xhr = { abort: abort },\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n $(script).on('load error', function (e, errorType) {\n clearTimeout(abortTimeout);\n $(script).off().remove();\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred);\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred);\n }\n\n window[callbackName] = originalCallback;\n if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]);\n\n originalCallback = responseData = undefined;\n });\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort');\n return xhr;\n }\n\n window[callbackName] = function () {\n responseData = arguments;\n };\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName);\n document.head.appendChild(script);\n\n if (options.timeout > 0) abortTimeout = setTimeout(function () {\n abort('timeout');\n }, options.timeout);\n\n return xhr;\n };\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function xhr() {\n return new window.XMLHttpRequest();\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true\n };\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0];\n return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text';\n }\n\n function appendQuery(url, query) {\n if (query == '') return url;\n return (url + '&' + query).replace(/[&?]{1,2}/, '?');\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\") options.data = $.param(options.data, options.traditional);\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET')) options.url = appendQuery(options.url, options.data), options.data = undefined;\n }\n\n $.ajax = function (options) {\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor,\n hashIndex;\n for (key in $.ajaxSettings) {\n if (settings[key] === undefined) settings[key] = $.ajaxSettings[key];\n }ajaxStart(settings);\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a');\n urlAnchor.href = settings.url;\n urlAnchor.href = urlAnchor.href;\n settings.crossDomain = originAnchor.protocol + '//' + originAnchor.host !== urlAnchor.protocol + '//' + urlAnchor.host;\n }\n\n if (!settings.url) settings.url = window.location.toString();\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex);\n serializeData(settings);\n\n var dataType = settings.dataType,\n hasPlaceholder = /\\?.+=\\?/.test(settings.url);\n if (hasPlaceholder) dataType = 'jsonp';\n\n if (settings.cache === false || (!options || options.cache !== true) && ('script' == dataType || 'jsonp' == dataType)) settings.url = appendQuery(settings.url, '_=' + Date.now());\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder) settings.url = appendQuery(settings.url, settings.jsonp ? settings.jsonp + '=?' : settings.jsonp === false ? '' : 'callback=?');\n return $.ajaxJSONP(settings, deferred);\n }\n\n var mime = settings.accepts[dataType],\n headers = {},\n setHeader = function setHeader(name, value) {\n headers[name.toLowerCase()] = [name, value];\n },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest');\n setHeader('Accept', mime || '*/*');\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0];\n xhr.overrideMimeType && xhr.overrideMimeType(mime);\n }\n if (settings.contentType || settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET') setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');\n\n if (settings.headers) for (name in settings.headers) {\n setHeader(name, settings.headers[name]);\n }xhr.setRequestHeader = setHeader;\n\n var async = 'async' in settings ? settings.async : true;\n xhr.open(settings.type, settings.url, async, settings.username, settings.password);\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty;\n clearTimeout(abortTimeout);\n var result,\n error = false;\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 || xhr.status == 0 && protocol == 'file:') {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));\n result = xhr.responseText;\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n if (dataType == 'script') (1, eval)(result);else if (dataType == 'xml') result = xhr.responseXML;else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result);\n } catch (e) {\n error = e;\n }\n\n if (error) ajaxError(error, 'parsererror', xhr, settings, deferred);else ajaxSuccess(result, xhr, settings, deferred);\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred);\n }\n }\n };\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort();\n ajaxError(null, 'abort', xhr, settings, deferred);\n return xhr;\n }\n\n if (settings.xhrFields) for (name in settings.xhrFields) {\n xhr[name] = settings.xhrFields[name];\n }for (name in headers) {\n nativeSetHeader.apply(xhr, headers[name]);\n }if (settings.timeout > 0) abortTimeout = setTimeout(function () {\n xhr.onreadystatechange = empty;\n xhr.abort();\n ajaxError(null, 'timeout', xhr, settings, deferred);\n }, settings.timeout);\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null);\n return xhr;\n };\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined;\n if (!$.isFunction(success)) dataType = success, success = undefined;\n return {\n url: url,\n data: data,\n success: success,\n dataType: dataType\n };\n }\n\n $.get = function () /* url, data, success, dataType */{\n return $.ajax(parseArguments.apply(null, arguments));\n };\n\n $.post = function () /* url, data, success, dataType */{\n var options = parseArguments.apply(null, arguments);\n options.type = 'POST';\n return $.ajax(options);\n };\n\n $.getJSON = function () /* url, data, success */{\n var options = parseArguments.apply(null, arguments);\n options.dataType = 'json';\n return $.ajax(options);\n };\n\n $.fn.load = function (url, data, success) {\n if (!this.length) return this;\n var self = this,\n parts = url.split(/\\s/),\n selector,\n options = parseArguments(url, data, success),\n callback = options.success;\n if (parts.length > 1) options.url = parts[0], selector = parts[1];\n options.success = function (response) {\n self.html(selector ? $('
').html(response.replace(rscript, \"\")).find(selector) : response);\n callback && callback.apply(self, arguments);\n };\n $.ajax(options);\n return this;\n };\n\n var escape = encodeURIComponent;\n\n function serialize(params, obj, traditional, scope) {\n var type,\n array = $.isArray(obj),\n hash = $.isPlainObject(obj);\n $.each(obj, function (key, value) {\n type = $.type(value);\n if (scope) key = traditional ? scope : scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']';\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value);\n // recurse into nested objects\n else if (type == \"array\" || !traditional && type == \"object\") serialize(params, value, traditional, key);else params.add(key, value);\n });\n }\n\n $.param = function (obj, traditional) {\n var params = [];\n params.add = function (key, value) {\n if ($.isFunction(value)) value = value();\n if (value == null) value = \"\";\n this.push(escape(key) + '=' + escape(value));\n };\n serialize(params, obj, traditional);\n return params.join('&').replace(/%20/g, '+');\n };\n })(Zepto);(function ($) {\n $.fn.serializeArray = function () {\n var name,\n type,\n result = [],\n add = function add(value) {\n if (value.forEach) return value.forEach(add);\n result.push({ name: name, value: value });\n };\n if (this[0]) $.each(this[0].elements, function (_, field) {\n type = field.type, name = field.name;\n if (name && field.nodeName.toLowerCase() != 'fieldset' && !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' && (type != 'radio' && type != 'checkbox' || field.checked)) add($(field).val());\n });\n return result;\n };\n\n $.fn.serialize = function () {\n var result = [];\n this.serializeArray().forEach(function (elm) {\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value));\n });\n return result.join('&');\n };\n\n $.fn.submit = function (callback) {\n if (0 in arguments) this.bind('submit', callback);else if (this.length) {\n var event = $.Event('submit');\n this.eq(0).trigger(event);\n if (!event.isDefaultPrevented()) this.get(0).submit();\n }\n return this;\n };\n })(Zepto);(function () {\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined);\n } catch (e) {\n var nativeGetComputedStyle = getComputedStyle;\n window.getComputedStyle = function (element) {\n try {\n return nativeGetComputedStyle(element);\n } catch (e) {\n return null;\n }\n };\n }\n })();(function ($) {\n function detect(ua, platform) {\n var os = this.os = {},\n browser = this.browser = {},\n webkit = ua.match(/Web[kK]it[\\/]{0,1}([\\d.]+)/),\n android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/),\n osx = !!ua.match(/\\(Macintosh\\; Intel /),\n ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/),\n ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/),\n iphone = !ipad && ua.match(/(iPhone\\sOS)\\s([\\d_]+)/),\n webos = ua.match(/(webOS|hpwOS)[\\s\\/]([\\d.]+)/),\n win = /Win\\d{2}|Windows/.test(platform),\n wp = ua.match(/Windows Phone ([\\d.]+)/),\n touchpad = webos && ua.match(/TouchPad/),\n kindle = ua.match(/Kindle\\/([\\d.]+)/),\n silk = ua.match(/Silk\\/([\\d._]+)/),\n blackberry = ua.match(/(BlackBerry).*Version\\/([\\d.]+)/),\n bb10 = ua.match(/(BB10).*Version\\/([\\d.]+)/),\n rimtabletos = ua.match(/(RIM\\sTablet\\sOS)\\s([\\d.]+)/),\n playbook = ua.match(/PlayBook/),\n chrome = ua.match(/Chrome\\/([\\d.]+)/) || ua.match(/CriOS\\/([\\d.]+)/),\n firefox = ua.match(/Firefox\\/([\\d.]+)/),\n firefoxos = ua.match(/\\((?:Mobile|Tablet); rv:([\\d.]+)\\).*Firefox\\/[\\d.]+/),\n ie = ua.match(/MSIE\\s([\\d.]+)/) || ua.match(/Trident\\/[\\d](?=[^\\?]+).*rv:([0-9.].)/),\n webview = !chrome && ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),\n safari = webview || ua.match(/Version\\/([\\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/);\n\n // Todo: clean this up with a better OS/browser seperation:\n // - discern (more) between multiple browsers on android\n // - decide if kindle fire in silk mode is android or not\n // - Firefox on Android doesn't specify the Android version\n // - possibly devide in os, device and browser hashes\n\n if (browser.webkit = !!webkit) browser.version = webkit[1];\n\n if (android) os.android = true, os.version = android[2];\n if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.');\n if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.');\n if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n if (wp) os.wp = true, os.version = wp[1];\n if (webos) os.webos = true, os.version = webos[2];\n if (touchpad) os.touchpad = true;\n if (blackberry) os.blackberry = true, os.version = blackberry[2];\n if (bb10) os.bb10 = true, os.version = bb10[2];\n if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2];\n if (playbook) browser.playbook = true;\n if (kindle) os.kindle = true, os.version = kindle[1];\n if (silk) browser.silk = true, browser.version = silk[1];\n if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true;\n if (chrome) browser.chrome = true, browser.version = chrome[1];\n if (firefox) browser.firefox = true, browser.version = firefox[1];\n if (firefoxos) os.firefoxos = true, os.version = firefoxos[1];\n if (ie) browser.ie = true, browser.version = ie[1];\n if (safari && (osx || os.ios || win)) {\n browser.safari = true;\n if (!os.ios) browser.version = safari[1];\n }\n if (webview) browser.webview = true;\n\n os.tablet = !!(ipad || playbook || android && !ua.match(/Mobile/) || firefox && ua.match(/Tablet/) || ie && !ua.match(/Phone/) && ua.match(/Touch/));\n os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos || blackberry || bb10 || chrome && ua.match(/Android/) || chrome && ua.match(/CriOS\\/([\\d.]+)/) || firefox && ua.match(/Mobile/) || ie && ua.match(/Touch/)));\n }\n\n detect.call($, navigator.userAgent, navigator.platform);\n // make available to unit tests\n $.__detect = detect;\n })(Zepto);(function ($, undefined) {\n var prefix = '',\n eventPrefix,\n vendors = { Webkit: 'webkit', Moz: '', O: 'o' },\n testEl = document.createElement('div'),\n supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,\n transform,\n transitionProperty,\n transitionDuration,\n transitionTiming,\n transitionDelay,\n animationName,\n animationDuration,\n animationTiming,\n animationDelay,\n cssReset = {};\n\n function dasherize(str) {\n return str.replace(/([a-z])([A-Z])/, '$1-$2').toLowerCase();\n }\n function normalizeEvent(name) {\n return eventPrefix ? eventPrefix + name : name.toLowerCase();\n }\n\n $.each(vendors, function (vendor, event) {\n if (testEl.style[vendor + 'TransitionProperty'] !== undefined) {\n prefix = '-' + vendor.toLowerCase() + '-';\n eventPrefix = event;\n return false;\n }\n });\n\n transform = prefix + 'transform';\n cssReset[transitionProperty = prefix + 'transition-property'] = cssReset[transitionDuration = prefix + 'transition-duration'] = cssReset[transitionDelay = prefix + 'transition-delay'] = cssReset[transitionTiming = prefix + 'transition-timing-function'] = cssReset[animationName = prefix + 'animation-name'] = cssReset[animationDuration = prefix + 'animation-duration'] = cssReset[animationDelay = prefix + 'animation-delay'] = cssReset[animationTiming = prefix + 'animation-timing-function'] = '';\n\n $.fx = {\n off: eventPrefix === undefined && testEl.style.transitionProperty === undefined,\n speeds: { _default: 400, fast: 200, slow: 600 },\n cssPrefix: prefix,\n transitionEnd: normalizeEvent('TransitionEnd'),\n animationEnd: normalizeEvent('AnimationEnd')\n };\n\n $.fn.animate = function (properties, duration, ease, callback, delay) {\n if ($.isFunction(duration)) callback = duration, ease = undefined, duration = undefined;\n if ($.isFunction(ease)) callback = ease, ease = undefined;\n if ($.isPlainObject(duration)) ease = duration.easing, callback = duration.complete, delay = duration.delay, duration = duration.duration;\n if (duration) duration = (typeof duration == 'number' ? duration : $.fx.speeds[duration] || $.fx.speeds._default) / 1000;\n if (delay) delay = parseFloat(delay) / 1000;\n return this.anim(properties, duration, ease, callback, delay);\n };\n\n $.fn.anim = function (properties, duration, ease, callback, delay) {\n var key,\n cssValues = {},\n cssProperties,\n transforms = '',\n that = this,\n _wrappedCallback,\n endEvent = $.fx.transitionEnd,\n fired = false;\n\n if (duration === undefined) duration = $.fx.speeds._default / 1000;\n if (delay === undefined) delay = 0;\n if ($.fx.off) duration = 0;\n\n if (typeof properties == 'string') {\n // keyframe animation\n cssValues[animationName] = properties;\n cssValues[animationDuration] = duration + 's';\n cssValues[animationDelay] = delay + 's';\n cssValues[animationTiming] = ease || 'linear';\n endEvent = $.fx.animationEnd;\n } else {\n cssProperties = [];\n // CSS transitions\n for (key in properties) {\n if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') ';else cssValues[key] = properties[key], cssProperties.push(dasherize(key));\n }if (transforms) cssValues[transform] = transforms, cssProperties.push(transform);\n if (duration > 0 && (typeof properties === 'undefined' ? 'undefined' : _typeof(properties)) === 'object') {\n cssValues[transitionProperty] = cssProperties.join(', ');\n cssValues[transitionDuration] = duration + 's';\n cssValues[transitionDelay] = delay + 's';\n cssValues[transitionTiming] = ease || 'linear';\n }\n }\n\n _wrappedCallback = function wrappedCallback(event) {\n if (typeof event !== 'undefined') {\n if (event.target !== event.currentTarget) return; // makes sure the event didn't bubble from \"below\"\n $(event.target).unbind(endEvent, _wrappedCallback);\n } else $(this).unbind(endEvent, _wrappedCallback); // triggered by setTimeout\n\n fired = true;\n $(this).css(cssReset);\n callback && callback.call(this);\n };\n if (duration > 0) {\n this.bind(endEvent, _wrappedCallback);\n // transitionEnd is not always firing on older Android phones\n // so make sure it gets fired\n setTimeout(function () {\n if (fired) return;\n _wrappedCallback.call(that);\n }, (duration + delay) * 1000 + 25);\n }\n\n // trigger page reflow so new elements can animate\n this.size() && this.get(0).clientLeft;\n\n this.css(cssValues);\n\n if (duration <= 0) setTimeout(function () {\n that.each(function () {\n _wrappedCallback.call(this);\n });\n }, 0);\n\n return this;\n };\n\n testEl = null;\n })(Zepto);(function ($, undefined) {\n var document = window.document,\n docElem = document.documentElement,\n origShow = $.fn.show,\n origHide = $.fn.hide,\n origToggle = $.fn.toggle;\n\n function anim(el, speed, opacity, scale, callback) {\n if (typeof speed == 'function' && !callback) callback = speed, speed = undefined;\n var props = { opacity: opacity };\n if (scale) {\n props.scale = scale;\n el.css($.fx.cssPrefix + 'transform-origin', '0 0');\n }\n return el.animate(props, speed, null, callback);\n }\n\n function hide(el, speed, scale, callback) {\n return anim(el, speed, 0, scale, function () {\n origHide.call($(this));\n callback && callback.call(this);\n });\n }\n\n $.fn.show = function (speed, callback) {\n origShow.call(this);\n if (speed === undefined) speed = 0;else this.css('opacity', 0);\n return anim(this, speed, 1, '1,1', callback);\n };\n\n $.fn.hide = function (speed, callback) {\n if (speed === undefined) return origHide.call(this);else return hide(this, speed, '0,0', callback);\n };\n\n $.fn.toggle = function (speed, callback) {\n if (speed === undefined || typeof speed == 'boolean') return origToggle.call(this, speed);else return this.each(function () {\n var el = $(this);\n el[el.css('display') == 'none' ? 'show' : 'hide'](speed, callback);\n });\n };\n\n $.fn.fadeTo = function (speed, opacity, callback) {\n return anim(this, speed, opacity, null, callback);\n };\n\n $.fn.fadeIn = function (speed, callback) {\n var target = this.css('opacity');\n if (target > 0) this.css('opacity', 0);else target = 1;\n return origShow.call(this).fadeTo(speed, target, callback);\n };\n\n $.fn.fadeOut = function (speed, callback) {\n return hide(this, speed, null, callback);\n };\n\n $.fn.fadeToggle = function (speed, callback) {\n return this.each(function () {\n var el = $(this);\n el[el.css('opacity') == 0 || el.css('display') == 'none' ? 'fadeIn' : 'fadeOut'](speed, callback);\n });\n };\n })(Zepto);(function ($) {\n var cache = [],\n timeout;\n\n $.fn.remove = function () {\n return this.each(function () {\n if (this.parentNode) {\n if (this.tagName === 'IMG') {\n cache.push(this);\n this.src = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(function () {\n cache = [];\n }, 60000);\n }\n this.parentNode.removeChild(this);\n }\n });\n };\n })(Zepto);(function ($) {\n var data = {},\n dataAttr = $.fn.data,\n camelize = $.camelCase,\n exp = $.expando = 'Zepto' + +new Date(),\n emptyArray = [];\n\n // Get value from node:\n // 1. first try key as given,\n // 2. then try camelized key,\n // 3. fall back to reading \"data-*\" attribute.\n function getData(node, name) {\n var id = node[exp],\n store = id && data[id];\n if (name === undefined) return store || setData(node);else {\n if (store) {\n if (name in store) return store[name];\n var camelName = camelize(name);\n if (camelName in store) return store[camelName];\n }\n return dataAttr.call($(node), name);\n }\n }\n\n // Store value under camelized key on node\n function setData(node, name, value) {\n var id = node[exp] || (node[exp] = ++$.uuid),\n store = data[id] || (data[id] = attributeData(node));\n if (name !== undefined) store[camelize(name)] = value;\n return store;\n }\n\n // Read all \"data-*\" attributes from a node\n function attributeData(node) {\n var store = {};\n $.each(node.attributes || emptyArray, function (i, attr) {\n if (attr.name.indexOf('data-') == 0) store[camelize(attr.name.replace('data-', ''))] = $.zepto.deserializeValue(attr.value);\n });\n return store;\n }\n\n $.fn.data = function (name, value) {\n return value === undefined ?\n // set multiple values via object\n $.isPlainObject(name) ? this.each(function (i, node) {\n $.each(name, function (key, value) {\n setData(node, key, value);\n });\n }) :\n // get value from first element\n 0 in this ? getData(this[0], name) : undefined :\n // set value on all elements\n this.each(function () {\n setData(this, name, value);\n });\n };\n\n $.fn.removeData = function (names) {\n if (typeof names == 'string') names = names.split(/\\s+/);\n return this.each(function () {\n var id = this[exp],\n store = id && data[id];\n if (store) $.each(names || store, function (key) {\n delete store[names ? camelize(this) : key];\n });\n });\n }\n\n // Generate extended `remove` and `empty` functions\n ;['remove', 'empty'].forEach(function (methodName) {\n var origFn = $.fn[methodName];\n $.fn[methodName] = function () {\n var elements = this.find('*');\n if (methodName === 'remove') elements = elements.add(this);\n elements.removeData();\n return origFn.call(this);\n };\n });\n })(Zepto);(function ($) {\n // Create a collection of callbacks to be fired in a sequence, with configurable behaviour\n // Option flags:\n // - once: Callbacks fired at most one time.\n // - memory: Remember the most recent context and arguments\n // - stopOnFalse: Cease iterating over callback list\n // - unique: Permit adding at most one instance of the same callback\n $.Callbacks = function (options) {\n options = $.extend({}, options);\n\n var memory,\n // Last fire value (for non-forgettable lists)\n _fired,\n // Flag to know if list was already fired\n firing,\n // Flag to know if list is currently firing\n firingStart,\n // First callback to fire (used internally by add and fireWith)\n firingLength,\n // End of the loop when firing\n firingIndex,\n // Index of currently firing callback (modified by remove if needed)\n list = [],\n // Actual callback list\n stack = !options.once && [],\n // Stack of fire calls for repeatable lists\n fire = function fire(data) {\n memory = options.memory && data;\n _fired = true;\n firingIndex = firingStart || 0;\n firingStart = 0;\n firingLength = list.length;\n firing = true;\n for (; list && firingIndex < firingLength; ++firingIndex) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false;\n break;\n }\n }\n firing = false;\n if (list) {\n if (stack) stack.length && fire(stack.shift());else if (memory) list.length = 0;else Callbacks.disable();\n }\n },\n Callbacks = {\n add: function add() {\n if (list) {\n var start = list.length,\n add = function add(args) {\n $.each(args, function (_, arg) {\n if (typeof arg === \"function\") {\n if (!options.unique || !Callbacks.has(arg)) list.push(arg);\n } else if (arg && arg.length && typeof arg !== 'string') add(arg);\n });\n };\n add(arguments);\n if (firing) firingLength = list.length;else if (memory) {\n firingStart = start;\n fire(memory);\n }\n }\n return this;\n },\n remove: function remove() {\n if (list) {\n $.each(arguments, function (_, arg) {\n var index;\n while ((index = $.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n // Handle firing indexes\n if (firing) {\n if (index <= firingLength) --firingLength;\n if (index <= firingIndex) --firingIndex;\n }\n }\n });\n }\n return this;\n },\n has: function has(fn) {\n return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length));\n },\n empty: function empty() {\n firingLength = list.length = 0;\n return this;\n },\n disable: function disable() {\n list = stack = memory = undefined;\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n lock: function lock() {\n stack = undefined;\n if (!memory) Callbacks.disable();\n return this;\n },\n locked: function locked() {\n return !stack;\n },\n fireWith: function fireWith(context, args) {\n if (list && (!_fired || stack)) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n if (firing) stack.push(args);else fire(args);\n }\n return this;\n },\n fire: function fire() {\n return Callbacks.fireWith(this, arguments);\n },\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return Callbacks;\n };\n })(Zepto);(function ($) {\n var slice = Array.prototype.slice;\n\n function Deferred(func) {\n var tuples = [\n // action, add listener, listener list, final state\n [\"resolve\", \"done\", $.Callbacks({ once: 1, memory: 1 }), \"resolved\"], [\"reject\", \"fail\", $.Callbacks({ once: 1, memory: 1 }), \"rejected\"], [\"notify\", \"progress\", $.Callbacks({ memory: 1 })]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function then() /* fnDone [, fnFailed [, fnProgress]] */{\n var fns = arguments;\n return Deferred(function (defer) {\n $.each(tuples, function (i, tuple) {\n var fn = $.isFunction(fns[i]) && fns[i];\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && $.isFunction(returned.promise)) {\n returned.promise().done(defer.resolve).fail(defer.reject).progress(defer.notify);\n } else {\n var context = this === _promise ? defer.promise() : this,\n values = fn ? [returned] : arguments;\n defer[tuple[0] + \"With\"](context, values);\n }\n });\n });\n fns = null;\n }).promise();\n },\n\n promise: function promise(obj) {\n return obj != null ? $.extend(obj, _promise) : _promise;\n }\n },\n deferred = {};\n\n $.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3];\n\n _promise[tuple[1]] = list.add;\n\n if (stateString) {\n list.add(function () {\n _state = stateString;\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? _promise : this, arguments);\n return this;\n };\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n _promise.promise(deferred);\n if (func) func.call(deferred, deferred);\n return deferred;\n }\n\n $.when = function (sub) {\n var resolveValues = slice.call(arguments),\n len = resolveValues.length,\n i = 0,\n remain = len !== 1 || sub && $.isFunction(sub.promise) ? len : 0,\n deferred = remain === 1 ? sub : Deferred(),\n progressValues,\n progressContexts,\n resolveContexts,\n updateFn = function updateFn(i, ctx, val) {\n return function (value) {\n ctx[i] = this;\n val[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (val === progressValues) {\n deferred.notifyWith(ctx, val);\n } else if (! --remain) {\n deferred.resolveWith(ctx, val);\n }\n };\n };\n\n if (len > 1) {\n progressValues = new Array(len);\n progressContexts = new Array(len);\n resolveContexts = new Array(len);\n for (; i < len; ++i) {\n if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise().done(updateFn(i, resolveContexts, resolveValues)).fail(deferred.reject).progress(updateFn(i, progressContexts, progressValues));\n } else {\n --remain;\n }\n }\n }\n if (!remain) deferred.resolveWith(resolveContexts, resolveValues);\n return deferred.promise();\n };\n\n $.Deferred = Deferred;\n })(Zepto);(function ($) {\n var zepto = $.zepto,\n oldQsa = zepto.qsa,\n oldMatches = zepto.matches;\n\n function _visible(elem) {\n elem = $(elem);\n return !!(elem.width() || elem.height()) && elem.css(\"display\") !== \"none\";\n }\n\n // Implements a subset from:\n // http://api.jquery.com/category/selectors/jquery-selector-extensions/\n //\n // Each filter function receives the current index, all nodes in the\n // considered set, and a value if there were parentheses. The value\n // of `this` is the node currently being considered. The function returns the\n // resulting node(s), null, or undefined.\n //\n // Complex selectors are not supported:\n // li:has(label:contains(\"foo\")) + li:has(label:contains(\"bar\"))\n // ul.inner:first > li\n var filters = $.expr[':'] = {\n visible: function visible() {\n if (_visible(this)) return this;\n },\n hidden: function hidden() {\n if (!_visible(this)) return this;\n },\n selected: function selected() {\n if (this.selected) return this;\n },\n checked: function checked() {\n if (this.checked) return this;\n },\n parent: function parent() {\n return this.parentNode;\n },\n first: function first(idx) {\n if (idx === 0) return this;\n },\n last: function last(idx, nodes) {\n if (idx === nodes.length - 1) return this;\n },\n eq: function eq(idx, _, value) {\n if (idx === value) return this;\n },\n contains: function contains(idx, _, text) {\n if ($(this).text().indexOf(text) > -1) return this;\n },\n has: function has(idx, _, sel) {\n if (zepto.qsa(this, sel).length) return this;\n }\n };\n\n var filterRe = new RegExp('(.*):(\\\\w+)(?:\\\\(([^)]+)\\\\))?$\\\\s*'),\n childRe = /^\\s*>/,\n classTag = 'Zepto' + +new Date();\n\n function process(sel, fn) {\n // quote the hash in `a[href^=#]` expression\n sel = sel.replace(/=#\\]/g, '=\"#\"]');\n var filter,\n arg,\n match = filterRe.exec(sel);\n if (match && match[2] in filters) {\n filter = filters[match[2]], arg = match[3];\n sel = match[1];\n if (arg) {\n var num = Number(arg);\n if (isNaN(num)) arg = arg.replace(/^[\"']|[\"']$/g, '');else arg = num;\n }\n }\n return fn(sel, filter, arg);\n }\n\n zepto.qsa = function (node, selector) {\n return process(selector, function (sel, filter, arg) {\n try {\n var taggedParent;\n if (!sel && filter) sel = '*';else if (childRe.test(sel))\n // support \"> *\" child queries by tagging the parent node with a\n // unique class and prepending that classname onto the selector\n taggedParent = $(node).addClass(classTag), sel = '.' + classTag + ' ' + sel;\n\n var nodes = oldQsa(node, sel);\n } catch (e) {\n console.error('error performing selector: %o', selector);\n throw e;\n } finally {\n if (taggedParent) taggedParent.removeClass(classTag);\n }\n return !filter ? nodes : zepto.uniq($.map(nodes, function (n, i) {\n return filter.call(n, i, nodes, arg);\n }));\n });\n };\n\n zepto.matches = function (node, selector) {\n return process(selector, function (sel, filter, arg) {\n return (!sel || oldMatches(node, sel)) && (!filter || filter.call(node, null, arg) === node);\n });\n };\n })(Zepto);(function ($) {\n var touch = {},\n touchTimeout,\n tapTimeout,\n swipeTimeout,\n longTapTimeout,\n longTapDelay = 750,\n gesture;\n\n function swipeDirection(x1, x2, y1, y2) {\n return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? x1 - x2 > 0 ? 'Left' : 'Right' : y1 - y2 > 0 ? 'Up' : 'Down';\n }\n\n function longTap() {\n longTapTimeout = null;\n if (touch.last) {\n touch.el.trigger('longTap');\n touch = {};\n }\n }\n\n function cancelLongTap() {\n if (longTapTimeout) clearTimeout(longTapTimeout);\n longTapTimeout = null;\n }\n\n function cancelAll() {\n if (touchTimeout) clearTimeout(touchTimeout);\n if (tapTimeout) clearTimeout(tapTimeout);\n if (swipeTimeout) clearTimeout(swipeTimeout);\n if (longTapTimeout) clearTimeout(longTapTimeout);\n touchTimeout = tapTimeout = swipeTimeout = longTapTimeout = null;\n touch = {};\n }\n\n function isPrimaryTouch(event) {\n return (event.pointerType == 'touch' || event.pointerType == event.MSPOINTER_TYPE_TOUCH) && event.isPrimary;\n }\n\n function isPointerEventType(e, type) {\n return e.type == 'pointer' + type || e.type.toLowerCase() == 'mspointer' + type;\n }\n\n $(document).ready(function () {\n var now,\n delta,\n deltaX = 0,\n deltaY = 0,\n firstTouch,\n _isPointerType;\n\n if ('MSGesture' in window) {\n gesture = new MSGesture();\n gesture.target = document.body;\n }\n\n $(document).bind('MSGestureEnd', function (e) {\n var swipeDirectionFromVelocity = e.velocityX > 1 ? 'Right' : e.velocityX < -1 ? 'Left' : e.velocityY > 1 ? 'Down' : e.velocityY < -1 ? 'Up' : null;\n if (swipeDirectionFromVelocity) {\n touch.el.trigger('swipe');\n touch.el.trigger('swipe' + swipeDirectionFromVelocity);\n }\n }).on('touchstart MSPointerDown pointerdown', function (e) {\n if ((_isPointerType = isPointerEventType(e, 'down')) && !isPrimaryTouch(e)) return;\n firstTouch = _isPointerType ? e : e.touches[0];\n if (e.touches && e.touches.length === 1 && touch.x2) {\n // Clear out touch movement data if we have it sticking around\n // This can occur if touchcancel doesn't fire due to preventDefault, etc.\n touch.x2 = undefined;\n touch.y2 = undefined;\n }\n now = Date.now();\n delta = now - (touch.last || now);\n touch.el = $('tagName' in firstTouch.target ? firstTouch.target : firstTouch.target.parentNode);\n touchTimeout && clearTimeout(touchTimeout);\n touch.x1 = firstTouch.pageX;\n touch.y1 = firstTouch.pageY;\n if (delta > 0 && delta <= 250) touch.isDoubleTap = true;\n touch.last = now;\n longTapTimeout = setTimeout(longTap, longTapDelay);\n // adds the current touch contact for IE gesture recognition\n if (gesture && _isPointerType) gesture.addPointer(e.pointerId);\n }).on('touchmove MSPointerMove pointermove', function (e) {\n if ((_isPointerType = isPointerEventType(e, 'move')) && !isPrimaryTouch(e)) return;\n firstTouch = _isPointerType ? e : e.touches[0];\n cancelLongTap();\n touch.x2 = firstTouch.pageX;\n touch.y2 = firstTouch.pageY;\n\n deltaX += Math.abs(touch.x1 - touch.x2);\n deltaY += Math.abs(touch.y1 - touch.y2);\n }).on('touchend MSPointerUp pointerup', function (e) {\n if ((_isPointerType = isPointerEventType(e, 'up')) && !isPrimaryTouch(e)) return;\n cancelLongTap();\n\n // swipe\n if (touch.x2 && Math.abs(touch.x1 - touch.x2) > 30 || touch.y2 && Math.abs(touch.y1 - touch.y2) > 30) swipeTimeout = setTimeout(function () {\n if (touch.el) {\n touch.el.trigger('swipe');\n touch.el.trigger('swipe' + swipeDirection(touch.x1, touch.x2, touch.y1, touch.y2));\n }\n touch = {};\n }, 0);\n\n // normal tap\n else if ('last' in touch)\n // don't fire tap when delta position changed by more than 30 pixels,\n // for instance when moving to a point and back to origin\n if (deltaX < 30 && deltaY < 30) {\n // delay by one tick so we can cancel the 'tap' event if 'scroll' fires\n // ('tap' fires before 'scroll')\n tapTimeout = setTimeout(function () {\n\n // trigger universal 'tap' with the option to cancelTouch()\n // (cancelTouch cancels processing of single vs double taps for faster 'tap' response)\n var event = $.Event('tap');\n event.cancelTouch = cancelAll;\n if (touch.el) touch.el.trigger(event);\n\n // trigger double tap immediately\n if (touch.isDoubleTap) {\n if (touch.el) touch.el.trigger('doubleTap');\n touch = {};\n }\n\n // trigger single tap after 250ms of inactivity\n else {\n touchTimeout = setTimeout(function () {\n touchTimeout = null;\n if (touch.el) touch.el.trigger('singleTap');\n touch = {};\n }, 250);\n }\n }, 0);\n } else {\n touch = {};\n }\n deltaX = deltaY = 0;\n })\n // when the browser window loses focus,\n // for example when a modal dialog is shown,\n // cancel all ongoing events\n .on('touchcancel MSPointerCancel pointercancel', cancelAll);\n\n // scrolling the window indicates intention of the user\n // to scroll, not tap or swipe, so cancel all ongoing events\n $(window).on('scroll', cancelAll);\n });['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap', 'tap', 'singleTap', 'longTap'].forEach(function (eventName) {\n $.fn[eventName] = function (callback) {\n return this.on(eventName, callback);\n };\n });\n })(Zepto);(function ($) {\n $.fn.end = function () {\n return this.prevObject || $();\n };\n\n $.fn.andSelf = function () {\n return this.add(this.prevObject || $());\n };\n\n 'filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings'.split(',').forEach(function (property) {\n var fn = $.fn[property];\n $.fn[property] = function () {\n var ret = fn.apply(this, arguments);\n ret.prevObject = this;\n return ret;\n };\n });\n })(Zepto);\n\n return Zepto;\n});"; +},function(e,t){},,,,,,,,,,,,,,,function(e,t){"use strict";function n(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://captcha.vip.com/getbootstrap",e.onload=function(){window.VipSecureCode&&VipSecureCode.init()},document.body.appendChild(e)}function i(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://captcha.vip.com/getbootstrap",t.onload=function(){window.VipSecureCode&&(VipSecureCode.init(),e&&e())},document.body.appendChild(t)}e.exports=n,e.exports=i},function(e,t){"use strict";function n(){var e=1;switch(window.location.host){case"mcheckout.vip.com":e=8;break;case"mst-vis-admin.vip.com":e=7;break;case"mst-admin.vip.vip.com":e=6;break;case"weixin.vip.com":e=5;break;case"viva.vip.com":e=4;break;case"mst.vip.com":e=3;break;case"m.vipglobal.hk":e=2}return e}t.getId=n},function(e,t,n){(function(t){"use strict";var i=n(22),o=window,r=o.location,s={genLocation:function(e){var t=e.split("&"),n={};return t.map(function(e){var t=e.split("=");if(t.length){var i=t[0],o=t.slice(1,t.length).join("=");n[i]=o}}),n},query:function(e){var t=r.search.substr(1),n=t.split("&"),i={};return n.map(function(e){var t=e.split("=");t[0]&&(i[t[0]]=t[1])}),e?i[e]:i},queryV2:function(e){var t=s.genLocation(r.search.substr(1));return e?t[e]:t},queryV3:function(e){var t=s.genLocation(r.search.substr(1));return e?decodeURIComponent(t[e]):(Object.keys(t).forEach(function(e){t[e]=decodeURIComponent(t[e])}),t)},getSubmitData:function(e){e=e||t("body");var n=e.find("[data-submit]").filter(":visible"),i={};return n.each(function(){var e=t(this),n=e.attr("name"),o=e.data("submit"),r=e[0].nodeName.toLowerCase();if(""===o&&(o=e.val()),"i"!==r||(n=e.parent().parent().attr("name"),e.hasClass("selected")))return n||"i"==r||o.indexOf(",")==-1?void(i[n]=o):void o.split("|").forEach(function(e,t){var n=e.split(",");i[n[0]]=n[1]})}),i},isWeixin:function(){var e=window.navigator.userAgent.toLowerCase();return"micromessenger"==e.match(/MicroMessenger/i)},getClientType:function(){if(i.get("client"))return i.get("client");var e=window.navigator.userAgent.toLowerCase();return e.match(/iphone/i)?"iphone":e.match(/android/i)?"android":e.match(/ipad/i)?"ipad":"wap"},parseObjToUrlStr:function(e){var t=[];for(var n in e)t.push(n+"="+e[n]);return t.join("&")},spellUrl:function(e,t){if(!e)return"";if(!t)return e;var n=document.createElement("a");n.href=e;var i=Object.keys(t).map(function(e){var n=encodeURIComponent(t[e]);return e+"="+n}).join("&"),o=n.search?n.search+"&"+i:"?"+i;return n.search=o,n.href},isVipUrl:function(e){if(!e||"string"!=typeof e)return!1;var t=e.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i),n=t&&t[1]||"";return/((.*\.)|^)vip\.com$/.test(n)},asyncLoadJs:function(e,n){var i=t.Deferred(),o=n||{},r=document.querySelector("script[src='"+e+"']");if(r||o.hasLoaded)return setTimeout(function(){i.resolve()},0),i.promise();var s=document.createElement("script"),a=e.slice(e.lastIndexOf("/")+1,e.lastIndexOf("."));return s.type="text/javascript",s.src=e,document.body.appendChild(s),s.onload=function(){i.resolve(a+".js鍔犺浇瀹屾垚")},s.onerror=function(){i.reject(a+".js鍔犺浇澶辫触")},i.promise()}};e.exports=s}).call(t,n(1))},function(e,t,n){var i,o;"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};(function(r){i=r,o="function"==typeof i?i.call(t,n,t,e):i,!(void 0!==o&&(e.exports=o))})(function(){function e(){for(var e=0,t={};e1){if(r=e({path:"/"},i.defaults,r),"number"==typeof r.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*r.expires),r.expires=a}try{s=JSON.stringify(o),/^[\{\[]/.test(s)&&(o=s)}catch(c){}return o=encodeURIComponent(String(o)),o=o.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|5B|5D|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape),document.cookie=[t,"=",o,r.expires&&"; expires="+r.expires.toUTCString(),r.path&&"; path="+r.path,r.domain&&"; domain="+r.domain,r.secure?"; secure":""].join("")}t||(s={});for(var l=document.cookie?document.cookie.split("; "):[],u=/(%[0-9A-Z]{2})+/g,d=0;d>2,s=(3&t)<<4|i>>4,a=(15&i)<<2|o>>6,c=63&o,isNaN(i)?a=c=64:isNaN(o)&&(c=64),l=l+this._keyStr.charAt(r)+this._keyStr.charAt(s)+this._keyStr.charAt(a)+this._keyStr.charAt(c);return l},decode:function(e){var t,i,o,r,s,a,c,l="",u=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");u>4,i=(15&s)<<4|a>>2,o=(3&a)<<6|c,l+=String.fromCharCode(t),64!=a&&(l+=String.fromCharCode(i)),64!=c&&(l+=String.fromCharCode(o));return l=n._utf8_decode(l)},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");for(var t="",n=0;ni?t+=String.fromCharCode(i):i>127&&2048>i?(t+=String.fromCharCode(i>>6|192),t+=String.fromCharCode(63&i|128)):(t+=String.fromCharCode(i>>12|224),t+=String.fromCharCode(i>>6&63|128),t+=String.fromCharCode(63&i|128))}return t},_utf8_decode:function(e){for(var t="",n=0,i=0,o=0,r=0;rn?(t+=String.fromCharCode(n),r++):n>191&&224>n?(i=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&i),r+=2):(i=e.charCodeAt(r+1),o=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&i)<<6|63&o),r+=3);return t}};e.exports=n},function(e,t,n){(function(e){"use strict";function i(e){return C.req({url:"//pcapi.vip.com/cc/index.php?code="+e,cache:!1,type:"GET",timeout:8e3,dataType:"json"})}function o(e){return E({url:N.GET_CONFIG_SWITCH,data:e,isEncrypt:!0,type:"POST",xhrFields:{withCredentials:!0},Authorization:!0},0)}function r(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.CAPTCHAPRE})}function s(t){return A.isWeixin()&&e.extend(t,window.weixinData),A.asyncLoadJs(I.signScript,{hasLoaded:window.sign}).then(function(){return i("phoneEncryptWap").then(function(e){return E({url:N.PWDLOGINV2,data:t,isEncrypt:e.phoneEncryptWap,type:"POST",xhrFields:{withCredentials:!0},Authorization:!0},0)},function(e){return E({url:N.PWDLOGINV2,data:t,isEncrypt:!1,type:"POST",xhrFields:{withCredentials:!0},Authorization:!0},0)})})}function a(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.SELECTACCOUNT})}function c(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.EXCHANGETOKENLOGIN})}function l(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.EXCHANGETOKENLOGINV3})}function u(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.EXCHANGETOKENLOGINV4})}function d(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.WEIXINREGISTERLOGIN})}function h(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.WEIXININFOSTATUS})}function p(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.GETVIVATIPS})}function f(e){return C.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:N.ISLOGINED})}function m(e){return C.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:N.GETTHIRDINFO})}function g(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.THIRDTRYLOGIN})}function v(e){return C.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:N.THIRDAUTOLOGIN})}function y(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.SENDSMS})}function w(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.CHECKSMS})}function b(t){return A.isWeixin()&&e.extend(t,window.weixinData),i("phoneEncryptWap").then(function(e){return E({data:t,isEncrypt:e.phoneEncryptWap,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHAINFO},0)},function(e){return E({data:t,isEncrypt:!1,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHAINFO})})}function x(t){return A.isWeixin()&&e.extend(t,window.weixinData),A.asyncLoadJs(I.signScript,{hasLoaded:window.sign}).then(function(){return E({data:t,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.TICKETLOGIN,Authorization:!0},0)})}function _(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.MOBILELOGIN})}function S(e){return C.req({data:e,url:N.WEIXINAUTOLOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function k(){return C.req({url:N.GET_USER_INFO,xhrFields:{withCredentials:!0}})}function T(t,n){return e.ajax({type:"GET",url:N.GETWEIXININFO,data:t,dataType:"jsonp",jsonp:"jsonp",timeout:2e3,success:function(e){n(e)},error:function(e){n(e)}})}Object.defineProperty(t,"__esModule",{value:!0}),t.getConfigSwitch=o,n(1);var C=n(25),E=n(29),A=n(21),I=n(31),P="//mlogin-api.vip.com/ajaxapi-user.html",N={CAPTCHAPRE:P+"?act=captchaPre",PWDLOGIN:P+"?act=pwdLoginV2",PWDLOGINV2:"//mlogin-api.vip.com/ajaxapi/user/pwdLoginV2",SELECTACCOUNT:P+"?act=selectAccountV2",EXCHANGETOKENLOGIN:P+"?act=exchangeTokenLogin",EXCHANGETOKENLOGINV3:P+"?act=exchangeTokenLoginV3",EXCHANGETOKENLOGINV4:"//mlogin-api.vip.com/ajaxapi/user/exchangeTokenLoginV4",WEIXINREGISTERLOGIN:P+"?act=weixinRegisterLogin",WEIXININFOSTATUS:P+"?act=weixinInfoStatus",GETVIVATIPS:P+"?act=getVivaTips",SENDSMS:P+"?act=sendSmsV3",CHECKSMS:P+"?act=checkV3",CAPTCHAINFO:"//mlogin-api.vip.com/ajaxapi/user/getCaptchaInfo",TICKETLOGIN:"//mlogin-api.vip.com/ajaxapi/user/ticketLogin",MOBILELOGIN:P+"?act=mobileLoginV3",GET_USER_INFO:P+"?act=getUserInfo",ISLOGINED:P+"?act=isLogined",GETTHIRDINFO:P+"?act=getThirdInfo",THIRDTRYLOGIN:P+"?act=thirdTryLogin",THIRDAUTOLOGIN:P+"?act=thirdAutoLogin",WEIXINAUTOLOGIN:P+"?act=weixinAutoLogin",GETWEIXININFO:"//weixin-api.vip.com/user/getUserInfo",GET_CONFIG_SWITCH:"//mlogin-api.vip.com/ajaxapi/comm/getConfigSwitch",CAPTCHA_FLOW:"//mapi.vip.com/vips-mobile/rest/auth/captcha/mp/flow/v1",CAPTCHA_CHECKMOBILE:"//mapi.vip.com/vips-mobile/rest/auth/quicklogin/wap/checkmobile/v1"};t.getCaptchaFlow=function(t){return A.isWeixin()&&e.extend(t,window.weixinData),E({data:t,isEncrypt:!0,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHA_FLOW},0)},t.getCaptchaInfoV2=function(t){return A.isWeixin()&&e.extend(t,window.weixinData),E({data:t,isEncrypt:!0,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHA_CHECKMOBILE},0)};t.getEncryptSwitch=i,t.captchaPre=r,t.pwdLogin=s,t.selectAccount=a,t.exchangeToken=c,t.exchangeTokenV3=l,t.exchangeTokenV4=u,t.weixinRegisterLogin=d,t.getweixinInfoStatus=h,t.getVivaTips=p,t.sendSms=y,t.checkSms=w,t.mobileLogin=_,t.getUserInfo=k,t.isLogined=f,t.getThirdInfo=m,t.thirdTryLogin=g,t.thirdAutoLogin=v,t.weixinAutoLogin=S,t.getWeixinInfo=T,t.getCaptchaInfo=b,t.ticketLogin=x}).call(t,n(1))},function(e,t,n){(function(e){"use strict";function i(e){var t=document.createElement("a");return t.href=e,t.hostname}function o(t){function n(e){var n=t.url.replace(/\//g,"_");void 0!==e.code&&l(n+"_fail_"+(e.code||999999)),o.reject(e)}var o=e.Deferred(),r=u.createIfNeed();if(!t.url)throw Error("request url required");t.type||(t.type="GET"),t.timeout||(t.timeout=1e4);var s=i(t.url),a=h["mlogin.vip.com"];h[s]&&(a=h[s]),delete t.success,delete t.error,delete t.complete,t.data||(t.data={}),t.data._t=Date.now(),t.data.mars_cid||(t.data.mars_cid=r),t.cache=!1;var p=t.url.replace(/\//g,"_");t.Authorization&&window.sign&&"function"==typeof window.sign.getSign&&(t.beforeSend=function(e,n){var i={};n.data.split("&").forEach(function(e){var n=e.split("="),o=c(n,2),r=o[0],s=o[1];i[r]=t.data[r]||s});var o=window.sign.getSign(n.url,i);e.setRequestHeader("Authorization",o)}),e.ajax(t).done(function(e){e&&a.successCode.indexOf(e.code)!==-1?o.resolve(a.callbackData(e)||{}):(e.msg=e.msg||"缃戠粶瓒呮椂锛岃閲嶈瘯锛",l("error",{code:e.code,event:p,error:p+":"+e.code,info:e.msg}),n(e))}).fail(function(e,t,i){var o=e.status;l("error",{status:o,event:p,error:p+":"+t,errType:t,info:t+"_"+(i||"")}),n(i&&i.msg||{msg:"缃戠粶瓒呮椂锛岃閲嶈瘯锛"})});var f=o.promise();return e.isFunction(d)&&f.fail(d),f}function r(e){h=a(h,e)}function s(e){d=e}var a=Object.assign||function(e){for(var t=1;t-1?"page_exception_network":!!t.errType&&"page_exception_service",request_url:t.event||!1,rpc_code:t.error||!1,domain:location.host||!1,exception_info:!!t.info&&encodeURIComponent(t.info)});return n=n+"?"+c+"&r="+Math.random()},this.request=function(e){var t=new XMLHttpRequest;return t.open("GET",e),t.send(),e},n=this.setErrUrl(e,t),this.request(n)},c=function(e,t){new a(e,t)};e.exports=c}).call(t,n(1))},function(e,t,n){"use strict";var i=n(22),o=n(28),r=o.creat(),s={createIfNeed:function(){var e=i.get("mars_cid");if(!e){e=r;var t=730;i.set("mars_cid",e,{expires:t,domain:".vip.com",path:"/"})}return e}};e.exports=s},function(e,t){"use strict";var n={creat:function(){var e=this;return this.encrypt(e._pad((new Date).getTime(),13)+"_"+e._rand())},encrypt:function(e){var t=e.split("_"),n=t[0],i=t[1];if(!n||!i)return e;for(var o=0,r=n.length,s=0;s>>8^255&f^99,o[n]=f,r[f]=n;var m=e[n],g=e[m],v=e[g],y=257*e[f]^16843008*f;s[n]=y<<24|y>>>8,a[n]=y<<16|y>>>16,c[n]=y<<8|y>>>24,l[n]=y,y=16843009*v^65537*g^257*m^16843008*n,u[f]=y<<24|y>>>8,d[f]=y<<16|y>>>16,h[f]=y<<8|y>>>24,p[f]=y,n?(n=m^e[e[e[v^m]]],i^=e[e[i]]):n=i=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],m=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,i=4*((this._nRounds=n+6)+1),r=this._keySchedule=[],s=0;s6&&s%n==4&&(l=o[l>>>24]<<24|o[l>>>16&255]<<16|o[l>>>8&255]<<8|o[255&l]):(l=o[(l=l<<8|l>>>24)>>>24]<<24|o[l>>>16&255]<<16|o[l>>>8&255]<<8|o[255&l],l^=f[s/n|0]<<24),r[s]=r[s-n]^l);for(var a=this._invKeySchedule=[],c=0;c>>24]]^d[o[l>>>16&255]]^h[o[l>>>8&255]]^p[o[255&l]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,s,a,c,l,o)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,d,h,p,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,o,r,s,a){for(var c=this._nRounds,l=e[t]^n[0],u=e[t+1]^n[1],d=e[t+2]^n[2],h=e[t+3]^n[3],p=4,f=1;f>>24]^o[u>>>16&255]^r[d>>>8&255]^s[255&h]^n[p++],g=i[u>>>24]^o[d>>>16&255]^r[h>>>8&255]^s[255&l]^n[p++],v=i[d>>>24]^o[h>>>16&255]^r[l>>>8&255]^s[255&u]^n[p++],y=i[h>>>24]^o[l>>>16&255]^r[u>>>8&255]^s[255&d]^n[p++];l=m,u=g,d=v,h=y}m=(a[l>>>24]<<24|a[u>>>16&255]<<16|a[d>>>8&255]<<8|a[255&h])^n[p++],g=(a[u>>>24]<<24|a[d>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^n[p++],v=(a[d>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&u])^n[p++],y=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[u>>>8&255]<<8|a[255&d])^n[p++],e[t]=m,e[t+1]=g,e[t+2]=v,e[t+3]=y},keySize:8});e.AES=t._createHelper(m)}(),i.AES)},109:function(e,t,n){var i;e.exports=(i=n(249),n(888),void(i.lib.Cipher||function(e){var t=i,n=t.lib,o=n.Base,r=n.WordArray,s=n.BufferedBlockAlgorithm,a=t.enc,c=(a.Utf8,a.Base64),l=t.algo.EvpKDF,u=n.Cipher=s.extend({cfg:o.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?w:v}return function(t){return{encrypt:function(n,i,o){return e(i).encrypt(t,n,i,o)},decrypt:function(n,i,o){return e(i).decrypt(t,n,i,o)}}}}()}),d=(n.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),t.mode={}),h=n.BlockCipherMode=o.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=d.CBC=function(){function t(t,n,i){var o,r=this._iv;r?(o=r,this._iv=e):o=this._prevBlock;for(var s=0;s>>2];e.sigBytes-=t}},m=(n.BlockCipher=u.extend({cfg:u.cfg.extend({mode:p,padding:f}),reset:function(){var e;u.reset.call(this);var t=this.cfg,n=t.iv,i=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=i.createEncryptor:(e=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,n&&n.words):(this._mode=e.call(i,this,n&&n.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),n.CipherParams=o.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),g=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;return(n?r.create([1398893684,1701076831]).concat(n).concat(t):t).toString(c)},parse:function(e){var t,n=c.parse(e),i=n.words;return 1398893684==i[0]&&1701076831==i[1]&&(t=r.create(i.slice(2,4)),i.splice(0,4),n.sigBytes-=16),m.create({ciphertext:n,salt:t})}},v=n.SerializableCipher=o.extend({cfg:o.extend({format:g}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var o=e.createEncryptor(n,i),r=o.finalize(t),s=o.cfg;return m.create({ciphertext:r,key:n,iv:s.iv,algorithm:e,mode:s.mode,padding:s.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(n,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(t.kdf={}).OpenSSL={execute:function(e,t,n,i){i||(i=r.random(8));var o=l.create({keySize:t+n}).compute(e,i),s=r.create(o.words.slice(t),4*n);return o.sigBytes=4*t,m.create({key:o,iv:s,salt:i})}},w=n.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:y}),encrypt:function(e,t,n,i){var o=(i=this.cfg.extend(i)).kdf.execute(n,e.keySize,e.ivSize);i.iv=o.iv;var r=v.encrypt.call(this,e,t,o.key,i);return r.mixIn(o),r},decrypt:function(e,t,n,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var o=i.kdf.execute(n,e.keySize,e.ivSize,t.salt);return i.iv=o.iv,v.decrypt.call(this,e,t,o.key,i)}})}()))},249:function(e,t,n){var i;e.exports=i=i||function(e,t){var i;if("undefined"!=typeof window&&window.crypto&&(i=window.crypto),!i&&"undefined"!=typeof window&&window.msCrypto&&(i=window.msCrypto),!i&&"undefined"!=typeof n.g&&n.g.crypto&&(i=n.g.crypto),!i)try{i=n(480)}catch(o){}var r=function(){if(i){if("function"==typeof i.getRandomValues)try{return i.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof i.randomBytes)try{return i.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),a={},c=a.lib={},l=c.Base={extend:function(e){var t=s(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},u=c.WordArray=l.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes,o=e.sigBytes;if(this.clamp(),i%4)for(var r=0;r>>2]>>>24-r%4*8&255;t[i+r>>>2]|=s<<24-(i+r)%4*8}else for(r=0;r>>2]=n[r>>>2];return this.sigBytes+=o,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=l.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n>>2]>>>24-o%4*8&255;i.push((r>>>4).toString(16)),i.push((15&r).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new u.init(n,t/2)}},p=d.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(r))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new u.init(n,t)}},f=d.Utf8={stringify:function(e){try{return decodeURIComponent(escape(p.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return p.parse(unescape(encodeURIComponent(e)))}},m=c.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,i=this._data,o=i.words,r=i.sigBytes,s=this.blockSize,a=r/(4*s),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*s,l=e.min(4*c,r);if(c){for(var d=0;d>>6-s%4*2;o[r>>>2]|=a<<24-r%4*8,r++}return n.create(o,r)}var t=i,n=t.lib.WordArray;t.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,i=this._map;e.clamp();for(var o=[],r=0;r>>2]>>>24-r%4*8&255)<<16|(t[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|t[r+2>>>2]>>>24-(r+2)%4*8&255,a=0;a<4&&r+.75*a>>6*(3-a)&63));var c=i.charAt(64);if(c)for(;o.length%4;)o.push(c);return o.join("")},parse:function(t){var n=t.length,i=this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var r=0;r>>8&16711935}var t=i,n=t.lib.WordArray,o=t.enc;o.Utf16=o.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>16-o%4*8&65535;i.push(String.fromCharCode(r))}return i.join("")},parse:function(e){for(var t=e.length,i=[],o=0;o>>1]|=e.charCodeAt(o)<<16-o%2*16;return n.create(i,2*t)}},o.Utf16LE={stringify:function(t){for(var n=t.words,i=t.sigBytes,o=[],r=0;r>>2]>>>16-r%4*8&65535);o.push(String.fromCharCode(s))}return o.join("")},parse:function(t){for(var i=t.length,o=[],r=0;r>>1]|=e(t.charCodeAt(r)<<16-r%2*16);return n.create(o,2*i)}}}(),i.enc.Utf16)},888:function(e,t,n){var i,o,r,s,a,c,l,u;e.exports=(u=n(249),n(783),n(824),o=(i=u).lib,r=o.Base,s=o.WordArray,a=i.algo,c=a.MD5,l=a.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:c,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n,i=this.cfg,o=i.hasher.create(),r=s.create(),a=r.words,c=i.keySize,l=i.iterations;a.lengthi&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),r=this._iKey=t.clone(),a=o.words,c=r.words,l=0;l>>2]|=e[o]<<24-o%4*8;t.call(this,i,n)}else t.apply(this,arguments)}).prototype=e}}(),i.lib.WordArray)},214:function(e,t,n){var i;e.exports=(i=n(249),function(e){function t(e,t,n,i,o,r,s){var a=e+(t&n|~t&i)+o+s;return(a<>>32-r)+t}function n(e,t,n,i,o,r,s){var a=e+(t&i|n&~i)+o+s;return(a<>>32-r)+t}function o(e,t,n,i,o,r,s){var a=e+(t^n^i)+o+s;return(a<>>32-r)+t}function r(e,t,n,i,o,r,s){var a=e+(n^(t|~i))+o+s;return(a<>>32-r)+t}var s=i,a=s.lib,c=a.WordArray,l=a.Hasher,u=s.algo,d=[];!function(){for(var t=0;t<64;t++)d[t]=4294967296*e.abs(e.sin(t+1))|0}();var h=u.MD5=l.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,i){for(var s=0;s<16;s++){var a=i+s,c=e[a];e[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var l=this._hash.words,u=e[i+0],h=e[i+1],p=e[i+2],f=e[i+3],m=e[i+4],g=e[i+5],v=e[i+6],y=e[i+7],w=e[i+8],b=e[i+9],x=e[i+10],_=e[i+11],S=e[i+12],k=e[i+13],T=e[i+14],C=e[i+15],E=l[0],A=l[1],I=l[2],P=l[3];E=t(E,A,I,P,u,7,d[0]),P=t(P,E,A,I,h,12,d[1]),I=t(I,P,E,A,p,17,d[2]),A=t(A,I,P,E,f,22,d[3]),E=t(E,A,I,P,m,7,d[4]),P=t(P,E,A,I,g,12,d[5]),I=t(I,P,E,A,v,17,d[6]),A=t(A,I,P,E,y,22,d[7]),E=t(E,A,I,P,w,7,d[8]),P=t(P,E,A,I,b,12,d[9]),I=t(I,P,E,A,x,17,d[10]),A=t(A,I,P,E,_,22,d[11]),E=t(E,A,I,P,S,7,d[12]),P=t(P,E,A,I,k,12,d[13]),I=t(I,P,E,A,T,17,d[14]),E=n(E,A=t(A,I,P,E,C,22,d[15]),I,P,h,5,d[16]),P=n(P,E,A,I,v,9,d[17]),I=n(I,P,E,A,_,14,d[18]),A=n(A,I,P,E,u,20,d[19]),E=n(E,A,I,P,g,5,d[20]),P=n(P,E,A,I,x,9,d[21]),I=n(I,P,E,A,C,14,d[22]),A=n(A,I,P,E,m,20,d[23]),E=n(E,A,I,P,b,5,d[24]),P=n(P,E,A,I,T,9,d[25]),I=n(I,P,E,A,f,14,d[26]),A=n(A,I,P,E,w,20,d[27]),E=n(E,A,I,P,k,5,d[28]),P=n(P,E,A,I,p,9,d[29]),I=n(I,P,E,A,y,14,d[30]),E=o(E,A=n(A,I,P,E,S,20,d[31]),I,P,g,4,d[32]),P=o(P,E,A,I,w,11,d[33]),I=o(I,P,E,A,_,16,d[34]),A=o(A,I,P,E,T,23,d[35]),E=o(E,A,I,P,h,4,d[36]),P=o(P,E,A,I,m,11,d[37]),I=o(I,P,E,A,y,16,d[38]),A=o(A,I,P,E,x,23,d[39]),E=o(E,A,I,P,k,4,d[40]),P=o(P,E,A,I,u,11,d[41]),I=o(I,P,E,A,f,16,d[42]),A=o(A,I,P,E,v,23,d[43]),E=o(E,A,I,P,b,4,d[44]),P=o(P,E,A,I,S,11,d[45]),I=o(I,P,E,A,C,16,d[46]),E=r(E,A=o(A,I,P,E,p,23,d[47]),I,P,u,6,d[48]),P=r(P,E,A,I,y,10,d[49]),I=r(I,P,E,A,T,15,d[50]),A=r(A,I,P,E,g,21,d[51]),E=r(E,A,I,P,S,6,d[52]),P=r(P,E,A,I,f,10,d[53]),I=r(I,P,E,A,x,15,d[54]),A=r(A,I,P,E,h,21,d[55]),E=r(E,A,I,P,w,6,d[56]),P=r(P,E,A,I,C,10,d[57]),I=r(I,P,E,A,v,15,d[58]),A=r(A,I,P,E,k,21,d[59]),E=r(E,A,I,P,m,6,d[60]),P=r(P,E,A,I,_,10,d[61]),I=r(I,P,E,A,p,15,d[62]),A=r(A,I,P,E,b,21,d[63]),l[0]=l[0]+E|0,l[1]=l[1]+A|0,l[2]=l[2]+I|0,l[3]=l[3]+P|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,o=8*t.sigBytes;n[o>>>5]|=128<<24-o%32;var r=e.floor(i/4294967296),s=i;n[15+(o+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n[14+(o+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(n.length+1),this._process();for(var a=this._hash,c=a.words,l=0;l<4;l++){var u=c[l];c[l]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return a},clone:function(){var e=l.clone.call(this);return e._hash=this._hash.clone(),e}});s.MD5=l._createHelper(h),s.HmacMD5=l._createHmacHelper(h)}(Math),i.MD5)},568:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.mode.CFB=function(){function e(e,t,n,i){var o,r=this._iv;r?(o=r.slice(0),this._iv=void 0):o=this._prevBlock,i.encryptBlock(o,0);for(var s=0;s>24&255)){var t=e>>16&255,n=e>>8&255,i=255&e;255===t?(t=0,255===n?(n=0,255===i?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}function t(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t}var n=i.lib.BlockCipherMode.extend(),o=n.Encryptor=n.extend({processBlock:function(e,n){var i=this._cipher,o=i.blockSize,r=this._iv,s=this._counter;r&&(s=this._counter=r.slice(0),this._iv=void 0),t(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>2]|=o<<24-r%4*8,e.sigBytes+=o},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},i.pad.Ansix923)},807:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.Iso10126={pad:function(e,t){var n=4*t,o=n-e.sigBytes%n;e.concat(i.lib.WordArray.random(o-1)).concat(i.lib.WordArray.create([o<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},i.pad.Iso10126)},77:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.Iso97971={pad:function(e,t){e.concat(i.lib.WordArray.create([2147483648],1)),i.pad.ZeroPadding.pad(e,t)},unpad:function(e){i.pad.ZeroPadding.unpad(e),e.sigBytes--}},i.pad.Iso97971)},991:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.NoPadding={pad:function(){},unpad:function(){}},i.pad.NoPadding)},475:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.ZeroPadding={pad:function(e,t){var n=4*t;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){var t=e.words,n=e.sigBytes-1;for(n=e.sigBytes-1;n>=0;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},i.pad.ZeroPadding)},112:function(e,t,n){var i,o,r,s,a,c,l,u,d;e.exports=(d=n(249),n(783),n(824),o=(i=d).lib,r=o.Base,s=o.WordArray,a=i.algo,c=a.SHA1,l=a.HMAC,u=a.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:c,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,i=l.create(n.hasher,e),o=s.create(),r=s.create([1]),a=o.words,c=r.words,u=n.keySize,d=n.iterations;a.length>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,n=0;n<8;n++){var i=e[n]+t[n],o=65535&i,r=i>>>16,c=((o*o>>>17)+o*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[n]=c^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var t=i,n=t.lib.StreamCipher,o=t.algo,r=[],s=[],a=[],c=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,n=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var r=0;r<4;r++)e.call(this);for(r=0;r<8;r++)o[r]^=i[r+4&7];if(n){var s=n.words,a=s[0],c=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),u=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),d=l>>>16|4294901760&u,h=u<<16|65535&l;for(o[0]^=l,o[1]^=d,o[2]^=u,o[3]^=h,o[4]^=l,o[5]^=d,o[6]^=u,o[7]^=h,r=0;r<4;r++)e.call(this)}},_doProcessBlock:function(t,n){var i=this._X;e.call(this),r[0]=i[0]^i[5]>>>16^i[3]<<16,r[1]=i[2]^i[7]>>>16^i[5]<<16,r[2]=i[4]^i[1]>>>16^i[7]<<16,r[3]=i[6]^i[3]>>>16^i[1]<<16;for(var o=0;o<4;o++)r[o]=16711935&(r[o]<<8|r[o]>>>24)|4278255360&(r[o]<<24|r[o]>>>8),t[n+o]^=r[o]},blockSize:4,ivSize:2});t.RabbitLegacy=n._createHelper(c)}(),i.RabbitLegacy)},454:function(e,t,n){var i;e.exports=(i=n(249),n(269),n(214),n(888),n(109),function(){function e(){for(var e=this._X,t=this._C,n=0;n<8;n++)s[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,n=0;n<8;n++){var i=e[n]+t[n],o=65535&i,r=i>>>16,c=((o*o>>>17)+o*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[n]=c^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var t=i,n=t.lib.StreamCipher,o=t.algo,r=[],s=[],a=[],c=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,n=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var o=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],r=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,i=0;i<4;i++)e.call(this);for(i=0;i<8;i++)r[i]^=o[i+4&7];if(n){var s=n.words,a=s[0],c=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),u=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),d=l>>>16|4294901760&u,h=u<<16|65535&l;for(r[0]^=l,r[1]^=d,r[2]^=u,r[3]^=h,r[4]^=l,r[5]^=d,r[6]^=u,r[7]^=h,i=0;i<4;i++)e.call(this)}},_doProcessBlock:function(t,n){var i=this._X;e.call(this),r[0]=i[0]^i[5]>>>16^i[3]<<16,r[1]=i[2]^i[7]>>>16^i[5]<<16,r[2]=i[4]^i[1]>>>16^i[7]<<16,r[3]=i[6]^i[3]>>>16^i[1]<<16;for(var o=0;o<4;o++)r[o]=16711935&(r[o]<<8|r[o]>>>24)|4278255360&(r[o]<<24|r[o]>>>8),t[n+o]^=r[o]},blockSize:4,ivSize:2});t.Rabbit=n._createHelper(c)}(),i.Rabbit)},857:function(e,t,n){var i;e.exports=(i=n(249),n(269),n(214),n(888),n(109),function(){function e(){for(var e=this._S,t=this._i,n=this._j,i=0,o=0;o<4;o++){n=(n+e[t=(t+1)%256])%256;var r=e[t];e[t]=e[n],e[n]=r,i|=e[(e[t]+e[n])%256]<<24-8*o}return this._i=t,this._j=n,i}var t=i,n=t.lib.StreamCipher,o=t.algo,r=o.RC4=n.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,i=this._S=[],o=0;o<256;o++)i[o]=o;o=0;for(var r=0;o<256;o++){var s=o%n,a=t[s>>>2]>>>24-s%4*8&255;r=(r+i[o]+a)%256;var c=i[o];i[o]=i[r],i[r]=c}this._i=this._j=0},_doProcessBlock:function(t,n){t[n]^=e.call(this)},keySize:8,ivSize:0});t.RC4=n._createHelper(r);var s=o.RC4Drop=r.extend({cfg:r.cfg.extend({drop:192}),_doReset:function(){r._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)e.call(this)}});t.RC4Drop=n._createHelper(s)}(),i.RC4)},706:function(e,t,n){var i;e.exports=(i=n(249),function(e){function t(e,t,n){return e^t^n}function n(e,t,n){return e&t|~e&n}function o(e,t,n){return(e|~t)^n}function r(e,t,n){return e&n|t&~n}function s(e,t,n){return e^(t|~n)}function a(e,t){return e<>>32-t}var c=i,l=c.lib,u=l.WordArray,d=l.Hasher,h=c.algo,p=u.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),f=u.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),m=u.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),g=u.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),v=u.create([0,1518500249,1859775393,2400959708,2840853838]),y=u.create([1352829926,1548603684,1836072691,2053994217,0]),w=h.RIPEMD160=d.extend({_doReset:function(){this._hash=u.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,i){for(var c=0;c<16;c++){var l=i+c,u=e[l];e[l]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}var d,h,w,b,x,_,S,k,T,C,E,A=this._hash.words,I=v.words,P=y.words,N=p.words,O=f.words,$=m.words,D=g.words;for(_=d=A[0],S=h=A[1],k=w=A[2],T=b=A[3],C=x=A[4],c=0;c<80;c+=1)E=d+e[i+N[c]]|0,E+=c<16?t(h,w,b)+I[0]:c<32?n(h,w,b)+I[1]:c<48?o(h,w,b)+I[2]:c<64?r(h,w,b)+I[3]:s(h,w,b)+I[4],E=(E=a(E|=0,$[c]))+x|0,d=x,x=b,b=a(w,10),w=h,h=E,E=_+e[i+O[c]]|0,E+=c<16?s(S,k,T)+P[0]:c<32?r(S,k,T)+P[1]:c<48?o(S,k,T)+P[2]:c<64?n(S,k,T)+P[3]:t(S,k,T)+P[4],E=(E=a(E|=0,D[c]))+C|0,_=C,C=T,T=a(k,10),k=S,S=E;E=A[1]+w+T|0,A[1]=A[2]+b+C|0,A[2]=A[3]+x+_|0,A[3]=A[4]+d+S|0,A[4]=A[0]+h+k|0,A[0]=E},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var o=this._hash,r=o.words,s=0;s<5;s++){var a=r[s];r[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return o},clone:function(){var e=d.clone.call(this);return e._hash=this._hash.clone(),e}});c.RIPEMD160=d._createHelper(w),c.HmacRIPEMD160=d._createHmacHelper(w)}(Math),i.RIPEMD160)},783:function(e,t,n){var i,o,r,s,a,c,l,u;e.exports=(u=n(249),o=(i=u).lib,r=o.WordArray,s=o.Hasher,a=i.algo,c=[],l=a.SHA1=s.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],o=n[1],r=n[2],s=n[3],a=n[4],l=0;l<80;l++){if(l<16)c[l]=0|e[t+l];else{var u=c[l-3]^c[l-8]^c[l-14]^c[l-16];c[l]=u<<1|u>>>31}var d=(i<<5|i>>>27)+a+c[l];d+=l<20?1518500249+(o&r|~o&s):l<40?1859775393+(o^r^s):l<60?(o&r|o&s|r&s)-1894007588:(o^r^s)-899497514,a=s,s=r,r=o<<30|o>>>2,o=i,i=d}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+r|0,n[3]=n[3]+s|0,n[4]=n[4]+a|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(i+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}}),i.SHA1=s._createHelper(l),i.HmacSHA1=s._createHmacHelper(l),u.SHA1)},792:function(e,t,n){var i,o,r,s,a,c;e.exports=(c=n(249),n(153),o=(i=c).lib.WordArray,r=i.algo,s=r.SHA256,a=r.SHA224=s.extend({_doReset:function(){this._hash=new o.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=s._doFinalize.call(this);return e.sigBytes-=4,e}}),i.SHA224=s._createHelper(a),i.HmacSHA224=s._createHmacHelper(a),c.SHA224)},153:function(e,t,n){var i;e.exports=(i=n(249),function(e){var t=i,n=t.lib,o=n.WordArray,r=n.Hasher,s=t.algo,a=[],c=[];!function(){function t(t){for(var n=e.sqrt(t),i=2;i<=n;i++)if(!(t%i))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var i=2,o=0;o<64;)t(i)&&(o<8&&(a[o]=n(e.pow(i,.5))),c[o]=n(e.pow(i,1/3)),o++),i++}();var l=[],u=s.SHA256=r.extend({ +_doReset:function(){this._hash=new o.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],o=n[1],r=n[2],s=n[3],a=n[4],u=n[5],d=n[6],h=n[7],p=0;p<64;p++){if(p<16)l[p]=0|e[t+p];else{var f=l[p-15],m=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,g=l[p-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[p]=m+l[p-7]+v+l[p-16]}var y=i&o^i&r^o&r,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),b=h+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&u^~a&d)+c[p]+l[p];h=d,d=u,u=a,a=s+b|0,s=r,r=o,o=i,i=b+(w+y)|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+r|0,n[3]=n[3]+s|0,n[4]=n[4]+a|0,n[5]=n[5]+u|0,n[6]=n[6]+d|0,n[7]=n[7]+h|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,o=8*t.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=e.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(u),t.HmacSHA256=r._createHmacHelper(u)}(Math),i.SHA256)},327:function(e,t,n){var i;e.exports=(i=n(249),n(938),function(e){var t=i,n=t.lib,o=n.WordArray,r=n.Hasher,s=t.x64.Word,a=t.algo,c=[],l=[],u=[];!function(){for(var e=1,t=0,n=0;n<24;n++){c[e+5*t]=(n+1)*(n+2)/2%64;var i=(2*e+3*t)%5;e=t%5,t=i}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var o=1,r=0;r<24;r++){for(var a=0,d=0,h=0;h<7;h++){if(1&o){var p=(1<>>24)|4278255360&(r<<24|r>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=n[o]).high^=s,A.low^=r}for(var a=0;a<24;a++){for(var h=0;h<5;h++){for(var p=0,f=0,m=0;m<5;m++)p^=(A=n[h+5*m]).high,f^=A.low;var g=d[h];g.high=p,g.low=f}for(h=0;h<5;h++){var v=d[(h+4)%5],y=d[(h+1)%5],w=y.high,b=y.low;for(p=v.high^(w<<1|b>>>31),f=v.low^(b<<1|w>>>31),m=0;m<5;m++)(A=n[h+5*m]).high^=p,A.low^=f}for(var x=1;x<25;x++){var _=(A=n[x]).high,S=A.low,k=c[x];k<32?(p=_<>>32-k,f=S<>>32-k):(p=S<>>64-k,f=_<>>64-k);var T=d[l[x]];T.high=p,T.low=f}var C=d[0],E=n[0];for(C.high=E.high,C.low=E.low,h=0;h<5;h++)for(m=0;m<5;m++){var A=n[x=h+5*m],I=d[x],P=d[(h+1)%5+5*m],N=d[(h+2)%5+5*m];A.high=I.high^~P.high&N.high,A.low=I.low^~P.low&N.low}A=n[0];var O=u[a];A.high^=O.high,A.low^=O.low}},_doFinalize:function(){var t=this._data,n=t.words,i=(this._nDataBytes,8*t.sigBytes),r=32*this.blockSize;n[i>>>5]|=1<<24-i%32,n[(e.ceil((i+1)/r)*r>>>5)-1]|=128,t.sigBytes=4*n.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,l=[],u=0;u>>24)|4278255360&(h<<24|h>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),l.push(p),l.push(h)}return new o.init(l,a)},clone:function(){for(var e=r.clone.call(this),t=e._state=this._state.slice(0),n=0;n<25;n++)t[n]=t[n].clone();return e}});t.SHA3=r._createHelper(h),t.HmacSHA3=r._createHmacHelper(h)}(Math),i.SHA3)},460:function(e,t,n){var i,o,r,s,a,c,l,u;e.exports=(u=n(249),n(938),n(34),o=(i=u).x64,r=o.Word,s=o.WordArray,a=i.algo,c=a.SHA512,l=a.SHA384=c.extend({_doReset:function(){this._hash=new s.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var e=c._doFinalize.call(this);return e.sigBytes-=16,e}}),i.SHA384=c._createHelper(l),i.HmacSHA384=c._createHmacHelper(l),u.SHA384)},34:function(e,t,n){var i;e.exports=(i=n(249),n(938),function(){function e(){return r.create.apply(r,arguments)}var t=i,n=t.lib.Hasher,o=t.x64,r=o.Word,s=o.WordArray,a=t.algo,c=[e(1116352408,3609767458),e(1899447441,602891725),e(3049323471,3964484399),e(3921009573,2173295548),e(961987163,4081628472),e(1508970993,3053834265),e(2453635748,2937671579),e(2870763221,3664609560),e(3624381080,2734883394),e(310598401,1164996542),e(607225278,1323610764),e(1426881987,3590304994),e(1925078388,4068182383),e(2162078206,991336113),e(2614888103,633803317),e(3248222580,3479774868),e(3835390401,2666613458),e(4022224774,944711139),e(264347078,2341262773),e(604807628,2007800933),e(770255983,1495990901),e(1249150122,1856431235),e(1555081692,3175218132),e(1996064986,2198950837),e(2554220882,3999719339),e(2821834349,766784016),e(2952996808,2566594879),e(3210313671,3203337956),e(3336571891,1034457026),e(3584528711,2466948901),e(113926993,3758326383),e(338241895,168717936),e(666307205,1188179964),e(773529912,1546045734),e(1294757372,1522805485),e(1396182291,2643833823),e(1695183700,2343527390),e(1986661051,1014477480),e(2177026350,1206759142),e(2456956037,344077627),e(2730485921,1290863460),e(2820302411,3158454273),e(3259730800,3505952657),e(3345764771,106217008),e(3516065817,3606008344),e(3600352804,1432725776),e(4094571909,1467031594),e(275423344,851169720),e(430227734,3100823752),e(506948616,1363258195),e(659060556,3750685593),e(883997877,3785050280),e(958139571,3318307427),e(1322822218,3812723403),e(1537002063,2003034995),e(1747873779,3602036899),e(1955562222,1575990012),e(2024104815,1125592928),e(2227730452,2716904306),e(2361852424,442776044),e(2428436474,593698344),e(2756734187,3733110249),e(3204031479,2999351573),e(3329325298,3815920427),e(3391569614,3928383900),e(3515267271,566280711),e(3940187606,3454069534),e(4118630271,4000239992),e(116418474,1914138554),e(174292421,2731055270),e(289380356,3203993006),e(460393269,320620315),e(685471733,587496836),e(852142971,1086792851),e(1017036298,365543100),e(1126000580,2618297676),e(1288033470,3409855158),e(1501505948,4234509866),e(1607167915,987167468),e(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=e()}();var u=a.SHA512=n.extend({_doReset:function(){this._hash=new s.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],o=n[1],r=n[2],s=n[3],a=n[4],u=n[5],d=n[6],h=n[7],p=i.high,f=i.low,m=o.high,g=o.low,v=r.high,y=r.low,w=s.high,b=s.low,x=a.high,_=a.low,S=u.high,k=u.low,T=d.high,C=d.low,E=h.high,A=h.low,I=p,P=f,N=m,O=g,$=v,D=y,L=w,J=b,B=x,H=_,j=S,z=k,M=T,R=C,F=E,W=A,X=0;X<80;X++){var G,q,V=l[X];if(X<16)q=V.high=0|e[t+2*X],G=V.low=0|e[t+2*X+1];else{var Y=l[X-15],U=Y.high,Z=Y.low,K=(U>>>1|Z<<31)^(U>>>8|Z<<24)^U>>>7,Q=(Z>>>1|U<<31)^(Z>>>8|U<<24)^(Z>>>7|U<<25),ee=l[X-2],te=ee.high,ne=ee.low,ie=(te>>>19|ne<<13)^(te<<3|ne>>>29)^te>>>6,oe=(ne>>>19|te<<13)^(ne<<3|te>>>29)^(ne>>>6|te<<26),re=l[X-7],se=re.high,ae=re.low,ce=l[X-16],le=ce.high,ue=ce.low;q=(q=(q=K+se+((G=Q+ae)>>>0>>0?1:0))+ie+((G+=oe)>>>0>>0?1:0))+le+((G+=ue)>>>0>>0?1:0),V.high=q,V.low=G}var de,he=B&j^~B&M,pe=H&z^~H&R,fe=I&N^I&$^N&$,me=P&O^P&D^O&D,ge=(I>>>28|P<<4)^(I<<30|P>>>2)^(I<<25|P>>>7),ve=(P>>>28|I<<4)^(P<<30|I>>>2)^(P<<25|I>>>7),ye=(B>>>14|H<<18)^(B>>>18|H<<14)^(B<<23|H>>>9),we=(H>>>14|B<<18)^(H>>>18|B<<14)^(H<<23|B>>>9),be=c[X],xe=be.high,_e=be.low,Se=F+ye+((de=W+we)>>>0>>0?1:0),ke=ve+me;F=M,W=R,M=j,R=z,j=B,z=H,B=L+(Se=(Se=(Se=Se+he+((de+=pe)>>>0>>0?1:0))+xe+((de+=_e)>>>0<_e>>>0?1:0))+q+((de+=G)>>>0>>0?1:0))+((H=J+de|0)>>>0>>0?1:0)|0,L=$,J=D,$=N,D=O,N=I,O=P,I=Se+(ge+fe+(ke>>>0>>0?1:0))+((P=de+ke|0)>>>0>>0?1:0)|0}f=i.low=f+P,i.high=p+I+(f>>>0

>>0?1:0),g=o.low=g+O,o.high=m+N+(g>>>0>>0?1:0),y=r.low=y+D,r.high=v+$+(y>>>0>>0?1:0),b=s.low=b+J,s.high=w+L+(b>>>0>>0?1:0),_=a.low=_+H,a.high=x+B+(_>>>0>>0?1:0),k=u.low=k+z,u.high=S+j+(k>>>0>>0?1:0),C=d.low=C+R,d.high=T+M+(C>>>0>>0?1:0),A=h.low=A+W,h.high=E+F+(A>>>0>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),t[31+(i+128>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});t.SHA512=n._createHelper(u),t.HmacSHA512=n._createHmacHelper(u)}(),i.SHA512)},253:function(e,t,n){var i;e.exports=(i=n(249),n(269),n(214),n(888),n(109),function(){function e(e,t){var n=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=n,this._lBlock^=n<>>e^this._lBlock)&t;this._lBlock^=n,this._rBlock^=n<>>5]>>>31-i%32&1}for(var o=this._subKeys=[],r=0;r<16;r++){var s=o[r]=[],a=u[r];for(n=0;n<24;n++)s[n/6|0]|=t[(l[n]-1+a)%28]<<31-n%6,s[4+(n/6|0)]|=t[28+(l[n+24]-1+a)%28]<<31-n%6;for(s[0]=s[0]<<1|s[0]>>>31,n=1;n<7;n++)s[n]=s[n]>>>4*(n-1)+3;s[7]=s[7]<<5|s[7]>>>27}var d=this._invSubKeys=[];for(n=0;n<16;n++)d[n]=o[15-n]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(n,i,o){this._lBlock=n[i],this._rBlock=n[i+1],e.call(this,4,252645135),e.call(this,16,65535),t.call(this,2,858993459),t.call(this,8,16711935),e.call(this,1,1431655765);for(var r=0;r<16;r++){for(var s=o[r],a=this._lBlock,c=this._rBlock,l=0,u=0;u<8;u++)l|=d[u][((c^s[u])&h[u])>>>0];this._lBlock=c,this._rBlock=a^l}var p=this._lBlock;this._lBlock=this._rBlock,this._rBlock=p,e.call(this,1,1431655765),t.call(this,8,16711935),t.call(this,2,858993459),e.call(this,16,65535),e.call(this,4,252645135),n[i]=this._lBlock,n[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});n.DES=s._createHelper(p);var f=a.TripleDES=s.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),n=e.length<4?e.slice(0,2):e.slice(2,4),i=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=p.createEncryptor(r.create(t)),this._des2=p.createEncryptor(r.create(n)),this._des3=p.createEncryptor(r.create(i))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});n.TripleDES=s._createHelper(f)}(),i.TripleDES)},938:function(e,t,n){var i;e.exports=(i=n(249),function(e){var t=i,n=t.lib,o=n.Base,r=n.WordArray,s=t.x64={};s.Word=o.extend({init:function(e,t){this.high=e,this.low=t}}),s.WordArray=o.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:8*t.length},toX32:function(){for(var e=this.words,t=e.length,n=[],i=0;i1&&u(t);break;case 71300:n?(e(".J-secure-text").text(t.msg||"鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯"),Oe.freshCaptcha(!0)):(A(t.msg),W.emit("login-reg-win","login-fail"),O(de.loginFail)&&de.loginFail());break;default:n&&n.close(),A(t.msg),W.emit("login-reg-win","login-fail"),de.loginFail&&de.loginFail()}}function l(e,t){var n="";1===ye&&(n="&isChangeWeixinBind="+ye);var i="";we&&(i="&isSwitchWeixinBinding=1");var o="";be&&(o="&challengeCallbackUrl="+encodeURIComponent(be));var r="&exchangeLoginType=password";t&&"sms"===t.exchangeLoginType&&(r="&exchangeLoginType=sms");var s="";e.data.pid&&(s="&pid="+e.data.pid),window.localStorage.setItem("_change_weixin_bind_data",JSON.stringify(window.weixinData));var a=window.location.href,c="https://mlogin.vip.com/asserts/login/challenge.html?challengeCallbackUrl="+encodeURIComponent(a),l=encodeURIComponent(""+c+(c.indexOf("?")!=-1?"&":"?")+"mlogin_processId="+(e.data.processId||s)+"&mlogin_exchange=1"+n+i+o+r+s);ce.set("newlogin_thirdData",(de||{}).thirdData||{}),window.location.href="https://defend.vip.com/index/app/?challengeId="+e.data.challengeId+"&sign="+e.data.challengeSign+"&callback="+l+"&isCallbackToUrl=true",M.send("mlogin_defend_touchoff")}function u(t){var n=t.data.accounts.length;se.conf({content:'

',width:"80%",btns:[''],clsName:"m-user-choose"}).open(),e(".J-mlogin-userlist").html(F({data:t.data.accounts,displayName:e(".J-mlogin-ipt-username").val(),chooseTips:"mloginUser"})),2===n&&e(".user-choose-list").addClass("z-user-item-two"),e(document).ready(function(){var t=e(".user-choose-inner");t.find("[data-src]").one("error",function(t){e(this).attr("src","https://mlogin.vip.com/asserts/img/icons/user-pic.png")}).each(function(t,n){n.src=e(n).data("src")})}),e(".J-user-choose").on("click",function(){var n="";t.data&&t.data.processId&&(n=t.data.processId);var i=e(this),o={processId:i.attr("data-id")||n,accountId:i.find(".user-item-name").attr("data-id"),username:H.encryptMobile(Ee.find(".J-mlogin-ipt-username")[0].value)};d(o)})}function d(t){se.close(),t.third_data=de.thirdData||{},t.source=ve,z.selectAccount(t).then(function(t){e("#mg-dialog").removeClass("m-user-choose"),de.loginSuccess&&de.loginSuccess(),!Se&&oe.open(t.msg||"鐧诲綍鎴愬姛",2e3),t=t||{},M.send("H5_active_new_login",JSON.stringify({type:"userNameLogin",status:"1",way:"userNameLogin",enter:"1",isGray:pe}))},function(e){return e.code===-10033?(l(e),!1):(A(e.msg),e=e||{},void M.send("H5_active_new_login",JSON.stringify({type:"userNameLogin",status:"0",status_des:e.msg||"",way:"userNameLogin",enter:"1",isGray:pe})))})}function h(){z.weixinRegisterLogin(window.weixinData).then(function(){window.localStorage.removeItem("wxLoginPop");var e=window.location.href.indexOf("?")!=-1?"&":"?";window.location.href=location.href+e+"time="+(new Date).getTime()},function(e){A(e.msg)})}function p(t){window.mlogin_isfromLogin=!0,e("#J-register-win .J-mlogin-back").removeClass("icon-register-close"),t.preventDefault(),X.close(),e(".J-error-msg").removeClass("m-login-error"),W.emit("login-reg-win","toggle-to-register"),Ee.find("form")[0].reset(),I()}function f(t){var n=H.query("exchangeLoginType")||"password";if("sms"===n){var i=decodeURIComponent(H.query("challengeCallbackUrl")||""),o=H.useHistory("exchangeLogin",{mlogin_exchange:""});return void(window.location.href=(0,B["default"])(i||o))}t.preventDefault(),e(".J-login-wrap,.J-mobile-fast-login-header,.J-password-step,.J-second-step,.J-error-msg").hide(),e(".J-mobile-fast-login,.J-models-login-footer,.J-models-login-logo").show(),e("#J-models-login-wrap").addClass("models-login-bg-write"),e(".J-error-msg").addClass("m-login-error"),_e?e(".J-mlogin-close").hide():e(".J-mlogin-close").show(),I()}function m(t){t.preventDefault(),fe.stopCountDown(),e(".J-error-msg").addClass("m-login-error"),e("#J-models-login-wrap").addClass("models-login-bg-write"),e(".J-mlogin-ipt").val(""),e("button").addClass("disabled"),setTimeout(function(){e(".J-mlogin-get-login-authcode").html("鑾峰彇楠岃瘉鐮"),e(".J-mlogin-get-login-authcode").addClass("disabled")},500),"0"===he?(e(".J-mobile-fast-login-header,.J-mobile-fast-login,.J-password-step,.J-second-step").hide(),e(".J-models-login-logo,.J-login-wrap,.J-models-login-footer,.J-mlogin-close").show()):(e(".J-mobile-fast-login-header,.J-login-wrap,.J-password-step,.J-second-step").hide(),e(".J-models-login-logo,.J-mobile-fast-login,.J-models-login-footer,.J-mlogin-close").show()),e(".J-mlogin-captcha-item").length>0&&e(".J-mlogin-captcha-item").remove(),I()}function g(t){t.preventDefault(),e("#J-models-login-wrap").removeClass("models-login-bg-write"),e(".J-error-msg").addClass("m-login-error"),e(".J-login-wrap,.J-models-login-logo").show(),e(".J-mobile-fast-login-header,.J-mobile-fast-login,.J-models-login-footer").hide(),_e?e(".J-mlogin-close").hide():e(".J-mlogin-close").show(),I()}function v(t){if(t.preventDefault(),!e(".J-rectangle-agree").hasClass("mlogin-icon-rectangle-selected"))return A("鎮ㄥ繀椤诲悓鎰忓敮鍝佷細鏈嶅姟鏉℃鍚庯紝鎵嶈兘杩涜涓嬩竴姝"),!1;if(e(t.currentTarget).hasClass("disabled"))return!1;var n=r();return"string"==typeof n?(A(n),!1):(n.third_data=de.thirdData||{},ke.captchaTypePwd?(n.captchaType=ke.captchaTypePwd,n.captchaId=ke.captchaId,n.ticket=ke.ticket):(n.uuid=fe.getOption("uuid"),n.processId=fe.getOption("processId"),n.authScene=fe.getOption("authScene")),n.info=ne,n.domain_id=ae,n.smsTicket=fe.getOption("smsTicket")||"",ge=Y().show(),I(),z.checkSms(n).then(function(e){var t="鐧诲綍鎴愬姛";W.emit("login-reg-win","register-success"),de.loginSuccess&&de.loginSuccess(),!Se&&oe.open(t,2e3),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"sms",status:"1",way:"login",enter:"1",isGray:pe}))},function(t){if(!t.code||2!==t.code&&70309!==t.code)if(t.code&&11170300===Number(t.code))ce.set("sms-exchange-login-params",{mobile:n.mobile||"",authScene:n.authScene||"",userName:n.mobile||"",processId:(t.data||{}).processId||""}),l(t,{exchangeLoginType:"sms"});else{var i="";Number(t.code)!==-10001||n.processId||(i="璇峰厛鑾峰彇鐭俊楠岃瘉鐮"),A(i||t.msg),t=t||{},M.send("H5_active_new_login",JSON.stringify({type:"sms",status:"0",status_des:t.msg,enter:"1",code:t.code,isGray:pe})),W.emit("login-reg-win","login-fail"),de.loginFail&&de.loginFail()}else se.conf({content:"璇ユ墜鏈哄彿灏氭湭娉ㄥ唽鍞搧浼氳处鍙凤紝鐐瑰嚮鈥滅户缁敞鍐屸濓紝灏嗕负鎮ㄥ垱寤哄敮鍝佷細璐﹀彿銆",btns:["閲嶆柊杈撳叆","缁х画娉ㄥ唽"],width:"80%",clsName:"no-title",x:"80%",onBtnClick:function(e,n){1===n&&y(t),this.close()}}).open(),e(".mg-dialog-foot button:first-child").css("color","#333333")}).always(function(){ge.hide()}),void G.send())}function y(t){e(".J-mobile-fast-login").hide();var n=!1;t.data&&t.data.op&&(1===t.data.op||"2"===t.data.op)?(e(".J-password-step").show(),e(".J-mobile-fast-login-header").show(),e(".J-models-login-logo, .J-models-login-footer").hide(),e("#J-models-login-wrap").removeClass("models-login-bg-write"),e(".J-mobile-fast-login-header h2").html("璁剧疆瀵嗙爜"),e(".J-error-msg").removeClass("m-login-error"),n=!0):(e(".J-second-step").show(),e(".J-mobile-fast-login-header").show(),e(".J-models-login-logo, .J-models-login-footer").hide(),e("#J-models-login-wrap").removeClass("models-login-bg-write"),e(".J-mobile-fast-login-header h2").html("璁剧疆瀵嗙爜"),e(".J-error-msg").removeClass("m-login-error")),t=t||{},M.send("H5_active_new_login",JSON.stringify({type:"sms",status:"1",way:n?"login":"reg",enter:"1",isGray:pe})),o()}function w(t){t.preventDefault(),"password"===e(t.currentTarget).siblings(".J-mlogin-ipt").attr("type")?(e(t.currentTarget).siblings(".J-mlogin-ipt")[0].setAttribute("type","text"),e(t.currentTarget).addClass("mlogin-ipt-show")):(e(t.currentTarget).siblings(".J-mlogin-ipt")[0].setAttribute("type","password"),e(t.currentTarget).removeClass("mlogin-ipt-show"))}function b(t){if(t.preventDefault(),e(t.currentTarget).hasClass("disabled"))return!1;var n=V.onlyPasswordValidate(Ee.find(".J-mlogin-ipt-password-second")[0],function(t){t.mobile=fe.getOption("mobile")||H.encryptMobile(e(".J-mlogin-ipt-mobile").val()),t.domain_id=ae,t.serialno=fe.getOption("serialno")});if("string"==typeof n)return A(n),!1;n.third_data=de.thirdData||{},ge=Y().show(),I(),n.processId=fe.getOption("processId"),n.authScene=1,e.extend(n,_());var i=decodeURIComponent(H.query("challengeCallbackUrl")||"");z.mobileLogin(n).then(function(e){var t="娉ㄥ唽鎴愬姛";W.emit("login-reg-win","register-success"),de.loginSuccess&&de.loginSuccess();var n=H.useHistory("exchangeLogin",{mlogin_exchange:""});Se||(oe.open(t,2e3),setTimeout(function(){window.location.href=(0,B["default"])(i||n)},1e3)),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"1",way:"reg",enter:"2",isGray:pe}))},function(e){A(e.msg),W.emit("login-reg-win","register-success"),de.loginFail&&de.loginFail(),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"0",code:e.code,status_des:e.msg||"",way:"reg",enter:"2",isGray:pe}))}).always(function(){ge.hide()}),G.send()}function x(t){t.preventDefault();var n=V.fullPasswordValidate(Ie[0],Ae[0],Pe[0],function(e){e.domain_id=ae,e.serialno=fe.getOption("serialno")});if("string"==typeof n)return A(n),!1;n.third_data=de.thirdData||{},ge=Y().show(),I(),n.processId=fe.getOption("processId"),n.authScene=2,e.extend(n,_());var i=decodeURIComponent(H.query("challengeCallbackUrl")||"");z.mobileLogin(n).then(function(e){var t="鐧诲綍鎴愬姛";fe.setOption("serialno",e.serialno),W.emit("login-reg-win","login-success"),de.loginSuccess&&de.loginSuccess();var n=H.useHistory("exchangeLogin",{mlogin_exchange:""});Se||(oe.open(t,2e3),setTimeout(function(){window.location.href=(0,B["default"])(i||n)},1e3)),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"1",way:"login",enter:"1",isGray:pe}))},function(e){A(e.msg),W.emit("login-reg-win","login-fail"),de.loginFail&&de.loginFail(),ge.hide(),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"0",code:e.code,status_des:e.msg||"",way:"login",enter:"1",isGray:pe}))})}function _(){var e=H.query("exchangeLoginType")||"password",t="sms"===e?ce.get("sms-exchange-login-params"):{};return t}function S(){window.localStorage&&localStorage.setItem("saveLoginName",K.encode(e(".J-mlogin-ipt-username").val()))}function k(){window.localStorage&&localStorage.setItem("saveIphoneName",K.encode(e(".J-mlogin-ipt-mobile").val()))}function T(t){t.preventDefault();var n=e(".J-rectangle-agree"),i="mlogin-icon-rectangle-selected",o="mlogin-icon-rectangle-normal"; +n.hasClass(i)?(n.removeClass(i),n.addClass(o)):(n.removeClass(o),n.addClass(i))}function C(){z.getUserInfo().then(function(e){e=e||{},Ce=e.userName||"",E(!0)})}function E(t){var n=e(".J-binding-user-info");we&&t&&Ce?n.show().find(".J-binding-user-info__name").text(Ce):n.hide()}function A(e){E(!1),H.showError(Ne,e)}function I(){E(!0),H.hideError(Ne)}function P(e){H.btnAbled(e),I()}function N(){Ee.on("click",".J-mlogin-clear",H.clearIptVal),Ee.on("click",".J-mlogin-show-password",w),Ee.on("click",".J-mlogin-submit",a),Ee.on("click",".J-mlogin-mobile-new,.J-mlogin-back-new",f),Ee.on("click",".J-mlogin-login-normal",g),Ee.find(".J-mlogin-ipt-username").on("blur",S),Ee.find(".J-mlogin-ipt-mobile").on("blur",k),Ee.on("click",".J-mlogin-get-login-authcode",function(e){fe.getSmsCaptcha(e,ve)}),Ee.on("click",".J-mlogin-password-btn",x),Ee.on("click",".J-register-btn",b),Ee.on("click",".J-mlogin-toggle",p),Ee.on("click",".J-login-models-submit",v),Ee.find(".J-mlogin-ipt").on("focus",H.focusClearBtn),Ee.find(".J-mlogin-ipt").on("blur",H.blurClearBtn),Ee.find(".J-mlogin-ipt").on("keyup input change",P),Ee.on("click",".J-mlogin-back",m),Ee.on("click",".J-mlogin-backi",m),Ee.find(".J-mlogin-ipt-mobile").on("keyup input change",P),Ee.on("click",".J-mlogin-login-weixin",h),Ee.on("click",".J-mlogin-close",function(e){e.preventDefault(),De.close(),X.close(),I(),W.emit("login-reg-win","close-login-win",{})}),Ee.on("click",".J-rectangle-agree",T),e("body").on("focus",".J-mlogin-ipt-captcha",function(){e(".J-secure-text").text("")}),e("body").on("click",".J-refresh-img",function(){Oe.freshCaptcha()}),e("#J-models-login-wrap").find("input").on("blur",o),L["default"].attach(document.getElementById("J-models-login-wrap"))}var O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$=n(33),D=n(34),L=i(D),J=n(36),B=i(J),H=n(37),j=n(39),z=n(24),M=n(40),R=n(41),F=n(42),W=n(43),X=n(44)(),G=n(47),q=n(20),V=n(48),Y=n(50),U=n(54),Z=n(21),K=n(23),Q=n(22),ee=n(58),te=Q.get("mars_cid")||"",ne=JSON.stringify({cid:te}),ie=n(70),oe=n(55)(),re=n(72),se=n(65)(),ae=q.getId();se.setNoAnimate(!0),n(1);var ce=n(62);window.storageAPI=ce;var le=n(74),ue=null,de=null,he="0",pe=0,fe="",me=!1,ge="",ve="",ye=0,we=!1,be="",xe=!1,_e=!1,Se=!1,ke={},Te=0,Ce="",Ee=void 0,Ae=void 0,Ie=void 0,Pe=void 0,Ne=void 0,Oe={checkNeed:function(t){if(e(".J-mlogin-captcha-item").length)t&&t();else{e(".J-mlogin-submit").addClass("disabled");var n=ne,i=Ee.find(".J-mlogin-ipt-username")[0],o={loginName:H.encryptMobile(i.value),scene:"LOGIN_WAP",source:ve,info:n};z.captchaPre(o).then(function(n){me=!1,ge.hide(),e(".J-mlogin-submit").removeClass("disabled"),n.sid&&(ke.sid=n.sid),n.captchaType&&0!==Number(n.captchaType)?(ke.captchaTypePwd=n.captchaType,ke.captchaId=n.captchaId||"",window.VipSecureCode?U.vipCaptchaShow(n,ke,ve,t):(oe.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),M.send("H5_safe_mlogin_components_load_failed",JSON.stringify({source:ve,capatchType:ke.captchaTypePwd,way:"accountlogin"})))):t&&t()},function(e){me=!1,ge.hide(),A(e.msg)})}},freshCaptcha:function(t){if(!me){me=!0;var n={domain_id:ae,username:H.encryptMobile(Ee.find(".J-mlogin-ipt-username")[0].value)};j.getNewCaptcha(n).then(function(n){if(me=!1,n.captchaType)switch(String(n.captchaType)){case"1":n.pic&&"string"==typeof n.pic?(e(".J-mlogin-ipt-captcha").val("").data("captcha-type",1),e(".J-code-img").attr("src","data:image/png;base64,"+n.pic),!(t===!0)&&e(".J-secure-text").text(""),e(".J-secure-check-title").addClass("doc").removeClass("img")):e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯");break;case"6":var i=null;try{i=JSON.parse(n.pic||"")}catch(o){console.log("json parse error !"),i={}}i&&i.qp&&i.ap&&"string"==typeof i.qp&&"string"==typeof i.ap?(e(".J-question-img").attr("src","data:image/png;base64,"+i.qp),e(".J-code-img").attr("src","data:image/png;base64,"+i.ap),e(".J-mlogin-ipt-captcha").val("").data("captcha-type",6),!(t===!0)&&e(".J-secure-text").text(""),e(".J-secure-check-title").addClass("img").removeClass("doc")):e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯");break;default:e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯")}else e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯")},function(){me=!1})}}},$e=function(){var t=H.query(),n=t.mlogin_exchange;if(n){M.send("mlogin_defend_touchoffsuccess");var i="1",o=t.mlogin_processId,r=decodeURIComponent(t.challengeToken),s=t.challengeId,a=ce.get("newlogin_thirdData")||{},c=decodeURIComponent(t.challengeCallbackUrl||""),l=t.exchangeLoginType||"password";ce.remove("newlogin_thirdData");var u=void 0;if(r){var d=window.localStorage.getItem("_change_weixin_bind_data");window.localStorage.removeItem("_change_weixin_bind_data");try{d=JSON.parse(d)}catch(h){d={}}window.weixinData=d;var p=t.pid||"",f="sms"===l?ce.get("sms-exchange-login-params"):{},m=e.extend({source:ve,isNew:i,processId:o,challengeToken:r,challengeId:s,pid:p,third_data:a},f),g=null;g=p?z.exchangeTokenV4:"sms"===l?z.exchangeTokenV3:z.exchangeToken,g(m).then(function(e){var n="鎭枩锛岃韩浠芥牎楠屾垚鍔熴";!Z.isWeixin()||"1"!==String(t.isChangeWeixinBind)&&"1"!==String(t.isSwitchWeixinBinding)||(n="鍒囨崲缁戝畾鎴愬姛"),u=H.useHistory("exchangeLogin",{mlogin_exchange:""}),setTimeout(function(){c=H.changeURLArg(c,"loginChallengeSuccess",1),window.location.href=(0,B["default"])(c||u)},500),oe.open(n,2e3),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"defend",status:"1",isGray:pe}))},function(e){return e=e||{},e&&70309===Number(e.code)?void(window.loginDeal&&window.loginDeal.go({eventHandlers:{"login-reg-win":{"open-win":function(){y(e)}}}})):(u=H.useHistory("exchangeLogin",{mlogin_exchange:""}),setTimeout(function(){c=H.changeURLArg(c,"loginChallengeSuccess",0),window.location.href=(0,B["default"])(c||u)},2e3),oe.open(e.msg||"绯荤粺缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯锛",5e3),void M.send("H5_active_new_login",JSON.stringify({type:"defend",status:"0",isGray:pe})))})}else oe.open("鎶辨瓑锛岃韩浠芥牎楠屽け璐ワ紝鏃犳硶鐧诲綍锛岃24灏忔椂鍚庨噸璇曘",5e3),H.useHistory("exchangeLogin",{mlogin_exchange:""}),setTimeout(function(){c=H.changeURLArg(c,"loginChallengeSuccess",0),window.location.href=(0,B["default"])(c||u)},2e3)}},De={};De={init:function(t){return t.data||window.console.warn(new Error("loginWin 缁勪欢锛屽睘鎬 data 鏄繀閫夐」")),t.data.isviva&&(he="1"),t.data.isGray&&(pe=t.data.isGray),ve=t.data.optsSource,we=!!t.data.isSwitchWeixinBinding,be=t.data.challengeCallbackUrl||"",_e=!!t.data.hideCloseBtn,xe=!!t.data.disablePasswordLogin,Se=!!t.data.remainOnSuccess,t.data.isChangeWeixinBind&&(ye=1),t.id=t.id?t.id:"J-login-win",t.className=t.className?t.className+" login-reg-win models-wrapper":"login-reg-win models-wrapper",ue||(ue=new ie({id:t.id,className:t.className})),ue.conf({content:R({data:t.data}),freeze:!0,scrollLock:!1}),Te=t.data.isGrayTicketLogin,t.data.isGrayTicketLogin&&ee.init({params:t,showSetPassword:y,locationDefend:l}),_e?e(".J-mlogin-close").hide():e(".J-mlogin-close").show(),de=t,Ee=e("#"+t.id),Ne=Ee.find(".J-error-msg"),Ae=Ee.find(".J-mlogin-ipt-mobile"),Ie=Ee.find(".J-login-password"),Pe=Ee.find(".J-mlogin-ipt-authcode"),fe=new re({$mobile:Ae,$authCode:Pe,$getAuthCode:e(".J-mlogin-get-login-authcode"),$errorBox:Ne},{domain_id:ae,isviva:he,enter:1,toggleToNormalLogin:g,disablePasswordLogin:xe,showError:function(e){A(e)},hideError:function(){I()}}),N(),we&&C(),this},open:function(){window.mlogin_isfromLogin=!1,e("#J-register-win .J-mlogin-back").addClass("icon-register-close"),ue.open(),o();var t=!0,n=e(".J-login-wrap").find(".J-mlogin-ipt");return setTimeout(function(){n.each(function(){""===this.value&&(t=!1)}),t&&Ee.find(".J-mlogin-submit").removeClass("disabled")},500),e("body,html").css({"overflow-y":"hidden",height:"100%"}),le||(le=new le("#J-models-login-wrap",{preventDefault:!1,scrollbars:!0,mouseWheel:!0,click:!0,interactiveScrollbars:!0,fadeScrollbars:!0})),W.emit("login-reg-win","open-win",{type:"login"}),this},close:function(){return ue.close(),e("body,html").css({"overflow-y":"",height:""}),W.emit("login-reg-win","close-win",{type:"login"}),this}},t.loginWin=De,t.exchangeLogin=$e}).call(t,n(1))},function(e,t){"use strict";function n(){var e=window,t=e.scrollX,n=e.scrollY;window.scroll(t,n+1),window.scroll(t,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.fixElementsOffsetAfterKeyboardHide=n},function(e,t,n){var i,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};(function(){"use strict";/** + * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. + * + * @codingstandard ftlabs-jsv2 + * @copyright The Financial Times Limited [All Rights Reserved] + * @license MIT License (see LICENSE.txt) + */ +function r(e,t){function n(e,t){return function(){return e.apply(t,arguments)}}var i;if(t=t||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=t.touchBoundary||10,this.layer=e,this.tapDelay=t.tapDelay||200,this.tapTimeout=t.tapTimeout||700,!r.notNeeded(e)){for(var o=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],s=this,c=0,l=o.length;c=0,a=navigator.userAgent.indexOf("Android")>0&&!s,c=/iP(ad|hone|od)/.test(navigator.userAgent)&&!s,l=c&&/OS 4_\d(_\d)?/.test(navigator.userAgent),u=c&&/OS [6-7]_\d/.test(navigator.userAgent),d=navigator.userAgent.indexOf("BB10")>0;r.prototype.needsClick=function(e){switch(e.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(e.disabled)return!0;break;case"input":if(c&&"file"===e.type||e.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(e.className)},r.prototype.needsFocus=function(e){switch(e.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!a;case"input":switch(e.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!e.disabled&&!e.readOnly;default:return/\bneedsfocus\b/.test(e.className)}},r.prototype.sendClick=function(e,t){var n,i;document.activeElement&&document.activeElement!==e&&document.activeElement.blur(),i=t.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(e),!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,e.dispatchEvent(n)},r.prototype.determineEventType=function(e){return a&&"select"===e.tagName.toLowerCase()?"mousedown":"click"},r.prototype.focus=function(e){var t;c&&e.setSelectionRange&&0!==e.type.indexOf("date")&&"time"!==e.type&&"month"!==e.type?(t=e.value.length,e.setSelectionRange(t,t),e.focus()):e.focus()},r.prototype.updateScrollParent=function(e){var t,n;if(t=e.fastClickScrollParent,!t||!t.contains(e)){n=e;do{if(n.scrollHeight>n.offsetHeight){t=n,e.fastClickScrollParent=n;break}n=n.parentElement}while(n)}t&&(t.fastClickLastScrollTop=t.scrollTop)},r.prototype.getTargetElementFromEventTarget=function(e){return e.nodeType===Node.TEXT_NODE?e.parentNode:e},r.prototype.onTouchStart=function(e){var t,n,i;if(e.targetTouches.length>1)return!0;if(t=this.getTargetElementFromEventTarget(e.target),n=e.targetTouches[0],c){if(i=window.getSelection(),i.rangeCount&&!i.isCollapsed)return!0;if(!l){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return e.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(t)}}return this.trackingClick=!0,this.trackingClickStart=e.timeStamp,this.targetElement=t,this.touchStartX=n.pageX,this.touchStartY=n.pageY,e.timeStamp-this.lastClickTimen||Math.abs(t.pageY-this.touchStartY)>n},r.prototype.onTouchMove=function(e){return!this.trackingClick||((this.targetElement!==this.getTargetElementFromEventTarget(e.target)||this.touchHasMoved(e))&&(this.trackingClick=!1,this.targetElement=null),!0)},r.prototype.findControl=function(e){return void 0!==e.control?e.control:e.htmlFor?document.getElementById(e.htmlFor):e.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},r.prototype.onTouchEnd=function(e){var t,n,i,o,r,s=this.targetElement;if(!this.trackingClick)return!0;if(e.timeStamp-this.lastClickTimethis.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=e.timeStamp,n=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,u&&(r=e.changedTouches[0],s=document.elementFromPoint(r.pageX-window.pageXOffset,r.pageY-window.pageYOffset)||s,s.fastClickScrollParent=this.targetElement.fastClickScrollParent),i=s.tagName.toLowerCase(),"label"===i){if(t=this.findControl(s)){if(this.focus(s),a)return!1;s=t}}else if(this.needsFocus(s))return e.timeStamp-n>100||c&&window.top!==window&&"input"===i?(this.targetElement=null,!1):(this.focus(s),this.sendClick(s,e),c&&"select"===i||(this.targetElement=null,e.preventDefault()),!1);return!(!c||l||(o=s.fastClickScrollParent,!o||o.fastClickLastScrollTop===o.scrollTop))||(this.needsClick(s)||(e.preventDefault(),this.sendClick(s,e)),!1)},r.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},r.prototype.onMouse=function(e){return!this.targetElement||(!!e.forwardedTouchEvent||(!e.cancelable||(!(!this.needsClick(this.targetElement)||this.cancelNextClick)||(e.stopImmediatePropagation?e.stopImmediatePropagation():e.propagationStopped=!0,e.stopPropagation(),e.preventDefault(),!1))))},r.prototype.onClick=function(e){var t;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===e.target.type&&0===e.detail||(t=this.onMouse(e),t||(this.targetElement=null),t)},r.prototype.destroy=function(){var e=this.layer;a&&(e.removeEventListener("mouseover",this.onMouse,!0),e.removeEventListener("mousedown",this.onMouse,!0),e.removeEventListener("mouseup",this.onMouse,!0)),e.removeEventListener("click",this.onClick,!0),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1),e.removeEventListener("touchcancel",this.onTouchCancel,!1)},r.notNeeded=function(e){var t,n,i,o;if("undefined"==typeof window.ontouchstart)return!0;if(n=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!a)return!0;if(t=document.querySelector("meta[name=viewport]")){if(t.content.indexOf("user-scalable=no")!==-1)return!0;if(n>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(d&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(t=document.querySelector("meta[name=viewport]")))){if(t.content.indexOf("user-scalable=no")!==-1)return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===e.style.msTouchAction||"manipulation"===e.style.touchAction||(o=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],!!(o>=27&&(t=document.querySelector("meta[name=viewport]"),t&&(t.content.indexOf("user-scalable=no")!==-1||document.documentElement.scrollWidth<=window.outerWidth)))||("none"===e.style.touchAction||"manipulation"===e.style.touchAction))},r.attach=function(e,t){return new r(e,t)},"object"===o(n(35))&&n(35)?(i=function(){return r}.call(t,n,t,e),!(void 0!==i&&(e.exports=i))):"undefined"!=typeof e&&e.exports?(e.exports=r.attach,e.exports.FastClick=r):window.FastClick=r})()},function(e,t){(function(t){e.exports=t}).call(t,{})},function(e,t){"use strict";function n(e){var t=[/^((https?:)?\/\/)?([^#\\=\?\/\@]*\.)?vip\.com([\/\?#].*)?$/,/^((https?:)?\/\/)?([^#\\=\?\/\@]*\.)?vpal\.com([\/\?#].*)?$/,/^((https?\:)?\/\/)?mlogin\.ebatong\.com([\/\?#].*)?$/,/^((https?\:)?\/\/)?www\.huahaicang\.cn([\/\?#].*)?$/],n=t.some(function(t){return t.test(e)});return n?e:"//m.vip.com"}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n},function(module,exports,__webpack_require__){(function($){"use strict";var md5=__webpack_require__(38),base64=__webpack_require__(23),fn={};fn.encrypt=function(e,t){var n="",i=Date.parse(new Date)/1e3;return n=base64.encode(e)+":"+base64.encode(i.toString())+":"+base64.encode(md5(t))},fn.encryptPassword=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n="";return n=md5(e),t&&(n=base64.encode(n)),n},fn.encryptMobile=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n="";return n=e,t&&(n=base64.encode(e)),n},fn.showError=function(e,t){t=t||"鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯",e.show().find("span").html(t)},fn.hideError=function(e){e.hide().find("span").html("")},fn.toggleClearBtn=function(e){""===$(e.currentTarget).val()?$(e.currentTarget).siblings(".J-mlogin-clear").hide():$(e.currentTarget).siblings(".J-mlogin-clear").show()},fn.blurClearBtn=function(e){var t=$(e.currentTarget);setTimeout(function(){t.siblings(".J-mlogin-clear").hide()},1e3)},fn.focusClearBtn=function(e){""===$(e.currentTarget).val()?$(e.currentTarget).siblings(".J-mlogin-clear").hide():$(e.currentTarget).siblings(".J-mlogin-clear").show()},fn.btnAbled=function(e){var t=$(e.currentTarget).parent().parent();$(e.currentTarget).hasClass("f-password-width-fix-target")&&(t=t.parent());var n=t.find(".J-mlogin-ipt").eq(0),i=t.find(".J-mlogin-ipt").eq(1),o=t.find(".ui-button"),r=t.find("button"),s=n.data("is-mobile");$(".J-error-msg").hide().find("span").html(""),!n.val()||1===s&&n.val().replace(/\s/g,"").length<11?(o.addClass("disabled"),r[0]&&r.addClass("disabled")):(r[0]&&(r.html().length<6?r.removeClass("disabled"):r.addClass("disabled")),i[0]?i.val()?o.removeClass("disabled"):o.addClass("disabled"):o.removeClass("disabled")),""===$(e.currentTarget).val()?$(e.currentTarget).siblings(".J-mlogin-clear").hide():$(e.currentTarget).siblings(".J-mlogin-clear").show()},fn.clearIptVal=function(e){e.preventDefault(),$(e.currentTarget).siblings(".J-mlogin-ipt").val(""),$(e.currentTarget).hide(),$("button").addClass("disabled"),fn.btnAbled(e)},fn.focusInput=function(e){e.preventDefault(),$(e.target).hasClass("J-mlogin-show-password")||$(e.currentTarget).find("input").focus()},fn.closeWin=function(e){e.close()},fn.query=function(e){var t=location.search.substr(1),n=t.split("&"),i={};return n.map(function(e){var t=e.split("=");if(2===t.length)i[t[0]]=t[1];else if(t.length>2){var n=t[0],o=t.slice(1,t.length).join("=");i[n]=o}}),e?i[e]:i},fn.useHistory=function(e,t){var n=location.search,i=n.substr(1),o=i.split("&"),r={};o.map(function(e){var t=e.split("=");if(2===t.length)r[t[0]]=t[1];else if(t.length>2){var n=t[0],i=t.slice(1,t.length).join("=");r[n]=i}});for(var s in t)r.hasOwnProperty(s)&&(t[s]?r[s]=t[s]:delete r[s]);n="?";for(var a in r)n+=a+"="+r[a]+"&";return window.history&&history.pushState?(history.pushState(e,null,n),location.href):""+location.origin+location.pathname+n},fn.changeURLArg=function(url,arg,arg_val){var pattern=arg+"=([^&]*)",replaceText=arg+"="+arg_val;if(url.match(pattern)){var tmp="/("+arg+"=)([^&]*)/gi";return tmp=url.replace(eval(tmp),replaceText)}return url.match("[?]")?url+"&"+replaceText:url+"?"+replaceText},module.exports=fn}).call(exports,__webpack_require__(1))},function(e,t,n){var i;(function(o){"use strict";function r(e,t){var n=(65535&e)+(65535&t),i=(e>>16)+(t>>16)+(n>>16);return i<<16|65535&n}function s(e,t){return e<>>32-t}function a(e,t,n,i,o,a){return r(s(r(r(t,e),r(i,a)),o),n)}function c(e,t,n,i,o,r,s){return a(t&n|~t&i,e,t,o,r,s)}function l(e,t,n,i,o,r,s){return a(t&i|n&~i,e,t,o,r,s)}function u(e,t,n,i,o,r,s){return a(t^n^i,e,t,o,r,s)}function d(e,t,n,i,o,r,s){return a(n^(t|~i),e,t,o,r,s)}function h(e,t){e[t>>5]|=128<>>9<<4)+14]=t;var n,i,o,s,a,h=1732584193,p=-271733879,f=-1732584194,m=271733878;for(n=0;n>5]>>>t%32&255);return n}function f(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<16&&(o=h(o,8*e.length)),n=0;n<16;n+=1)r[n]=909522486^o[n],s[n]=1549556828^o[n];return i=h(r.concat(f(t)),512+8*t.length),p(h(s.concat(i),640))}function v(e){var t,n,i="0123456789abcdef",o="";for(n=0;n>>4&15)+i.charAt(15&t);return o}function y(e){return unescape(encodeURIComponent(e))}function w(e){return m(y(e))}function b(e){return v(w(e))}function x(e,t){return g(y(e),y(t))}function _(e,t){return v(x(e,t))}function S(e,t,n){return t?n?x(t,e):_(t,e):n?w(e):b(e)}i=function(){return S}.call(t,n,t,e),!(void 0!==i&&(e.exports=i))})(this)},function(e,t,n){(function(e){"use strict";function i(e){return k.req({data:e,url:E.GETWEIXININFOSTATUS,type:"POST",xhrFields:{withCredentials:!0}})}function o(e){return k.req({data:e,url:E.WEIXINAUTOLOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function r(e){return k.req({data:e,url:E.WEIXINREGISTERLOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function s(t,n){return e.ajax({type:"GET",url:E.GETWEIXININFO,data:t,dataType:"jsonp",jsonp:"jsonp",timeout:2e3,success:function(e){n(e)},error:function(e){n(e)}})}function a(e){return k.req({data:e,url:E.GETNEWCAPTCHA,type:"POST",xhrFields:{withCredentials:!0}})}function c(t){var n=E.NEWREGISTER;return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,url:n,type:"POST",xhrFields:{withCredentials:!0}})}function l(t){var n=E.NEWLOGIN;return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,url:n,type:"POST",xhrFields:{withCredentials:!0}})}function u(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,url:E.LOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function d(e){return k.req({data:e,url:E.REGISTER,type:"POST",xhrFields:{withCredentials:!0}})}function h(e){return k.req({data:e,url:E.AUTHCODE,type:"POST",xhrFields:{withCredentials:!0}})}function p(e){return k.req({data:e,url:E.CAPTCHA,type:"POST",xhrFields:{withCredentials:!0}})}function f(e){return k.req({data:e,url:E.CAPTCHAFRESHEN,type:"POST",xhrFields:{withCredentials:!0}})}function m(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:E.CHECK})}function g(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:E.EXCHANGETOKEN})}function v(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:E.SELECTACCOUNT})}function y(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.GETVIVATIPS})}function w(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.GETUISWITCH})}function b(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.THIRDAUTOLOGIN})}function x(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.ISLOGINED})}function _(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.GETTHIRDINFO})}function S(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.THIRDTRYLOGIN})}n(1);var k=n(25),T=n(21),C="//mlogin.vip.com/ajaxapi-user.html",E={LOGIN:C+"?act=loginV2",REGISTER:C+"?act=register",AUTHCODE:C+"?act=create",CHECK:C+"?act=check",CAPTCHA:C+"?act=send",CAPTCHAFRESHEN:C+"?act=freshen",NEWLOGIN:C+"?act=newLogin",NEWREGISTER:C+"?act=newRegister",GETNEWCAPTCHA:C+"?act=getNewCaptcha",GETWEIXININFO:"//weixin-api.vip.com/user/getUserInfo",WEIXINREGISTERLOGIN:C+"?act=weixinRegisterLogin",GETWEIXININFOSTATUS:C+"?act=weixinInfoStatus",WEIXINAUTOLOGIN:C+"?act=weixinAutoLogin",EXCHANGETOKEN:C+"?act=exchangeToken",SELECTACCOUNT:C+"?act=selectAccount",GETVIVATIPS:C+"?act=getVivaTips",GETUISWITCH:C+"?act=getUiSwitch",THIRDAUTOLOGIN:C+"?act=thirdAutoLogin",ISLOGINED:C+"?act=isLogined",GETTHIRDINFO:C+"?act=getThirdInfo",THIRDTRYLOGIN:C+"?act=thirdTryLogin"};t.login=u,t.register=d,t.newRegister=c,t.newLogin=l,t.authCode=h,t.sendCaptcha=p,t.freshenCaptcha=f,t.checkSmscode=m,t.getNewCaptcha=a,t.getweixinInfoStatus=i,t.weixinRegisterLogin=r,t.getWeixinInfo=s,t.weixinAutoLogin=o,t.exchangeToken=g,t.selectAccount=v,t.getVivaTips=y,t.getUiSwitch=w,t.thirdAutoLogin=b,t.isLogined=x,t.getThirdInfo=_,t.thirdTryLogin=S}).call(t,n(1))},function(e,t){"use strict";t.send=function(e,t){window.Mar&&Mar.Seed.request("button","click",e,t)}},function(module,exports){module.exports=function(obj){function print(){__p+=__j.call(arguments,"")}obj||(obj={});var __t,__p="",__j=Array.prototype.join;with(obj){var isvivaMars=data.isviva?1:0,disablePasswordLogin=!!data.disablePasswordLogin,showPasswordLoginFirst=!1,displayNone='style="display: none"',diyBgImg='style="background: url('+data.bgImg+') no-repeat left top"',diyLogoImg='style="background:url('+data.logoImg+') no-repeat left top"';__p+='\n
\n \n
\n
\n\n').appendTo(t("body")),this.$box=u,this.isOpen=!1,c=this,d="fixed"===u.css("position"),o(),this)):new i}function o(){u.on("tap",function(e){e.stopPropagation(),e.preventDefault(),c&&c.close(!1)})}function r(){s=document.documentElement.clientHeight,a=document.documentElement.clientWidth}n(56);var s=void 0,a=void 0,c=void 0,l=void 0,u=void 0,d=void 0,h=i.prototype;t.extend(h,{reset:function(){return this.setContent(""),this.isOpen=!1,clearTimeout(l),l=null,this},setContent:function(e){return u.html(e),this},calSize:function(){s<10&&r();var e=(a-u.width())/2+"px",t=d?-30:document.body.scrollTop-30,n=(s-u.height())/2+t+"px",i={left:e,top:n};return i},open:function(e,t,n){var i=this;if(!e)return this;if(this.setContent(e),this.isOpen)return u.css(this.calSize()),clearTimeout(l),l=setTimeout(this.close.bind(this),t||1e3),this;u.css("display","block");var o=this.calSize();return o.opacity=1,u.animate(o,200,function(){i.isOpen=!0,l=setTimeout(function(){i.close(i),n&&n()},t||1e3)}),this},close:function(e){var n=this,i={opacity:0};return e?u.animate(i,100,function(){u.css("display","none"),n.reset()}):(u.css(t.extend(i,{display:"none"})),this.reset()),this}}),e.exports=i}).call(t,n(1))},function(e,t){},,function(e,t,n){(function(t){"use strict";var i=Object.assign||function(e){for(var t=1;t0},triggerEvents:function(){var e=this.elements.LOGIN_BOX;setTimeout(function(){e.find("#J-captcha-mlogin-ipt-mobile-id").trigger("input")},500)},mobileLoginSubmit:function(e){if(!t(".J-rectangle-agree").hasClass("mlogin-icon-rectangle-selected"))return y.open("璇烽槄璇诲苟鍕鹃夋湰椤靛崗璁"),!1;var n=this.elements.LOGIN_BOX,i=n.find(this.tmplMap.LOGIN_INPUT);i.val().replace(/\s+/g,"");this.mobileLoginV2(e)},mobileLoginFlow:function(e,t){var n=this;return new Promise(function(i,o){l.getCaptchaFlow({event:"CONVENIENT_LOGIN_WAP_IMG_CAPTCHA",biz_data:JSON.stringify({contact_phone:e.mobile,cid:v.get("mars_cid")||""})}).then(function(e){if(e.sid&&(x.sid=e.sid),e.pid&&(x.pid=e.pid),x.captchaTypePwd=e.captchaType,x.captchaId=e.captchaId||"",e.templateId=n.getVerTemplateId(e.templateId),!e.captchaId)return void i(e);var r=function(){x.cancel||x.close?o():i(x)};window.VipSecureCode?f.vipCaptchaShow(e,x,t,r):(y.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),d.send("H5_safe_mlogin_components_load_failed",JSON.stringify({source:t,capatchType:x.captchaTypePwd,way:"mobileLogin"})))},function(e){return o(e)})})},mobileLoginV2:function(e){var n=this;e.preventDefault();var o=this,r=this.params.data.optsSource;if(t(e.currentTarget).hasClass("disabled"))return!1;this.mobile=this.getMobile();var s=a.onlyMobileValidate(this.elements.LOGIN_MOBILE[0],!1);return"string"==typeof s?(this.showError(s),!1):(x={},b.show(),this.hideError(),this.mobileLoginFlow(s,r).then(function(){function e(){"1"===o.authType?o.register():x.ticket?o.loginByTicket():o.hideCaptcha()}l.getCaptchaInfoV2({scene:"CONVENIENT_LOGIN_WAP_AFTER_CAPTCHA",mobile:s.mobile,biz_data:JSON.stringify(i({},x))}).then(function(t){b.hide(),o.authType=t.authType,t.sid&&(x.sid=t.sid),t.pid&&(x.pid=t.pid),t.captchaType&&0!==Number(t.captchaType)?(x.captchaTypePwd=t.captchaType,x.captchaId=t.captchaId||"",t.templateId=n.getVerTemplateId(t.templateId),window.VipSecureCode?(o.showCaptcha(),t.targetId="J-sms-captcha",t.componentStyle="inline",f.vipCaptchaShow(t,x,r,e)):(y.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),d.send("H5_V2_safe_mlogin_components_load_failed",JSON.stringify({source:r,capatchType:x.captchaTypePwd,way:"mobileLogin"})))):d.send("H5_V2_active_sms_login",JSON.stringify({type:"err",source:r,capatchType:x.captchaTypePwd,way:"mobileLogin",msg:"getCaptchaInfo err",captchaType:t.captchaType}))},function(e){return e.code&&70306===e.code?(w.conf({content:e.msg,width:"90%",btns:["纭畾"],onBtnClick:function(e,t){this.close()}}).open(),void d.send("H5_V2_active_login_failed_alert",'{"reason":"'+e.msg+'","code":"70306"}')):(o.showError(e.msg),e=e||{},d.send("H5_V2_active_sms_login",JSON.stringify({type:"sms",status:"0",status_des:e.msg,enter:"1",code:e.code,isGray:o.params.data.isGray,isGrayTicketLogin:o.params.data.isGrayTicketLogin})),u.emit("login-reg-win","login-fail"),void(o.params.loginFail&&o.params.loginFail()))}).always(function(){b.hide()})})["catch"](function(e){b.hide()}),void h.send())},loginByTicket:function(){b.show();var e=this,t={pid:x.pid,ticket:x.ticket,third_data:p.get("newlogin_thirdData")||{}};l.ticketLogin(t).then(function(t){y.open("鐧诲綍鎴愬姛",2e3),d.send("H5_active_sms_login",JSON.stringify({type:"pwd",status:"1",way:"-99",enter:"3",isGray:e.params.data.isGray,isGrayTicketLogin:e.params.data.isGrayTicketLogin})),e.params.loginSuccess&&e.params.loginSuccess()},function(t){return e.hideCaptcha(),d.send("H5_active_sms_login",JSON.stringify({type:"pwd",status:"0",status_des:t.msg,way:"-99",enter:"3",isGray:e.params.data.isGray,isGrayTicketLogin:e.params.data.isGrayTicketLogin})),t.code&&11170300===Number(t.code)?(t.data=t.data||{},p.set("sms-exchange-login-params",{mobile:e.mobile||"",pid:t.data.pid,authScene:2,userName:e.mobile||"",processId:t.data.pid||""}),void e.locationDefend(t,{exchangeLoginType:"sms"})):void y.open(t.msg||"绯荤粺缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯锛",5e3)}).always(function(){b.hide()})},getMobile:function(){return this.handleMobile(this.mobileInputManager.getMobile())},handleMobile:function(e){var t=(e||"").replace(/\s/g,"");return t.replace(/(\d{3})\d{5}(\d{3})/,"$1*****$2")},register:function(){var e=this,t="鎮ㄧ殑鎵嬫満"+this.mobile+'鏆傛湭娉ㄥ唽鍞搧浼氳处鍙凤紝璇风偣鍑诲悓鎰忔敞鍐屽崗璁強闅愮鏀跨瓥浠ユ敞鍐屻俓n ';this.isInWXKApp()&&this.isAndroid()&&(t="鎮ㄧ殑鎵嬫満"+this.mobile+'鏆傛湭娉ㄥ唽鍞搧浼氳处鍙凤紝璇风偣鍑诲悓鎰忔敞鍐屽崗璁強闅愮鏀跨瓥浠ユ敞鍐屻俓n '),w.conf({clsName:"login-captcha-dialog",title:"娉ㄥ唽鍗忚鍙婇殣绉佹斂绛",content:t,btns:["涓嶅悓鎰","鍚屾剰"],width:"80%",x:"80%",y:"50%",onBtnClick:function(t,n){1===n?e.loginByTicket():e.hideCaptcha(),this.close()}}).open()},showCaptcha:function(){this.elements.LOGIN_CAPTCHA_BOX.show(),this.elements.LOGIN_BOX.addClass("win-captcha-container"),this.elements.LOGIN_MODELS_WRAP.hide()},hideCaptcha:function(){this.elements.LOGIN_CAPTCHA_BOX.hide(),this.elements.LOGIN_BOX.removeClass("win-captcha-container");var e=this;setTimeout(function(){e.elements.LOGIN_MODELS_WRAP.show()},100),f.vipCaptchaDestroy()},hideError:function(){""!==t(".J-binding-user-info__name").text()&&this.elements.LOGIN_USER_INFO.show(),r.hideError(this.elements.LOGIN_ERR_WRAP)},showError:function(e){this.elements.LOGIN_USER_INFO.hide(),r.showError(this.elements.LOGIN_ERR_WRAP,e)},getVerTemplateId:function(e){if(!e)return"";var t=e.split("?")[1]?"&":"?";return""+e+t+"v="+(new Date).getTime()}};e.exports=_}).call(t,n(1))},function(e,t){},,function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='\n';return __p}},function(e,t,n){(function(t){"use strict";function i(){var e="__test",t=window.localStorage;try{return t.setItem(e,"1"),t.removeItem(e),"localStorage"in window&&window.localStorage}catch(n){return n.name.toLowerCase().indexOf("quotaexceedederror")!==-1&&a("error",{error:"localstorage_full"}),!1}}function o(){var e=(new Date).getTime();for(var n in localStorage)if(localStorage.hasOwnProperty(n)){var i=localStorage.getItem(n);try{i=t.parseJSON(i)}catch(o){}if(Object.prototype.toString.call(i).toLowerCase().indexOf("array")>0){var r=i[0]&&i[0].expires;if(r&&/^\d{13,}$/.test(r)&&r<=e||"brandList_sortList"===n)localStorage.removeItem(n);else if(n.indexOf("classify")!==-1&&i[0]&&!i[0].expires){var s=void 0;if(i[0].cache_time){var a=i[0].cache_time.split(/[\s\:\-]/);s=new Date(a[0],a[1]-1,+a[2]+c,a[3],a[4],a[5])}else s=new Date(e-3600);s.getTime()2&&void 0!==arguments[2]?arguments[2]:86400*c,i=[];if(n){var o=(new Date).getTime();i.push({expires:o+1e3*n})}i.push(t);try{localStorage.setItem(e,JSON.stringify(i))}catch(r){r.name.toLowerCase().indexOf("quotaexceedederror")!==-1?a("error",{error:"localstorage_full"}):a("error",{error:"localstorage_write_error_"+e+"_"+JSON.stringify(i).length})}},get:function(e){var n=void 0;try{n=localStorage.getItem(e)}catch(i){n=null,a("error",{error:"localstorage_get_error_"+e})}if(null===n||void 0===n)return n="";try{n=t.parseJSON(n)}catch(i){}if("object"!==("undefined"==typeof n?"undefined":s(n)))return n;if("string"===t.type(n[0]))return n[0];if("object"===t.type(n))return n;var o=n[0]&&n[0].expires;if(o&&/^\d{13,}$/.test(o)){var r=(new Date).getTime();if(o<=r)return localStorage.removeItem(e),"";n.shift()}return n[0]},remove:function(e){try{localStorage.removeItem(e)}catch(t){a("error",{error:"localstorage_remove_error_"+e})}}}:{set:r,get:r,remove:r};e.exports=l}).call(t,n(1))},function(e,t){"use strict";function n(e){var t=d.createElement("link");return t.type="text/css",t.rel="stylesheet",t.href=e,h.appendChild(t),t}function i(e,t){var n=d.createElement("style");return n.type="text/css",t&&(n.id=t),e&&(m?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))),h.appendChild(n),n}function o(){return!b&&m&&p.length+f.length>=w&&(b=!0),b}function r(e){o()?l(e):u(e)}function s(e){o()?c(e):a(e)}function a(e){i(e)}function c(e){var t=d.getElementById(v);t?t.styleSheet.cssText=t.styleSheet.cssText+e:i(e,v)}function l(e){var t=d.getElementById(g),n=null;t?t.styleSheet.addImport(e):(n=i(null,g),n.styleSheet.addImport(e))}function u(e){n(e)}var d=document,h=document.getElementsByTagName("head")[0],p=d.getElementsByTagName("link"),f=d.getElementsByTagName("style"),m=/MSIE ([^;]+)/.test(navigator.userAgent)&&parseInt(RegExp.$1,10)<10,g="importLink_ID",v="appendStyle_ID",y=31,w=y-2,b=!1;e.exports={loadStyle:r,loadStyleStr:s}},function(e,t,n){(function(t){"use strict";function n(e){this.init(e)}t.extend(n.prototype,{isSelectionApiSupported:!0,init:function(e){this.$input=e.$input;var t=this.$input.get(0);!t||void 0!==t.selectionStart&&void 0!==t.setSelectionRange||(this.isSelectionApiSupported=!1,this.$input.attr("maxlength","11")),this.bindEvent()},getMobile:function(){return this.$input.val().replace(/\s/g,"")},bindEvent:function(){this.isSelectionApiSupported&&this.$input.on("input change",function(){var e=t(this).val(),n=e;n=" "+n.replace(/\s/g,""),n=n.replace(/[ \w]{4}/g,function(e){return e+" "}),n=t.trim(n);var i=this.selectionStart;(4===i&&" "!==e[3]||9===i&&" "!==e[8])&&(i+=1),11===i&&e.indexOf(" ")<0&&(i=13),t(this).val(n),this.setSelectionRange(i,i)})}}),e.exports=n}).call(t,n(1))},function(e,t,n){(function(t){"use strict";function i(){if(!(this instanceof i))return new i;if(r(),p=t("#mg-dialog"),p.length)return l;var e='
\t

\t
\t
\t
';return this.$box=p=t(e).appendTo(t("body")),this.$title=p.find(".mg-dialog-title"),this.$body=p.find(".mg-dialog-body"),this.$foot=p.find(".mg-dialog-foot"),this.isOpen=!1,this.mask=m(),this.mask.associate(this),this.freeze=!0,l=this,f="fixed"===p.css("position"),o(),this}function o(){p.on("tap",function(e){e.preventDefault(),e.stopPropagation()}),p.on("close",l.close.bind(l)),p.find(".mg-dialog-close").on("tap",function(){return l.close(),!1}),l.$body.on("tap",function(e){e.stopPropagation(),d&&d.call(l,e)}),l.$foot.on("click","button",function(e){e.stopPropagation();var n=t(this),i=n.data("index")-0,o=n.html(),r=u||g;r.call(l,e,i,o)}),window.onorientationchange=r}function r(){s=document.documentElement.clientHeight,a=document.documentElement.clientWidth}n(66),n(68);var s,a,c,l,u,d,h,p,f,m=n(44),g=function(e){l&&l.close()},v=[],y=!1,w="",b=i.prototype;t.extend(b,{reset:function(){this.$box.removeClass(w),p.css({width:"auto",height:"auto",left:"auto",right:"auto",top:"auto",bottom:"auto"}),c=!1,this.setTitle(),this.$body.removeClass("left"),u=null,d=null,h=null,this.freeze=!0},setNoAnimate:function(e){y=e,this.mask.conf({noAnimate:y})},conf:function(e){var t=[].slice.call(arguments,0);if(t.length){if("string"==typeof t[0]&&(e={content:t[0]},"string"==typeof t[1]&&(e.title=t[0],e.content=t[1])),!e.content)throw Error("content required");var n=this,i=e.title;e.content;return this.reset(),this.setClass(e.clsName),this.setTitle(i),this.setContent(e.content,e.left),this.setFoot(e.btns),void 0!==e.freeze&&(this.freeze=e.freeze),u=e.onBtnClick,d=e.onContentClick,h=e.onOpen,window.requestAnimationFrame?requestAnimationFrame(function(){n.setSize(e.width,e.x,e.y,e.position)}):setTimeout(function(){n.setSize(e.width,e.x,e.y,e.position)},0),c=e.useBottom,this}},setTitle:function(e){e?this.$title.html(e).removeClass("none"):this.$title.addClass("none").html("")},setClass:function(e){e&&""!=e&&(this.$box.removeClass(w),w=e,this.$box.addClass(e))},setContent:function(e,t){if(!e)throw Error("content can not empty");this.$body.html(e),t&&this.$body.addClass("left")},setFoot:function(e){var n="";return e?(v="string"==t.type(e)?[e]:e,t.each(v,function(e,t){n+='"})):(this.freeze=!1,v=[]),this.$foot.html(n),this},setSize:function(e,t,n,i){s<10&&r();var o={};if(e&&p.css("width",e),void 0!==t?"number"==typeof t&&(t+="px"):t="100%"===e?0:(a-p.width())/2+"px",void 0!==n)"number"==typeof n&&(n+="px");else{var l=-30;n=i&&""!=i?s-p.height()+"px":(s-p.height())/2+l+"px"}return o.left=t,c?(o.top="auto",o.bottom=0):o.top=n,p.css(o),this},open:function(){if(!this.isOpen){arguments.length&&this.conf.apply(this,arguments);var e=this;return this.mask.freeze(this.freeze).scrollLock(!0).open(),y?(p.show(),this.isOpen=!0,h&&h.call(this)):p.css({display:"block"}).animate({opacity:1},200,function(){e.isOpen=!0,h&&h.call(e)}),this}},close:function(){var e=this;return y?(p.hide(),this.mask.close(),this.isOpen=!1,this.reset()):p.animate({opacity:0},60,function(){p.css("display","none"),e.mask.close(),e.isOpen=!1,e.reset()}),this}}),e.exports=i}).call(t,n(1))},function(e,t){},,function(e,t){},,function(e,t,n){(function(t){"use strict";function i(e){if(!(this instanceof i))return new i(e);var n,c,l=e&&e.id||"J-popup"+a++,u=this.$popup=t("#"+l),d={};return t.extend(d,e),u.length?n=this:(c=t(r({popupId:l})),d.zIndex&&c.css("z-index",d.zIndex),d.className&&c.addClass(d.className),u=this.$popup=c.appendTo(t("body")),this.$box=u,this.isOpen=!1,s="fixed"===u.css("position"),o(u,this),n=this),n}function o(e,t){e.on("touchmove",".size-box",function(e){e.stopPropagation()}),e.on("close",t.close.bind(t))}n(66);var r=n(71),s=!0,a=(new Date).getTime(),c=i.prototype;t.extend(c,{setContent:function(e){return this.$popup.html(e),this},addClass:function(e){this.$popup.addClass(e)},setSize:function(e){return e&&this.$popup.css("width",e),this},conf:function(e){var t=this;return e.content&&this.setContent(e.content),window.requestAnimationFrame?requestAnimationFrame(function(){t.setSize(e.width)}):setTimeout(function(){t.setSize(e.width)},0),this},open:function(){return arguments.length&&this.conf.apply(this,arguments),this.$popup.fadeIn(),this.isOpen=!0,this},close:function(){return this.$popup.fadeOut(),this.isOpen=!1,this}}),e.exports=i}).call(t,n(1))},function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='
';return __p}},function(e,t,n){(function(t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(37),r=n(39),s=n(24),a=n(40),c=n(44)(),l=n(48),u=n(73),d=n(54),h=n(65)(),p=n(55)();n(1);var f=n(22),m={},g="CONVENIENT_LOGIN_WAP",v=f.get("mars_cid")||"",y=JSON.stringify({cid:v}),w="鎮ㄧ殑鎵嬫満鍙锋殏涓嶆敮鎸佹鐧诲綍鏂瑰紡锛岃浣跨敤璐﹀彿鍚+瀵嗙爜鐧诲綍锛屾垨鑱旂郴瀹㈡湇",b="璇ユ墜鏈哄彿缁戝畾浜嗗涓处鍙凤紝璇峰厛鍓嶅線鍞搧浼欰PP锛屼慨鏀规偍瑕佷娇鐢ㄧ殑璐﹀彿鐨勭粦瀹氭墜鏈猴紝纭繚鍙粦瀹氫簡涓涓处鍙峰悗锛屽啀鏉ユ椤甸潰灏濊瘯鐧诲綍銆",x=function(e,n){var i=this,o={domain_id:"",serialno:"",token:"",mobile:"",isviva:"0",toggleToNormalLogin:function(e){},showError:function(e){},hideError:function(){},preMobile:""},r={$mobile:"",$authCode:"",$getAuthCode:"",$errorBox:""},s={sendCaptchaLoading:!1,captchaLoading:!1};i.ui=t.extend(!0,r,e),i.option=t.extend(!0,o,n),i.config=s};x.fn=x.prototype,x.fn.getOption=function(e){return e?this.option[e]:this.option},x.fn.setOption=function(e,t){return this.option[e]=t,this},x.fn.stopCountDown=function(){u.stop(this.ui.$getAuthCode)},x.fn.sendSmsCaptcha=function(e){var n=this,i={domain_id:n.option.domain_id,mobile:n.option.mobile,token:n.option.token,captcha:e};for(var o in i)i[o]||delete i[o];return!n.config.sendCaptchaLoading&&(n.config.sendCaptchaLoading=!0,void r.sendCaptcha(i).then(function(e){i.mobile&&(n.option.preMobile=i.mobile),h.close(),p.open("楠岃瘉鐮佸凡鍙戦侊紝璇锋敞鎰忔煡鏀",2e3),u.start(n.ui.$getAuthCode,e),n.option.serialno=e.serialno,a.send("H5_active_new_get_smscode_click",'{"status":"1","enter":"'+n.option.enter+'"}')},function(i){var o=i.msg;if(n.ui.$getAuthCode.removeClass("disabled"),!i.code||200!==Number(i.code)&&210!==Number(i.code))e?(t("#J-captcha").val(""),n.refreshImgCaptcha(),t(".J-captcha-error").html(o).parent().show()):n.option.showError&&n.option.showError(o);else{c.open();var r=n.option.disablePasswordLogin?["纭畾"]:["鍙栨秷","璐﹀彿鐧诲綍"];h.conf({content:'

'+o+"

",width:"90%",btns:r,onBtnClick:function(e,t){this.close(),1===t&&n.option.toggleToNormalLogin(e)}}).open(),a.send("H5_active_new_phonenum_login_failed_alert",'{"reason":"'+o+'","enter":"'+n.option.enter+'"}')}a.send("H5_active_new_get_smscode_click",'{"status":"0","status_des":"'+o+'","enter":"'+n.option.enter+'","code":"'+i.code+'"}')}).always(function(){n.config.sendCaptchaLoading=!1}))},x.fn.getSmsCaptcha=function(e,n){var i=this,r=this;e.preventDefault();var u=e.currentTarget;if(t(u).hasClass("disabled"))return!1;var d=l.mobileFastValidate(r.ui.$mobile[0],r.ui.$authCode[0]);if(t(".J-mlogin-ipt-mobile").on("input propertychange",function(){r.option.smsTicket=""; +}),"string"!=typeof d||"鎵嬫満鍙风爜涓嶈兘涓虹┖"!==d&&"鎵嬫満鍙风爜鏍煎紡閿欒"!==d){r.option.hideError&&r.option.hideError(),t(u).addClass("disabled");var p=r.ui.$mobile.val(),f={mobile:o.encryptMobile(p),domain_id:r.option.domain_id};f.scene=g,f.info=y,s.sendSms(f).then(function(e){return r.mloginApiSendSms(e,f,n,{plainMobile:p}),!1},function(n){t(e.currentTarget).removeClass("disabled");var o=n.msg;if(n.code&&70306===n.code){c.open();var s=r.option.disablePasswordLogin?["纭畾"]:["鍙栨秷","璐﹀彿鐧诲綍"];r.option.disablePasswordLogin&&o&&o.indexOf(w)>=0&&(o=b),h.conf({content:'

'+o+"

",width:"90%",btns:s,onBtnClick:function(e,t){this.close(),1===t&&r.option.toggleToNormalLogin(e)}}).open(),a.send("H5_active_new_phonenum_login_failed_alert",'{"reason":"'+o+'","enter":"'+r.option.enter+'"}')}else r.option.showError&&r.option.showError(o);m.ticket="",i.option.smsTicket=""})}else r.option.showError&&r.option.showError(d)},x.fn.showDialogErrMsg=function(e,n){void 0===("undefined"==typeof e?"undefined":i(e))?"缃戠粶寮傚父锛岃绋嶅悗鍐嶈瘯锛":e;n&&"function"==typeof n.text?n.text(e):t(".J-captcha-error").text(e)},x.fn.mloginApiSendSms=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this;e=e||{};var r=e.captchaDataType&&3===Number(e.captchaDataType.type),s=(i.plainMobile||"").replace(/(\d{3})\d{5}(\d{3})/,"$1*****$2");e.captchaType&&0!==Number(e.captchaType)?(m.captchaType=e.captchaType,m.captchaId=e.captchaId||"",m.sid=e.sid||"",window.VipSecureCode?d.vipCaptchaShow(e,m,n,function(){m.ticket&&o.sendSms(n),(m.cancel||m.close)&&(o.ui.$getAuthCode.removeClass("disabled"),m.close&&(m.ticket=""))}):(p.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),o.ui.$getAuthCode.removeClass("disabled"),a.send("H5_safe_mlogin_components_load_failed",JSON.stringify({captchaType:m.captchaType,way:"accountlogin"})))):(t.mobile&&(o.option.preMobile=t.mobile),h.close(),p.open(r?"鎴戜滑灏嗘嫧鎵"+s+"鍛婄煡楠岃瘉鐮侊紝璇锋敞鎰忔帴鍚":"楠岃瘉鐮佸凡鍙戦侊紝璇锋敞鎰忔煡鏀",2e3),u.start(o.ui.$getAuthCode,e),o.ui.$authCode[0].focus(),o.option.uuid=e.uuid,o.option.processId=e.processId,o.option.authScene=e.authScene,o.option.smsTicket=e.smsTicket,a.send("H5_active_new_get_smscode_click",'{"status":"1","enter":"'+o.option.enter+'"}'))},x.fn.sendSms=function(e){var t=this,n=this,i=y,r=n.ui.$mobile.val(),l={mobile:o.encryptMobile(r),domain_id:n.option.domain_id,scene:g,sid:m.sid,captchaType:m.captchaType,captchaId:m.captchaId,ticket:m.ticket,info:i};s.sendSms(l).then(function(t){n.mloginApiSendSms(t,l,e,{plainMobile:r})},function(e){var i=e.msg;if(n.ui.$getAuthCode.removeClass("disabled"),e.code&&70306===e.code){c.open();var o=n.option.disablePasswordLogin?["纭畾"]:["鍙栨秷","璐﹀彿鐧诲綍"];n.option.disablePasswordLogin&&i&&i.indexOf(w)>=0&&(i=b),h.conf({content:'

'+i+"

",width:"90%",btns:o,onBtnClick:function(e,t){this.close(),1===t&&n.option.toggleToNormalLogin(e)}}).open(),a.send("H5_active_new_phonenum_login_failed_alert",'{"reason":"'+i+'","enter":"'+n.option.enter+'"}')}else n.option.showError&&n.option.showError(i);t.option.smsTicket="",m.ticket="",a.send("H5_active_new_get_smscode_click",'{"status":"0","status_des":"'+i+'","enter":"'+n.option.enter+'","code":"'+e.code+'"}')})},x.fn.refreshImgCaptcha=function(e,n,i){var o=this;if(!o.config.captchaLoading){o.config.captchaLoading=!0;var s={domain_id:n||o.option.domain_id,mobile:i||o.option.mobile,old_token:e||o.option.token};r.freshenCaptcha(s).then(function(e){if(t("#J-captcha").val(""),o.option.token=e.token,e.verifyType)switch(String(e.verifyType)){case"1":e.captcha&&"string"==typeof e.captcha?(t(".J-sms-captcha-img").attr("src","data:image/png;base64,"+e.captcha),t(".J-sms-captcha-title").addClass("doc").removeClass("img"),t("#J-captcha").focus()):o.showDialogErrMsg();break;case"6":var n=null;try{n=JSON.parse(e.captcha||"")}catch(i){console.log("json parse error !"),n={}}n&&n.qp&&n.ap&&"string"==typeof n.qp&&"string"==typeof n.ap?(t(".J-sms-captcha-img").attr("src","data:image/png;base64,"+n.ap),t(".J-auth-question-img").attr("src","data:image/png;base64,"+n.qp),t(".J-sms-captcha-title").addClass("img").removeClass("doc"),t("#J-captcha").focus()):o.showDialogErrMsg();break;default:o.showDialogErrMsg()}else o.showDialogErrMsg()},function(e){t("#J-captcha").val(""),o.showDialogErrMsg(e.msg)}).always(function(){o.config.captchaLoading=!1})}},e.exports=x}).call(t,n(1))},function(e,t){"use strict";function n(e,t){var n=t.interval||60,r=parseInt(n,10);e.removeClass("J-send-code-btn z-send-code"),o=setInterval(function(){r-=1,r<0?i(e):(e.html(r+"绉掑悗閲嶆柊鑾峰彇"),e.addClass("disabled"))},1e3)}function i(e){o&&(clearInterval(o),e.html("閲嶆柊鑾峰彇"),e.addClass("J-send-code-btn z-send-code"),e.removeClass("disabled"))}var o;t.start=n,t.stop=i},function(e,t){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */ +(function(t,i,o){function r(e,t){this.wrapper="string"==typeof e?i.querySelector(e):e,this.scroller=this.wrapper.children[0],this.scrollerStyle=this.scroller.style,this.options={resizeScrollbars:!0,mouseWheelSpeed:20,snapThreshold:.334,startX:0,startY:0,scrollY:!0,directionLockThreshold:5,momentum:!0,bounce:!0,bounceTime:600,bounceEasing:"",preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT)$/},HWCompositing:!0,useTransition:!0,useTransform:!0};for(var n in t)this.options[n]=t[n];this.translateZ=this.options.HWCompositing&&l.hasPerspective?" translateZ(0)":"",this.options.useTransition=l.hasTransition&&this.options.useTransition,this.options.useTransform=l.hasTransform&&this.options.useTransform,this.options.eventPassthrough=this.options.eventPassthrough===!0?"vertical":this.options.eventPassthrough,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollY="vertical"!=this.options.eventPassthrough&&this.options.scrollY,this.options.scrollX="horizontal"!=this.options.eventPassthrough&&this.options.scrollX,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,this.options.bounceEasing="string"==typeof this.options.bounceEasing?l.ease[this.options.bounceEasing]||l.ease.circular:this.options.bounceEasing,this.options.resizePolling=void 0===this.options.resizePolling?60:this.options.resizePolling,this.options.tap===!0&&(this.options.tap="tap"),"scale"==this.options.shrinkScrollbars&&(this.options.useTransition=!1),this.options.invertWheelDirection=this.options.invertWheelDirection?-1:1,this.x=0,this.y=0,this.directionX=0,this.directionY=0,this._events={},this._init(),this.refresh(),this.scrollTo(this.options.startX,this.options.startY),this.enable()}function s(e,t,n){var o=i.createElement("div"),r=i.createElement("div");return n===!0&&(o.style.cssText="position:absolute;z-index:9999",r.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px"),r.className="iScrollIndicator","h"==e?(n===!0&&(o.style.cssText+=";height:7px;left:2px;right:2px;bottom:0",r.style.height="100%"),o.className="iScrollHorizontalScrollbar"):(n===!0&&(o.style.cssText+=";width:7px;bottom:2px;top:2px;right:1px",r.style.width="100%"),o.className="iScrollVerticalScrollbar"),o.style.cssText+=";overflow:hidden",t||(o.style.pointerEvents="none"),o.appendChild(r),o}function a(e,n){this.wrapper="string"==typeof n.el?i.querySelector(n.el):n.el,this.wrapperStyle=this.wrapper.style,this.indicator=this.wrapper.children[0],this.indicatorStyle=this.indicator.style,this.scroller=e,this.options={listenX:!0,listenY:!0,interactive:!1,resize:!0,defaultScrollbars:!1,shrink:!1,fade:!1,speedRatioX:0,speedRatioY:0};for(var o in n)this.options[o]=n[o];this.sizeRatioX=1,this.sizeRatioY=1,this.maxPosX=0,this.maxPosY=0,this.options.interactive&&(this.options.disableTouch||(l.addEvent(this.indicator,"touchstart",this),l.addEvent(t,"touchend",this)),this.options.disablePointer||(l.addEvent(this.indicator,l.prefixPointerEvent("pointerdown"),this),l.addEvent(t,l.prefixPointerEvent("pointerup"),this)),this.options.disableMouse||(l.addEvent(this.indicator,"mousedown",this),l.addEvent(t,"mouseup",this))),this.options.fade&&(this.wrapperStyle[l.style.transform]=this.scroller.translateZ,this.wrapperStyle[l.style.transitionDuration]=l.isBadAndroid?"0.001s":"0ms",this.wrapperStyle.opacity="0")}var c=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame||function(e){t.setTimeout(e,1e3/60)},l=function(){function e(e){return s!==!1&&(""===s?e:s+e.charAt(0).toUpperCase()+e.substr(1))}var n={},r=i.createElement("div").style,s=function(){for(var e,t=["t","webkitT","MozT","msT","OT"],n=0,i=t.length;n0&&(a=r?r/2.5*(u/8):0,l=o.abs(e)+a,c=l/u),{destination:o.round(a),duration:c}};var a=e("transform");return n.extend(n,{hasTransform:a!==!1,hasPerspective:e("perspective")in r,hasTouch:"ontouchstart"in t,hasPointer:t.PointerEvent||t.MSPointerEvent,hasTransition:e("transition")in r}),n.isBadAndroid=/Android /.test(t.navigator.appVersion)&&!/Chrome\/\d/.test(t.navigator.appVersion),n.extend(n.style={},{transform:a,transitionTimingFunction:e("transitionTimingFunction"),transitionDuration:e("transitionDuration"),transitionDelay:e("transitionDelay"),transformOrigin:e("transformOrigin")}),n.hasClass=function(e,t){var n=new RegExp("(^|\\s)"+t+"(\\s|$)");return n.test(e.className)},n.addClass=function(e,t){if(!n.hasClass(e,t)){var i=e.className.split(" ");i.push(t),e.className=i.join(" ")}},n.removeClass=function(e,t){if(n.hasClass(e,t)){var i=new RegExp("(^|\\s)"+t+"(\\s|$)","g");e.className=e.className.replace(i," ")}},n.offset=function(e){for(var t=-e.offsetLeft,n=-e.offsetTop;e=e.offsetParent;)t-=e.offsetLeft,n-=e.offsetTop;return{left:t,top:n}},n.preventDefaultException=function(e,t){for(var n in t)if(t[n].test(e[n]))return!0;return!1},n.extend(n.eventType={},{touchstart:1,touchmove:1,touchend:1,mousedown:2,mousemove:2,mouseup:2,pointerdown:3,pointermove:3,pointerup:3,MSPointerDown:3,MSPointerMove:3,MSPointerUp:3}),n.extend(n.ease={},{quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(e){return e*(2-e)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(e){return o.sqrt(1- --e*e)}},back:{style:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fn:function(e){var t=4;return(e-=1)*e*((t+1)*e+t)+1}},bounce:{style:"",fn:function(e){return(e/=1)<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}},elastic:{style:"",fn:function(e){var t=.22,n=.4;return 0===e?0:1==e?1:n*o.pow(2,-10*e)*o.sin((e-t/4)*(2*o.PI)/t)+1}}}),n.tap=function(e,t){var n=i.createEvent("Event");n.initEvent(t,!0,!0),n.pageX=e.pageX,n.pageY=e.pageY,e.target.dispatchEvent(n)},n.click=function(e){var t,n=e.target;/(SELECT|INPUT|TEXTAREA)/i.test(n.tagName)||(t=i.createEvent("MouseEvents"),t.initMouseEvent("click",!0,!0,e.view,1,n.screenX,n.screenY,n.clientX,n.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,0,null),t._constructed=!0,n.dispatchEvent(t))},n}();r.prototype={version:"5.1.3",_init:function(){this._initEvents(),(this.options.scrollbars||this.options.indicators)&&this._initIndicators(),this.options.mouseWheel&&this._initWheel(),this.options.snap&&this._initSnap(),this.options.keyBindings&&this._initKeys()},destroy:function(){this._initEvents(!0),this._execEvent("destroy")},_transitionEnd:function(e){e.target==this.scroller&&this.isInTransition&&(this._transitionTime(),this.resetPosition(this.options.bounceTime)||(this.isInTransition=!1,this._execEvent("scrollEnd")))},_start:function(e){if((1==l.eventType[e.type]||0===e.button)&&this.enabled&&(!this.initiated||l.eventType[e.type]===this.initiated)){!this.options.preventDefault||l.isBadAndroid||l.preventDefaultException(e.target,this.options.preventDefaultException)||e.preventDefault();var t,n=e.touches?e.touches[0]:e;this.initiated=l.eventType[e.type],this.moved=!1,this.distX=0,this.distY=0,this.directionX=0,this.directionY=0,this.directionLocked=0,this._transitionTime(),this.startTime=l.getTime(),this.options.useTransition&&this.isInTransition?(this.isInTransition=!1,t=this.getComputedPosition(),this._translate(o.round(t.x),o.round(t.y)),this._execEvent("scrollEnd")):!this.options.useTransition&&this.isAnimating&&(this.isAnimating=!1,this._execEvent("scrollEnd")),this.startX=this.x,this.startY=this.y,this.absStartX=this.x,this.absStartY=this.y,this.pointX=n.pageX,this.pointY=n.pageY,this._execEvent("beforeScrollStart")}},_move:function(e){if(this.enabled&&l.eventType[e.type]===this.initiated){this.options.preventDefault&&e.preventDefault();var t,n,i,r,s=e.touches?e.touches[0]:e,a=s.pageX-this.pointX,c=s.pageY-this.pointY,u=l.getTime();if(this.pointX=s.pageX,this.pointY=s.pageY,this.distX+=a,this.distY+=c,i=o.abs(this.distX),r=o.abs(this.distY),!(u-this.endTime>300&&i<10&&r<10)){if(this.directionLocked||this.options.freeScroll||(i>r+this.options.directionLockThreshold?this.directionLocked="h":r>=i+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"==this.directionLocked){if("vertical"==this.options.eventPassthrough)e.preventDefault();else if("horizontal"==this.options.eventPassthrough)return void(this.initiated=!1);c=0}else if("v"==this.directionLocked){if("horizontal"==this.options.eventPassthrough)e.preventDefault();else if("vertical"==this.options.eventPassthrough)return void(this.initiated=!1);a=0}a=this.hasHorizontalScroll?a:0,c=this.hasVerticalScroll?c:0,t=this.x+a,n=this.y+c,(t>0||t0?0:this.maxScrollX),(n>0||n0?0:this.maxScrollY),this.directionX=a>0?-1:a<0?1:0,this.directionY=c>0?-1:c<0?1:0,this.moved||this._execEvent("scrollStart"),this.moved=!0,this._translate(t,n),u-this.startTime>300&&(this.startTime=u,this.startX=this.x,this.startY=this.y)}}},_end:function(e){if(this.enabled&&l.eventType[e.type]===this.initiated){this.options.preventDefault&&!l.preventDefaultException(e.target,this.options.preventDefaultException)&&e.preventDefault();var t,n,i=(e.changedTouches?e.changedTouches[0]:e,l.getTime()-this.startTime),r=o.round(this.x),s=o.round(this.y),a=o.abs(r-this.startX),c=o.abs(s-this.startY),u=0,d="";if(this.isInTransition=0,this.initiated=0,this.endTime=l.getTime(),!this.resetPosition(this.options.bounceTime)){if(this.scrollTo(r,s),!this.moved)return this.options.tap&&l.tap(e,this.options.tap),this.options.click&&l.click(e),void this._execEvent("scrollCancel");if(this._events.flick&&i<200&&a<100&&c<100)return void this._execEvent("flick");if(this.options.momentum&&i<300&&(t=this.hasHorizontalScroll?l.momentum(this.x,this.startX,i,this.maxScrollX,this.options.bounce?this.wrapperWidth:0,this.options.deceleration):{destination:r,duration:0},n=this.hasVerticalScroll?l.momentum(this.y,this.startY,i,this.maxScrollY,this.options.bounce?this.wrapperHeight:0,this.options.deceleration):{destination:s,duration:0},r=t.destination,s=n.destination,u=o.max(t.duration,n.duration),this.isInTransition=1),this.options.snap){var h=this._nearestSnap(r,s);this.currentPage=h,u=this.options.snapSpeed||o.max(o.max(o.min(o.abs(r-h.x),1e3),o.min(o.abs(s-h.y),1e3)),300),r=h.x,s=h.y,this.directionX=0,this.directionY=0,d=this.options.bounceEasing}return r!=this.x||s!=this.y?((r>0||r0||s0?t=0:this.x0?n=0:this.y-1&&this._events[e].splice(n,1)}},_execEvent:function(e){if(this._events[e]){var t=0,n=this._events[e].length;if(n)for(;t0,!n||this.options.useTransition&&i.style?(this._transitionTimingFunction(i.style),this._transitionTime(n),this._translate(e,t)):this._animate(e,t,n,i.fn)},scrollToElement:function(e,t,n,i,r){if(e=e.nodeType?e:this.scroller.querySelector(e)){var s=l.offset(e);s.left-=this.wrapperOffset.left,s.top-=this.wrapperOffset.top,n===!0&&(n=o.round(e.offsetWidth/2-this.wrapper.offsetWidth/2)),i===!0&&(i=o.round(e.offsetHeight/2-this.wrapper.offsetHeight/2)),s.left-=n||0,s.top-=i||0,s.left=s.left>0?0:s.left0?0:s.top0?i--:t<0&&i++,n>0?r--:n<0&&r++,void this.goToPage(i,r);i=this.x+o.round(this.hasHorizontalScroll?t:0),r=this.y+o.round(this.hasVerticalScroll?n:0),i>0?i=0:i0?r=0:r-this.scrollerWidth;){for(this.pages[a]=[],e=0,r=0;r>-this.scrollerHeight;)this.pages[a][e]={x:o.max(l,this.maxScrollX),y:o.max(r,this.maxScrollY),width:u,height:d,cx:l-n,cy:r-i},r-=d,e++;l-=u,a++}else for(s=this.options.snap,e=s.length,t=-1;athis.maxScrollX&&c++;this.goToPage(this.currentPage.pageX||0,this.currentPage.pageY||0,0),this.options.snapThreshold%1===0?(this.snapThresholdX=this.options.snapThreshold,this.snapThresholdY=this.options.snapThreshold):(this.snapThresholdX=o.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width*this.options.snapThreshold),this.snapThresholdY=o.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height*this.options.snapThreshold))}}),this.on("flick",function(){var e=this.options.snapSpeed||o.max(o.max(o.min(o.abs(this.x-this.startX),1e3),o.min(o.abs(this.y-this.startY),1e3)),300);this.goToPage(this.currentPage.pageX+this.directionX,this.currentPage.pageY+this.directionY,e)})},_nearestSnap:function(e,t){if(!this.pages.length)return{x:0,y:0,pageX:0,pageY:0};var n=0,i=this.pages.length,r=0;if(o.abs(e-this.absStartX)0?e=0:e0?t=0:t=this.pages[n][0].cx){e=this.pages[n][0].x;break}for(i=this.pages[n].length;r=this.pages[0][r].cy){t=this.pages[0][r].y;break}return n==this.currentPage.pageX&&(n+=this.directionX,n<0?n=0:n>=this.pages.length&&(n=this.pages.length-1),e=this.pages[n][0].x),r==this.currentPage.pageY&&(r+=this.directionY,r<0?r=0:r>=this.pages[0].length&&(r=this.pages[0].length-1),t=this.pages[0][r].y),{x:e,y:t,pageX:n,pageY:r}},goToPage:function(e,t,n,i){i=i||this.options.bounceEasing,e>=this.pages.length?e=this.pages.length-1:e<0&&(e=0),t>=this.pages[e].length?t=this.pages[e].length-1:t<0&&(t=0);var r=this.pages[e][t].x,s=this.pages[e][t].y;n=void 0===n?this.options.snapSpeed||o.max(o.max(o.min(o.abs(r-this.x),1e3),o.min(o.abs(s-this.y),1e3)),300):n,this.currentPage={x:r,y:s,pageX:e,pageY:t},this.scrollTo(r,s,n,i)},next:function(e,t){var n=this.currentPage.pageX,i=this.currentPage.pageY;n++,n>=this.pages.length&&this.hasVerticalScroll&&(n=0,i++),this.goToPage(n,i,e,t)},prev:function(e,t){var n=this.currentPage.pageX,i=this.currentPage.pageY;n--,n<0&&this.hasVerticalScroll&&(n=0,i--),this.goToPage(n,i,e,t)},_initKeys:function(e){var i,o={pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40};if("object"==n(this.options.keyBindings))for(i in this.options.keyBindings)"string"==typeof this.options.keyBindings[i]&&(this.options.keyBindings[i]=this.options.keyBindings[i].toUpperCase().charCodeAt(0));else this.options.keyBindings={};for(i in o)this.options.keyBindings[i]=this.options.keyBindings[i]||o[i];l.addEvent(t,"keydown",this),this.on("destroy",function(){l.removeEvent(t,"keydown",this)})},_key:function(e){if(this.enabled){var t,n=this.options.snap,i=n?this.currentPage.pageX:this.x,r=n?this.currentPage.pageY:this.y,s=l.getTime(),a=this.keyTime||0,c=.25;switch(this.options.useTransition&&this.isInTransition&&(t=this.getComputedPosition(),this._translate(o.round(t.x),o.round(t.y)),this.isInTransition=!1),this.keyAcceleration=s-a<200?o.min(this.keyAcceleration+c,50):0,e.keyCode){case this.options.keyBindings.pageUp:this.hasHorizontalScroll&&!this.hasVerticalScroll?i+=n?1:this.wrapperWidth:r+=n?1:this.wrapperHeight;break;case this.options.keyBindings.pageDown:this.hasHorizontalScroll&&!this.hasVerticalScroll?i-=n?1:this.wrapperWidth:r-=n?1:this.wrapperHeight;break;case this.options.keyBindings.end:i=n?this.pages.length-1:this.maxScrollX,r=n?this.pages[0].length-1:this.maxScrollY;break;case this.options.keyBindings.home:i=0,r=0;break;case this.options.keyBindings.left:i+=n?-1:5+this.keyAcceleration>>0;break;case this.options.keyBindings.up:r+=n?1:5+this.keyAcceleration>>0;break;case this.options.keyBindings.right:i-=n?-1:5+this.keyAcceleration>>0;break;case this.options.keyBindings.down:r-=n?1:5+this.keyAcceleration>>0;break;default:return}if(n)return void this.goToPage(i,r);i>0?(i=0,this.keyAcceleration=0):i0?(r=0,this.keyAcceleration=0):r=d?(r.isAnimating=!1,r._translate(e,t),void(r.resetPosition(r.options.bounceTime)||r._execEvent("scrollEnd"))):(m=(m-u)/n,f=i(m),h=(e-s)*f+s,p=(t-a)*f+a,r._translate(h,p),void(r.isAnimating&&c(o)))}var r=this,s=this.x,a=this.y,u=l.getTime(),d=u+n;this.isAnimating=!0,o()},handleEvent:function(e){switch(e.type){case"touchstart":case"pointerdown":case"MSPointerDown":case"mousedown":this._start(e);break;case"touchmove":case"pointermove":case"MSPointerMove":case"mousemove":this._move(e);break;case"touchend":case"pointerup":case"MSPointerUp":case"mouseup":case"touchcancel":case"pointercancel":case"MSPointerCancel":case"mousecancel":this._end(e);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(e);break;case"wheel":case"DOMMouseScroll":case"mousewheel":this._wheel(e);break;case"keydown":this._key(e);break;case"click":e._constructed||(e.preventDefault(),e.stopPropagation())}}},a.prototype={handleEvent:function(e){switch(e.type){case"touchstart":case"pointerdown":case"MSPointerDown":case"mousedown":this._start(e);break;case"touchmove":case"pointermove":case"MSPointerMove":case"mousemove":this._move(e);break;case"touchend":case"pointerup":case"MSPointerUp":case"mouseup":case"touchcancel":case"pointercancel":case"MSPointerCancel":case"mousecancel":this._end(e)}},destroy:function(){this.options.interactive&&(l.removeEvent(this.indicator,"touchstart",this),l.removeEvent(this.indicator,l.prefixPointerEvent("pointerdown"),this),l.removeEvent(this.indicator,"mousedown",this),l.removeEvent(t,"touchmove",this),l.removeEvent(t,l.prefixPointerEvent("pointermove"),this),l.removeEvent(t,"mousemove",this),l.removeEvent(t,"touchend",this),l.removeEvent(t,l.prefixPointerEvent("pointerup"),this),l.removeEvent(t,"mouseup",this)),this.options.defaultScrollbars&&this.wrapper.parentNode.removeChild(this.wrapper)},_start:function(e){var n=e.touches?e.touches[0]:e;e.preventDefault(),e.stopPropagation(),this.transitionTime(),this.initiated=!0,this.moved=!1,this.lastPointX=n.pageX,this.lastPointY=n.pageY,this.startTime=l.getTime(),this.options.disableTouch||l.addEvent(t,"touchmove",this),this.options.disablePointer||l.addEvent(t,l.prefixPointerEvent("pointermove"),this),this.options.disableMouse||l.addEvent(t,"mousemove",this),this.scroller._execEvent("beforeScrollStart")},_move:function(e){var t,n,i,o,r=e.touches?e.touches[0]:e;l.getTime();this.moved||this.scroller._execEvent("scrollStart"),this.moved=!0,t=r.pageX-this.lastPointX,this.lastPointX=r.pageX,n=r.pageY-this.lastPointY,this.lastPointY=r.pageY,i=this.x+t,o=this.y+n,this._pos(i,o),e.preventDefault(),e.stopPropagation()},_end:function(e){if(this.initiated){if(this.initiated=!1,e.preventDefault(),e.stopPropagation(),l.removeEvent(t,"touchmove",this),l.removeEvent(t,l.prefixPointerEvent("pointermove"),this),l.removeEvent(t,"mousemove",this),this.scroller.options.snap){var n=this.scroller._nearestSnap(this.scroller.x,this.scroller.y),i=this.options.snapSpeed||o.max(o.max(o.min(o.abs(this.scroller.x-n.x),1e3),o.min(o.abs(this.scroller.y-n.y),1e3)),300);this.scroller.x==n.x&&this.scroller.y==n.y||(this.scroller.directionX=0,this.scroller.directionY=0,this.scroller.currentPage=n,this.scroller.scrollTo(n.x,n.y,i,this.scroller.options.bounceEasing))}this.moved&&this.scroller._execEvent("scrollEnd")}},transitionTime:function(e){e=e||0,this.indicatorStyle[l.style.transitionDuration]=e+"ms",!e&&l.isBadAndroid&&(this.indicatorStyle[l.style.transitionDuration]="0.001s")},transitionTimingFunction:function(e){this.indicatorStyle[l.style.transitionTimingFunction]=e},refresh:function(){this.transitionTime(),this.options.listenX&&!this.options.listenY?this.indicatorStyle.display=this.scroller.hasHorizontalScroll?"block":"none":this.options.listenY&&!this.options.listenX?this.indicatorStyle.display=this.scroller.hasVerticalScroll?"block":"none":this.indicatorStyle.display=this.scroller.hasHorizontalScroll||this.scroller.hasVerticalScroll?"block":"none",this.scroller.hasHorizontalScroll&&this.scroller.hasVerticalScroll?(l.addClass(this.wrapper,"iScrollBothScrollbars"),l.removeClass(this.wrapper,"iScrollLoneScrollbar"),this.options.defaultScrollbars&&this.options.customStyle&&(this.options.listenX?this.wrapper.style.right="8px":this.wrapper.style.bottom="8px")):(l.removeClass(this.wrapper,"iScrollBothScrollbars"),l.addClass(this.wrapper,"iScrollLoneScrollbar"),this.options.defaultScrollbars&&this.options.customStyle&&(this.options.listenX?this.wrapper.style.right="2px":this.wrapper.style.bottom="2px"));this.wrapper.offsetHeight;this.options.listenX&&(this.wrapperWidth=this.wrapper.clientWidth,this.options.resize?(this.indicatorWidth=o.max(o.round(this.wrapperWidth*this.wrapperWidth/(this.scroller.scrollerWidth||this.wrapperWidth||1)),8),this.indicatorStyle.width=this.indicatorWidth+"px"):this.indicatorWidth=this.indicator.clientWidth,this.maxPosX=this.wrapperWidth-this.indicatorWidth,"clip"==this.options.shrink?(this.minBoundaryX=-this.indicatorWidth+8,this.maxBoundaryX=this.wrapperWidth-8):(this.minBoundaryX=0,this.maxBoundaryX=this.maxPosX),this.sizeRatioX=this.options.speedRatioX||this.scroller.maxScrollX&&this.maxPosX/this.scroller.maxScrollX),this.options.listenY&&(this.wrapperHeight=this.wrapper.clientHeight,this.options.resize?(this.indicatorHeight=o.max(o.round(this.wrapperHeight*this.wrapperHeight/(this.scroller.scrollerHeight||this.wrapperHeight||1)),8),this.indicatorStyle.height=this.indicatorHeight+"px"):this.indicatorHeight=this.indicator.clientHeight,this.maxPosY=this.wrapperHeight-this.indicatorHeight,"clip"==this.options.shrink?(this.minBoundaryY=-this.indicatorHeight+8,this.maxBoundaryY=this.wrapperHeight-8):(this.minBoundaryY=0,this.maxBoundaryY=this.maxPosY),this.maxPosY=this.wrapperHeight-this.indicatorHeight,this.sizeRatioY=this.options.speedRatioY||this.scroller.maxScrollY&&this.maxPosY/this.scroller.maxScrollY),this.updatePosition()},updatePosition:function(){var e=this.options.listenX&&o.round(this.sizeRatioX*this.scroller.x)||0,t=this.options.listenY&&o.round(this.sizeRatioY*this.scroller.y)||0;this.options.ignoreBoundaries||(ethis.maxBoundaryX?"scale"==this.options.shrink?(this.width=o.max(this.indicatorWidth-(e-this.maxPosX),8),this.indicatorStyle.width=this.width+"px",e=this.maxPosX+this.indicatorWidth-this.width):e=this.maxBoundaryX:"scale"==this.options.shrink&&this.width!=this.indicatorWidth&&(this.width=this.indicatorWidth,this.indicatorStyle.width=this.width+"px"),tthis.maxBoundaryY?"scale"==this.options.shrink?(this.height=o.max(this.indicatorHeight-3*(t-this.maxPosY),8),this.indicatorStyle.height=this.height+"px",t=this.maxPosY+this.indicatorHeight-this.height):t=this.maxBoundaryY:"scale"==this.options.shrink&&this.height!=this.indicatorHeight&&(this.height=this.indicatorHeight,this.indicatorStyle.height=this.height+"px")),this.x=e,this.y=t,this.scroller.options.useTransform?this.indicatorStyle[l.style.transform]="translate("+e+"px,"+t+"px)"+this.scroller.translateZ:(this.indicatorStyle.left=e+"px",this.indicatorStyle.top=t+"px")},_pos:function(e,t){e<0?e=0:e>this.maxPosX&&(e=this.maxPosX),t<0?t=0:t>this.maxPosY&&(t=this.maxPosY),e=this.options.listenX?o.round(e/this.sizeRatioX):this.scroller.x,t=this.options.listenY?o.round(t/this.sizeRatioY):this.scroller.y,this.scroller.scrollTo(e,t)},fade:function(e,t){if(!t||this.visible){clearTimeout(this.fadeTimeout),this.fadeTimeout=null;var n=e?250:500,i=e?0:300;e=e?"1":"0",this.wrapperStyle[l.style.transitionDuration]=n+"ms",this.fadeTimeout=setTimeout(function(e){this.wrapperStyle.opacity=e,this.visible=+e}.bind(this,e),i)}}},r.utils=l,"undefined"!=typeof e&&e.exports?e.exports=r:t.IScroll=r})(window,document,Math)}]); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login.css" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login.css" new file mode 100644 index 0000000000000000000000000000000000000000..d510704a1868dd0f727a36bb850801b107af18ab --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login.css" @@ -0,0 +1 @@ +.mlogin-loading-wrap{font-size:.27307rem;text-align:center;color:#fff;left:0;top:0;position:absolute;width:100%;height:100%;background-color:hsla(0,0%,100%,.4);z-index:5700}.mlogin-loading-wrap .c-loading-progress{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:150.796 150.796;-webkit-animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite;animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-text{text-anchor:middle;font:21px/1 Helvetica}.mlogin-loading-wrap .c-loading-curve .c-loading-progress{-webkit-animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite;animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-bg{width:90px;height:90px;background-color:#fff;border-radius:4px;text-align:center;font-size:0}.mlogin-loading-wrap .c-loading-bg:after{content:"";height:100%;width:0;overflow-y:hidden}.mlogin-loading-wrap .c-loading,.mlogin-loading-wrap .c-loading-bg:after{display:inline-block;vertical-align:middle}.mlogin-loading-wrap .c-loading-bg{margin-left:-45px;margin-top:-45px;left:50%;z-index:9999;top:43%;position:fixed}@-webkit-keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}.mg-mask,.mg-u-mask{position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;z-index:5300;background-color:rgba(0,0,0,.6);display:none}.mg-popup{position:fixed;z-index:5200;left:50%;top:50%;overflow:hidden;display:none;background-color:#fff;-webkit-box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);padding:.06144rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate(-50%,-50%)!important;transform:translate(-50%,-50%)!important;min-width:1.2288rem;min-height:.3072rem;line-height:1.5}.mg-dialog{font-size:.32rem;text-align:center;border-radius:6px;z-index:5500;left:50%!important}.mg-dialog .mg-dialog-title{font-size:18px;margin-top:.3rem;color:#222;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis}.mg-dialog .mg-dialog-body{margin:.3rem 0;padding:0 1em}.mg-dialog .mg-dialog-body.left{text-align:left}.mg-dialog .mg-dialog-foot{border-top:1px solid #ebebeb;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.mg-dialog .mg-dialog-foot:empty{border:none}.mg-dialog .mg-dialog-foot button{display:block;color:#1b81fb;font-family:Microsoft Yahei,Helvetica Neue,Helvetica,STHeiTi,sans-serif;font-size:17px;border:none;outline:none;background-color:transparent;-webkit-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:44px;line-height:44px}.mg-dialog .mg-dialog-foot button:nth-child(2){border-left:1px solid #ebebeb}.mg-dialog .mg-dialog-foot button:active{background-color:#eee}.mg-dialog.bottom{background:none;padding:0;-webkit-box-shadow:none;box-shadow:none}.mg-dialog.bottom .mg-dialog-body{padding:.3rem;margin:.3rem;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-body .tips{color:#585c64;font-size:.24rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .title{color:#222;font-size:.36rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .time{color:#98989f;font-size:.2rem;line-height:.9rem}.mg-dialog.bottom .mg-dialog-foot{margin:.3rem;border:none;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-foot button{color:#585c64;display:block;width:100%}.mg-dialog.supper_confirm_dialog button{display:block;width:100%}.mg-toast{clear:both;position:fixed;z-index:5800;left:-99999px;text-align:center;top:-99999px;background-color:rgba(0,0,0,.8);color:#fff;padding:10px 15px;border-radius:3px;font-size:16px;-webkit-box-sizing:border-content;box-sizing:border-content;width:50%}.login-reg-win{display:none}.c-relative{position:relative}.models-wrapper{width:100%;height:100%;position:absolute;overflow:hidden;z-index:5100}.models-wrapper input::-webkit-input-placeholder{color:#ccc}.models-wrapper,.models-wrapper button,.models-wrapper input,.models-wrapper textarea{font-family:Microsoft Yahei,Helvetica Neue,Helvetica,STHeiTi,sans-serif;font-size:.28rem;border:none;outline:none}.icon-register-close,.m-login-back-btn{display:block;width:48px;height:48px;position:absolute;left:0;top:0}.m-login-back-btn{background:url(../img/back.e8f1c37c.png) no-repeat 50%;background-size:50% auto}.icon-register-close{background:url(../img/close.6f8201f0.png) no-repeat 50%;background-size:40% auto}.models-login,.models-register{bottom:0;left:0;overflow-x:hidden;overflow-y:auto;position:absolute;right:0;top:0;width:100%;height:100%}.mg-dialog .m-login-captcha-text{height:22px;border:0;font-size:14px;outline:none;color:#222;margin-top:8px}.m-login-captcha-wrap{position:relative;text-align:left;margin-right:2px;height:38px;border:1px solid #ccc;margin-top:16px;margin-bottom:20px}.mlogin-captcha-freshen{position:absolute;right:0;top:0;height:38px;text-align:left;vertical-align:middle;width:105px;padding-left:10px}.mlogin-captcha-freshen .mlogin-btn-refresh{background:url(../img/mlogin-icon-refresh.05574d58.gif) no-repeat 0 0;width:16px;height:16px;position:absolute;right:5px;top:11px}.mg-dialog .m-captcha-error{display:none;clear:both;font-size:12px;color:#ec5042;height:28px;margin-top:-16px;margin-left:-14px;line-height:26px;text-align:left}.mg-dialog .m-captcha-error span{padding-left:14px}.mg-dialog-foot{clear:both}.models-login .captcha{position:absolute;right:0;top:0;width:115px;padding-left:10px;height:52px;border-left:1px solid #e7e7e7}.models-login .captcha .mlogin-refresh{background:url(../img/mlogin-icon-refresh.05574d58.gif) no-repeat 0 0;width:16px;height:16px;position:absolute;right:10px;top:18px}.models-login .captcha img{vertical-align:middle;width:80px}.m-login-captcha-img{vertical-align:top;width:80px;height:32px;margin-top:3px}.models-register{background:#f3f4f5}.models-login .hide,.models-register .hide{display:none}.models-login .models-dialog,.models-register .models-dialog{margin:0}.models-login .models-header,.models-register .models-header{height:44px;background:#fff;line-height:44px;margin-bottom:15px;position:relative;border-bottom:1px solid #ddd}.models-login .models-header h2,.models-register .models-header h2{font-size:18px;font-weight:300;text-align:center}.models-login .models-header .close,.models-login .models-logo .close,.models-register .models-header .close{color:#222;border-radius:12px;line-height:20px;display:block;text-align:center;height:20px;width:20px;font-size:18px;padding:1px;top:10px;right:10px;position:absolute}.mlogin-close-in{display:inline-block;width:22px;height:1px;background:#000;font-size:0;line-height:0;vertical-align:middle;-webkit-transform:rotate(45deg)}.mlogin-close-in:after{content:".";display:block;width:22px;height:1px;background:#000;-webkit-transform:rotate(-90deg)}.models-login .models-body,.models-register .models-body{max-height:none;padding-bottom:0;padding-top:0}.models-login .news-msg,.models-register .news-msg{color:#de3d96;font-size:.28rem;line-height:.48rem;margin-bottom:.1rem;margin-top:.1rem}.models-login .news-msg .iconfont-punctuation,.models-register .news-msg .iconfont-punctuation{color:#de3d96;font-size:.12rem}.mlogin-err-tips{color:#fff!important;background:#ec5648;border-radius:10px;text-align:center;height:12px;width:12px;font-size:14px;padding:1px;top:8px;display:block;left:15px;position:absolute}.mlogin-err-tips-in{display:inline-block;width:10px;height:1px;position:absolute;top:7px;left:2px;background:#fff;font-size:0;line-height:0;vertical-align:middle;-webkit-transform:rotate(45deg)}.mlogin-err-tips-in:after{content:".";display:block;top:7px;left:2px;height:1px;background:#fff;-webkit-transform:rotate(-90deg)}.models-login .mlogin-error-msg,.models-register .mlogin-error-msg{top:44px;color:#e32818;font-size:14px;line-height:32px;height:30px;position:absolute;background:#fffada;width:100%;padding-left:38px}.models-login .m-login-error{top:140px;width:auto;background:none;color:#c93c29;font-size:12px}.models-login .m-login-error>span{color:#c93c29}.models-login .mlogin-error-msg .iconfont-roundclosefill,.models-register .mlogin-error-msg .iconfont-roundclosefill{color:#fff;background:#ee948b;border-radius:10px;font-style:normal;line-height:16px;text-align:center;height:16px;width:16px;font-size:14px;padding:1px;top:4px;left:10px;display:block;position:absolute}.c-binding-user-info{position:absolute;top:-32px;left:15px;right:15px;line-height:32px;height:32px;font-size:14px;color:#de3d96;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.c-binding-user-info__text{color:#000}#J-register-win .models-login{background:#f3f4f5!important}.models-login .mlogin-error-msg .iconfont-roundclosefill:before{content:"\2716"}.models-login .ui-form,.models-register .ui-form{background-color:transparent;margin-bottom:0}.models-login .ui-form-item,.models-register .ui-form-item{height:52px;background:#fff;position:relative;line-height:52px;padding-left:15px;padding-right:0;clear:both;border-bottom:1px solid #e7e7e7}.ui-form-item--flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ui-form-item--flex input{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.c-label-min-width{min-width:50px}.models-login .ui-form-item-top,.models-register .ui-form-item-top{padding:13px 0 8px 15px;color:#585c64;font-size:14px}.models-login-bg-write{background:#fff}.models-login .ui-form-item label:not(.ui-switch):not(.ui-checkbox):not(.ui-radio),.models-register .ui-form-item label:not(.ui-switch):not(.ui-checkbox):not(.ui-radio){float:left;font-size:16px;margin-right:15px;height:52px;line-height:52px;padding:0;display:block;position:relative;width:auto}.models-login .ui-form-item input:not([type=checkbox]):not([type=radio]),.models-register .ui-form-item input:not([type=checkbox]):not([type=radio]){float:left;font-size:16px;height:20px;background-color:#fff!important;border:none;padding:16px 0 15px;color:#222}.models-login .ui-form-item input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fff inset}.models-login .ui-form-item .icon-show-password{width:50px;height:52px;background:url(../img/hidepassword.fe24f3c7.png) no-repeat 50%;background-size:50% auto;position:absolute;top:0;right:0}.models-login .ui-form-item .mlogin-ipt-show{background:url(../img/showpassword.441a0c3e.png) no-repeat 50%;background-size:50% auto}.models-login .icon-login-logo{width:125px;height:50px;background:url(../img/logo.ac5608f4.png) no-repeat 0 0;background-size:100% auto}.models-login .ui-form-item .m-mlogin-clear,.models-register .ui-form-item .m-mlogin-clear{display:none;height:50px;width:50px;position:absolute;right:0;top:0}.models-login .ui-form-item .clear_wrap,.models-register .ui-form-item .clear_wrap{color:#fff!important;background:#e4e3e6;border-radius:10px;line-height:16px;text-align:center;height:18px;width:18px;font-size:14px;padding:1px;top:18px;right:15px;position:absolute}.models-login .ui-form-item .show-btn-position,.models-register .ui-form-item .show-btn-position{right:120px}.models-login .ui-form-item .show-password-position,.models-register .ui-form-item .show-password-position{right:35px}.models-login .ui-form-item .clear,.models-register .ui-form-item .clear{display:inline-block;width:14px;height:2px;background:#fff;font-size:0;line-height:0;vertical-align:middle;-webkit-transform:rotate(45deg)}.models-login .ui-form-item .clear:after,.models-register .ui-form-item .clear:after{content:".";display:block;width:14px;height:2px;background:#fff;-webkit-transform:rotate(-90deg)}.models-login .models-logo{background:#f6f6f6 url(../img/login_bg.3a93a8bf.jpg) no-repeat 0 0;height:170px;display:-webkit-flex;display:-ms-flexbox;display:flex;display:-webkit-box;text-align:center;display:-moz-box;-webkit-box-pack:center;-moz-box-pack:center;-webkit-box-align:center;-moz-box-align:center}.models-login .ui-form-item .ui-validate,.models-register .ui-form-item .ui-validate{position:absolute;right:0;width:148px;border-left:1px solid #e7e7e7;font-size:16px;color:#4a90e2;text-align:center}.models-login .ui-form-item .ui-font-grey{color:#98989f!important}.models-login .ui-form-item-r button,.models-register .ui-form-item-r button{background-color:transparent;font-size:16px;border:0 none;border-left:1px solid #e7e7e7;outline:0 none;padding:0;position:absolute;right:0;top:0;width:80px}.models-login .ui-form-item-r,.models-register .ui-form-item-r{padding-left:15px;margin-left:0}.models-login .ui-form-item-r button,.models-register .ui-form-item-r button{color:#4a90e2;height:52px;line-height:52px;width:120px;font-size:14px}.models-login .ui-form-item-r button:before,.models-register .ui-form-item-r button:before{content:"";height:.8rem;left:0;overflow:hidden;position:absolute;top:.1rem;-webkit-transform:scaleX(.5);transform:scaleX(.5);width:0}.models-login .ui-form-item-r button.disabled,.models-register .ui-form-item-r button.disabled{color:#98989f}.models-login .ui-form-item-r input:not([type=checkbox]):not([type=radio]),.models-register .ui-form-item-r input:not([type=checkbox]):not([type=radio]){padding-right:.1rem}.models-login .submit-box,.models-register .submit-box{padding:30px 15px 0}.mlogin-footer-tips{padding:12px 20px 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;letter-spacing:.02rem;font-size:12px;color:#98989f;position:relative}.mlogin-footer-tips a{color:#157efa}.models-login .submit,.models-register .submit{background:#de3d96;text-decoration:none!important;text-align:center;border-radius:22px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;color:#fff;display:block;height:44px;line-height:44px;pointer-events:auto;width:100%}.models-register .m-mlogin-toggle{display:inline-block;border:1px solid #e4007f;color:#e4007f!important;border-radius:3px;height:25px;overflow:hidden;line-height:27px;width:52px;margin-top:-2px;font-size:12px;text-align:center;margin-left:5px;vertical-align:middle}.models-login .submitFast,.models-register .submitFast{font-size:16px;background:#de3d96;text-decoration:none!important;text-align:center;border-radius:22px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;display:block;height:44px;line-height:44px;pointer-events:auto;width:100%}.models-login .submit.disabled,.models-login .submitFast.disabled,.models-register .submit.disabled,.models-register .submitFast.disabled{color:#fff;background-color:#caccd2}.models-login .models-footer,.models-register .models-footer{border-top:medium none;padding-bottom:0;text-align:left}.models-login .models-footer fieldset,.models-register .models-footer fieldset{position:relative;height:120px;text-align:center;clear:both;color:#dbdbdb;border-top:1px solid #dbdbdb;border-right:0;font-size:12px;border-left:0;border-bottom:0}.models-login .models-footer fieldset legend,.models-register .models-footer fieldset legend{width:32px}.models-login .models-footer fieldset .login-pop-mobile{height:36px;line-height:36px;padding:0 14px;border-radius:18px;display:inline-block;border:1px solid #e4007f;color:#e4007f;text-decoration:none;margin:13px auto;font-size:14px}.models-login .frogot-pwd,.models-register .frogot-pwd{float:right;text-decoration:none;padding:15px}.models-register .had-account{color:#999;float:right;padding:15px 14px;font-size:16px}.models-login .frogot-pwd,.models-login .had-account,.models-login .without-account,.models-register .frogot-pwd,.models-register .without-account{color:#999;font-size:14px;height:22px;line-height:22px;overflow:hidden;clear:both}.models-login .frogot-pwd,.models-login .had-account a,.models-login .without-account a,.models-register .frogot-pwd a,.models-register .had-account a,.models-register .without-account a{text-decoration:none}.models-login .frogot-pwd a,.models-login .had-account a a,.models-login .without-account a a,.models-register .frogot-pwd a a,.models-register .had-account a a,.models-register .without-account a a{margin:0 12px}.models-login .frogot-pwd,.models-register .frogot-pwd{color:#0079ff}.models-login .without-account,.models-register .without-account{margin-top:10px;text-align:center;font-size:16px}.without-account{color:#ccc}.without-account-tips{display:none;color:#222}.models-login .had-account a,.models-login .without-account a,.models-register .had-account a,.models-register .without-account a{color:#222}.models-login .auth-code,.models-register .auth-code{cursor:pointer;height:1rem;line-height:1rem;position:absolute;right:0;top:0}.models-login .auth-code img,.models-register .auth-code img{float:left;height:.64rem;margin-top:.18rem;vertical-align:middle;width:65px}.models-login .auth-code .iconfont-refresh,.models-register .auth-code .iconfont-refresh{color:#585c65;float:left;font-size:.4rem;height:.8rem;line-height:.8rem;margin-top:.1rem;padding:0 .2rem}.models-login .auth-code .iconfont-refresh:active,.models-register .auth-code .iconfont-refresh:active{color:#ccc}.dialog-content-tips{font-size:18px}.m-user-choose{top:280px!important;padding:0;border-radius:5px!important;font-family:PingFang-SC-Regular,Helvetica Neue,Helvetica,microsoft yahei,sans-serif}.m-user-choose .mg-dialog-title{display:none}.m-user-choose .mg-dialog-foot{border-top:none!important}.m-user-choose .mg-dialog-foot button{height:0!important}.m-user-choose .icon-dialog-close{position:absolute;right:0;top:0;width:40px;height:40px;background:url(../img/password-icons.5784f415.png) no-repeat;background-size:100%}body .m-user-choose .mg-dialog-body{margin:38px 0;padding:0 0 0 26px}.mlogin-login .user-choose-inner{list-style-type:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;overflow:auto}.mlogin-login .user-choose-inner li:last-child{padding-right:26px}.mlogin-login .user-choose-list{position:relative;height:119px;margin-top:32px}.mlogin-login .u-user-item{-webkit-box-flex:1 0 auto;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin-right:22px;text-align:center}.mlogin-login .u-user-item .user-item-img{width:68px;height:68px;padding:.1rem;border-radius:50%;-webkit-box-shadow:0 0 8px #f5f5f5;box-shadow:0 0 8px #f5f5f5}.mlogin-login .u-user-item .user-item-name{margin-top:10px;margin:10px auto 54px;width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:#585c64}.mlogin-login .user-choose-title{margin-bottom:14px;padding-right:26px;font-size:22px;color:#222}.mlogin-login .user-choose-tips{padding-right:26px;font-size:16px;color:#585c64;text-align:left;text-align:justify;text-justify:inter-ideograph}.mlogin-login .z-user-item-two .u-user-item{margin-right:0}@media screen and (max-width:320px){.m-user-choose{top:200px!important}}.ui-form .ui-form-item.f-password-width-fix-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box}.ui-form .ui-form-item.f-password-width-fix-wrapper label[for=password]{width:60px;float:left}.ui-form .ui-form-item.f-password-width-fix-wrapper .f-password-width-fix{margin-left:80px}.ui-form .ui-form-item.f-password-width-fix-wrapper .f-password-width-fix input[name=password]{float:none;width:100%}.mg-dialog.secure-check{padding:0;border-radius:6px}.mg-dialog.secure-check .mg-dialog-title{font-size:18px;color:#000;letter-spacing:0;line-height:18px;margin:18px 0;font-weight:400}.mg-dialog.secure-check .mg-dialog-title .question-img{width:271px;height:20px}.mg-dialog.secure-check .mg-dialog-title .question-img,.mg-dialog.secure-check .mg-dialog-title .secure-doc-title{display:none;margin:0 auto}.mg-dialog.secure-check .mg-dialog-title .m-sms-captcha-title.doc .secure-doc-title,.mg-dialog.secure-check .mg-dialog-title .secure-check-title.doc .secure-doc-title{display:block;line-height:20px}.mg-dialog.secure-check .mg-dialog-title .m-sms-captcha-title.img .question-img,.mg-dialog.secure-check .mg-dialog-title .secure-check-title.img .question-img{display:block}.mg-dialog.secure-check .mg-dialog-body{position:relative;margin:0;padding:0 15.5px 35px}.mg-dialog.secure-check .mg-dialog-body .input-wrapper{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.mg-dialog.secure-check .mg-dialog-body .input-wrapper:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid #c7c7cf;width:200%;height:200%;-webkit-transform:scale(.5);-webkit-transform-origin:0 0;pointer-events:none;-webkit-box-sizing:border-box;box-sizing:border-box}.mg-dialog.secure-check .mg-dialog-body .secure-code{padding:2px 0;position:relative;margin:0 2px 0 14.5px;-webkit-box-sizing:border-box;box-sizing:border-box}.mg-dialog.secure-check .mg-dialog-body .secure-code input{width:100%;padding:0;font-size:16px;color:#222;line-height:36px;border:none;outline:none}.mg-dialog.secure-check .mg-dialog-body .secure-code input::-webkit-input-placeholder{color:#ccc;font-size:16px}.mg-dialog.secure-check .mg-dialog-body .secure-code input:-moz-placeholder,.mg-dialog.secure-check .mg-dialog-body .secure-code input::-moz-placeholder{color:#ccc;font-size:16px}.mg-dialog.secure-check .mg-dialog-body .secure-code input:-ms-input-placeholder{color:#ccc;font-size:16px}.mg-dialog.secure-check .mg-dialog-body .secure-code label{display:block;position:absolute;left:0;right:0;bottom:0;top:0}.mg-dialog.secure-check .mg-dialog-body .secure-img{padding:4px 0}.mg-dialog.secure-check .mg-dialog-body .secure-img img{display:block;width:80px;height:32px}.mg-dialog.secure-check .mg-dialog-body .secure-refresh{position:relative;width:41px;height:40px}.mg-dialog.secure-check .mg-dialog-body .secure-refresh .u-icon-refresh{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:18px;height:18px;background-image:url(../img/icon-refresh.1440dde8.png);background-repeat:no-repeat;background-size:100%}.mg-dialog.secure-check .mg-dialog-body .secure-tips{position:absolute;bottom:11.5px;left:15.5px;font-size:12px;color:#ec5042;letter-spacing:0;line-height:12px}.mg-dialog.secure-check .mg-dialog-body .secure-tips span{width:271px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:block;text-align:left}.mg-dialog.secure-check .mg-dialog-foot{margin:0}.vipsfin-login .models-login .icon-login-logo{width:125px;height:50px;background:url(../img/vipsfin-logo.02af540f.png) no-repeat 0 0;background-size:100% auto}.mlogin-rectangle{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:block;width:21px;height:22px;margin-right:10px;background-image:url(../img/rectangle.5d636f59.png);background-repeat:no-repeat;background-size:100%}.mlogin-icon-rectangle-normal{background-position:0 0}.mlogin-icon-rectangle-selected{background-position:0 -22px}.mg-mask,.mg-u-mask{position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;z-index:5300;background-color:rgba(0,0,0,.6);display:none}.mlogin-loading-wrap{font-size:.27307rem;text-align:center;color:#fff;left:0;top:0;position:absolute;width:100%;height:100%;background-color:hsla(0,0%,100%,.4);z-index:5700}.mlogin-loading-wrap .c-loading-progress{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:150.796 150.796;-webkit-animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite;animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-text{text-anchor:middle;font:21px/1 Helvetica}.mlogin-loading-wrap .c-loading-curve .c-loading-progress{-webkit-animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite;animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-bg{width:90px;height:90px;background-color:#fff;border-radius:4px;text-align:center;font-size:0}.mlogin-loading-wrap .c-loading-bg:after{content:"";height:100%;width:0;overflow-y:hidden}.mlogin-loading-wrap .c-loading,.mlogin-loading-wrap .c-loading-bg:after{display:inline-block;vertical-align:middle}.mlogin-loading-wrap .c-loading-bg{margin-left:-45px;margin-top:-45px;left:50%;z-index:9999;top:43%;position:fixed}@-webkit-keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}.mg-toast{clear:both;position:fixed;z-index:5800;left:-99999px;text-align:center;top:-99999px;background-color:rgba(0,0,0,.8);color:#fff;padding:10px 15px;border-radius:3px;font-size:16px;-webkit-box-sizing:border-content;box-sizing:border-content;width:50%}div.win-captcha-container{background:#f3f4f5}a.icon-captcha-back{background-size:100%;background-image:url(../img/password-icons.5784f415.png);background-repeat:no-repeat;cursor:pointer;width:1rem;height:1rem;background-position:0 -3rem;left:0}.m-header{position:relative;background-color:#fff;border-bottom:1px solid #ddd;text-align:center}.header-back{position:absolute;left:.29rem;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.header-title{line-height:44px;overflow:hidden;white-space:nowrap;color:#222}.header-title,[data-dpr="1"] .header-title{font-size:18px}@media screen and (min-width:540px){[data-dpr="1"] .header-title{font-size:20px}}[data-dpr="2"] .header-title{font-size:36px}@media screen and (min-width:1080px){[data-dpr="2"] .header-title{font-size:40px}}[data-dpr="3"] .header-title{font-size:54px}@media screen and (min-width:1620px){[data-dpr="3"] .header-title{font-size:60px}}@media screen and (min-width:540px){[data-dpr="1"] .header-title{line-height:49.72px}}@media screen and (min-width:1080px){[data-dpr="2"] .header-title{line-height:49.72px}}@media screen and (min-width:1620px){[data-dpr="3"] .header-title{line-height:49.72px}}div.login-captcha-dialog{padding:0}div.login-captcha-dialog .mg-dialog-title{margin-top:24px;line-height:18px}div.login-captcha-dialog .mg-dialog-body{margin:22px 21px 20px;padding:0;text-align:left;font-size:14px;color:#222;line-height:20px}div.login-captcha-dialog .dialog-captcha-tips{white-space:pre;line-height:20px;margin-top:14px}div.login-captcha-dialog .dialog-captcha-tips a{font-weight:550;font-size:14px;color:#0076ff;text-decoration:underline}div.login-captcha-dialog .mg-dialog-foot button{color:#6b6f77;font-size:16px;line-height:44px}div.login-captcha-dialog .mg-dialog-foot button:nth-child(2){background:#f03867;color:#fff}.mg-popup{position:fixed;z-index:5200;left:50%;top:50%;overflow:hidden;display:none;background-color:#fff;-webkit-box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);padding:.06144rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate(-50%,-50%)!important;transform:translate(-50%,-50%)!important;min-width:1.2288rem;min-height:.3072rem;line-height:1.5}.mg-dialog{font-size:.32rem;text-align:center;border-radius:6px;z-index:5500;left:50%!important}.mg-dialog .mg-dialog-title{font-size:18px;margin-top:.3rem;color:#222;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis}.mg-dialog .mg-dialog-body{margin:.3rem 0;padding:0 1em}.mg-dialog .mg-dialog-body.left{text-align:left}.mg-dialog .mg-dialog-foot{border-top:1px solid #ebebeb;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.mg-dialog .mg-dialog-foot:empty{border:none}.mg-dialog .mg-dialog-foot button{display:block;color:#1b81fb;font-family:Microsoft Yahei,Helvetica Neue,Helvetica,STHeiTi,sans-serif;font-size:17px;border:none;outline:none;background-color:transparent;-webkit-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:44px;line-height:44px}.mg-dialog .mg-dialog-foot button:nth-child(2){border-left:1px solid #ebebeb}.mg-dialog .mg-dialog-foot button:active{background-color:#eee}.mg-dialog.bottom{background:none;padding:0;-webkit-box-shadow:none;box-shadow:none}.mg-dialog.bottom .mg-dialog-body{padding:.3rem;margin:.3rem;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-body .tips{color:#585c64;font-size:.24rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .title{color:#222;font-size:.36rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .time{color:#98989f;font-size:.2rem;line-height:.9rem}.mg-dialog.bottom .mg-dialog-foot{margin:.3rem;border:none;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-foot button{color:#585c64;display:block;width:100%}.mg-dialog.supper_confirm_dialog button{display:block;width:100%} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/mars_wap.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/mars_wap.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..f4e529362d7aef80906fe902ecf6e788e7e05432 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/mars_wap.js.\344\270\213\350\275\275" @@ -0,0 +1,3 @@ +/*! mars 2022-02-17 10:02:02 */ +!function(){function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g-1?e(c):c}},{"./":2,"get-intrinsic":6}],2:[function(a,b,c){"use strict";var d=a("function-bind"),e=a("get-intrinsic"),f=e("%Function.prototype.apply%"),g=e("%Function.prototype.call%"),h=e("%Reflect.apply%",!0)||d.call(g,f),i=e("%Object.defineProperty%",!0);if(i)try{i({},"a",{value:1})}catch(a){i=null}b.exports=function(){return h(d,g,arguments)};var j=function(){return h(d,f,arguments)};i?i(b.exports,"apply",{value:j}):b.exports.apply=j},{"function-bind":5,"get-intrinsic":6}],3:[function(a,b,c){"use strict";var d=a("object-keys"),e="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),f=Object.prototype.toString,g=Array.prototype.concat,h=Object.defineProperty,i=function(a){return"function"==typeof a&&"[object Function]"===f.call(a)},j=function(){var a={};try{h(a,"x",{enumerable:!1,value:a});for(var b in a)return!1;return a.x===a}catch(a){return!1}},k=h&&j(),l=function(a,b,c,d){(!(b in a)||i(d)&&d())&&(k?h(a,b,{configurable:!0,enumerable:!1,value:c,writable:!0}):a[b]=c)},m=function(a,b){var c=arguments.length>2?arguments[2]:{},f=d(b);e&&(f=g.call(f,Object.getOwnPropertySymbols(b)));for(var h=0;h1&&"boolean"!=typeof b)throw new g('"allowMissing" argument must be a boolean');var c=B(a),f=c.length>0?c[0]:"",h=C("%"+f+"%",b),j=h.name,k=h.value,l=!1,m=h.alias;m&&(f=m[0],w(c,v([0,1],m)));for(var n=1,o=!0;n=c.length){var t=i(k,p);o=!!t,k=o&&"get"in t&&!("originalValue"in t.get)?t.get:k[p]}else o=u(k,p),k=k[p];o&&!l&&(r[j]=k)}}return k}},{"function-bind":5,has:9,"has-symbols":7}],7:[function(a,b,c){(function(c){"use strict";var d=c.Symbol,e=a("./shams");b.exports=function(){return"function"==typeof d&&("function"==typeof Symbol&&("symbol"==typeof d("foo")&&("symbol"==typeof Symbol("bar")&&e())))}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./shams":8}],8:[function(a,b,c){"use strict";b.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var a={},b=Symbol("test"),c=Object(b);if("string"==typeof b)return!1;if("[object Symbol]"!==Object.prototype.toString.call(b))return!1;if("[object Symbol]"!==Object.prototype.toString.call(c))return!1;var d=42;a[b]=d;for(b in a)return!1;if("function"==typeof Object.keys&&0!==Object.keys(a).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(a).length)return!1;var e=Object.getOwnPropertySymbols(a);if(1!==e.length||e[0]!==b)return!1;if(!Object.prototype.propertyIsEnumerable.call(a,b))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var f=Object.getOwnPropertyDescriptor(a,b);if(f.value!==d||f.enumerable!==!0)return!1}return!0}},{}],9:[function(a,b,c){"use strict";var d=a("function-bind");b.exports=d.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":5}],10:[function(a,b,c){"use strict";var d;if(!Object.keys){var e=Object.prototype.hasOwnProperty,f=Object.prototype.toString,g=a("./isArguments"),h=Object.prototype.propertyIsEnumerable,i=!h.call({toString:null},"toString"),j=h.call(function(){},"prototype"),k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],l=function(a){var b=a.constructor;return b&&b.prototype===a},m={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},n=function(){if("undefined"==typeof window)return!1;for(var a in window)try{if(!m["$"+a]&&e.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{l(window[a])}catch(a){return!0}}catch(a){return!0}return!1}(),o=function(a){if("undefined"==typeof window||!n)return l(a);try{return l(a)}catch(a){return!1}};d=function(a){var b=null!==a&&"object"==typeof a,c="[object Function]"===f.call(a),d=g(a),h=b&&"[object String]"===f.call(a),l=[];if(!b&&!c&&!d)throw new TypeError("Object.keys called on a non-object");var m=j&&c;if(h&&a.length>0&&!e.call(a,0))for(var n=0;n0)for(var p=0;p=0&&"[object Function]"===d.call(a.callee)),c}},{}],13:[function(a,b,c){"use strict";var d=a("object-keys"),e=function(a){return"undefined"!=typeof a&&null!==a},f=a("has-symbols/shams")(),g=a("call-bind/callBound"),h=Object,i=g("Array.prototype.push"),j=g("Object.prototype.propertyIsEnumerable"),k=f?Object.getOwnPropertySymbols:null;b.exports=function(a,b){if(!e(a))throw new TypeError("target must be an object");var c,g,l,m,n,o,p,q=h(a);for(c=1;ck?p:l}}}else g[e]={n:1,t:k,m:k,f:l}}b.entriesTotal=f.length,b.initiatorType=Mar.stringify(g)}return b},f=function(a,b){Mar.Request("/a?ps_nav="+a.navigation+"&ps_ule="+a.unloadEvent+"&ps_rd="+a.redirect+"&ps_dlu="+a.domainLookup+"&ps_con="+a.connect+"&ps_req="+a.request+"&ps_resp="+a.response+"&ps_dl="+a.domLoading+"&ps_di="+a.domInteractive+"&ps_dcl="+a.domContentLoaded+"&ps_dc="+a.domComplete+"&ps_le="+a.loadEvent+"&ps_ft="+a.fetch+"&ps_ty="+a.type+"&ps_ttfb="+a.timeTofirstByte+"&ps_ac="+a.appcache+"&ps_fp="+a.fp+"&ps_fcp="+a.fcp+"&ps_lcp="+a.lcp+"&ps_fmp=0&entry="+a.entriesTotal+"&enType="+a.initiatorType+"&isInit="+b||0)}},{}],21:[function(a,b,c){Mar.Random={guid:function(){for(var a=0,b=[];a<8;)b.push((65536*(1+Math.random())|0).toString(16).substring(1)),a++;return b.join("").toUpperCase()},guid2:function(){function a(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},guid3:function(){function a(a,c,d){var e=b(a,16),f=new Array,g="",h=0;for(h=0;h=0?d=setTimeout(j,b-k):(d=null,c||(h=a.apply(f,e),d||(f=e=null)))};return function(){f=this,e=arguments,g=i();var k=c&&!d;return d||(d=setTimeout(j,b)),k&&(h=a.apply(f,e),f=e=null),h}},getQueryStringByName:function(a,b){var c=b.match(new RegExp("[?&]"+a+"=([^&^#]+)","i"));return null==c||c.length<1?"":c[1]},getMetaByName:function(a){var b=document.getElementsByTagName("meta");for(i in b)if("undefined"!=typeof b[i].name&&b[i].name.toLowerCase()==a)return b[i].content;return null},isDetailPage:function(a){var b=!1;return!a||a.indexOf("shop.vipshop.com/detail")===-1&&a.indexOf("www.vip.com/detail")===-1&&a.indexOf("detail.vipglobal.hk")===-1||(b=!0),b},urlEncodedFormString:function(a){var b="";for(var c in a)Object.hasOwnProperty.call(a,c)&&(b=b+"&"+c+"="+a[c]);return b.replace(/^&/,"")},urlEncodedFormStringWithEncode:function(a){var b="";for(var c in a)Object.hasOwnProperty.call(a,c)&&(b=b+"&"+c+"="+encodeURIComponent(a[c]));return b.replace(/^&/,"")}}},{}],24:[function(a,b,c){!function(){Mar.PageIdIndex=0,Mar.PageId=Mar.PageId?Mar.PageId+"_"+ ++Mar.PageIdIndex:(new Date).getTime()+"_"+Mar.Random.guid3(),Mar._MyCid=null,Mar.Biz=function(){var a=Mar.Cookie,b=a.getAll,c=a.set,d=a.del,e=0,f=0,g=b(),h=g.mars_cid||g.cookie_id,i=g.mars_pid||g.page_id,j=g.mars_sid||Mar.Random.rand(),k=g.visit_id||Mar.Random.guid(),l=window.mars_var?Mar.stringify(window.mars_var):"-",m=g["WAP[p_wh]"],n=g["WAP[auth]"]||g.login_username,o=g["WAP[revision]"],p=g["WAP[p_wh]"],q=g.warehouse,r=g.WAP_ID,s=g["WAP[from]"],t=g.cps_u,u=g.m_vipruid;n&&(e=1),(!h||32!==(h+"").length&&46!==(h+"").length)&&(null!=Mar._MyCid?h=Mar._MyCid:(h=Mar.Util.encryptCid(Mar.Util.pad((new Date).getTime(),13)+"_"+Mar.Random.rand()),f=1,Mar._MyCid=h)),i=i||0,i++,d("cookie_id"),d("page_id"),c("mars_pid",i,732);var v=h.split("_")[0];return(new Date).getTime()+632448e5-v>0&&c("mars_cid",h,732),c("mars_sid",j,0),c("visit_id",k,.5/24),{cid:h,pid:i,sid:j,vid:k,wh:m,mvar:l,wapln:n,wapvs:o,wappwh:p,wapwh:q,wapid:r,wapfrom:s,cpsu:t,ruid:u,newbie:f,isLog:e,pageId:window.__mars_extend_object&&window.__mars_extend_object.tabPageId||Mar.PageId}},Mar.Biz._setupExtendObjectIfNeed=function(){window.__mars_extend_object||(window.__mars_extend_object={})},Mar.Biz._updateTabPageId=function(a){Mar.Biz._setupExtendObjectIfNeed(),window.__mars_extend_object.tabPageId=a}}()},{}],25:[function(a,b,c){!function(){a("object.assign").getPolyfill();Mar.Exposure=function(){var a,b=this,c="",d=encodeURIComponent(document.title),e=Mar.Util.getQueryStringByName("extra_banner",location.href),f=0,g=0,h=!1,i=0,j={},k=[],l={},m=[],n={},o=[],p=0,q=0,r=0;e=""==e?0:e,this.Exposure._request=function(a,b){var h="mst"==c||"h5"==c?"special_slide_expose":"wap_brand_expose",i={page:d,wap_id:f.toString(),special_id:g.toString(),banner_id:e.toString(),item_cnt:k.length.toString(),item_list:k.join(","),marsDataLen:m.length.toString(),mars_exposure_data:m,browse_length:"request"==a?"0":p.toString(),browse_time:"request"==a?"0":r.toString(),expose_time:Mar.Util.getTimeSpan().toString(),source:a};Mar.Seed._requestUsePathWithMethod("/bp","link","scroll",h,JSON.stringify(i),"post"),j={},k=[],l={},m=[],p=0,r=0},this.Exposure.afterGetData=function(a,b){(k.length>10||m.length>10)&&this._request(a,b),o.length>5&&(Mar.Seed.selfDefineRequest(o),o=[],n={})},this.Exposure.startTimer=function(){var b=this;a=setInterval(function(){(k.length>0||m.length>0)&&b._request("setInterval","0_0"),o.length>0&&(Mar.Seed.selfDefineRequest(o),o=[],n={})},2e3)},this.Exposure.endTimer=function(){clearInterval(a)},this.Exposure.getItemByArrModule=function(a,b){var d=!1,e={key:"",val:""},f=[],g=[];if(c=""==c?a[0]:c,""==c)return e;switch(c){case"wap":switch(a[1]){case"brands":g.push(0),g.push(a[6]?a[6]:""),d=!0;break;case"products":g.push(1),g.push(a[2]?a[2]:""),d=!0;break;case"specials":g.push(3),g.push(a[6]?a[6]:""),d=!0;break;case"operates":g.push(4),g.push(a[6]?a[6]:""),d=!0;break;case"adverts":g.push(5),g.push(a[6]?a[6]:""),d=!0}d&&g.push(b+1),g.push(a[7]?a[7].replace(new RegExp("_","gm"),"."):"");break;case"mst":case"h5":switch(a[1]){case"brands":g.push(0),g.push(a[2]?a[2]:""),a[5]&&f.push(a[5]),d=!0;break;case"products": +g.push(1),g.push(a[5]?a[5]:""),a[6]&&f.push(a[6]),d=!0;break;case"specials":g.push(3),g.push(a[2]?a[2]:""),d=!0;break;case"operates":g.push(4),g.push(a[2]?a[2]:""),a[4]&&f.push(a[4]),d=!0;break;case"adverts":g.push(5),g.push(a[2]?a[2]:""),d=!0;break;case"brandSn":g.push(6),g.push(a[2]?a[2]:""),d=!0;break;case"articles":g.push(7),g.push(a[2]?a[2]:""),d=!0;break;case"dOperates":g.push(8),g.push(a[2]?a[2]:""),d=!0;break;case"topic_in":g.push(9),g.push(a[2]?a[2]:""),d=!0;break;default:if(a[1].split("_")[1]&&(g.push(a[1].split("_")[1]),g.push(a[2]?a[2]:""),d=!0,a.length>=6))for(var h=5;h0&&(g=g.concat(f))}return d&&(e.key=g[1]+"&"+g[2],e.val=g.join("_")),e},this.Exposure.getDataList=function(a,b){var c=this;$("[mars_exposure_sead],[data-mars_exposure_sead]").each(function(d){var e,f=$(this).offset().top+$(this).height()/2,g=$(this);if(f>a&&f<=b){if(e=g.attr("mars_exposure_module")?g.attr("mars_exposure_module").split("|"):g.attr("data-mars_exposure_module")&&g.attr("data-mars_exposure_module").split("|"),!e)return;if("adverts"!=e[1]||"adverts"==e[1]&&g.hasClass("active")){var h=c.getItemByArrModule(e,d);""!=h.key&&void 0==j[h.key]&&(j[h.key]=h.val,k.push(h.val))}}}),$("[mars_exposure_data]").each(function(c){var d,e=$(this).offset().top+$(this).height()/2,f=$(this),g=f.attr("mars_exposure_data");if(e>a&&e<=b){if(d=g?JSON.parse(g):"",!d)return;void 0==l[g]&&(l[g]=1,m.push(d))}}),$("[mars_exposure_imptrackers]").each(function(c){var d,e=$(this).offset().top+$(this).height()/2,f=$(this),g=f.attr("mars_exposure_imptrackers");if(e>a&&e<=b){if(d=g?JSON.parse(g):"",!d)return;void 0==n[g]&&(n[g]=1,o=o.concat(d))}})},this.Exposure.requestAnimFrame=function(a){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a,b){window.setTimeout(a,1e3/60)}}().bind(window),this.Exposure.chunkByFrame=function(a,b,c){var d=this,e=function(b,c){var f=b+1;bc&&e<=d){var h=e>c?e:c,i=e+b.height()>d?d:e+b.height();j+=1;var k=function(){g.getDataList(h,i),j-=1,j<=0&&f()};window.requestIdleCallback?requestIdleCallback(k):g.chunkByFrame(k,j,10)}}):(g.getDataList(c,d),f())}},this.Exposure.request=function(b){function c(a,b){var c=d.getItemByArrModule(a,b);""!=c.key&&void 0==j[c.key]&&(j[c.key]=c.val,k.push(c.val))}var d=this;if(!h){if(h=!0,a&&d.endTimer(),i=Mar.Util.getTimeSpanMillisecond(),"string"==typeof b)c(b.split("|"),0);else for(var e=0,f=b.length;e100?a=this.winHeight:(a=this.ExposureDom.height(),this.winHeight=a),a},this.Exposure.isFirst=!0,this.Exposure.opt={hasExposureDom:!1},this.Exposure.init=function(){var a=this;if(this.winHeight=null,"MarConfig"in window&&window.MarConfig&&window.MarConfig.ExposureDom?(a.opt.hasExposureDom=!0,a.ExposureDom=$(window.MarConfig.ExposureDom)):a.ExposureDom=$(window),"config"in window&&window.config&&window.config.data){if(void 0==window.config.data.wapid){if(f=void 0==window.config.data.id?0:window.config.data.id,0!=f){var b=Mar.Util.parseURL(location.href).host;f=b.split(".")[0]+"_"+f}}else f=window.config.data.wapid;g=void 0==window.config.data.build_id?0:window.config.data.build_id}this.getWinHeight(),this.lastTop=0,this.lastScrollTop=Mar.getScroll(a.opt),this.lastDate=Mar.Util.getTimeSpanMillisecond();var c;this.ExposureDom.on("touchstart.mars",function(){c&&clearTimeout(c);var b=Mar.getScroll(a.opt);a.isFirst=!1,b!=a.lastTop?a.onScroll("touchstart"):a.lastDate=Mar.Util.getTimeSpanMillisecond()}).on("scroll.mars",Mar.Util.Debounce(function(){c&&clearTimeout(c),a.onScroll("scroll")},300)),c=setTimeout(function(){var b=Mar.getScroll(a.opt),c=b+a.getWinHeight();a.getData(b,b,c,"init")},2e3)},this.Exposure.onScroll=function(a){var b,c,d=this,e=Mar.getScroll(d.opt);if(e>this.lastScrollTop)b=this.lastTop,c=e+this.getWinHeight();else{if(!(!q&&e==this.lastScrollTop||e-1?"&":"?";if(h>-1&&(f=e.substr(0,h),g=e.substr(h)),window.localStorage)for(var j=0,k=c.length;j0&&a._request("setInterval")},this.config.frequency)},_request:function(a){var b="screen_expose",c=null==this.config.getScreenCount?Math.ceil(this.config.ExposureDom.height()/this.screenHeight):this.config.getScreenCount(),d={current_page_num:this.data.exposureIndex,total_page_num:c},e=JSON.stringify(d);Mar.Seed.request("link","screen",b,e),this.data.exposureIndex=[]}}},{}],30:[function(a,b,c){Mar.Seed={typeEnum:{inputbutton:"button",inputsubmit:"button",inputtext:"inputText",inputinput:"inputText",inputradio:"radio",inputcheckbox:"checkbox",adownload:"download",a:"link",span:"span",button:"button"},data:{page_type:"",page_id:""},init:function(){var a=this;return this.data.page_type=Mar.Util.getConfig("pageType"),""==this.data.page_type&&(this.data.page_type="unknown"),this.data.page_id=this.data.page_type+"_"+window.T0,$("body").delegate("[mars_sead]:not(select)","click",function(b){var c=$(this);a._onclick(c)}).delegate("select[mars_sead]","change",function(){a.request("select","change",$(this).attr("mars_sead"))}).delegate("[mars_exposure_clktrackers]","click",function(b){var c=$(this);a.selfDefineRequest(JSON.parse(c.attr("mars_exposure_clktrackers")))}),Mar},_onclick:function(a){var b,c,d,e=a[0].tagName.toLowerCase();"a"===e?(b=a.attr("href"),d=this.typeEnum[e+(b?this._isDownload(b.toLowerCase()):"")]):(b=a.attr("type"),c=this.typeEnum[e+(b?b.toLowerCase():"")],d=c?c:e),this.request(d,"click",a.attr("mars_sead"),a.attr("data_mars"))},updateTabPageId:function(a){Mar.Biz._updateTabPageId(a)},selfDefineRequest:function(a){Mar._Request.sendDefineRequest(a)},request:function(a,b,c,d){this._requestUsePathWithMethod("/bp",a,b,c,d,"post")},requestPost:function(a,b,c,d){this._requestUsePathWithMethod("/bp",a,b,c,d,"post")},requestUsePath:function(a,b,c,d,e){this._requestUsePathWithMethod(a,b,c,d,e,"get")},_requestUsePathWithMethod:function(a,b,c,d,e,f){var g=(new Date).getTime()-window.T0,h={at:g,et:b,ed:c,page_type:this.data.page_type,page_id:this.data.page_id,one:encodeURIComponent(d),data_mars:e||""};"post"===f?Mar._Request.sendPost(a,h,!0):Mar._Request.send(a,h,!0)},_isDownload:function(a){return/.*\.\w*$/.test(a)&&$.inArray(a.match(/\.(\w*)$/i)[1],["rar","zip","exe","doc","ppt","xls","docx","xlsx","pptx","sisx","apk"])!==-1?"download":""}}},{}]},{},[26]); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90(1).png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90(1).png" new file mode 100644 index 0000000000000000000000000000000000000000..726844833916989458165bad8d2f4042239f7f3d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90(1).png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..098a5996fec05729ce788a3a175e7154f5270471 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/sign_wap.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/sign_wap.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..3160e299fdff6a6191b697bdc0ea4f508acf7a78 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/sign_wap.js.\344\270\213\350\275\275" @@ -0,0 +1,183 @@ +/* + + Counter block mode compatible with Dr Brian Gladman fileenc.c + derived from CryptoJS.mode.CTR + Jan Hruby jhruby.web@gmail.com + + (c) 2012 by C?dric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'");}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0)rs=rs.substring(1);rs=this.sha1(rs);return rs},getSecret:function(param){var rs= +"";var _this=this;var enString=param.api_key&&_this.data.enString[param.api_key]?_this.data.enString[param.api_key]:"";return _this.aesDecrypt(enString,_this.data.secret)},aesEncrypt:function(msg,secret){return CryptoJS.AES.encrypt(msg,secret).toString()},aesDecrypt:function(msg,secret){var bytes=CryptoJS.AES.decrypt(msg,secret);return bytes.toString(CryptoJS.enc.Utf8)},sha1:function(msg){return CryptoJS.SHA1(msg).toString()},getCookie:function(name){var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); +if(arr=document.cookie.match(reg))if(arr[2])return unescape(arr[2]);return""}};module.exports=sign},{"crypto-js":11}],2:[function(require,module,exports){window.sign=require("./modules/Sign/index_wap.js");if(window.$&&(window.$.Listeners&&window.$.Listeners.pub))$.Listeners.pub("plugin.sign").success()},{"./modules/Sign/index_wap.js":1}],3:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"), +require("./md5"),require("./evpkdf"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var BlockCipher=C_lib.BlockCipher;var C_algo=C.algo;var SBOX=[];var INV_SBOX=[];var SUB_MIX_0=[];var SUB_MIX_1=[];var SUB_MIX_2=[];var SUB_MIX_3=[];var INV_SUB_MIX_0=[];var INV_SUB_MIX_1=[];var INV_SUB_MIX_2=[];var INV_SUB_MIX_3= +[];(function(){var d=[];for(var i=0;i<256;i++)if(i<128)d[i]=i<<1;else d[i]=i<<1^283;var x=0;var xi=0;for(var i=0;i<256;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^sx&255^99;SBOX[x]=sx;INV_SBOX[sx]=x;var x2=d[x];var x4=d[x2];var x8=d[x4];var t=d[sx]*257^sx*16843008;SUB_MIX_0[x]=t<<24|t>>>8;SUB_MIX_1[x]=t<<16|t>>>16;SUB_MIX_2[x]=t<<8|t>>>24;SUB_MIX_3[x]=t;var t=x8*16843009^x4*65537^x2*257^x*16843008;INV_SUB_MIX_0[sx]=t<<24|t>>>8;INV_SUB_MIX_1[sx]=t<<16|t>>>16;INV_SUB_MIX_2[sx]=t<<8|t>>>24;INV_SUB_MIX_3[sx]= +t;if(!x)x=xi=1;else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]]}}})();var RCON=[0,1,2,4,8,16,32,64,128,27,54];var AES=C_algo.AES=BlockCipher.extend({_doReset:function(){if(this._nRounds&&this._keyPriorReset===this._key)return;var key=this._keyPriorReset=this._key;var keyWords=key.words;var keySize=key.sigBytes/4;var nRounds=this._nRounds=keySize+6;var ksRows=(nRounds+1)*4;var keySchedule=this._keySchedule=[];for(var ksRow=0;ksRow>>24;t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[t&255];t^=RCON[ksRow/keySize|0]<<24}else if(keySize>6&&ksRow%keySize==4)t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[t&255];keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}var invKeySchedule=this._invKeySchedule=[];for(var invKsRow=0;invKsRow>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[t&255]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3];M[offset+3]=t;this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3, +INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3];M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){var nRounds=this._nRounds;var s0=M[offset]^keySchedule[0];var s1=M[offset+1]^keySchedule[1];var s2=M[offset+2]^keySchedule[2];var s3=M[offset+3]^keySchedule[3];var ksRow=4;for(var round=1;round>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[s3&255]^keySchedule[ksRow++];var t1=SUB_MIX_0[s1>>>24]^ +SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[s0&255]^keySchedule[ksRow++];var t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[s1&255]^keySchedule[ksRow++];var t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[s2&255]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[s3&255])^keySchedule[ksRow++];var t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[s0& +255])^keySchedule[ksRow++];var t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[s1&255])^keySchedule[ksRow++];var t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[s2&255])^keySchedule[ksRow++];M[offset]=t0;M[offset+1]=t1;M[offset+2]=t2;M[offset+3]=t3},keySize:256/32});C.AES=BlockCipher._createHelper(AES)})();return CryptoJS.AES})},{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}],4:[function(require,module,exports){(function(root,factory, +undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./evpkdf"));else if(typeof define==="function"&&define.amd)define(["./core","./evpkdf"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS;var C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm;var C_enc=C.enc;var Utf8=C_enc.Utf8;var Base64=C_enc.Base64;var C_algo=C.algo; +var EvpKDF=C_algo.EvpKDF;var Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg);this._xformMode=xformMode;this._key=key;this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this);this._doReset()},process:function(dataUpdate){this._append(dataUpdate); +return this._process()},finalize:function(dataUpdate){if(dataUpdate)this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){if(typeof key=="string")return PasswordBasedCipher;else return SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext, +key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()});var StreamCipher=C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!!"flush");return finalProcessedBlocks},blockSize:1});var C_mode=C.mode={};var BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher, +iv){this._cipher=cipher;this._iv=iv}});var CBC=C_mode.CBC=function(){var CBC=BlockCipherMode.extend();CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize);cipher.encryptBlock(words,offset);this._prevBlock=words.slice(offset,offset+blockSize)}});CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;var thisBlock=words.slice(offset, +offset+blockSize);cipher.decryptBlock(words,offset);xorBlock.call(this,words,offset,blockSize);this._prevBlock=thisBlock}});function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;i>>2]&255;data.sigBytes-=nPaddingBytes}};var BlockCipher=C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg;var iv=cfg.iv;var mode=cfg.mode; +if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}if(this._mode&&this._mode.__creator==modeCreator)this._mode.init(this,iv&&iv.words);else{this._mode=modeCreator.call(mode,this,iv&&iv.words);this._mode.__creator=modeCreator}},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data, +this.blockSize);var finalProcessedBlocks=this._process(!!"flush")}else{var finalProcessedBlocks=this._process(!!"flush");padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:128/32});var CipherParams=C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}});var C_format=C.format={};var OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext= +cipherParams.ciphertext;var salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr);var ciphertextWords=ciphertext.words;if(ciphertextWords[0]==1398893684&&ciphertextWords[1]==1701076831){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4);ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext, +salt:salt})}};var SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg);var ciphertext=encryptor.finalize(message);var cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher, +ciphertext,key,cfg){cfg=this.cfg.extend(cfg);ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){if(typeof ciphertext=="string")return format.parse(ciphertext,this);else return ciphertext}});var C_kdf=C.kdf={};var OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){if(!salt)salt=WordArray.random(64/8);var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password, +salt);var iv=WordArray.create(key.words.slice(keySize),ivSize*4);key.sigBytes=keySize*4;return CipherParams.create({key:key,iv:iv,salt:salt})}};var PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message, +derivedParams.key,cfg);ciphertext.mixIn(derivedParams);return ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg);ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}()})},{"./core":5,"./evpkdf":8}],5:[function(require,module,exports){(function(root, +factory){if(typeof exports==="object")module.exports=exports=factory();else if(typeof define==="function"&&define.amd)define([],factory);else root.CryptoJS=factory()})(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var create=Object.create||function(){function F(){}return function(obj){var subtype;F.prototype=obj;subtype=new F;F.prototype=null;return subtype}}();var C={};var C_lib=C.lib={};var Base=C_lib.Base=function(){return{extend:function(overrides){var subtype=create(this);if(overrides)subtype.mixIn(overrides); +if(!subtype.hasOwnProperty("init")||this.init===subtype.init)subtype.init=function(){subtype.$super.init.apply(this,arguments)};subtype.init.prototype=subtype;subtype.$super=this;return subtype},create:function(){var instance=this.extend();instance.init.apply(instance,arguments);return instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)if(properties.hasOwnProperty(propertyName))this[propertyName]=properties[propertyName];if(properties.hasOwnProperty("toString"))this.toString= +properties.toString},clone:function(){return this.init.prototype.extend(this)}}}();var WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[];if(sigBytes!=undefined)this.sigBytes=sigBytes;else this.sigBytes=words.length*4},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words;var thatWords=wordArray.words;var thisSigBytes=this.sigBytes;var thatSigBytes=wordArray.sigBytes;this.clamp();if(thisSigBytes% +4)for(var i=0;i>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else for(var i=0;i>>2]=thatWords[i>>>2];this.sigBytes+=thatSigBytes;return this},clamp:function(){var words=this.words;var sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8;words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);clone.words=this.words.slice(0);return clone}, +random:function(nBytes){var words=[];var r=function(m_w){var m_w=m_w;var m_z=987654321;var mask=4294967295;return function(){m_z=36969*(m_z&65535)+(m_z>>16)&mask;m_w=18E3*(m_w&65535)+(m_w>>16)&mask;var result=(m_z<<16)+m_w&mask;result/=4294967296;result+=0.5;return result*(Math.random()>0.5?1:-1)}};for(var i=0,rcache;i>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16));hexChars.push((bite&15).toString(16))}return hexChars.join("")},parse:function(hexStr){var hexStrLength=hexStr.length;var words=[];for(var i=0;i>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}};var Latin1=C_enc.Latin1= +{stringify:function(wordArray){var words=wordArray.words;var sigBytes=wordArray.sigBytes;var latin1Chars=[];for(var i=0;i>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){var latin1StrLength=latin1Str.length;var words=[];for(var i=0;i>>2]|=(latin1Str.charCodeAt(i)&255)<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}};var Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data"); +}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}};var BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init;this._nDataBytes=0},_append:function(data){if(typeof data=="string")data=Utf8.parse(data);this._data.concat(data);this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data;var dataWords=data.words;var dataSigBytes=data.sigBytes;var blockSize=this.blockSize;var blockSizeBytes= +blockSize*4;var nBlocksReady=dataSigBytes/blockSizeBytes;if(doFlush)nBlocksReady=Math.ceil(nBlocksReady);else nBlocksReady=Math.max((nBlocksReady|0)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize;var nBytesReady=Math.min(nWordsReady*4,dataSigBytes);if(nWordsReady){for(var offset=0;offset>>2]>>>24-i%4*8&255;var byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255;var byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255; +var triplet=byte1<<16|byte2<<8|byte3;for(var j=0;j<4&&i+j*0.75>>6*(3-j)&63))}var paddingChar=map.charAt(64);if(paddingChar)while(base64Chars.length%4)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length;var map=this._map;var reverseMap=this._reverseMap;if(!reverseMap){reverseMap=this._reverseMap=[];for(var j=0;j>>6-i%4*2;words[nBytes>>>2]|=(bits1| +bits2)<<24-nBytes%4*8;nBytes++}return WordArray.create(words,nBytes)}})();return CryptoJS.enc.Base64})},{"./core":5}],7:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var C_enc=C.enc;var Utf16BE=C_enc.Utf16=C_enc.Utf16BE= +{stringify:function(wordArray){var words=wordArray.words;var sigBytes=wordArray.sigBytes;var utf16Chars=[];for(var i=0;i>>2]>>>16-i%4*8&65535;utf16Chars.push(String.fromCharCode(codePoint))}return utf16Chars.join("")},parse:function(utf16Str){var utf16StrLength=utf16Str.length;var words=[];for(var i=0;i>>1]|=utf16Str.charCodeAt(i)<<16-i%2*16;return WordArray.create(words,utf16StrLength*2)}};C_enc.Utf16LE={stringify:function(wordArray){var words= +wordArray.words;var sigBytes=wordArray.sigBytes;var utf16Chars=[];for(var i=0;i>>2]>>>16-i%4*8&65535);utf16Chars.push(String.fromCharCode(codePoint))}return utf16Chars.join("")},parse:function(utf16Str){var utf16StrLength=utf16Str.length;var words=[];for(var i=0;i>>1]|=swapEndian(utf16Str.charCodeAt(i)<<16-i%2*16);return WordArray.create(words,utf16StrLength*2)}};function swapEndian(word){return word<<8&4278255360|word>>> +8&16711935}})();return CryptoJS.enc.Utf16})},{"./core":5}],8:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./sha1"),require("./hmac"));else if(typeof define==="function"&&define.amd)define(["./core","./sha1","./hmac"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var C_algo=C.algo;var MD5= +C_algo.MD5;var EvpKDF=C_algo.EvpKDF=Base.extend({cfg:Base.extend({keySize:128/32,hasher:MD5,iterations:1}),init:function(cfg){this.cfg=this.cfg.extend(cfg)},compute:function(password,salt){var cfg=this.cfg;var hasher=cfg.hasher.create();var derivedKey=WordArray.create();var derivedKeyWords=derivedKey.words;var keySize=cfg.keySize;var iterations=cfg.iterations;while(derivedKeyWords.lengthhasherBlockSizeBytes)key=hasher.finalize(key);key.clamp();var oKey=this._oKey=key.clone();var iKey=this._iKey=key.clone();var oKeyWords=oKey.words;var iKeyWords=iKey.words;for(var i=0;i>>2]|=typedArray[i]<<24-i%4*8;superInit.call(this,words,typedArrayByteLength)}else superInit.apply(this,arguments)};subInit.prototype=WordArray})();return CryptoJS.lib.WordArray})}, +{"./core":5}],13:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var T=[];(function(){for(var i=0;i<64;i++)T[i]=Math.abs(Math.sin(i+1))*4294967296|0})();var MD5=C_algo.MD5= +Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(M,offset){for(var i=0;i<16;i++){var offset_i=offset+i;var M_offset_i=M[offset_i];M[offset_i]=(M_offset_i<<8|M_offset_i>>>24)&16711935|(M_offset_i<<24|M_offset_i>>>8)&4278255360}var H=this._hash.words;var M_offset_0=M[offset+0];var M_offset_1=M[offset+1];var M_offset_2=M[offset+2];var M_offset_3=M[offset+3];var M_offset_4=M[offset+4];var M_offset_5=M[offset+5];var M_offset_6= +M[offset+6];var M_offset_7=M[offset+7];var M_offset_8=M[offset+8];var M_offset_9=M[offset+9];var M_offset_10=M[offset+10];var M_offset_11=M[offset+11];var M_offset_12=M[offset+12];var M_offset_13=M[offset+13];var M_offset_14=M[offset+14];var M_offset_15=M[offset+15];var a=H[0];var b=H[1];var c=H[2];var d=H[3];a=FF(a,b,c,d,M_offset_0,7,T[0]);d=FF(d,a,b,c,M_offset_1,12,T[1]);c=FF(c,d,a,b,M_offset_2,17,T[2]);b=FF(b,c,d,a,M_offset_3,22,T[3]);a=FF(a,b,c,d,M_offset_4,7,T[4]);d=FF(d,a,b,c,M_offset_5,12, +T[5]);c=FF(c,d,a,b,M_offset_6,17,T[6]);b=FF(b,c,d,a,M_offset_7,22,T[7]);a=FF(a,b,c,d,M_offset_8,7,T[8]);d=FF(d,a,b,c,M_offset_9,12,T[9]);c=FF(c,d,a,b,M_offset_10,17,T[10]);b=FF(b,c,d,a,M_offset_11,22,T[11]);a=FF(a,b,c,d,M_offset_12,7,T[12]);d=FF(d,a,b,c,M_offset_13,12,T[13]);c=FF(c,d,a,b,M_offset_14,17,T[14]);b=FF(b,c,d,a,M_offset_15,22,T[15]);a=GG(a,b,c,d,M_offset_1,5,T[16]);d=GG(d,a,b,c,M_offset_6,9,T[17]);c=GG(c,d,a,b,M_offset_11,14,T[18]);b=GG(b,c,d,a,M_offset_0,20,T[19]);a=GG(a,b,c,d,M_offset_5, +5,T[20]);d=GG(d,a,b,c,M_offset_10,9,T[21]);c=GG(c,d,a,b,M_offset_15,14,T[22]);b=GG(b,c,d,a,M_offset_4,20,T[23]);a=GG(a,b,c,d,M_offset_9,5,T[24]);d=GG(d,a,b,c,M_offset_14,9,T[25]);c=GG(c,d,a,b,M_offset_3,14,T[26]);b=GG(b,c,d,a,M_offset_8,20,T[27]);a=GG(a,b,c,d,M_offset_13,5,T[28]);d=GG(d,a,b,c,M_offset_2,9,T[29]);c=GG(c,d,a,b,M_offset_7,14,T[30]);b=GG(b,c,d,a,M_offset_12,20,T[31]);a=HH(a,b,c,d,M_offset_5,4,T[32]);d=HH(d,a,b,c,M_offset_8,11,T[33]);c=HH(c,d,a,b,M_offset_11,16,T[34]);b=HH(b,c,d,a,M_offset_14, +23,T[35]);a=HH(a,b,c,d,M_offset_1,4,T[36]);d=HH(d,a,b,c,M_offset_4,11,T[37]);c=HH(c,d,a,b,M_offset_7,16,T[38]);b=HH(b,c,d,a,M_offset_10,23,T[39]);a=HH(a,b,c,d,M_offset_13,4,T[40]);d=HH(d,a,b,c,M_offset_0,11,T[41]);c=HH(c,d,a,b,M_offset_3,16,T[42]);b=HH(b,c,d,a,M_offset_6,23,T[43]);a=HH(a,b,c,d,M_offset_9,4,T[44]);d=HH(d,a,b,c,M_offset_12,11,T[45]);c=HH(c,d,a,b,M_offset_15,16,T[46]);b=HH(b,c,d,a,M_offset_2,23,T[47]);a=II(a,b,c,d,M_offset_0,6,T[48]);d=II(d,a,b,c,M_offset_7,10,T[49]);c=II(c,d,a,b,M_offset_14, +15,T[50]);b=II(b,c,d,a,M_offset_5,21,T[51]);a=II(a,b,c,d,M_offset_12,6,T[52]);d=II(d,a,b,c,M_offset_3,10,T[53]);c=II(c,d,a,b,M_offset_10,15,T[54]);b=II(b,c,d,a,M_offset_1,21,T[55]);a=II(a,b,c,d,M_offset_8,6,T[56]);d=II(d,a,b,c,M_offset_15,10,T[57]);c=II(c,d,a,b,M_offset_6,15,T[58]);b=II(b,c,d,a,M_offset_13,21,T[59]);a=II(a,b,c,d,M_offset_4,6,T[60]);d=II(d,a,b,c,M_offset_11,10,T[61]);c=II(c,d,a,b,M_offset_2,15,T[62]);b=II(b,c,d,a,M_offset_9,21,T[63]);H[0]=H[0]+a|0;H[1]=H[1]+b|0;H[2]=H[2]+c|0;H[3]= +H[3]+d|0},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;var nBitsTotalH=Math.floor(nBitsTotal/4294967296);var nBitsTotalL=nBitsTotal;dataWords[(nBitsLeft+64>>>9<<4)+15]=(nBitsTotalH<<8|nBitsTotalH>>>24)&16711935|(nBitsTotalH<<24|nBitsTotalH>>>8)&4278255360;dataWords[(nBitsLeft+64>>>9<<4)+14]=(nBitsTotalL<<8|nBitsTotalL>>>24)&16711935|(nBitsTotalL<<24|nBitsTotalL>>>8)& +4278255360;data.sigBytes=(dataWords.length+1)*4;this._process();var hash=this._hash;var H=hash.words;for(var i=0;i<4;i++){var H_i=H[i];H[i]=(H_i<<8|H_i>>>24)&16711935|(H_i<<24|H_i>>>8)&4278255360}return hash},clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});function FF(a,b,c,d,x,s,t){var n=a+(b&c|~b&d)+x+t;return(n<>>32-s)+b}function GG(a,b,c,d,x,s,t){var n=a+(b&d|c&~d)+x+t;return(n<>>32-s)+b}function HH(a,b,c,d,x,s,t){var n=a+(b^c^d)+x+t; +return(n<>>32-s)+b}function II(a,b,c,d,x,s,t){var n=a+(c^(b|~d))+x+t;return(n<>>32-s)+b}C.MD5=Hasher._createHelper(MD5);C.HmacMD5=Hasher._createHmacHelper(MD5)})(Math);return CryptoJS.MD5})},{"./core":5}],14:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this, +function(CryptoJS){CryptoJS.mode.CFB=function(){var CFB=CryptoJS.lib.BlockCipherMode.extend();CFB.Encryptor=CFB.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;generateKeystreamAndEncrypt.call(this,words,offset,blockSize,cipher);this._prevBlock=words.slice(offset,offset+blockSize)}});CFB.Decryptor=CFB.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;var thisBlock=words.slice(offset,offset+blockSize); +generateKeystreamAndEncrypt.call(this,words,offset,blockSize,cipher);this._prevBlock=thisBlock}});function generateKeystreamAndEncrypt(words,offset,blockSize,cipher){var iv=this._iv;if(iv){var keystream=iv.slice(0);this._iv=undefined}else var keystream=this._prevBlock;cipher.encryptBlock(keystream,0);for(var i=0;i>24&255)===255){var b1=word>>16&255;var b2=word>>8&255;var b3=word&255;if(b1===255){b1=0;if(b2===255){b2=0;if(b3===255)b3=0;else++b3}else++b2}else++b1;word= +0;word+=b1<<16;word+=b2<<8;word+=b3}else word+=1<<24;return word}function incCounter(counter){if((counter[0]=incWord(counter[0]))===0)counter[1]=incWord(counter[1]);return counter}var Encryptor=CTRGladman.Encryptor=CTRGladman.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;var iv=this._iv;var counter=this._counter;if(iv){counter=this._counter=iv.slice(0);this._iv=undefined}incCounter(counter);var keystream=counter.slice(0);cipher.encryptBlock(keystream, +0);for(var i=0;i>>2]|=nPaddingBytes<<24-lastBytePos%4*8;data.sigBytes+=nPaddingBytes},unpad:function(data){var nPaddingBytes=data.words[data.sigBytes-1>>>2]&255;data.sigBytes-=nPaddingBytes}};return CryptoJS.pad.Ansix923})},{"./cipher-core":4,"./core":5}],20:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core", +"./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.Iso10126={pad:function(data,blockSize){var blockSizeBytes=blockSize*4;var nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes;data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes-1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes<<24],1))},unpad:function(data){var nPaddingBytes=data.words[data.sigBytes-1>>>2]&255;data.sigBytes-=nPaddingBytes}};return CryptoJS.pad.Iso10126})},{"./cipher-core":4, +"./core":5}],21:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.Iso97971={pad:function(data,blockSize){data.concat(CryptoJS.lib.WordArray.create([2147483648],1));CryptoJS.pad.ZeroPadding.pad(data,blockSize)},unpad:function(data){CryptoJS.pad.ZeroPadding.unpad(data); +data.sigBytes--}};return CryptoJS.pad.Iso97971})},{"./cipher-core":4,"./core":5}],22:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}};return CryptoJS.pad.NoPadding})},{"./cipher-core":4, +"./core":5}],23:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.ZeroPadding={pad:function(data,blockSize){var blockSizeBytes=blockSize*4;data.clamp();data.sigBytes+=blockSizeBytes-(data.sigBytes%blockSizeBytes||blockSizeBytes)}, +unpad:function(data){var dataWords=data.words;var i=data.sigBytes-1;while(!(dataWords[i>>>2]>>>24-i%4*8&255))i--;data.sigBytes=i+1}};return CryptoJS.pad.ZeroPadding})},{"./cipher-core":4,"./core":5}],24:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./sha1"),require("./hmac"));else if(typeof define==="function"&&define.amd)define(["./core","./sha1","./hmac"],factory);else factory(root.CryptoJS)})(this, +function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var C_algo=C.algo;var SHA1=C_algo.SHA1;var HMAC=C_algo.HMAC;var PBKDF2=C_algo.PBKDF2=Base.extend({cfg:Base.extend({keySize:128/32,hasher:SHA1,iterations:1}),init:function(cfg){this.cfg=this.cfg.extend(cfg)},compute:function(password,salt){var cfg=this.cfg;var hmac=HMAC.create(cfg.hasher,password);var derivedKey=WordArray.create();var blockIndex=WordArray.create([1]);var derivedKeyWords= +derivedKey.words;var blockIndexWords=blockIndex.words;var keySize=cfg.keySize;var iterations=cfg.iterations;while(derivedKeyWords.length>>16,K[1],K[0]<<16|K[3]>>>16,K[2],K[1]<<16|K[0]>>>16,K[3],K[2]<<16|K[1]>>>16];var C=this._C=[K[2]<<16|K[2]>>> +16,K[0]&4294901760|K[1]&65535,K[3]<<16|K[3]>>>16,K[1]&4294901760|K[2]&65535,K[0]<<16|K[0]>>>16,K[2]&4294901760|K[3]&65535,K[1]<<16|K[1]>>>16,K[3]&4294901760|K[0]&65535];this._b=0;for(var i=0;i<4;i++)nextState.call(this);for(var i=0;i<8;i++)C[i]^=X[i+4&7];if(iv){var IV=iv.words;var IV_0=IV[0];var IV_1=IV[1];var i0=(IV_0<<8|IV_0>>>24)&16711935|(IV_0<<24|IV_0>>>8)&4278255360;var i2=(IV_1<<8|IV_1>>>24)&16711935|(IV_1<<24|IV_1>>>8)&4278255360;var i1=i0>>>16|i2&4294901760;var i3=i2<<16|i0&65535;C[0]^=i0; +C[1]^=i1;C[2]^=i2;C[3]^=i3;C[4]^=i0;C[5]^=i1;C[6]^=i2;C[7]^=i3;for(var i=0;i<4;i++)nextState.call(this)}},_doProcessBlock:function(M,offset){var X=this._X;nextState.call(this);S[0]=X[0]^X[5]>>>16^X[3]<<16;S[1]=X[2]^X[7]>>>16^X[5]<<16;S[2]=X[4]^X[1]>>>16^X[7]<<16;S[3]=X[6]^X[3]>>>16^X[1]<<16;for(var i=0;i<4;i++){S[i]=(S[i]<<8|S[i]>>>24)&16711935|(S[i]<<24|S[i]>>>8)&4278255360;M[offset+i]^=S[i]}},blockSize:128/32,ivSize:64/32});function nextState(){var X=this._X;var C=this._C;for(var i=0;i<8;i++)C_[i]= +C[i];C[0]=C[0]+1295307597+this._b|0;C[1]=C[1]+3545052371+(C[0]>>>0>>0?1:0)|0;C[2]=C[2]+886263092+(C[1]>>>0>>0?1:0)|0;C[3]=C[3]+1295307597+(C[2]>>>0>>0?1:0)|0;C[4]=C[4]+3545052371+(C[3]>>>0>>0?1:0)|0;C[5]=C[5]+886263092+(C[4]>>>0>>0?1:0)|0;C[6]=C[6]+1295307597+(C[5]>>>0>>0?1:0)|0;C[7]=C[7]+3545052371+(C[6]>>>0>>0?1:0)|0;this._b=C[7]>>>0>>0?1:0;for(var i=0;i<8;i++){var gx=X[i]+C[i];var ga=gx&65535;var gb=gx>>>16;var gh=((ga*ga>>>17)+ga*gb>>>15)+ +gb*gb;var gl=((gx&4294901760)*gx|0)+((gx&65535)*gx|0);G[i]=gh^gl}X[0]=G[0]+(G[7]<<16|G[7]>>>16)+(G[6]<<16|G[6]>>>16)|0;X[1]=G[1]+(G[0]<<8|G[0]>>>24)+G[7]|0;X[2]=G[2]+(G[1]<<16|G[1]>>>16)+(G[0]<<16|G[0]>>>16)|0;X[3]=G[3]+(G[2]<<8|G[2]>>>24)+G[1]|0;X[4]=G[4]+(G[3]<<16|G[3]>>>16)+(G[2]<<16|G[2]>>>16)|0;X[5]=G[5]+(G[4]<<8|G[4]>>>24)+G[3]|0;X[6]=G[6]+(G[5]<<16|G[5]>>>16)+(G[4]<<16|G[4]>>>16)|0;X[7]=G[7]+(G[6]<<8|G[6]>>>24)+G[5]|0}C.RabbitLegacy=StreamCipher._createHelper(RabbitLegacy)})();return CryptoJS.RabbitLegacy})}, +{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}],26:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"),require("./md5"),require("./evpkdf"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C= +CryptoJS;var C_lib=C.lib;var StreamCipher=C_lib.StreamCipher;var C_algo=C.algo;var S=[];var C_=[];var G=[];var Rabbit=C_algo.Rabbit=StreamCipher.extend({_doReset:function(){var K=this._key.words;var iv=this.cfg.iv;for(var i=0;i<4;i++)K[i]=(K[i]<<8|K[i]>>>24)&16711935|(K[i]<<24|K[i]>>>8)&4278255360;var X=this._X=[K[0],K[3]<<16|K[2]>>>16,K[1],K[0]<<16|K[3]>>>16,K[2],K[1]<<16|K[0]>>>16,K[3],K[2]<<16|K[1]>>>16];var C=this._C=[K[2]<<16|K[2]>>>16,K[0]&4294901760|K[1]&65535,K[3]<<16|K[3]>>>16,K[1]&4294901760| +K[2]&65535,K[0]<<16|K[0]>>>16,K[2]&4294901760|K[3]&65535,K[1]<<16|K[1]>>>16,K[3]&4294901760|K[0]&65535];this._b=0;for(var i=0;i<4;i++)nextState.call(this);for(var i=0;i<8;i++)C[i]^=X[i+4&7];if(iv){var IV=iv.words;var IV_0=IV[0];var IV_1=IV[1];var i0=(IV_0<<8|IV_0>>>24)&16711935|(IV_0<<24|IV_0>>>8)&4278255360;var i2=(IV_1<<8|IV_1>>>24)&16711935|(IV_1<<24|IV_1>>>8)&4278255360;var i1=i0>>>16|i2&4294901760;var i3=i2<<16|i0&65535;C[0]^=i0;C[1]^=i1;C[2]^=i2;C[3]^=i3;C[4]^=i0;C[5]^=i1;C[6]^=i2;C[7]^=i3; +for(var i=0;i<4;i++)nextState.call(this)}},_doProcessBlock:function(M,offset){var X=this._X;nextState.call(this);S[0]=X[0]^X[5]>>>16^X[3]<<16;S[1]=X[2]^X[7]>>>16^X[5]<<16;S[2]=X[4]^X[1]>>>16^X[7]<<16;S[3]=X[6]^X[3]>>>16^X[1]<<16;for(var i=0;i<4;i++){S[i]=(S[i]<<8|S[i]>>>24)&16711935|(S[i]<<24|S[i]>>>8)&4278255360;M[offset+i]^=S[i]}},blockSize:128/32,ivSize:64/32});function nextState(){var X=this._X;var C=this._C;for(var i=0;i<8;i++)C_[i]=C[i];C[0]=C[0]+1295307597+this._b|0;C[1]=C[1]+3545052371+(C[0]>>> +0>>0?1:0)|0;C[2]=C[2]+886263092+(C[1]>>>0>>0?1:0)|0;C[3]=C[3]+1295307597+(C[2]>>>0>>0?1:0)|0;C[4]=C[4]+3545052371+(C[3]>>>0>>0?1:0)|0;C[5]=C[5]+886263092+(C[4]>>>0>>0?1:0)|0;C[6]=C[6]+1295307597+(C[5]>>>0>>0?1:0)|0;C[7]=C[7]+3545052371+(C[6]>>>0>>0?1:0)|0;this._b=C[7]>>>0>>0?1:0;for(var i=0;i<8;i++){var gx=X[i]+C[i];var ga=gx&65535;var gb=gx>>>16;var gh=((ga*ga>>>17)+ga*gb>>>15)+gb*gb;var gl=((gx&4294901760)*gx|0)+((gx&65535)*gx|0);G[i]=gh^gl}X[0]= +G[0]+(G[7]<<16|G[7]>>>16)+(G[6]<<16|G[6]>>>16)|0;X[1]=G[1]+(G[0]<<8|G[0]>>>24)+G[7]|0;X[2]=G[2]+(G[1]<<16|G[1]>>>16)+(G[0]<<16|G[0]>>>16)|0;X[3]=G[3]+(G[2]<<8|G[2]>>>24)+G[1]|0;X[4]=G[4]+(G[3]<<16|G[3]>>>16)+(G[2]<<16|G[2]>>>16)|0;X[5]=G[5]+(G[4]<<8|G[4]>>>24)+G[3]|0;X[6]=G[6]+(G[5]<<16|G[5]>>>16)+(G[4]<<16|G[4]>>>16)|0;X[7]=G[7]+(G[6]<<8|G[6]>>>24)+G[5]|0}C.Rabbit=StreamCipher._createHelper(Rabbit)})();return CryptoJS.Rabbit})},{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}], +27:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"),require("./md5"),require("./evpkdf"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var StreamCipher=C_lib.StreamCipher;var C_algo=C.algo; +var RC4=C_algo.RC4=StreamCipher.extend({_doReset:function(){var key=this._key;var keyWords=key.words;var keySigBytes=key.sigBytes;var S=this._S=[];for(var i=0;i<256;i++)S[i]=i;for(var i=0,j=0;i<256;i++){var keyByteIndex=i%keySigBytes;var keyByte=keyWords[keyByteIndex>>>2]>>>24-keyByteIndex%4*8&255;j=(j+S[i]+keyByte)%256;var t=S[i];S[i]=S[j];S[j]=t}this._i=this._j=0},_doProcessBlock:function(M,offset){M[offset]^=generateKeystreamWord.call(this)},keySize:256/32,ivSize:0});function generateKeystreamWord(){var S= +this._S;var i=this._i;var j=this._j;var keystreamWord=0;for(var n=0;n<4;n++){i=(i+1)%256;j=(j+S[i])%256;var t=S[i];S[i]=S[j];S[j]=t;keystreamWord|=S[(S[i]+S[j])%256]<<24-n*8}this._i=i;this._j=j;return keystreamWord}C.RC4=StreamCipher._createHelper(RC4);var RC4Drop=C_algo.RC4Drop=RC4.extend({cfg:RC4.cfg.extend({drop:192}),_doReset:function(){RC4._doReset.call(this);for(var i=this.cfg.drop;i>0;i--)generateKeystreamWord.call(this)}});C.RC4Drop=StreamCipher._createHelper(RC4Drop)})();return CryptoJS.RC4})}, +{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}],28:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var _zl=WordArray.create([0,1,2,3,4,5,6,7, +8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]);var _zr=WordArray.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]);var _sl=WordArray.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11, +13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]);var _sr=WordArray.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]);var _hl=WordArray.create([0,1518500249,1859775393,2400959708,2840853838]);var _hr=WordArray.create([1352829926,1548603684,1836072691,2053994217,0]);var RIPEMD160= +C_algo.RIPEMD160=Hasher.extend({_doReset:function(){this._hash=WordArray.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var i=0;i<16;i++){var offset_i=offset+i;var M_offset_i=M[offset_i];M[offset_i]=(M_offset_i<<8|M_offset_i>>>24)&16711935|(M_offset_i<<24|M_offset_i>>>8)&4278255360}var H=this._hash.words;var hl=_hl.words;var hr=_hr.words;var zl=_zl.words;var zr=_zr.words;var sl=_sl.words;var sr=_sr.words;var al,bl,cl,dl,el;var ar,br,cr,dr,er; +ar=al=H[0];br=bl=H[1];cr=cl=H[2];dr=dl=H[3];er=el=H[4];var t;for(var i=0;i<80;i+=1){t=al+M[offset+zl[i]]|0;if(i<16)t+=f1(bl,cl,dl)+hl[0];else if(i<32)t+=f2(bl,cl,dl)+hl[1];else if(i<48)t+=f3(bl,cl,dl)+hl[2];else if(i<64)t+=f4(bl,cl,dl)+hl[3];else t+=f5(bl,cl,dl)+hl[4];t=t|0;t=rotl(t,sl[i]);t=t+el|0;al=el;el=dl;dl=rotl(cl,10);cl=bl;bl=t;t=ar+M[offset+zr[i]]|0;if(i<16)t+=f5(br,cr,dr)+hr[0];else if(i<32)t+=f4(br,cr,dr)+hr[1];else if(i<48)t+=f3(br,cr,dr)+hr[2];else if(i<64)t+=f2(br,cr,dr)+hr[3];else t+= +f1(br,cr,dr)+hr[4];t=t|0;t=rotl(t,sr[i]);t=t+er|0;ar=er;er=dr;dr=rotl(cr,10);cr=br;br=t}t=H[1]+cl+dr|0;H[1]=H[2]+dl+er|0;H[2]=H[3]+el+ar|0;H[3]=H[4]+al+br|0;H[4]=H[0]+bl+cr|0;H[0]=t},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+64>>>9<<4)+14]=(nBitsTotal<<8|nBitsTotal>>>24)&16711935|(nBitsTotal<<24|nBitsTotal>>>8)&4278255360;data.sigBytes=(dataWords.length+ +1)*4;this._process();var hash=this._hash;var H=hash.words;for(var i=0;i<5;i++){var H_i=H[i];H[i]=(H_i<<8|H_i>>>24)&16711935|(H_i<<24|H_i>>>8)&4278255360}return hash},clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<>>32-n}C.RIPEMD160=Hasher._createHelper(RIPEMD160); +C.HmacRIPEMD160=Hasher._createHmacHelper(RIPEMD160)})(Math);return CryptoJS.RIPEMD160})},{"./core":5}],29:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var W=[];var SHA1= +C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){var H=this._hash.words;var a=H[0];var b=H[1];var c=H[2];var d=H[3];var e=H[4];for(var i=0;i<80;i++){if(i<16)W[i]=M[offset+i]|0;else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];if(i<20)t+=(b&c|~b&d)+1518500249;else if(i<40)t+=(b^c^d)+1859775393;else if(i<60)t+=(b&c|b&d|c&d)-1894007588;else t+=(b^ +c^d)-899497514;e=d;d=c;c=b<<30|b>>>2;b=a;a=t}H[0]=H[0]+a|0;H[1]=H[1]+b|0;H[2]=H[2]+c|0;H[3]=H[3]+d|0;H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296);dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal;data.sigBytes=dataWords.length*4;this._process();return this._hash},clone:function(){var clone= +Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});C.SHA1=Hasher._createHelper(SHA1);C.HmacSHA1=Hasher._createHmacHelper(SHA1)})();return CryptoJS.SHA1})},{"./core":5}],30:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./sha256"));else if(typeof define==="function"&&define.amd)define(["./core","./sha256"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C= +CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var C_algo=C.algo;var SHA256=C_algo.SHA256;var SHA224=C_algo.SHA224=SHA256.extend({_doReset:function(){this._hash=new WordArray.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var hash=SHA256._doFinalize.call(this);hash.sigBytes-=4;return hash}});C.SHA224=SHA256._createHelper(SHA224);C.HmacSHA224=SHA256._createHmacHelper(SHA224)})();return CryptoJS.SHA224})},{"./core":5,"./sha256":31}], +31:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var H=[];var K=[];(function(){function isPrime(n){var sqrtN=Math.sqrt(n);for(var factor=2;factor<=sqrtN;factor++)if(!(n% +factor))return false;return true}function getFractionalBits(n){return(n-(n|0))*4294967296|0}var n=2;var nPrime=0;while(nPrime<64){if(isPrime(n)){if(nPrime<8)H[nPrime]=getFractionalBits(Math.pow(n,1/2));K[nPrime]=getFractionalBits(Math.pow(n,1/3));nPrime++}n++}})();var W=[];var SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){var H=this._hash.words;var a=H[0];var b=H[1];var c=H[2];var d=H[3];var e=H[4];var f=H[5]; +var g=H[6];var h=H[7];for(var i=0;i<64;i++){if(i<16)W[i]=M[offset+i]|0;else{var gamma0x=W[i-15];var gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3;var gamma1x=W[i-2];var gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g;var maj=a&b^a&c^b&c;var sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22);var sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25);var t1=h+sigma1+ch+K[i]+W[i];var t2=sigma0+maj;h=g;g= +f;f=e;e=d+t1|0;d=c;c=b;b=a;a=t1+t2|0}H[0]=H[0]+a|0;H[1]=H[1]+b|0;H[2]=H[2]+c|0;H[3]=H[3]+d|0;H[4]=H[4]+e|0;H[5]=H[5]+f|0;H[6]=H[6]+g|0;H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296);dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal;data.sigBytes=dataWords.length*4;this._process();return this._hash}, +clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});C.SHA256=Hasher._createHelper(SHA256);C.HmacSHA256=Hasher._createHmacHelper(SHA256)})(Math);return CryptoJS.SHA256})},{"./core":5}],32:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./x64-core"));else if(typeof define==="function"&&define.amd)define(["./core","./x64-core"],factory);else factory(root.CryptoJS)})(this, +function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_x64=C.x64;var X64Word=C_x64.Word;var C_algo=C.algo;var RHO_OFFSETS=[];var PI_INDEXES=[];var ROUND_CONSTANTS=[];(function(){var x=1,y=0;for(var t=0;t<24;t++){RHO_OFFSETS[x+5*y]=(t+1)*(t+2)/2%64;var newX=y%5;var newY=(2*x+3*y)%5;x=newX;y=newY}for(var x=0;x<5;x++)for(var y=0;y<5;y++)PI_INDEXES[x+5*y]=y+(2*x+3*y)%5*5;var LFSR=1;for(var i=0;i<24;i++){var roundConstantMsw=0;var roundConstantLsw= +0;for(var j=0;j<7;j++){if(LFSR&1){var bitPosition=(1<>>24)&16711935|(M2i<<24|M2i>>>8)&4278255360;M2i1=(M2i1<<8|M2i1>>>24)&16711935|(M2i1<<24|M2i1>>>8)&4278255360;var lane=state[i];lane.high^=M2i1;lane.low^=M2i}for(var round=0;round<24;round++){for(var x=0;x<5;x++){var tMsw=0,tLsw=0;for(var y=0;y<5;y++){var lane= +state[x+5*y];tMsw^=lane.high;tLsw^=lane.low}var Tx=T[x];Tx.high=tMsw;Tx.low=tLsw}for(var x=0;x<5;x++){var Tx4=T[(x+4)%5];var Tx1=T[(x+1)%5];var Tx1Msw=Tx1.high;var Tx1Lsw=Tx1.low;var tMsw=Tx4.high^(Tx1Msw<<1|Tx1Lsw>>>31);var tLsw=Tx4.low^(Tx1Lsw<<1|Tx1Msw>>>31);for(var y=0;y<5;y++){var lane=state[x+5*y];lane.high^=tMsw;lane.low^=tLsw}}for(var laneIndex=1;laneIndex<25;laneIndex++){var lane=state[laneIndex];var laneMsw=lane.high;var laneLsw=lane.low;var rhoOffset=RHO_OFFSETS[laneIndex];if(rhoOffset< +32){var tMsw=laneMsw<>>32-rhoOffset;var tLsw=laneLsw<>>32-rhoOffset}else{var tMsw=laneLsw<>>64-rhoOffset;var tLsw=laneMsw<>>64-rhoOffset}var TPiLane=T[PI_INDEXES[laneIndex]];TPiLane.high=tMsw;TPiLane.low=tLsw}var T0=T[0];var state0=state[0];T0.high=state0.high;T0.low=state0.low;for(var x=0;x<5;x++)for(var y=0;y<5;y++){var laneIndex=x+5*y;var lane=state[laneIndex];var TLane=T[laneIndex];var Tx1Lane=T[(x+1)%5+5*y];var Tx2Lane= +T[(x+2)%5+5*y];lane.high=TLane.high^~Tx1Lane.high&Tx2Lane.high;lane.low=TLane.low^~Tx1Lane.low&Tx2Lane.low}var lane=state[0];var roundConstant=ROUND_CONSTANTS[round];lane.high^=roundConstant.high;lane.low^=roundConstant.low}},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;var blockSizeBits=this.blockSize*32;dataWords[nBitsLeft>>>5]|=1<<24-nBitsLeft%32;dataWords[(Math.ceil((nBitsLeft+1)/blockSizeBits)*blockSizeBits>>> +5)-1]|=128;data.sigBytes=dataWords.length*4;this._process();var state=this._state;var outputLengthBytes=this.cfg.outputLength/8;var outputLengthLanes=outputLengthBytes/8;var hashWords=[];for(var i=0;i>>24)&16711935|(laneMsw<<24|laneMsw>>>8)&4278255360;laneLsw=(laneLsw<<8|laneLsw>>>24)&16711935|(laneLsw<<24|laneLsw>>>8)&4278255360;hashWords.push(laneLsw);hashWords.push(laneMsw)}return new WordArray.init(hashWords, +outputLengthBytes)},clone:function(){var clone=Hasher.clone.call(this);var state=clone._state=this._state.slice(0);for(var i=0;i<25;i++)state[i]=state[i].clone();return clone}});C.SHA3=Hasher._createHelper(SHA3);C.HmacSHA3=Hasher._createHmacHelper(SHA3)})(Math);return CryptoJS.SHA3})},{"./core":5,"./x64-core":36}],33:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./x64-core"),require("./sha512")); +else if(typeof define==="function"&&define.amd)define(["./core","./x64-core","./sha512"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_x64=C.x64;var X64Word=C_x64.Word;var X64WordArray=C_x64.WordArray;var C_algo=C.algo;var SHA512=C_algo.SHA512;var SHA384=C_algo.SHA384=SHA512.extend({_doReset:function(){this._hash=new X64WordArray.init([new X64Word.init(3418070365,3238371032),new X64Word.init(1654270250,914150663),new X64Word.init(2438529370,812702999), +new X64Word.init(355462360,4144912697),new X64Word.init(1731405415,4290775857),new X64Word.init(2394180231,1750603025),new X64Word.init(3675008525,1694076839),new X64Word.init(1203062813,3204075428)])},_doFinalize:function(){var hash=SHA512._doFinalize.call(this);hash.sigBytes-=16;return hash}});C.SHA384=SHA512._createHelper(SHA384);C.HmacSHA384=SHA512._createHmacHelper(SHA384)})();return CryptoJS.SHA384})},{"./core":5,"./sha512":34,"./x64-core":36}],34:[function(require,module,exports){(function(root, +factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./x64-core"));else if(typeof define==="function"&&define.amd)define(["./core","./x64-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var Hasher=C_lib.Hasher;var C_x64=C.x64;var X64Word=C_x64.Word;var X64WordArray=C_x64.WordArray;var C_algo=C.algo;function X64Word_create(){return X64Word.create.apply(X64Word,arguments)}var K=[X64Word_create(1116352408, +3609767458),X64Word_create(1899447441,602891725),X64Word_create(3049323471,3964484399),X64Word_create(3921009573,2173295548),X64Word_create(961987163,4081628472),X64Word_create(1508970993,3053834265),X64Word_create(2453635748,2937671579),X64Word_create(2870763221,3664609560),X64Word_create(3624381080,2734883394),X64Word_create(310598401,1164996542),X64Word_create(607225278,1323610764),X64Word_create(1426881987,3590304994),X64Word_create(1925078388,4068182383),X64Word_create(2162078206,991336113), +X64Word_create(2614888103,633803317),X64Word_create(3248222580,3479774868),X64Word_create(3835390401,2666613458),X64Word_create(4022224774,944711139),X64Word_create(264347078,2341262773),X64Word_create(604807628,2007800933),X64Word_create(770255983,1495990901),X64Word_create(1249150122,1856431235),X64Word_create(1555081692,3175218132),X64Word_create(1996064986,2198950837),X64Word_create(2554220882,3999719339),X64Word_create(2821834349,766784016),X64Word_create(2952996808,2566594879),X64Word_create(3210313671, +3203337956),X64Word_create(3336571891,1034457026),X64Word_create(3584528711,2466948901),X64Word_create(113926993,3758326383),X64Word_create(338241895,168717936),X64Word_create(666307205,1188179964),X64Word_create(773529912,1546045734),X64Word_create(1294757372,1522805485),X64Word_create(1396182291,2643833823),X64Word_create(1695183700,2343527390),X64Word_create(1986661051,1014477480),X64Word_create(2177026350,1206759142),X64Word_create(2456956037,344077627),X64Word_create(2730485921,1290863460),X64Word_create(2820302411, +3158454273),X64Word_create(3259730800,3505952657),X64Word_create(3345764771,106217008),X64Word_create(3516065817,3606008344),X64Word_create(3600352804,1432725776),X64Word_create(4094571909,1467031594),X64Word_create(275423344,851169720),X64Word_create(430227734,3100823752),X64Word_create(506948616,1363258195),X64Word_create(659060556,3750685593),X64Word_create(883997877,3785050280),X64Word_create(958139571,3318307427),X64Word_create(1322822218,3812723403),X64Word_create(1537002063,2003034995),X64Word_create(1747873779, +3602036899),X64Word_create(1955562222,1575990012),X64Word_create(2024104815,1125592928),X64Word_create(2227730452,2716904306),X64Word_create(2361852424,442776044),X64Word_create(2428436474,593698344),X64Word_create(2756734187,3733110249),X64Word_create(3204031479,2999351573),X64Word_create(3329325298,3815920427),X64Word_create(3391569614,3928383900),X64Word_create(3515267271,566280711),X64Word_create(3940187606,3454069534),X64Word_create(4118630271,4000239992),X64Word_create(116418474,1914138554), +X64Word_create(174292421,2731055270),X64Word_create(289380356,3203993006),X64Word_create(460393269,320620315),X64Word_create(685471733,587496836),X64Word_create(852142971,1086792851),X64Word_create(1017036298,365543100),X64Word_create(1126000580,2618297676),X64Word_create(1288033470,3409855158),X64Word_create(1501505948,4234509866),X64Word_create(1607167915,987167468),X64Word_create(1816402316,1246189591)];var W=[];(function(){for(var i=0;i<80;i++)W[i]=X64Word_create()})();var SHA512=C_algo.SHA512= +Hasher.extend({_doReset:function(){this._hash=new X64WordArray.init([new X64Word.init(1779033703,4089235720),new X64Word.init(3144134277,2227873595),new X64Word.init(1013904242,4271175723),new X64Word.init(2773480762,1595750129),new X64Word.init(1359893119,2917565137),new X64Word.init(2600822924,725511199),new X64Word.init(528734635,4215389547),new X64Word.init(1541459225,327033209)])},_doProcessBlock:function(M,offset){var H=this._hash.words;var H0=H[0];var H1=H[1];var H2=H[2];var H3=H[3];var H4= +H[4];var H5=H[5];var H6=H[6];var H7=H[7];var H0h=H0.high;var H0l=H0.low;var H1h=H1.high;var H1l=H1.low;var H2h=H2.high;var H2l=H2.low;var H3h=H3.high;var H3l=H3.low;var H4h=H4.high;var H4l=H4.low;var H5h=H5.high;var H5l=H5.low;var H6h=H6.high;var H6l=H6.low;var H7h=H7.high;var H7l=H7.low;var ah=H0h;var al=H0l;var bh=H1h;var bl=H1l;var ch=H2h;var cl=H2l;var dh=H3h;var dl=H3l;var eh=H4h;var el=H4l;var fh=H5h;var fl=H5l;var gh=H6h;var gl=H6l;var hh=H7h;var hl=H7l;for(var i=0;i<80;i++){var Wi=W[i];if(i< +16){var Wih=Wi.high=M[offset+i*2]|0;var Wil=Wi.low=M[offset+i*2+1]|0}else{var gamma0x=W[i-15];var gamma0xh=gamma0x.high;var gamma0xl=gamma0x.low;var gamma0h=(gamma0xh>>>1|gamma0xl<<31)^(gamma0xh>>>8|gamma0xl<<24)^gamma0xh>>>7;var gamma0l=(gamma0xl>>>1|gamma0xh<<31)^(gamma0xl>>>8|gamma0xh<<24)^(gamma0xl>>>7|gamma0xh<<25);var gamma1x=W[i-2];var gamma1xh=gamma1x.high;var gamma1xl=gamma1x.low;var gamma1h=(gamma1xh>>>19|gamma1xl<<13)^(gamma1xh<<3|gamma1xl>>>29)^gamma1xh>>>6;var gamma1l=(gamma1xl>>>19| +gamma1xh<<13)^(gamma1xl<<3|gamma1xh>>>29)^(gamma1xl>>>6|gamma1xh<<26);var Wi7=W[i-7];var Wi7h=Wi7.high;var Wi7l=Wi7.low;var Wi16=W[i-16];var Wi16h=Wi16.high;var Wi16l=Wi16.low;var Wil=gamma0l+Wi7l;var Wih=gamma0h+Wi7h+(Wil>>>0>>0?1:0);var Wil=Wil+gamma1l;var Wih=Wih+gamma1h+(Wil>>>0>>0?1:0);var Wil=Wil+Wi16l;var Wih=Wih+Wi16h+(Wil>>>0>>0?1:0);Wi.high=Wih;Wi.low=Wil}var chh=eh&fh^~eh&gh;var chl=el&fl^~el≷var majh=ah&bh^ah&ch^bh&ch;var majl=al&bl^al&cl^bl&cl;var sigma0h= +(ah>>>28|al<<4)^(ah<<30|al>>>2)^(ah<<25|al>>>7);var sigma0l=(al>>>28|ah<<4)^(al<<30|ah>>>2)^(al<<25|ah>>>7);var sigma1h=(eh>>>14|el<<18)^(eh>>>18|el<<14)^(eh<<23|el>>>9);var sigma1l=(el>>>14|eh<<18)^(el>>>18|eh<<14)^(el<<23|eh>>>9);var Ki=K[i];var Kih=Ki.high;var Kil=Ki.low;var t1l=hl+sigma1l;var t1h=hh+sigma1h+(t1l>>>0>>0?1:0);var t1l=t1l+chl;var t1h=t1h+chh+(t1l>>>0>>0?1:0);var t1l=t1l+Kil;var t1h=t1h+Kih+(t1l>>>0>>0?1:0);var t1l=t1l+Wil;var t1h=t1h+Wih+(t1l>>>0>>0?1:0);var t2l= +sigma0l+majl;var t2h=sigma0h+majh+(t2l>>>0>>0?1:0);hh=gh;hl=gl;gh=fh;gl=fl;fh=eh;fl=el;el=dl+t1l|0;eh=dh+t1h+(el>>>0
>>0?1:0)|0;dh=ch;dl=cl;ch=bh;cl=bl;bh=ah;bl=al;al=t1l+t2l|0;ah=t1h+t2h+(al>>>0>>0?1:0)|0}H0l=H0.low=H0l+al;H0.high=H0h+ah+(H0l>>>0>>0?1:0);H1l=H1.low=H1l+bl;H1.high=H1h+bh+(H1l>>>0>>0?1:0);H2l=H2.low=H2l+cl;H2.high=H2h+ch+(H2l>>>0>>0?1:0);H3l=H3.low=H3l+dl;H3.high=H3h+dh+(H3l>>>0
>>0?1:0);H4l=H4.low=H4l+el;H4.high=H4h+eh+(H4l>>>0>>0?1:0);H5l=H5.low= +H5l+fl;H5.high=H5h+fh+(H5l>>>0>>0?1:0);H6l=H6.low=H6l+gl;H6.high=H6h+gh+(H6l>>>0>>0?1:0);H7l=H7.low=H7l+hl;H7.high=H7h+hh+(H7l>>>0>>0?1:0)},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+128>>>10<<5)+30]=Math.floor(nBitsTotal/4294967296);dataWords[(nBitsLeft+128>>>10<<5)+31]=nBitsTotal;data.sigBytes=dataWords.length*4;this._process(); +var hash=this._hash.toX32();return hash},clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone},blockSize:1024/32});C.SHA512=Hasher._createHelper(SHA512);C.HmacSHA512=Hasher._createHmacHelper(SHA512)})();return CryptoJS.SHA512})},{"./core":5,"./x64-core":36}],35:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"),require("./md5"),require("./evpkdf"), +require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var BlockCipher=C_lib.BlockCipher;var C_algo=C.algo;var PC1=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4];var PC2= +[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32];var BIT_SHIFTS=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28];var SBOX_P=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890, +671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0, +134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304, +218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288, +436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660, +7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0, +25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648, +589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648, +1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040, +45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040, +122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8, +896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616, +6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032, +368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728, +2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728, +2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}];var SBOX_MASK=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679];var DES=C_algo.DES=BlockCipher.extend({_doReset:function(){var key=this._key;var keyWords=key.words;var keyBits=[];for(var i=0;i<56;i++){var keyBitPos=PC1[i]-1;keyBits[i]=keyWords[keyBitPos>>>5]>>>31-keyBitPos%32&1}var subKeys=this._subKeys=[];for(var nSubKey= +0;nSubKey<16;nSubKey++){var subKey=subKeys[nSubKey]=[];var bitShift=BIT_SHIFTS[nSubKey];for(var i=0;i<24;i++){subKey[i/6|0]|=keyBits[(PC2[i]-1+bitShift)%28]<<31-i%6;subKey[4+(i/6|0)]|=keyBits[28+(PC2[i+24]-1+bitShift)%28]<<31-i%6}subKey[0]=subKey[0]<<1|subKey[0]>>>31;for(var i=1;i<7;i++)subKey[i]=subKey[i]>>>(i-1)*4+3;subKey[7]=subKey[7]<<5|subKey[7]>>>27}var invSubKeys=this._invSubKeys=[];for(var i=0;i<16;i++)invSubKeys[i]=subKeys[15-i]},encryptBlock:function(M,offset){this._doCryptBlock(M,offset, +this._subKeys)},decryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._invSubKeys)},_doCryptBlock:function(M,offset,subKeys){this._lBlock=M[offset];this._rBlock=M[offset+1];exchangeLR.call(this,4,252645135);exchangeLR.call(this,16,65535);exchangeRL.call(this,2,858993459);exchangeRL.call(this,8,16711935);exchangeLR.call(this,1,1431655765);for(var round=0;round<16;round++){var subKey=subKeys[round];var lBlock=this._lBlock;var rBlock=this._rBlock;var f=0;for(var i=0;i<8;i++)f|=SBOX_P[i][((rBlock^ +subKey[i])&SBOX_MASK[i])>>>0];this._lBlock=rBlock;this._rBlock=lBlock^f}var t=this._lBlock;this._lBlock=this._rBlock;this._rBlock=t;exchangeLR.call(this,1,1431655765);exchangeRL.call(this,8,16711935);exchangeRL.call(this,2,858993459);exchangeLR.call(this,16,65535);exchangeLR.call(this,4,252645135);M[offset]=this._lBlock;M[offset+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function exchangeLR(offset,mask){var t=(this._lBlock>>>offset^this._rBlock)&mask;this._rBlock^=t;this._lBlock^= +t<>>offset^this._lBlock)&mask;this._lBlock^=t;this._rBlock^=t<=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}},"+CM9":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("ot5s")(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n("NNrz")(o)),"Array",{indexOf:function(t){return a?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},"+E39":function(t,e,n){t.exports=!n("S82l")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"+MLA":function(t,e,n){var r=n("EqjI"),i=n("06OY").onFreeze;n("uqUo")("freeze",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},"+Mt+":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("7gX0"),o=n("OzIq"),a=n("7O1s"),s=n("nphH");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,i.Promise||o.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},"+ZMJ":function(t,e,n){var r=n("lOnJ");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},"+gg+":function(t,e,n){var r=n("TQ3y")["__core-js_shared__"];t.exports=r},"+tPU":function(t,e,n){n("xGkn");for(var r=n("7KvD"),i=n("hJx8"),o=n("/bQp"),a=n("dSzd")("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function p(t){return null==t?"":Array.isArray(t)||u(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function d(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}var g=Object.prototype.hasOwnProperty;function _(t,e){return g.call(t,e)}function b(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,x=b(function(t){return t.replace(w,function(t,e){return e?e.toUpperCase():""})}),S=b(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),k=/\B([A-Z])/g,C=b(function(t){return t.replace(k,"-$1").toLowerCase()});var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function E(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function O(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,J=G&&G.indexOf("edge/")>0,Z=(G&&G.indexOf("android"),G&&/iphone|ipad|ipod|ios/.test(G)||"ios"===Y),tt=(G&&/chrome\/\d+/.test(G),G&&/phantomjs/.test(G),G&&G.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(q)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,rt)}catch(t){}var it=function(){return void 0===V&&(V=!q&&!X&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),V},ot=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,ct="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);st="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=P,lt=0,ft=function(){this.id=lt++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){y(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(o&&!_(i,"default"))a=!1;else if(""===a||a===C(t)){var c=Ut(String,i.type);(c<0||s0&&(le((u=t(u,(n||"")+"_"+c))[0])&&le(f)&&(s[l]=gt(f.text+u[0].text),u.shift()),s.push.apply(s,u)):a(u)?le(f)?s[l]=gt(f.text+u):""!==u&&s.push(gt(u)):le(u)&&le(f)?s[l]=gt(f.text+u.text):(o(e._isVList)&&i(u.tag)&&r(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+c+"__"),s.push(u)));return s}(t):void 0}function le(t){return i(t)&&i(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=ct?Reflect.ownKeys(t):Object.keys(t),i=0;idocument.createEvent("Event").timeStamp&&(ln=function(){return performance.now()});var hn=0,pn=function(t,e,n,r,i){this.vm=t,i&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++hn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new st,this.newDepIds=new st,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!$.test(t)){var e=t.split(".");return function(t){for(var n=0;ncn&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);an||(an=!0,ee(fn))}}(this)},pn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||s(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Ht(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},pn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},pn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var dn={enumerable:!0,configurable:!0,get:P,set:P};function vn(t,e,n){dn.get=function(){return this[e][n]},dn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,dn)}function mn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[],o=!t.$parent;o||kt(!1);var a=function(o){i.push(o);var a=Nt(o,e,n,t);Et(r,o,a),o in t||vn(t,"_props",o)};for(var s in e)a(s);kt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?P:T(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;u(e=t._data="function"==typeof e?function(t,e){pt();try{return t.call(e,e)}catch(t){return Ht(t,e,"data()"),{}}finally{dt()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,i=(t.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&_(r,o)||U(o)||vn(t,"_data",o)}Tt(e,!0)}(t):Tt(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=it();for(var i in e){var o=e[i],a="function"==typeof o?o:o.get;0,r||(n[i]=new pn(t,a||P,P,yn)),i in t||gn(t,i,o)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function On(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var a=n[o];if(a){var s=Tn(a.componentOptions);s&&!e(s)&&An(n,o,r,i)}}}function An(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=xn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Rt(Sn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ke(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,r=t.$vnode=e._parentVnode,i=r&&r.context;t.$slots=he(e._renderChildren,i),t.$scopedSlots=n,t._c=function(e,n,r,i){return Ue(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Ue(t,e,n,r,i,!0)};var o=r&&r.data;Et(t,"$attrs",o&&o.attrs||n,null,!0),Et(t,"$listeners",e._parentListeners||n,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(kt(!1),Object.keys(e).forEach(function(n){Et(t,n,e[n])}),kt(!0))}(e),mn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(kn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Ot,t.prototype.$delete=At,t.prototype.$watch=function(t,e,n){if(u(e))return wn(this,t,e,n);(n=n||{}).user=!0;var r=new pn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Ht(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(kn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var i=0,o=t.length;i1?E(n):n;for(var r=E(arguments,1),i='event handler for "'+t+'"',o=0,a=n.length;oparseInt(this.max)&&An(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return B}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:O,mergeOptions:Rt,defineReactive:Et},t.set=Ot,t.delete=At,t.nextTick=ee,t.observable=function(t){return Tt(t),t},t.options=Object.create(null),F.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,O(t.options.components,Mn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Rt(this.options,t),this}}(t),Cn(t),function(t){F.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(kn),Object.defineProperty(kn.prototype,"$isServer",{get:it}),Object.defineProperty(kn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kn,"FunctionalRenderContext",{value:je}),kn.version="2.6.6";var jn=v("style,class"),In=v("input,textarea,option,select,progress"),Ln=v("contenteditable,draggable,spellcheck"),Dn=v("events,caret,typing,plaintext-only"),Rn=function(t,e){return Un(e)||"false"===e?"false":"contenteditable"===t&&Dn(e)?e:"true"},Fn=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Nn="http://www.w3.org/1999/xlink",Bn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},zn=function(t){return Bn(t)?t.slice(6,t.length):""},Un=function(t){return null==t||!1===t};function Hn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=$n(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=$n(e,n.data));return function(t,e){if(i(t)||i(e))return Vn(t,Wn(e));return""}(e.staticClass,e.class)}function $n(t,e){return{staticClass:Vn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Vn(t,e){return t?e?t+" "+e:t:e||""}function Wn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?dr(t,e,n):Fn(e)?Un(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Ln(e)?t.setAttribute(e,Rn(e,n)):Bn(e)?Un(n)?t.removeAttributeNS(Nn,zn(e)):t.setAttributeNS(Nn,e,n):dr(t,e,n)}function dr(t,e,n){if(Un(n))t.removeAttribute(e);else{if(K&&!Q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var vr={create:hr,update:hr};function mr(t,e){var n=e.elm,o=e.data,a=t.data;if(!(r(o.staticClass)&&r(o.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var s=Hn(e),c=n._transitionClasses;i(c)&&(s=Vn(s,Wn(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var yr,gr={create:mr,update:mr},_r="__r",br="__c";function wr(t,e,n){var r=yr;return function i(){null!==e.apply(null,arguments)&&kr(t,i,n,r)}}var xr=Xt&&!(tt&&Number(tt[1])<=53);function Sr(t,e,n,r){if(xr){var i=un,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||0===t.timeStamp||t.target.ownerDocument!==document)return o.apply(this,arguments)}}yr.addEventListener(t,e,nt?{capture:n,passive:r}:n)}function kr(t,e,n,r){(r||yr).removeEventListener(t,e._wrapper||e,n)}function Cr(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},o=t.data.on||{};yr=e.elm,function(t){if(i(t[_r])){var e=K?"change":"input";t[e]=[].concat(t[_r],t[e]||[]),delete t[_r]}i(t[br])&&(t.change=[].concat(t[br],t.change||[]),delete t[br])}(n),ae(n,o,Sr,kr,wr,e.context),yr=void 0}}var Tr,Er={create:Cr,update:Cr};function Or(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,o,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in i(c.__ob__)&&(c=e.data.domProps=O({},c)),s)r(c[n])&&(a[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n||o!==s[n])if("value"===n){a._value=o;var u=r(o)?"":String(o);Ar(a,u)&&(a.value=u)}else if("innerHTML"===n&&Yn(a.tagName)&&r(a.innerHTML)){(Tr=Tr||document.createElement("div")).innerHTML=""+o+"";for(var l=Tr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else a[n]=o}}}function Ar(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return d(n)!==d(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Pr={create:Or,update:Or},Mr=b(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function jr(t){var e=Ir(t.style);return t.staticStyle?O(t.staticStyle,e):e}function Ir(t){return Array.isArray(t)?A(t):"string"==typeof t?Mr(t):t}var Lr,Dr=/^--/,Rr=/\s*!important$/,Fr=function(t,e,n){if(Dr.test(e))t.style.setProperty(e,n);else if(Rr.test(n))t.style.setProperty(C(e),n.replace(Rr,""),"important");else{var r=Br(e);if(Array.isArray(n))for(var i=0,o=n.length;i-1?e.split(Hr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Vr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Hr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Wr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&O(e,qr(t.name||"v")),O(e,t),e}return"string"==typeof t?qr(t):void 0}}var qr=b(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Xr=q&&!Q,Yr="transition",Gr="animation",Kr="transition",Qr="transitionend",Jr="animation",Zr="animationend";Xr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Kr="WebkitTransition",Qr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Jr="WebkitAnimation",Zr="webkitAnimationEnd"));var ti=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function ei(t){ti(function(){ti(t)})}function ni(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),$r(t,e))}function ri(t,e){t._transitionClasses&&y(t._transitionClasses,e),Vr(t,e)}function ii(t,e,n){var r=ai(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Yr?Qr:Zr,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c0&&(n=Yr,l=a,f=o.length):e===Gr?u>0&&(n=Gr,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Yr:Gr:null)?n===Yr?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Yr&&oi.test(r[Kr+"Property"])}}function si(t,e){for(;t.length1}function pi(t,e){!0!==e.data.show&&ui(e)}var di=function(t){var e,n,s={},c=t.modules,u=t.nodeOps;for(e=0;ed?_(t,r(n[y+1])?null:n[y+1].elm,n,p,y,o):p>y&&w(0,e,h,d)}(h,v,y,n,l):i(y)?(i(t.text)&&u.setTextContent(h,""),_(h,null,y,0,y.length-1,n)):i(v)?w(0,v,0,v.length-1):i(t.text)&&u.setTextContent(h,""):t.text!==e.text&&u.setTextContent(h,e.text),i(d)&&i(p=d.hook)&&i(p=p.postpatch)&&p(t,e)}}}function C(t,e,n){if(o(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==o&&(a.selected=o);else if(I(_i(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function gi(t,e){return e.every(function(e){return!I(e,t)})}function _i(t){return"_value"in t?t._value:t.value}function bi(t){t.target.composing=!0}function wi(t){t.target.composing&&(t.target.composing=!1,xi(t.target,"input"))}function xi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Si(t){return!t.componentInstance||t.data&&t.data.transition?t:Si(t.componentInstance._vnode)}var ki={model:vi,show:{bind:function(t,e,n){var r=e.value,i=(n=Si(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,ui(n,function(){t.style.display=o})):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Si(n)).data&&n.data.transition?(n.data.show=!0,r?ui(n,function(){t.style.display=t.__vOriginalDisplay}):li(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}}},Ci={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ti(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ti(qe(e.children)):t}function Ei(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[x(o)]=i[o];return e}function Oi(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Ai=function(t){return t.tag||We(t)},Pi=function(t){return"show"===t.name},Mi={name:"transition",props:Ci,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Ai)).length){0;var r=this.mode;0;var i=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return i;var o=Ti(i);if(!o)return i;if(this._leaving)return Oi(t,i);var s="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?s+"comment":s+o.tag:a(o.key)?0===String(o.key).indexOf(s)?o.key:s+o.key:o.key;var c=(o.data||(o.data={})).transition=Ei(this),u=this._vnode,l=Ti(u);if(o.data.directives&&o.data.directives.some(Pi)&&(o.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,l)&&!We(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=O({},c);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Oi(t,i);if("in-out"===r){if(We(o))return u;var h,p=function(){h()};se(c,"afterEnter",p),se(c,"enterCancelled",p),se(f,"delayLeave",function(t){h=t})}}return i}}},ji=O({tag:String,moveClass:String},Ci);function Ii(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Li(t){t.data.newPos=t.elm.getBoundingClientRect()}function Di(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete ji.mode;var Ri={Transition:Mi,TransitionGroup:{props:ji,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var i=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Ei(this),s=0;s-1?Kn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Kn[t]=/HTMLUnknownElement/.test(e.toString())},O(kn.options.directives,ki),O(kn.options.components,Ri),kn.prototype.__patch__=q?di:P,kn.prototype.$mount=function(t,e){return function(t,e,n){return t.$el=e,t.$options.render||(t.$options.render=yt),en(t,"beforeMount"),new pn(t,function(){t._update(t._render(),n)},P,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&q?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},q&&setTimeout(function(){B.devtools&&ot&&ot.emit("init",kn)},0),e.a=kn}).call(e,n("DuR2"))},"/GnY":function(t,e,n){var r=n("HT7L"),i=n("W529"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))o.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"/bQp":function(t,e){t.exports={}},"/n6Q":function(t,e,n){n("zQR9"),n("+tPU"),t.exports=n("Kh4W").f("iterator")},"/ocq":function(t,e,n){"use strict"; +/*! + * vue-router v3.5.1 + * (c) 2021 Evan You + * @license MIT + */function r(t,e){0}function i(t,e){for(var n in e)t[n]=e[n];return t}var o=/[!'()*]/g,a=function(t){return"%"+t.charCodeAt(0).toString(16)},s=/%2C/g,c=function(t){return encodeURIComponent(t).replace(o,a).replace(s,",")};function u(t){try{return decodeURIComponent(t)}catch(t){0}return t}var l=function(t){return null==t||"object"==typeof t?t:String(t)};function f(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=u(n.shift()),i=n.length>0?u(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]}),e):e}function h(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return c(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(c(e)):r.push(c(e)+"="+c(t)))}),r.join("&")}return c(e)+"="+c(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var p=/\/?$/;function d(t,e,n,r){var i=r&&r.options.stringifyQuery,o=e.query||{};try{o=v(o)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:y(e,i),matched:t?function(t){var e=[];for(;t;)e.unshift(t),t=t.parent;return e}(t):[]};return n&&(a.redirectedFrom=y(n,i)),Object.freeze(a)}function v(t){if(Array.isArray(t))return t.map(v);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=v(t[n]);return e}return t}var m=d(null,{path:"/"});function y(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var i=t.hash;return void 0===i&&(i=""),(n||"/")+(e||h)(r)+i}function g(t,e,n){return e===m?t===e:!!e&&(t.path&&e.path?t.path.replace(p,"")===e.path.replace(p,"")&&(n||t.hash===e.hash&&_(t.query,e.query)):!(!t.name||!e.name)&&(t.name===e.name&&(n||t.hash===e.hash&&_(t.query,e.query)&&_(t.params,e.params))))}function _(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t).sort(),r=Object.keys(e).sort();return n.length===r.length&&n.every(function(n,i){var o=t[n];if(r[i]!==n)return!1;var a=e[n];return null==o||null==a?o===a:"object"==typeof o&&"object"==typeof a?_(o,a):String(o)===String(a)})}function b(t){for(var e=0;e=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}(o.path||""),h=e&&e.path||"/",p=u.path?S(u.path,h,n||o.append):h,d=function(t,e,n){void 0===e&&(e={});var r,i=n||f;try{r=i(t||"")}catch(t){r={}}for(var o in e){var a=e[o];r[o]=Array.isArray(a)?a.map(l):l(a)}return r}(u.query,o.query,r&&r.options.parseQuery),v=o.hash||u.hash;return v&&"#"!==v.charAt(0)&&(v="#"+v),{_normalized:!0,path:p,query:d,hash:v}}var V,W=[String,Object],q=[String,Array],X=function(){},Y={name:"RouterLink",props:{to:{type:W,required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:q,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),a=o.location,s=o.route,c=o.href,u={},l=n.options.linkActiveClass,f=n.options.linkExactActiveClass,h=null==l?"router-link-active":l,v=null==f?"router-link-exact-active":f,m=null==this.activeClass?h:this.activeClass,y=null==this.exactActiveClass?v:this.exactActiveClass,_=s.redirectedFrom?d(null,$(s.redirectedFrom),null,n):s;u[y]=g(r,_,this.exactPath),u[m]=this.exact||this.exactPath?u[y]:function(t,e){return 0===t.path.replace(p,"/").indexOf(e.path.replace(p,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,_);var b=u[y]?this.ariaCurrentValue:null,w=function(t){G(t)&&(e.replace?n.replace(a,X):n.push(a,X))},x={click:G};Array.isArray(this.event)?this.event.forEach(function(t){x[t]=w}):x[this.event]=w;var S={class:u},k=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:c,route:s,navigate:w,isActive:u[m],isExactActive:u[y]});if(k){if(1===k.length)return k[0];if(k.length>1||!k.length)return 0===k.length?t():t("span",{},k)}if("a"===this.tag)S.on=x,S.attrs={href:c,"aria-current":b};else{var C=function t(e){if(e)for(var n,r=0;r-1&&(s.params[h]=n.params[h]);return s.path=H(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var p=0;p=t.length?n():t[i]?e(t[i],function(){r(i+1)}):r(i+1)};r(0)}var wt={redirected:2,aborted:4,cancelled:8,duplicated:16};function xt(t,e){return kt(t,e,wt.redirected,'Redirected when going from "'+t.fullPath+'" to "'+function(t){if("string"==typeof t)return t;if("path"in t)return t.path;var e={};return Ct.forEach(function(n){n in t&&(e[n]=t[n])}),JSON.stringify(e,null,2)}(e)+'" via a navigation guard.')}function St(t,e){return kt(t,e,wt.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function kt(t,e,n,r){var i=new Error(r);return i._isRouter=!0,i.from=t,i.to=e,i.type=n,i}var Ct=["params","query","hash"];function Tt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Et(t,e){return Tt(t)&&t._isRouter&&(null==e||t.type===e)}function Ot(t){return function(e,n,r){var i=!1,o=0,a=null;At(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){i=!0,o++;var c,u=jt(function(e){var i;((i=e).__esModule||Mt&&"Module"===i[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:V.extend(e),n.components[s]=e,--o<=0&&r()}),l=jt(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Tt(t)?t:new Error(e),r(a))});try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var f=c.component;f&&"function"==typeof f.then&&f.then(u,l)}}}),i||r()}}function At(t,e){return Pt(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function Pt(t){return Array.prototype.concat.apply([],t)}var Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function jt(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var It=function(t,e){this.router=t,this.base=function(t){if(!t)if(Q){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Lt(t,e,n,r){var i=At(t,function(t,r,i,o){var a=function(t,e){"function"!=typeof t&&(t=V.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,i,o)}):n(a,r,i,o)});return Pt(r?i.reverse():i)}function Dt(t,e){if(e)return function(){return t.apply(e,arguments)}}It.prototype.listen=function(t){this.cb=t},It.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},It.prototype.onError=function(t){this.errorCbs.push(t)},It.prototype.transitionTo=function(t,e,n){var r,i=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach(function(e){e(t)}),t}var o=this.current;this.confirmTransition(r,function(){i.updateRoute(r),e&&e(r),i.ensureURL(),i.router.afterHooks.forEach(function(t){t&&t(r,o)}),i.ready||(i.ready=!0,i.readyCbs.forEach(function(t){t(r)}))},function(t){n&&n(t),t&&!i.ready&&(Et(t,wt.redirected)&&o===m||(i.ready=!0,i.readyErrorCbs.forEach(function(e){e(t)})))})},It.prototype.confirmTransition=function(t,e,n){var i=this,o=this.current;this.pending=t;var a,s,c=function(t){!Et(t)&&Tt(t)&&(i.errorCbs.length?i.errorCbs.forEach(function(e){e(t)}):r()),n&&n(t)},u=t.matched.length-1,l=o.matched.length-1;if(g(t,o)&&u===l&&t.matched[u]===o.matched[l])return this.ensureURL(),c(((s=kt(a=o,t,wt.duplicated,'Avoided redundant navigation to current location: "'+a.fullPath+'".')).name="NavigationDuplicated",s));var f=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=yt&&n;r&&this.listeners.push(st());var i=function(){var n=t.current,i=Ft(t.base);t.current===m&&i===t._startLocation||t.transitionTo(i,function(t){r&&ct(e,t,n,!0)})};window.addEventListener("popstate",i),this.listeners.push(function(){window.removeEventListener("popstate",i)})}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){gt(k(r.base+t.fullPath)),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){_t(k(r.base+t.fullPath)),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(Ft(this.base)!==this.current.fullPath){var e=k(this.base+this.current.fullPath);t?gt(e):_t(e)}},e.prototype.getCurrentLocation=function(){return Ft(this.base)},e}(It);function Ft(t){var e=window.location.pathname;return t&&0===e.toLowerCase().indexOf(t.toLowerCase())&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Nt=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ft(t);if(!/^\/#/.test(e))return window.location.replace(k(t+"/#"+e)),!0}(this.base)||Bt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=yt&&e;n&&this.listeners.push(st());var r=function(){var e=t.current;Bt()&&t.transitionTo(zt(),function(r){n&&ct(t.router,r,e,!0),yt||$t(r.fullPath)})},i=yt?"popstate":"hashchange";window.addEventListener(i,r),this.listeners.push(function(){window.removeEventListener(i,r)})}},e.prototype.push=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){Ht(t.fullPath),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){$t(t.fullPath),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;zt()!==e&&(t?Ht(e):$t(e))},e.prototype.getCurrentLocation=function(){return zt()},e}(It);function Bt(){var t=zt();return"/"===t.charAt(0)||($t("/"+t),!1)}function zt(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Ut(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ht(t){yt?gt(Ut(t)):window.location.hash=t}function $t(t){yt?_t(Ut(t)):window.location.replace(Ut(t))}var Vt=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach(function(e){e&&e(r,t)})},function(t){Et(t,wt.duplicated)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(It),Wt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Z(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!yt&&!1!==t.fallback,this.fallback&&(e="hash"),Q||(e="abstract"),this.mode=e,e){case"history":this.history=new Rt(this,t.base);break;case"hash":this.history=new Nt(this,t.base,this.fallback);break;case"abstract":this.history=new Vt(this,t.base);break;default:0}},qt={currentRoute:{configurable:!0}};function Xt(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Wt.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},qt.currentRoute.get=function(){return this.history&&this.history.current},Wt.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()}),!this.app){this.app=t;var n=this.history;if(n instanceof Rt||n instanceof Nt){var r=function(t){n.setupListeners(),function(t){var r=n.current,i=e.options.scrollBehavior;yt&&i&&"fullPath"in t&&ct(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Wt.prototype.beforeEach=function(t){return Xt(this.beforeHooks,t)},Wt.prototype.beforeResolve=function(t){return Xt(this.resolveHooks,t)},Wt.prototype.afterEach=function(t){return Xt(this.afterHooks,t)},Wt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Wt.prototype.onError=function(t){this.history.onError(t)},Wt.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},Wt.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},Wt.prototype.go=function(t){this.history.go(t)},Wt.prototype.back=function(){this.go(-1)},Wt.prototype.forward=function(){this.go(1)},Wt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Wt.prototype.resolve=function(t,e,n){var r=$(t,e=e||this.history.current,n,this),i=this.match(r,e),o=i.redirectedFrom||i.fullPath;return{location:r,route:i,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?k(t+"/"+r):r}(this.history.base,o,this.mode),normalizedTo:r,resolved:i}},Wt.prototype.getRoutes=function(){return this.matcher.getRoutes()},Wt.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Wt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Wt.prototype,qt),Wt.install=K,Wt.version="3.5.1",Wt.isNavigationFailure=Et,Wt.NavigationFailureType=wt,Wt.START_LOCATION=m,Q&&window.Vue&&window.Vue.use(Wt),e.a=Wt},"/whu":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"06OY":function(t,e,n){var r=n("3Eo+")("meta"),i=n("EqjI"),o=n("D2L2"),a=n("evD5").f,s=0,c=Object.isExtensible||function(){return!0},u=!n("S82l")(function(){return c(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!c(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!o(t,r)){if(!c(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return u&&f.NEED&&c(t)&&!o(t,r)&&l(t),t}}},"07k+":function(t,e,n){for(var r,i=n("OzIq"),o=n("2p1q"),a=n("ulTY"),s=a("typed_array"),c=a("view"),u=!(!i.ArrayBuffer||!i.DataView),l=u,f=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");f<9;)(r=i[h[f++]])?(o(r.prototype,s,!0),o(r.prototype,c,!0)):l=!1;t.exports={ABV:u,CONSTR:l,TYPED:s,VIEW:c}},"09Qt":function(t,e,n){var r=n("uIr7"),i=n("vi0E"),o=n("l9Lx"),a=n("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)r(e,o(t)),t=i(t);return e}:a;t.exports=s},"0Rih":function(t,e,n){"use strict";var r=n("OzIq"),i=n("Ds5P"),o=n("R3AP"),a=n("A16L"),s=n("1aA0"),c=n("vmSO"),u=n("9GpA"),l=n("UKM+"),f=n("zgIt"),h=n("qkyc"),p=n("yYvK"),d=n("kic5");t.exports=function(t,e,n,v,m,y){var g=r[t],_=g,b=m?"set":"add",w=_&&_.prototype,x={},S=function(t){var e=w[t];o(w,t,"delete"==t?function(t){return!(y&&!l(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(y&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return y&&!l(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof _&&(y||w.forEach&&!f(function(){(new _).entries().next()}))){var k=new _,C=k[b](y?{}:-0,1)!=k,T=f(function(){k.has(1)}),E=h(function(t){new _(t)}),O=!y&&f(function(){for(var t=new _,e=5;e--;)t[b](e,e);return!t.has(-0)});E||((_=e(function(e,n){u(e,_,t);var r=d(new g,e,_);return void 0!=n&&c(n,m,r[b],r),r})).prototype=w,w.constructor=_),(T||O)&&(S("delete"),S("has"),m&&S("get")),(O||C)&&S(b),y&&w.clear&&delete w.clear}else _=v.getConstructor(e,t,m,b),a(_.prototype,n),s.NEED=!0;return p(_,t),x[t]=_,i(i.G+i.W+i.F*(_!=g),x),y||v.setStrong(_,t,m),_}},"0j1G":function(t,e,n){"use strict";var r=n("Ds5P");t.exports=function(t){r(r.S,t,{of:function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)}})}},"0pGU":function(t,e,n){"use strict";var r=n("DIVP");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0uX4":function(t,e,n){var r=n("NkRn"),i=r?r.prototype:void 0,o=i?i.valueOf:void 0;t.exports=function(t){return o?Object(o.call(t)):{}}},"1A13":function(t,e,n){"use strict";var r=n("49qz")(!0);n("uc2A")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},"1ETD":function(t,e,n){var r=n("kkCw")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(t){}}return!0}},"1QDk":function(t,e,n){var r=n("tv3T"),i=n("09Qt");t.exports=function(t,e){return r(t,i(t),e)}},"1Yb9":function(t,e,n){var r=n("mgnk"),i=n("UnEC"),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return i(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1aA0":function(t,e,n){var r=n("ulTY")("meta"),i=n("UKM+"),o=n("WBcL"),a=n("lDLk").f,s=0,c=Object.isExtensible||function(){return!0},u=!n("zgIt")(function(){return c(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!c(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!o(t,r)){if(!c(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return u&&f.NEED&&c(t)&&!o(t,r)&&l(t),t}}},"1ip3":function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},"1kS7":function(t,e){e.f=Object.getOwnPropertySymbols},"1uLP":function(t,e,n){var r=n("Ds5P");r(r.G+r.W+r.F*!n("07k+").ABV,{DataView:n("LrcN").DataView})},"21It":function(t,e,n){"use strict";var r=n("FtD3");t.exports=function(t,e,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?e(r("Request failed with status code "+n.status,n.config,null,n.request,n)):t(n)}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,n){var r=n("imBK");t.exports=function(t){return r(this.__data__,t)>-1}},"2KxR":function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},"2VSL":function(t,e,n){var r=n("BbyF"),i=n("xAdt"),o=n("/whu");t.exports=function(t,e,n,a){var s=String(o(t)),c=s.length,u=void 0===n?" ":String(n),l=r(e);if(l<=c||""==u)return s;var f=l-c,h=i.call(u,Math.ceil(f/u.length));return h.length>f&&(h=h.slice(0,f)),a?h+s:s+h}},"2p1q":function(t,e,n){var r=n("lDLk"),i=n("fU25");t.exports=n("bUqO")?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},"32VL":function(t,e,n){"use strict";var r,i,o=n("0pGU"),a=RegExp.prototype.exec,s=String.prototype.replace,c=a,u=(r=/a/,i=/b*/g,a.call(r,"a"),a.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),l=void 0!==/()??/.exec("")[1];(u||l)&&(c=function(t){var e,n,r,i,c=this;return l&&(n=new RegExp("^"+c.source+"$(?!\\s)",o.call(c))),u&&(e=c.lastIndex),r=a.call(c,t),u&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(i=1;i=u?t?"":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536}}},"4IZP":function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},"4M2W":function(t,e,n){n("A0n/"),n("i68Q"),n("QzLV"),n("Hhm4"),n("C+4B"),n("W4Z6"),n("tJwI"),n("eC2H"),n("VTn2"),n("W/IU"),n("Y5ex"),n("WpPb"),n("+yjc"),n("gPva"),n("n12u"),n("nRs1"),n("jrHM"),n("gYYG"),n("3QrE"),n("EuXz"),n("PbPd"),n("S+E/"),n("EvFb"),n("QBuC"),n("QWLi"),n("ZRJK"),n("Stuz"),n("yuXV"),n("XtiL"),n("LG56"),n("A1ng"),n("WiIn"),n("aJ2J"),n("altv"),n("dULJ"),n("v2lb"),n("7Jvp"),n("lyhN"),n("kBOG"),n("xONB"),n("LlNE"),n("9xIj"),n("m6Yj"),n("wrs0"),n("Lqg1"),n("1ip3"),n("pWGb"),n("N4KQ"),n("Hl+4"),n("MjHD"),n("SRCy"),n("H0mh"),n("bqOW"),n("F3sI"),n("mhn7"),n("1A13"),n("Racj"),n("Y1S0"),n("Gh7F"),n("tqSY"),n("CvWX"),n("8Np7"),n("R4pa"),n("4RlI"),n("iM2X"),n("J+j9"),n("82of"),n("X/Hz"),n("eVIH"),n("UJiG"),n("SU+a"),n("5iw+"),n("EWrS"),n("J2ob"),n("QaEu"),n("8fhx"),n("UbXY"),n("Rk41"),n("4Q0w"),n("IMUI"),n("beEN"),n("xMpm"),n("j42X"),n("81dZ"),n("uDYd"),n("CEO+"),n("w6W7"),n("fOdq"),n("wVdn"),n("Nkrw"),n("wnRD"),n("lkT3"),n("+CM9"),n("oHKp"),n("9vc3"),n("No4x"),n("WpTh"),n("U6qc"),n("Q/CP"),n("WgSQ"),n("lnZN"),n("Jbuy"),n("FaZr"),n("pd+2"),n("MfeA"),n("VjuZ"),n("qwQ3"),n("mJx5"),n("y9m4"),n("MsuQ"),n("dSUw"),n("ZDXm"),n("V/H1"),n("9mmO"),n("1uLP"),n("52Wt"),n("TFWu"),n("MyjO"),n("qtRy"),n("THnP"),n("K0JP"),n("NfZy"),n("dTzs"),n("+vXH"),n("CVR+"),n("vmSu"),n("4ZU1"),n("yx1U"),n("X7aK"),n("SPtU"),n("A52B"),n("PuTd"),n("dm+7"),n("JG34"),n("Rw4K"),n("9mGU"),n("bUY0"),n("mTp7"),n("gbyG"),n("oF0V"),n("v90c"),n("+2+s"),n("smQ+"),n("m8F4"),n("xn9I"),n("LRL/"),n("sc7i"),n("9Yib"),n("vu/c"),n("zmx7"),n("YVn/"),n("FKfb"),n("oYp4"),n("dxQb"),n("xCpI"),n("AkTE"),n("h7Xi"),n("arGp"),n("JJ3w"),n("qZb+"),n("La7N"),n("BOYP"),n("4rmF"),n("Ygg6"),n("6Xxs"),n("qdHU"),n("DQfQ"),n("j/Lv"),n("U+VG"),n("X6NR"),n("W0pi"),n("taNN"),n("vnWP"),n("R3KI"),n("6iMJ"),n("B3Xn"),n("3s83"),n("F1ui"),n("uEEG"),n("i039"),n("H7zx"),n("+Mt+"),n("QcWB"),n("yJ2x"),n("3q4u"),n("NHaJ"),n("v3hU"),n("zZHq"),n("vsh6"),n("8WbS"),n("yOtE"),n("EZ+5"),n("aM0T"),n("nh2o"),n("v8VU"),n("dich"),n("fx22"),t.exports=n("7gX0")},"4Q0w":function(t,e,n){var r=n("kkCw")("toPrimitive"),i=Date.prototype;r in i||n("2p1q")(i,r,n("jB26"))},"4RlI":function(t,e,n){"use strict";n("y325")("blink",function(t){return function(){return t(this,"blink","","")}})},"4ZU1":function(t,e,n){var r=n("lDLk"),i=n("Ds5P"),o=n("DIVP"),a=n("s4j0");i(i.S+i.F*n("zgIt")(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){o(t),e=a(e,!0),o(n);try{return r.f(t,e,n),!0}catch(t){return!1}}})},"4mcu":function(t,e){t.exports=function(){}},"4rmF":function(t,e,n){n("iKpr")("Map")},"5/Qr":function(t,e,n){var r=n("Kzd6"),i=n("6Git"),o=n("WyC4"),a=n("0uX4"),s=n("Ilb/"),c="[object Boolean]",u="[object Date]",l="[object Map]",f="[object Number]",h="[object RegExp]",p="[object Set]",d="[object String]",v="[object Symbol]",m="[object ArrayBuffer]",y="[object DataView]",g="[object Float32Array]",_="[object Float64Array]",b="[object Int8Array]",w="[object Int16Array]",x="[object Int32Array]",S="[object Uint8Array]",k="[object Uint8ClampedArray]",C="[object Uint16Array]",T="[object Uint32Array]";t.exports=function(t,e,n){var E=t.constructor;switch(e){case m:return r(t);case c:case u:return new E(+t);case y:return i(t,n);case g:case _:case b:case w:case x:case S:case k:case C:case T:return s(t,n);case l:return new E;case f:case d:return new E(t);case h:return o(t);case p:return new E;case v:return a(t)}}},"52Wt":function(t,e,n){n("77Ug")("Int8",1,function(t){return function(e,n,r){return t(this,e,n,r)}})},"52gC":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"5K15":function(t,e,n){ +/** + * vue-meta-info v0.1.7 + * (c) 2018 monkeyWang + * @license MIT + */var r;r=function(){"use strict";var t="data-vue-meta-info";function e(){var e=document.getElementsByTagName("head")[0];return{setMetaInfo:function(n){var r=function(r){"title"!==r?n.hasOwnProperty(r)&&n[r].forEach(function(n){var i=document.createElement(r);!function(e,n){for(var r in e.setAttribute(t,!0),n)n.hasOwnProperty(r)&&e.setAttribute(r,n[r])}(i,n),e.appendChild(i)}):document.title=n.title};for(var i in n)r(i)},removeMetaInfo:function(){!function(e){for(var n=e.querySelectorAll("["+t+"]"),r=n.length-1;r>-1;r--)"true"===n[r].getAttribute(t)&&e.removeChild(n[r])}(e)}}}function n(t){e().removeMetaInfo(),e().setMetaInfo(t)}var r=function(){};return r.install=function(t){t.mixin({beforeCreate:function(){var t=this;if(void 0!==this.$options.metaInfo){var e=typeof this.$options.metaInfo;this._hasMetaInfo=!0,void 0===this.$options.computed&&(this.$options.computed={}),this.$options.computed.$metaInfo="function"===e?this.$options.metaInfo:function(){return t.$options.metaInfo}}},created:function(){!function(t,e){var n=this;t&&e&&(t.title=e.title||"",t.render={},Object.keys(e).forEach(function(r){"title"!==r&&(t.render[r]=function(){var t="";return e[r]&&e[r].forEach(function(e){var n="<"+r+' data-vue-meta-info="true"';Object.keys(e).forEach(function(t){n+=t+'="'+e[t]+'"'}),t+=n+=">\n"}),t}.bind(n))}))}(this.$ssrContext,this.$metaInfo)},beforeMount:function(){this._hasMetaInfo&&n(this.$metaInfo)},mounted:function(){var t=this;this._hasMetaInfo&&this.$watch("$metaInfo",function(){n(t.$metaInfo)})},activated:function(){this._hasMetaInfo&&n(this.$metaInfo)},deactivated:function(){this._hasMetaInfo&&n(this.$metaInfo)}})},r},t.exports=r()},"5N57":function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Set");t.exports=r},"5PlU":function(t,e,n){var r=n("RY/4"),i=n("dSzd")("iterator"),o=n("/bQp");t.exports=n("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||o.hasOwnProperty(r(e))}},"5QVw":function(t,e,n){t.exports={default:n("BwfY"),__esModule:!0}},"5VQ+":function(t,e,n){"use strict";var r=n("cGG2");t.exports=function(t,e){r.forEach(t,function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])})}},"5iw+":function(t,e,n){"use strict";n("y325")("strike",function(t){return function(){return t(this,"strike","","")}})},"5zde":function(t,e,n){n("zQR9"),n("qyJz"),t.exports=n("FeBl").Array.from},"6+Wl":function(t,e,n){"use strict";var r,i=n("mvHQ"),o=n.n(i),a=n("bOdI"),s=n.n(a),c=null;r=window,c=function(t,e){if(!t.jWeixin){var n,r,i={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress"},a=function(){var t={};for(var e in i)t[i[e]]=e;return t}(),c=t.document,u=c.title,l=navigator.userAgent.toLowerCase(),f=navigator.platform.toLowerCase(),h=!(!f.match("mac")&&!f.match("win")),p=-1!=l.indexOf("wxdebugger"),d=-1!=l.indexOf("micromessenger"),v=-1!=l.indexOf("android"),m=-1!=l.indexOf("iphone")||-1!=l.indexOf("ipad"),y=(r=l.match(/micromessenger\/(\d+\.\d+\.\d+)/)||l.match(/micromessenger\/(\d+\.\d+)/))?r[1]:"",g={initStartTime:D(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},_={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:m?1:v?2:-1,clientVersion:y,url:encodeURIComponent(location.href)},b={},w={_completes:[]},x={state:0,data:{}};R(function(){g.initEndTime=D()});var S=!1,k=[],C=(n={config:function(e){L("config",b=e);var n=!1!==b.check;R(function(){if(n)O(i.config,{verifyJsApiList:I(b.jsApiList),verifyOpenTagList:I(b.openTagList)},function(){w._complete=function(t){g.preVerifyEndTime=D(),x.state=1,x.data=t},w.success=function(t){_.isPreVerifyOk=0},w.fail=function(t){w._fail?w._fail(t):x.state=-1};var t=w._completes;return t.push(function(){!function(){if(!(h||p||b.debug||y<"6.0.2"||_.systemType<0)){var t=new Image;_.appId=b.appId,_.initTime=g.initEndTime-g.initStartTime,_.preVerifyTime=g.preVerifyEndTime-g.preVerifyStartTime,C.getNetworkType({isInnerInvoke:!0,success:function(e){_.networkType=e.networkType;var n="https://open.weixin.qq.com/sdk/report?v="+_.version+"&o="+_.isPreVerifyOk+"&s="+_.systemType+"&c="+_.clientVersion+"&a="+_.appId+"&n="+_.networkType+"&i="+_.initTime+"&p="+_.preVerifyTime+"&u="+_.url;t.src=n}})}}()}),w.complete=function(e){for(var n=0,r=t.length;n>>0,o=n>>>0;return(e>>>0)-(r>>>0)-((~i&o|~(i^o)&i-o>>>0)>>>31)|0}})},"73qY":function(t,e,n){t.exports=n("VWgF")("native-function-to-string",Function.toString)},"77Pl":function(t,e,n){var r=n("EqjI");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},"77Ug":function(t,e,n){"use strict";if(n("bUqO")){var r=n("V3l/"),i=n("OzIq"),o=n("zgIt"),a=n("Ds5P"),s=n("07k+"),c=n("LrcN"),u=n("rFzY"),l=n("9GpA"),f=n("fU25"),h=n("2p1q"),p=n("A16L"),d=n("oeih"),v=n("BbyF"),m=n("8D8H"),y=n("zo/l"),g=n("s4j0"),_=n("WBcL"),b=n("wC1N"),w=n("UKM+"),x=n("FryR"),S=n("9vb1"),k=n("7ylX"),C=n("KOrd"),T=n("WcO1").f,E=n("SHe9"),O=n("ulTY"),A=n("kkCw"),P=n("LhTa"),M=n("ot5s"),j=n("7O1s"),I=n("WgSQ"),L=n("bN1p"),D=n("qkyc"),R=n("CEne"),F=n("zCYm"),N=n("DPsE"),B=n("lDLk"),z=n("x9zv"),U=B.f,H=z.f,$=i.RangeError,V=i.TypeError,W=i.Uint8Array,q=Array.prototype,X=c.ArrayBuffer,Y=c.DataView,G=P(0),K=P(2),Q=P(3),J=P(4),Z=P(5),tt=P(6),et=M(!0),nt=M(!1),rt=I.values,it=I.keys,ot=I.entries,at=q.lastIndexOf,st=q.reduce,ct=q.reduceRight,ut=q.join,lt=q.sort,ft=q.slice,ht=q.toString,pt=q.toLocaleString,dt=A("iterator"),vt=A("toStringTag"),mt=O("typed_constructor"),yt=O("def_constructor"),gt=s.CONSTR,_t=s.TYPED,bt=s.VIEW,wt=P(1,function(t,e){return Tt(j(t,t[yt]),e)}),xt=o(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),St=!!W&&!!W.prototype.set&&o(function(){new W(1).set({})}),kt=function(t,e){var n=d(t);if(n<0||n%e)throw $("Wrong offset!");return n},Ct=function(t){if(w(t)&&_t in t)return t;throw V(t+" is not a typed array!")},Tt=function(t,e){if(!(w(t)&&mt in t))throw V("It is not a typed array constructor!");return new t(e)},Et=function(t,e){return Ot(j(t,t[yt]),e)},Ot=function(t,e){for(var n=0,r=e.length,i=Tt(t,r);r>n;)i[n]=e[n++];return i},At=function(t,e,n){U(t,e,{get:function(){return this._d[n]}})},Pt=function(t){var e,n,r,i,o,a,s=x(t),c=arguments.length,l=c>1?arguments[1]:void 0,f=void 0!==l,h=E(s);if(void 0!=h&&!S(h)){for(a=h.call(s),r=[],e=0;!(o=a.next()).done;e++)r.push(o.value);s=r}for(f&&c>2&&(l=u(l,arguments[2],2)),e=0,n=v(s.length),i=Tt(this,n);n>e;e++)i[e]=f?l(s[e],e):s[e];return i},Mt=function(){for(var t=0,e=arguments.length,n=Tt(this,e);e>t;)n[t]=arguments[t++];return n},jt=!!W&&o(function(){pt.call(new W(1))}),It=function(){return pt.apply(jt?ft.call(Ct(this)):Ct(this),arguments)},Lt={copyWithin:function(t,e){return N.call(Ct(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return J(Ct(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return F.apply(Ct(this),arguments)},filter:function(t){return Et(this,K(Ct(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Z(Ct(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){G(Ct(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(Ct(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ut.apply(Ct(this),arguments)},lastIndexOf:function(t){return at.apply(Ct(this),arguments)},map:function(t){return wt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return st.apply(Ct(this),arguments)},reduceRight:function(t){return ct.apply(Ct(this),arguments)},reverse:function(){for(var t,e=Ct(this).length,n=Math.floor(e/2),r=0;r1?arguments[1]:void 0)},sort:function(t){return lt.call(Ct(this),t)},subarray:function(t,e){var n=Ct(this),r=n.length,i=y(t,r);return new(j(n,n[yt]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,v((void 0===e?r:y(e,r))-i))}},Dt=function(t,e){return Et(this,ft.call(Ct(this),t,e))},Rt=function(t){Ct(this);var e=kt(arguments[1],1),n=this.length,r=x(t),i=v(r.length),o=0;if(i+e>n)throw $("Wrong length!");for(;o255?255:255&r),i.v[p](n*e+i.o,r,xt)}(this,n,t)},enumerable:!0})};_?(d=n(function(t,n,r,i){l(t,d,u,"_d");var o,a,s,c,f=0,p=0;if(w(n)){if(!(n instanceof X||"ArrayBuffer"==(c=b(n))||"SharedArrayBuffer"==c))return _t in n?Ot(d,n):Pt.call(d,n);o=n,p=kt(r,e);var y=n.byteLength;if(void 0===i){if(y%e)throw $("Wrong length!");if((a=y-p)<0)throw $("Wrong length!")}else if((a=v(i)*e)+p>y)throw $("Wrong length!");s=a/e}else s=m(n),o=new X(a=s*e);for(h(t,"_d",{b:o,o:p,l:a,e:s,v:new Y(o)});f0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},"7KvD":function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"7O1s":function(t,e,n){var r=n("DIVP"),i=n("XSOZ"),o=n("kkCw")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[o])?e:i(n)}},"7UMu":function(t,e,n){var r=n("R9M2");t.exports=Array.isArray||function(t){return"Array"==r(t)}},"7YkW":function(t,e,n){var r=n("YeCl"),i=n("Cskv"),o=n("aQOO");function a(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new r;++edocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[o[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=c(),void 0===e?n:i(n,e)}},"8++/":function(t,e){t.exports=function(t){return t!=t}},"81dZ":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("d075"),o=n("ydD5"),a=n("zo/l"),s=n("BbyF"),c=[].slice;r(r.P+r.F*n("zgIt")(function(){i&&c.call(i)}),"Array",{slice:function(t,e){var n=s(this.length),r=o(this);if(e=void 0===e?n:e,"Array"==r)return c.call(this,t,e);for(var i=a(t,n),u=a(e,n),l=s(u-i),f=new Array(l),h=0;hi;)X(t,n=r[i++],e[n]);return t},G=function(t){var e=R.call(this,t=w(t,!0));return!(this===z&&i(N,t)&&!i(B,t))&&(!(e||!i(this,t)||!i(N,t)||i(this,L)&&this[L][t])||e)},K=function(t,e){if(t=b(t),e=w(e,!0),t!==z||!i(N,e)||i(B,e)){var n=O(t,e);return!n||!i(N,e)||i(t,L)&&t[L][e]||(n.enumerable=!0),n}},Q=function(t){for(var e,n=P(b(t)),r=[],o=0;n.length>o;)i(N,e=n[o++])||e==L||e==c||r.push(e);return r},J=function(t){for(var e,n=t===z,r=P(n?B:b(t)),o=[],a=0;r.length>a;)!i(N,e=r[a++])||n&&!i(z,e)||o.push(N[e]);return o};U||(s((M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(B,n),i(this,L)&&i(this[L],t)&&(this[L][t]=!1),V(this,t,x(1,n))};return o&&$&&V(z,t,{configurable:!0,set:e}),W(t)}).prototype,"toString",function(){return this._k}),C.f=K,T.f=X,n("WcO1").f=k.f=Q,n("Y1aA").f=G,n("Y1N3").f=J,o&&!n("V3l/")&&s(z,"propertyIsEnumerable",G,!0),d.f=function(t){return W(p(t))}),a(a.G+a.W+a.F*!U,{Symbol:M});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Z.length>tt;)p(Z[tt++]);for(var et=E(p.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!U,"Symbol",{for:function(t){return i(F,t+="")?F[t]:F[t]=M(t)},keyFor:function(t){if(!q(t))throw TypeError(t+" is not a symbol!");for(var e in F)if(F[e]===t)return e},useSetter:function(){$=!0},useSimple:function(){$=!1}}),a(a.S+a.F*!U,"Object",{create:function(t,e){return void 0===e?S(t):Y(S(t),e)},defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:K,getOwnPropertyNames:Q,getOwnPropertySymbols:J}),j&&a(a.S+a.F*(!U||u(function(){var t=M();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(_(e)||void 0!==t)&&!q(t))return y(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!q(e))return e}),r[1]=e,I.apply(j,r)}}),M.prototype[D]||n("2p1q")(M.prototype,D,M.prototype.valueOf),f(M,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},A16L:function(t,e,n){var r=n("R3AP");t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},A1ng:function(t,e,n){var r=n("Ds5P"),i=n("n982"),o=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},A52B:function(t,e,n){var r=n("x9zv"),i=n("Ds5P"),o=n("DIVP");i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(o(t),e)}})},A9mX:function(t,e,n){var r=n("pTUa");t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AkTE:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FryR"),o=n("s4j0"),a=n("KOrd"),s=n("x9zv").f;n("bUqO")&&r(r.P+n("dm6P"),"Object",{__lookupSetter__:function(t){var e,n=i(this),r=o(t,!0);do{if(e=s(n,r))return e.set}while(n=a(n))}})},B3Xn:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{imulh:function(t,e){var n=+t,r=+e,i=65535&n,o=65535&r,a=n>>16,s=r>>16,c=(a*o>>>0)+(i*o>>>16);return a*s+(c>>16)+((i*s>>>0)+(65535&c)>>16)}})},BO1k:function(t,e,n){t.exports={default:n("fxRn"),__esModule:!0}},BOYP:function(t,e,n){n("0j1G")("WeakSet")},BbyF:function(t,e,n){var r=n("oeih"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},BwfY:function(t,e,n){n("fWfb"),n("M6a0"),n("OYls"),n("QWe/"),t.exports=n("FeBl").Symbol},"C+4B":function(t,e,n){var r=n("PHqh"),i=n("x9zv").f;n("3i66")("getOwnPropertyDescriptor",function(){return function(t,e){return i(r(t),e)}})},"C+Ps":function(t,e,n){var r=n("Qh14"),i=n("Y1N3"),o=n("Y1aA");t.exports=function(t){var e=r(t),n=i.f;if(n)for(var a,s=n(t),c=o.f,u=0;s.length>u;)c.call(t,a=s[u++])&&e.push(a);return e}},C0hh:function(t,e){t.exports=function(){return[]}},C4MV:function(t,e,n){t.exports={default:n("9bBU"),__esModule:!0}},"CEO+":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(0),o=n("NNrz")([].forEach,!0);r(r.P+r.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},CEne:function(t,e,n){"use strict";var r=n("OzIq"),i=n("lDLk"),o=n("bUqO"),a=n("kkCw")("species");t.exports=function(t){var e=r[t];o&&e&&!e[a]&&i.f(e,a,{configurable:!0,get:function(){return this}})}},"CVR+":function(t,e,n){var r=n("Ds5P"),i=n("XSOZ"),o=n("DIVP"),a=(n("OzIq").Reflect||{}).apply,s=Function.apply;r(r.S+r.F*!n("zgIt")(function(){a(function(){})}),"Reflect",{apply:function(t,e,n){var r=i(t),c=o(n);return a?a(r,e,c):s.call(r,e,c)}})},CW5P:function(t,e,n){var r=n("T/bE"),i=n("duB3"),o=n("POb3");t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||i),string:new r}}},CXw9:function(t,e,n){"use strict";var r,i,o,a,s=n("O4g8"),c=n("7KvD"),u=n("+ZMJ"),l=n("RY/4"),f=n("kM2E"),h=n("EqjI"),p=n("lOnJ"),d=n("2KxR"),v=n("NWt+"),m=n("t8x9"),y=n("L42u").set,g=n("82Mu")(),_=n("qARP"),b=n("dNDb"),w=n("iUbK"),x=n("fJUb"),S=c.TypeError,k=c.process,C=k&&k.versions,T=C&&C.v8||"",E=c.Promise,O="process"==l(k),A=function(){},P=i=_.f,M=!!function(){try{var t=E.resolve(1),e=(t.constructor={})[n("dSzd")("species")]=function(t){t(A,A)};return(O||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==T.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(t){}}(),j=function(t){var e;return!(!h(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;g(function(){for(var r=t._v,i=1==t._s,o=0,a=function(e){var n,o,a,s=i?e.ok:e.fail,c=e.resolve,u=e.reject,l=e.domain;try{s?(i||(2==t._h&&R(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?u(S("Promise-chain cycle")):(o=j(n))?o.call(n,c,u):c(n)):u(r)}catch(t){l&&!a&&l.exit(),u(t)}};n.length>o;)a(n[o++]);t._c=[],t._n=!1,e&&!t._h&&L(t)})}},L=function(t){y.call(c,function(){var e,n,r,i=t._v,o=D(t);if(o&&(e=b(function(){O?k.emit("unhandledRejection",i,t):(n=c.onunhandledrejection)?n({promise:t,reason:i}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",i)}),t._h=O||D(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},D=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){y.call(c,function(){var e;O?k.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=j(t))?g(function(){var r={_w:n,_d:!1};try{e.call(t,u(N,r,1),u(F,r,1))}catch(t){F.call(r,t)}}):(n._v=t,n._s=1,I(n,!1))}catch(t){F.call({_w:n,_d:!1},t)}}};M||(E=function(t){d(this,E,"Promise","_h"),p(t),r.call(this);try{t(u(N,this,1),u(F,this,1))}catch(t){F.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("xH/j")(E.prototype,{then:function(t,e){var n=P(m(this,E));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=O?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=u(N,t,1),this.reject=u(F,t,1)},_.f=P=function(t){return t===E||t===a?new o(t):i(t)}),f(f.G+f.W+f.F*!M,{Promise:E}),n("e6n0")(E,"Promise"),n("bRrM")("Promise"),a=n("FeBl").Promise,f(f.S+f.F*!M,"Promise",{reject:function(t){var e=P(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!M),"Promise",{resolve:function(t){return x(s&&this===a?E:this,t)}}),f(f.S+f.F*!(M&&n("dY0y")(function(t){E.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=P(e),r=n.resolve,i=n.reject,o=b(function(){var n=[],o=0,a=1;v(t,!1,function(t){var s=o++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},i)}),--a||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,i=b(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},Cdx3:function(t,e,n){var r=n("sB3e"),i=n("lktj");n("uqUo")("keys",function(){return function(t){return i(r(t))}})},Cskv:function(t,e){var n="__lodash_hash_undefined__";t.exports=function(t){return this.__data__.set(t,n),this}},CvWX:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("BbyF"),o=n("kqpo"),a="".startsWith;r(r.P+r.F*n("1ETD")("startsWith"),"String",{startsWith:function(t){var e=o(this,t,"startsWith"),n=i(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},CwSZ:function(t,e,n){"use strict";var r=n("p8xL"),i=n("XgCd"),o={brackets:function(t){return t+"[]"},indices:function(t,e){return t+"["+e+"]"},repeat:function(t){return t}},a=Date.prototype.toISOString,s={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(t){return a.call(t)},skipNulls:!1,strictNullHandling:!1},c=function t(e,n,i,o,a,c,u,l,f,h,p,d){var v=e;if("function"==typeof u)v=u(n,v);else if(v instanceof Date)v=h(v);else if(null===v){if(o)return c&&!d?c(n,s.encoder):n;v=""}if("string"==typeof v||"number"==typeof v||"boolean"==typeof v||r.isBuffer(v))return c?[p(d?n:c(n,s.encoder))+"="+p(c(v,s.encoder))]:[p(n)+"="+p(String(v))];var m,y=[];if(void 0===v)return y;if(Array.isArray(u))m=u;else{var g=Object.keys(v);m=l?g.sort(l):g}for(var _=0;_0?E+T:""}},D2L2:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},DDCP:function(t,e,n){"use strict";var r=n("p8xL"),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(t,e,n){if(t){var r=n.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,o=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),s=a?r.slice(0,a.index):r,c=[];if(s){if(!n.plainObjects&&i.call(Object.prototype,s)&&!n.allowPrototypes)return;c.push(s)}for(var u=0;null!==(a=o.exec(r))&&u=0;--i){var o,a=t[i];if("[]"===a)o=(o=[]).concat(r);else{o=n.plainObjects?Object.create(null):{};var s="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,c=parseInt(s,10);!isNaN(c)&&a!==s&&String(c)===s&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(o=[])[c]=r:o[s]=r}r=o}return r}(c,e,n)}};t.exports=function(t,e){var n=e?r.assign({},e):{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.ignoreQueryPrefix=!0===n.ignoreQueryPrefix,n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=!1!==n.parseArrays,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===t||null===t||void 0===t)return n.plainObjects?Object.create(null):{};for(var s="string"==typeof t?function(t,e){for(var n={},r=e.ignoreQueryPrefix?t.replace(/^\?/,""):t,a=e.parameterLimit===1/0?void 0:e.parameterLimit,s=r.split(e.delimiter,a),c=0;c2?arguments[2]:void 0,l=Math.min((void 0===u?a:i(u,a))-c,a-s),f=1;for(c0;)c in n?n[s]=n[c]:delete n[s],s+=f,c+=f;return n}},DQCr:function(t,e,n){"use strict";var r=n("cGG2");function i(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,n){if(!e)return t;var o;if(n)o=n(e);else if(r.isURLSearchParams(e))o=e.toString();else{var a=[];r.forEach(e,function(t,e){null!==t&&void 0!==t&&(r.isArray(t)?e+="[]":t=[t],r.forEach(t,function(t){r.isDate(t)?t=t.toISOString():r.isObject(t)&&(t=JSON.stringify(t)),a.push(i(e)+"="+i(t))}))}),o=a.join("&")}return o&&(t+=(-1===t.indexOf("?")?"?":"&")+o),t}},DQfQ:function(t,e,n){var r=n("Ds5P");r(r.G,{global:n("OzIq")})},Dc0G:function(t,e,n){(function(t){var r=n("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,o=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=o&&o.exports===i&&r.process,s=function(){try{var t=o&&o.require&&o.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=s}).call(e,n("3IRH")(t))},Dd8w:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("woOf"),o=(r=i)&&r.__esModule?r:{default:r};e.default=o.default||function(t){for(var e=1;e1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!m(d(this,e),t)}}),h&&r(l.prototype,"size",{get:function(){return d(this,e)[v]}}),l},def:function(t,e,n){var r,i,o=m(t,e);return o?o.v=n:(t._l=o={i:i=p(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=o),r&&(r.n=o),t[v]++,"F"!==i&&(t._i[i]=o)),t},getEntry:m,setStrong:function(t,e,n){u(t,e,function(t,n){this._t=d(t,e),this._k=n,this._l=void 0},function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?l(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),f(e)}}},Ds5P:function(t,e,n){var r=n("OzIq"),i=n("7gX0"),o=n("2p1q"),a=n("R3AP"),s=n("rFzY"),c=function(t,e,n){var u,l,f,h,p=t&c.F,d=t&c.G,v=t&c.S,m=t&c.P,y=t&c.B,g=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,_=d?i:i[e]||(i[e]={}),b=_.prototype||(_.prototype={});for(u in d&&(n=e),n)f=((l=!p&&g&&void 0!==g[u])?g:n)[u],h=y&&l?s(f,r):m&&"function"==typeof f?s(Function.call,f):f,g&&a(g,u,f,t&c.U),_[u]!=f&&o(_,u,h),m&&b[u]!=f&&(b[u]=f)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},DuR2:function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},Dv2r:function(t,e,n){var r=n("pTUa");t.exports=function(t,e){var n=r(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},EGZi:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},EWrS:function(t,e,n){"use strict";n("y325")("sub",function(t){return function(){return t(this,"sub","","")}})},"EZ+5":function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=n("XSOZ"),a=r.key,s=r.set;r.exp({metadata:function(t,e){return function(n,r){s(t,e,(void 0!==r?i:o)(n),a(r))}}})},EqBC:function(t,e,n){"use strict";var r=n("kM2E"),i=n("FeBl"),o=n("7KvD"),a=n("t8x9"),s=n("fJUb");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,i.Promise||o.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},EqjI:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},EuXz:function(t,e,n){var r=n("lDLk").f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||n("bUqO")&&r(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},EvFb:function(t,e,n){var r=n("Ds5P"),i=n("8t38");r(r.G+r.F*(parseFloat!=i),{parseFloat:i})},ExBf:function(t,e,n){"use strict";var r=n("Zx67"),i=n.n(r),o=n("aFK5"),a=n.n(o),s=n("fZjL"),c=n.n(s),u=n("Zrlr"),l=n.n(u),f=n("wxAW"),h=n.n(f),p=n("mvHQ"),d=n.n(p),v=n("pFYg"),m=n.n(v),y=null;function g(){return!!("undefined"==typeof window&&"undefined"==typeof document&&y&&y.env&&y.cdv)}function _(){return y}function b(){var t={};return((g()?_().env.url.split("?")[1]:location.search.substring(1)).split("&")||[]).forEach(function(e){var n=e.split("=");t[n[0]]=n[1]}),t}function w(t){var e="object"===(void 0===t?"undefined":m()(t))&&"Object"===Object.prototype.toString.call(t).slice(-7,-1);if(!t||!e)return"";var n="";return c()(t).forEach(function(e){t[e]=encodeURIComponent(decodeURIComponent(t[e])),n+=e+"="+t[e]+"&"}),n.length&&(n=n.slice(0,-1)),n}var x="appCommonParam";function S(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.split(".");return 4!==n.length&&5!==n.length||!/^\s*8\./.test(t)||n.splice(0,1),e?n:n.join(".")}function k(t,e){return function(t,e,n){var r=S(t,!0),i=S(e,!0);if(r.length!==i.length)for(var o=r.lengthf)return!1;if(r[c]!==i[c])return!0}return!1}(t,e,!1)}var C=n("zwoO"),T=n.n(C),E=n("Pf15"),O=n.n(E),A=function(){function t(e){l()(this,t),this._core=e,this.event=null,this.adapter=null,this.isReady=!1,this.readyCallback=null,this.supportProtocol={}}return h()(t,[{key:"init",value:function(){}},{key:"onEngineReady",value:function(t){this.readyCallback=t}},{key:"exec",value:function(t,e,n,r,i){}},{key:"checkSupport",value:function(t,e){return this.supportProtocol[t]&&this.supportProtocol[t][e]}},{key:"checkAdapter",value:function(t,e){return this.adapter&&this.adapter[t]&&this.adapter[t][e]}}]),t}(),P={android:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/1/android/cordova.js",iOS:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/1/ios/cordova.js",iOS2:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/2/ios/cordova.js",windows:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/1/windows/cordova.js"},M="android",j="androidpad",I="iphone",L="ipad",D="windowsphone",R="windowspad";function F(){var t=arguments.length;return"object"===m()(arguments.length<=0?void 0:arguments[0])?{param:arguments.length<=0?void 0:arguments[0],success:t>1?arguments.length<=1?void 0:arguments[1]:void 0,fail:t>2?arguments.length<=2?void 0:arguments[2]:void 0}:{param:void 0,success:t>0?arguments.length<=0?void 0:arguments[0]:void 0,fail:t>1?arguments.length<=1?void 0:arguments[1]:void 0}}function N(t){return a()(t).forEach(function(e){"number"==typeof t[e]&&(t[e]=t[e].toString())}),t}var B=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(){var t=F.apply(void 0,arguments),e=t.param,n=t.success,r=t.fail;this._exec("shopping","goHome",n,r,e)}},{key:"showGoodsDetail",value:function(t,e,n){var r=this,i=this._core.platform;if(this.utils.versionLT("6.15")&&!i.isWXKe){var o=!1,a=!1,s="jsonp_callback_"+Math.random().toString(36).slice(2),c=document.createElement("script");c.src="//sink.vip.com/merchandise/mapping?callback="+s+"&mids="+t.goodsId,c.onload=c.onerror=function(){c.parentNode.removeChild(c),c=c.onload=c.onerror=null,o&&!a||n&&n({code:-301,msg:"绯荤粺绻佸繖锛岃绋嶅悗鍐嶈瘯"})},window[s]=function(i){!a&&200===i.code&&i.data[t.goodsId]&&(o=!0,window[s]=null,t.goodsId=i.data[t.goodsId],r._exec("shopping","showGoodsDetail",e,n,t))},setTimeout(function(){c&&!o&&(a=!0,c.onerror())},3e3),document.head.appendChild(c)}else this._exec("shopping","showGoodsDetail",e,n,t)}}]),t}(),z=n("//Fk"),U=n.n(z),H=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t,e,n){var r=this;if(t.jsFunction="fake_event_type_add_cart",r.event.mockJSFunctionCallback("fake_event_type_add_cart",function(t){return{code:t}},e),r.utils.versionLT("6.15")){var i={mid:"/merchandise/mapping",sizeid:"/merchandiseitem/mapping"},o={url:"https://sink.vip.com"+i.mid,params:{mids:t.productId}},a={url:"https://sink.vip.com"+i.sizeid,params:{sizeids:t.sizeId}};U.a.all([r.utils.jsonpKit(o),r.utils.jsonpKit(a)]).then(function(i){var o=i[1]&&i[1].data&&i[1].data[t.sizeId],a=i[0]&&i[0].data&&i[0].data[t.productId];t.sizeId=o,t.productId=a,r._exec("cart","addCart",e,n,t)}).catch(function(){r.ui.showToast({content:"缃戠粶寮灏忓樊鍟︼紝璇风◢鍚庡啀璇曞摝~"})})}else r._exec("cart","addCart",e,n,t)}}]),t}(),$=function(){function t(){l()(this,t)}return h()(t,[{key:"shareSpecial",value:function(t,e,n){"android"===this._core.appInfo.client&&this.utils.versionGT("5.28.4")&&this.utils.versionLT("5.28.10")?(t.shareUrl=t.specialUrl||"",this.share.shareVirtualProduct(t,e,n)):this._exec("share","shareSpecial",null,n,t)}}]),t}(),V={code:-100,msg:"涓嶆敮鎸佽鍗忚"},W={code:-101,msg:"娌℃湁闄嶇骇鏂规"},q={code:-102,msg:"瓒呮椂"},X={code:-103,msg:"鑾峰彇web绔矾鐢辫〃澶辫触"},Y={code:0,msg:"hercules宸插氨缁"},G=function(){function t(){l()(this,t)}return h()(t,[{key:"routeTo",value:function(t,e,n){var r=this;this._exec("base","check",function(i){"1"===String(i.data[t.name])?r._exec("base","routeTo",e,n,t):n&&n(V)},function(){n&&n(V)},{pages:[t.name]})}}]),t}(),K=function(){function t(){l()(this,t)}return h()(t,[{key:"addFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_add_favourite",this.event.mockJSFunctionCallback("fake_event_type_add_favourite",function(t){return{code:t}},e),this._exec("user","addFavourite",e,n,t)}},{key:"delFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_del_favourite",this.event.mockJSFunctionCallback("fake_event_type_del_favourite",function(t){return{code:t}},e),this._exec("user","delFavourite",e,n,t)}},{key:"goToOnlineService",value:function(){var t=F.apply(void 0,arguments),e=t.param,n=t.success,r=t.fail;this._exec("user","goToOnlineService",n,r,e)}}]),t}();function Q(){return g()?new Function("return this")():window}var J=function(){function t(e){l()(this,t),this.herculesInst=e,this.isApp=e._core.platform.isApp,this.platform=e._core.platform,this.liteAppType=e._core.liteAppType,this.appInfo=e._core.appInfo}return h()(t,[{key:"redirect",value:function(t){if(this.isApp){var e=document.createElement("a"),n=document.createEvent("MouseEvents");document.body.appendChild(e),n.initEvent("click",!0,!1),e.href=t,e.dispatchEvent(n),document.body.removeChild(e)}else this.platform.isWXLite||this.platform.isQuickApp?location.href=this.wrapCommonParams(t):this.platform.isBkNative?this.herculesInst._core.doCall("base","routeTo",function(){},function(){},{name:"webview/specialpage",params:{url:encodeURIComponent(t)}}):location.href=t}},{key:"wrapCommonParams",value:function(t){var e=["width","height","area_id","fdc_area_id","oxo_province_id","net","vipruid","app_name","source","warehouse","app_version","client","mars_cid","mobile_platform","mobile_channel"];this.platform.isApp&&(e=e.concat(["oxo_city_id","oxo_district_id","tab_page_id","deeplink_cps","other_cps","idfv","protocol_version"])),this.platform.isQuickApp&&(e=e.concat(["f"]));var n=location.search.slice(1),r=e.map(function(e){var r=new RegExp(e+"=([^&]+)"),i=t.match(r);if(!i||2!==i.length){var o=n.match(r);return o&&2===o.length?e+"="+o[1]:void 0}}).filter(function(t){return t}).join("&");return r?t.indexOf("?")>0?t+"&"+r:t+"?"+r:t}},{key:"getAppVersion",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.appInfo.app_version||"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.split(".");return 4!==n.length&&5!==n.length||!/^\s*8\./.test(t)||n.splice(0,1),e?n:n.join(".")}},{key:"versionLT",value:function(t){return this._versionComp(this.getAppVersion(),t,!1)}},{key:"versionGT",value:function(t){return this._versionComp(this.getAppVersion(),t,!0)}},{key:"_versionComp",value:function(t,e,n){var r=this.getAppVersion(t,!0),i=this.getAppVersion(e,!0);if(r.length!==i.length)for(var o=r.lengthf)return!1;if(r[c]!==i[c])return!0}return!1}},{key:"jsonpKit",value:function(t){return new U.a(function(e,n){var r=!1,i=!1,o=void 0,a="jsonp_callback_"+Math.random().toString(36).slice(2),s=document.createElement("script");if(t.params=t.params||"","object"===m()(t.params)){var c=[];for(var u in t.params)c.push(u+"="+t.params[u]);o=c.join("&")}s.src=t.url+"?callback="+a+"&"+o,document.head.appendChild(s),window[a]=function(t){i||200!==t.code?n({code:-301,msg:"绯荤粺绻佸繖锛岃绋嶅悗鍐嶈瘯"}):(r=!0,window[a]=null,e(t)),document.body.removeChild(s)},s.onload=s.onerror=function(){s.parentNode.removeChild(s),s=s.onload=s.onerror=null,r&&!i||n({code:-301,msg:"绯荤粺绻佸繖锛岃绋嶅悗鍐嶈瘯"})},setTimeout(function(){s&&!r&&(i=!0,s.onerror())},3e3)})}}]),t}(),Z=function(){function t(e){l()(this,t),this.globalCallbackFuncName="__hercules_event_dispatcher",this.core=e,this.compatibleList={},this.getCallbackObject=Q}return h()(t,[{key:"registerCommonEventCallback",value:function(t){this.getCallbackObject()[this.globalCallbackFuncName]=t}},{key:"subscribe",value:function(t){}},{key:"unsubscribe",value:function(t){}},{key:"mockOnCallbackObject",value:function(t,e){var n=this.getCallbackObject();n[t]&&this.compatibleList[t],n[t]&&!this.compatibleList[t]||(this.compatibleList[t]=!0,n[t]=e)}},{key:"mockJSFunctionCallback",value:function(t,e,n){var r=this;this.core.event.off(t).on(t,n),this.mockOnCallbackObject(t,function(){for(var n=arguments.length,i=Array(n),o=0;o2&&void 0!==arguments[2]?arguments[2]:100;if((new Date).getTime()%(100/n)==0){var r=w(e),i="//stat.vipstatic.com/h5front/report?type="+t+"&_t="+(new Date).getTime()+"&"+r.substring(0,1500);if(g())_().net.request({url:"https:"+i});else{var o=new XMLHttpRequest;o.open("GET",i,!0),o.send()}}}var nt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new tt(t),n.appInfo=t.appInfo,n.adapter={shopping:new B,base:new G,cart:new H,share:new $,user:new K},n}return O()(e,t),h()(e,[{key:"init",value:function(){var t=this;document.addEventListener("deviceready",function(){clearTimeout(t.devicereadyTimeout);try{"android"===t.appInfo.client&&cordova.exec.setNativeToJsBridgeMode(cordova.exec.nativeToJsModes.LOAD_URL),t._getSupportedModule()}catch(t){et("devicereadyCatch",{msg:t})}}),this._loadScript()}},{key:"exec",value:function(t,e,n,r,i){cordova.exec(n,r,t,e,[i])}},{key:"_loadScript",value:function(){var t=this;try{var e=document.createElement("script");e.async=!0;var n=this.appInfo.client;if(n===M||n===j)e.src=P.android;else if(n===I||n===L){var r=this.appInfo.protocol_version.split(".")[0];Number(r)>=2?e.src=P.iOS2:e.src=P.iOS}else n===D||n===R?e.src=P.windows:et("canNotFindCordovaJs",{client:n});if(e.src){try{var i=setTimeout(function(){et("loadCordovaPending",{src:e.src})},15e3);e.onerror=function(t){clearTimeout(i),et("loadCordovaError",{type:t.type,src:t.target&&t.target.src})},e.onload=function(){clearTimeout(i);var n=!!window.cordova;if(!n){var r=new XMLHttpRequest;r.open("GET",e.src,!0),r.onload=function(){et("getTheCordovaText",{text:r.responseText.length>100?r.responseText.substring(r.responseText.length-100):r.responseText})},r.send(),et("loadCordovaButHasNoCordova",{hasCordova:n})}t.devicereadyTimeout=setTimeout(function(){et("devicereadyTimeout",{hasExec:!(!window.cordova||!window.cordova.exec)})},1e4)}}catch(t){et("cordovaScriptMonitorError",{msg:t})}document.head.appendChild(e)}else et("noCordovaSrc",{android:P.android,ios2:P.iOS2,ios:P.iOS})}catch(t){et("loadCordovaCatch",{msg:t})}}},{key:"_getSupportedModule",value:function(){var t=this;this.exec("base","getSupportModule",function(e){try{e&&e.data&&e.data.length>0||et("hasNotSupportModule",{msg:d()(e)})}catch(t){}t._getSupportedModuleInterface(e.data)},function(e){t._initSupportFail("getSupportModule",e)})}},{key:"_getSupportedModuleInterface",value:function(t){var e=this;this.exec("base","getModuleSupportApi",function(t){try{t&&t.data&&t.data.length>0||et("hasNotSupportApi",{msg:d()(t)})}catch(t){}e._setSupportedInterface(t),e.isReady=!0,e.readyCallback()},function(t){e._initSupportFail("getModuleSupportApi",t)},{plugin:t})}},{key:"_initSupportFail",value:function(t,e){this.isReady=!0,this.readyCallback();try{et("faillBackWhenGetSupportList",{methodName:t,data:d()(e)})}catch(t){}}},{key:"_setSupportedInterface",value:function(t){var e=this;t.data.forEach(function(t){a()(t).forEach(function(n){e.supportProtocol[n]=e.supportProtocol[n]||{},t[n].forEach(function(t){e.supportProtocol[n][t]=!0})})})}}]),e}(A),rt=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t,e,n){t.jsFunction="fake_event_type_add_cart",this.event.mockJSFunctionCallback("fake_event_type_add_cart",function(t){return{code:t}},e),this._exec(null,"addCart",null,null,t)}}]),t}(),it=function(){function t(){l()(this,t)}return h()(t,[{key:"shareActivity",value:function(t,e,n){t.callbackId="event_type_menu_share_activity",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_activity",e),this._exec(null,"shareActivity",null,null,t)}},{key:"shareSpecial",value:function(t,e,n){t.callbackId="event_type_menu_share_special",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_special",e),this._exec(null,"shareSpecial",null,null,t)}},{key:"shareVirtualProduct",value:function(t,e,n){t.callbackId="event_type_menu_share_virtual_product",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_virtual_product",e),this._exec(null,"shareVirtualProduct",null,null,t)}},{key:"shareVis",value:function(t,e,n){t.callbackId="event_type_menu_share_vis",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_vis",e),this._exec(null,"shareVis",null,null,t)}},{key:"autoShare",value:function(t,e,n){t.type&&(t.type=t.type.toString()),this.event.mockJSBridgeObj("callH5","onShareClick",e),this._exec(null,"autoShare",null,null,t)}}]),t}(),ot=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(){var t=F.apply(void 0,arguments),e=t.param;t.success,t.fail;this._exec(null,"goHome",null,null,e)}}]),t}(),at=function(){function t(){l()(this,t)}return h()(t,[{key:"addFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_add_favourite",this.event.mockJSFunctionCallback("fake_event_type_add_favourite",function(t){return{code:t}},e),this._exec(null,"addFavourite",null,null,t)}},{key:"delFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_del_favourite",this.event.mockJSFunctionCallback("fake_event_type_del_favourite",function(t){return{code:t}},e),this._exec(null,"delFavourite",null,null,t)}}]),t}(),st=function(){function t(){l()(this,t)}return h()(t,[{key:"startObservingShake",value:function(t,e){this._exec(null,"startObservingShake")}},{key:"stopObservingShake",value:function(t,e){this._exec(null,"stopObservingShake")}},{key:"downloadApk",value:function(t,e,n){this._exec(null,"downloadApk",null,null,t)}},{key:"goPrePage",value:function(t,e){this._exec(null,"goPrePage",t,e)}},{key:"goH5",value:function(t,e,n){this._exec(null,"goH5",null,null,t)}},{key:"smsSend",value:function(t,e,n){this._exec(null,"smsSend",null,null,t)}},{key:"playVideo",value:function(t,e,n){this._exec(null,"playVideo",null,null,t)}},{key:"permitVideo",value:function(t,e){var n={callbackId:"fake_event_type_permitVideo"};this.event.mockJSBridgeObj("onCallback",n.callbackId,function(e){t({code:1,data:{isPermit:e.code}})}),this._exec(null,"permitVideo",null,null,n)}}]),t}(),ct=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t,e,n){this._exec(null,"showOrder",null,null,t)}}]),t}(),ut=function(){function t(){l()(this,t)}return h()(t,[{key:"goPay",value:function(t,e,n){this._exec(null,"goPay",null,null,t)}},{key:"checkPaymentApps",value:function(t,e,n){this.event.mockOnCallbackObject("checkPaymentApps",function(t){e({code:1,data:t})}),this._exec(null,"checkPaymentApps")}}]),t}(),lt=n("yEsh"),ft=n.n(lt),ht=function(t){function e(){return l()(this,e),T()(this,(e.__proto__||i()(e)).apply(this,arguments))}return O()(e,t),h()(e,[{key:"mockJSBridgeObj",value:function(t,e,n){var r=this;this.core.event.off(e).on(e,n),window.JSBridge=window.JSBridge||{},window.JSBridge[t]||(window.JSBridge[t]=function(t,e){window[r.globalCallbackFuncName]({eventType:t,data:e})},this.compatibleList[t]=!0)}},{key:"bindToolMethod",value:function(t){ft()(e.prototype.__proto__||i()(e.prototype),"bindToolMethod",this).call(this,t),t.mockJSBridgeObj=this.mockJSBridgeObj.bind(this)}}]),e}(Z),pt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new ht(t),n.isReady=!0,n.adapter={base:new st,shopping:new ot,cart:new rt,order:new ct,share:new it,payment:new ut,user:new at},n}return O()(e,t),h()(e,[{key:"init",value:function(){this._initSupportProtocol(),this.readyCallback()}},{key:"exec",value:function(t,e,n,r,i){var o="vipshop://"+e;i&&(o=o+"?"+w(i)),location.href=o}},{key:"_initSupportProtocol",value:function(){var t=this;c()(this.adapter).forEach(function(e){t.supportProtocol[e]={},a()(i()(t.adapter[e])).forEach(function(n){t.supportProtocol[e][n]=!0})})}}]),e}(A),dt={jsSdk:{wx:"https://res.wx.qq.com/open/js/jweixin-1.5.0.js",swan:"https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.4.js",tt:"https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js",qq:"https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"},signatureUrl:"https://weixin-api.vip.com/v2/jsSdk/getSignature",supportJSAPILIST:["onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareWeibo","onMenuShareQZone","startRecord","stopRecord","onVoiceRecordEnd","playVoice","pauseVoice","stopVoice","onVoicePlayEnd","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage","translateVoice","getNetworkType","openLocation","getLocation","hideOptionMenu","showOptionMenu","hideMenuItems","showMenuItems","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","closeWindow","scanQRCode","chooseWXPay","openProductSpecificView","addCard","chooseCard","openCard"],supportProtocols:{shopping:{goHome:!0,showBrandProducts:!0,showGoodsDetail:!0,openAdver:!1,brandCategoryGoods:!1,categoryGoodsList:!0,brandCategoryGoodsList:!1,showCommentEditor:!1,goToAR:!1,showFootShapeDetail:!1,addFootShapeData:!1},user:{login:!0,registerUser:!1,goVIPCurrency:!0,showFavourable:!0,addFavourite:!1,delFavourite:!1,goToMyCenter:!0,informationGathering:!1,goToOnlineService:!1,gotoBabyEdit:!1,challengeSysResult:!0,goToSetPayPwd:!1,goToBindPhone:!1,getWeChatLoginInfo:!1},share:{shareActivity:!1,shareSpecial:!1,shareVirtualProduct:!1,shareVis:!1,autoShare:!1,shareImg:!1,shareSendGift:!1},order:{showOrder:!0,showBookOrder:!0},payment:{goPay:!1,checkPaymentApps:!1,fastOrderAdd:!1,callNativePayment:!1,livenessFaceDetect:!1,getTongdunBlackBox:!1,getTouchIDToken:!1},base:{check:!0,_routeToPage:!0,routeTo:!0,startObservingShake:!1,stopObservingShake:!1,downloadApk:!1,goPrePage:!0,goH5:!1,webview:!1,getProtocolVersion:!1,getAppVersion:!1,getAppBaseInfo:!1,smsSend:!1,playVideo:!1,playVideoV2:!1,permitVideo:!1,getUserLocation:!1,saveImgGallery:!1,showActivity:!0,goNativePageResult:!1,emitEvent:!0,goToExternalBrowser:!1,copy2clipboard:!1,getNotificationEnable:!1,isAppInstalled:!1,sendUri:!1,openCamera:!1,closeCamera:!1},cart:{addCart:!1},ui:{showToast:!1,showLoading:!1,hideLoading:!1,showDialog:!1,showMenu:!1,hideMenu:!1,setMenuTitle:!0,showMenuButton:!1,hideMenuButton:!1,showFloatView:!1,showFloatViewV2:!1,enablePullRefresh:!1,showMenuButtonV2:!1,setMenuButton:!1,setMenuSearchBar:!1},utils:{redirect:!1,getAppVersion:!1,versionLT:!1,versionGT:!1}},router:{wx:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js",swan:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js",tt:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js",qq:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js"}},vt=Z;var mt=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(){var t=F.apply(void 0,arguments),e=t.param,n=t.success,r=t.fail,i=w(e)?"/pages/index/index?"+w(e):"/pages/index/index";this._exec("miniProgram","reLaunch",{url:i,success:n,fail:r})}},{key:"showBrandProducts",value:function(t,e,n){var r=w(t)?"/pages/brand/brand?"+w(t):"/pages/brand/brand";this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}},{key:"showGoodsDetail",value:function(t,e,n){var r=w(t)?"/pages/productDetail/productDetail?"+w(t):"/pages/productDetail/productDetail";this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}},{key:"categoryGoodsList",value:function(t,e,n){var r=w(t)?"/pages/classifyList/classifyList?"+w(t):"/pages/classifyList/classifyList";this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}}]),t}(),yt=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t,e,n){var r={order_sn:(t=t||{}).sn,order_type:t.isPrevSell||"",source:t.sourceType||""},i=w(r)?"/pages/order/detail/index?"+w(r):"/pages/order/detail/index",o="1"!==r.source&&"2"!==r.source?"redirectTo":"navigateTo";this._exec("miniProgram",o,{url:i,success:e,fail:n})}},{key:"showBookOrder",value:function(t,e){this._exec("miniProgram","redirectTo",{url:"/pages/orderList/orderList?status=prepay",success:t,fail:e})}}]),t}(),gt=n("Dd8w"),_t=n.n(gt);function bt(t,e){function n(){t.call(e,new Date,"l")}try{var r=new XMLHttpRequest;r.open("GET","/favicon.ico?t="+parseInt((new Date).getTime()/3e5),!0),r.send(),r.onreadystatechange=function(){if(4===r.readyState){var i=r.getResponseHeader("date");if(i){var o=new Date(i);t.call(e,o,"s")}else n()}}}catch(t){n()}}function wt(t){var e=_t()({},t),n=e.url,r=e.dateNow,i=e.dateType,o=e.cacheTime;return n+"?v="+i+(3*parseInt(r/o)).toString(16)+"&d="+encodeURIComponent(location.hostname)}function xt(t){return"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/vcspRouter/"+t.bizType+"_"+t.platform+".js"}var St=2,kt=1;function Ct(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=void 0,i=n.timeout,o=void 0===i?3e4:i,a=n.timeToRefresh,s=n.retry,c=void 0===s?0:s,u=n.retryUrl,l=!1,f=c;function h(){clearTimeout(r),r=null}u=u||function(){return t},function n(){var i=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).isRetry,s=f-c,p=i?u({oUrl:t,retry:s}):t,d=document.createElement("script");d.type="text/javascript",d.async=!0,d.onerror=function(t){h(),l||(d.parentNode.removeChild(d),c<1?(l=!0,e({code:St,info:t,url:p})):(i&&et("retry-fail",{retry:s,url:p}),c--,n({isRetry:!0})))},d.onload=function(){h(),l||(l=!0,e())},a&&(p=function(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}(p,"v="+Math.floor(new Date/a))),o>0&&(r&&h(),r=setTimeout(function(){l||e({code:kt,info:"loadScriptTimeout",url:p})},o)),d.src=p,document.getElementsByTagName("head")[0].appendChild(d)}()}function Tt(t,e){return Object.prototype.toString.call(t).slice(8,-1).toLocaleLowerCase()===e}function Et(t){for(var e=!0,n=0;n-1}).map(function(n,r){var i=n,o=t[n];return e.map&&e.map[n]&&e.map[n].key&&(i=e.map[n].key,void 0!==e.map[n].value[o]&&(o=e.map[n].value[o])),i+"="+encodeURIComponent(o)}).join("&")}function Pt(t,e,n){var r=_t()({},n),i=r.timeout,o=void 0===i?1e4:i,a=r.timeToRefresh,s=void 0===a?864e5:a,c=r.retry,u=r.retryUrl;bt(function(n,r){Ct(wt({url:t,dateNow:n,dateType:r,cacheTime:s}),e,{timeout:o,retry:c,retryUrl:u})})}function Mt(t,e){function n(t,e){return t?("string"==typeof e&&(e=e.split(".")),0==e.length?void 0===t?"":function(t){return Tt(t,"string")||Tt(t,"number")?t:""}(t):n(t[e[0]],e.slice(1))):""}return r=e,t.replace(/\$\{(.+?)\}/g,function(t,e){return n(r,e)});var r}var jt=function(){function t(){l()(this,t)}return h()(t,[{key:"showActivity",value:function(t,e,n){var r=void 0;switch(t.name){case"home_search":var i=t.params?{keyword:t.params.search_word||""}:{};r=w(i)?"/pages/searchSuggest/searchSuggest?"+w(i):"/pages/searchSuggest/searchSuggest";break;case"my_collection":r="/pages/favouriteList/favouriteList?"+w({type:t.params&&t.params.page_type});break;default:return void(n&&n(V))}this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}},{key:"_routeToPage",value:function(t,e,n){var r=t.url,i="navigateTo";switch(t.navType){case"1":i="navigateTo";break;case"2":i="redirectTo";break;case"3":i="reLaunch";break;case"4":i="switchTab";break;default:i="navigateTo"}this._exec("miniProgram",i,{url:r,success:e,fail:n})}},{key:"routeTo",value:function(t,e,n){var r=t.navType,i="navigateTo",o=window.__wxLiteRouteToMap[t.name];if(o&&!0===o.tested){var a=void 0;switch(m()(o.t)){case"string":a=Mt(o.t,t.params);break;case"function":a=Mt(o.t(t.params,null,{setParam:w}),t.params);break;default:return void(n&&n(V))}switch(r){case"1":i="navigateTo";break;case"2":i="redirectTo";break;case"3":i="reLaunch";break;case"4":i="switchTab";break;default:i="navigateTo"}this._exec("miniProgram",i,{url:a,success:e,fail:n})}else n&&n(V)}},{key:"check",value:function(t,e,n){var r={code:"1",msg:"success",data:{}};t.pages.forEach(function(t){r.data[t]=window.__wxLiteRouteToMap[t]&&window.__wxLiteRouteToMap[t].tested?1:0}),e&&e(r)}},{key:"goPrePage",value:function(){this._exec("miniProgram","navigateBack",{delta:1})}},{key:"emitEvent",value:function(t,e){this._exec("miniProgram","postMessage",{data:t}),e&&e()}}]),t}(),It=function(){function t(){l()(this,t)}return h()(t,[{key:"login",value:function(t,e){var n="/pages/loginWx/loginWx?callbackUrl="+encodeURIComponent(window.location.href);this._exec("miniProgram","redirectTo",{url:n,success:t,fail:e})}},{key:"goToMyCenter",value:function(t,e){this._exec("miniProgram","switchTab",{url:"/pages/userCenter/userCenter",success:t,fail:e})}},{key:"challengeSysResult",value:function(t,e,n){if("postMsg"===t.jumpType){var r={type:"login_challenge_result",data:t};this._exec("miniProgram","postMessage",{data:r}),this._exec("miniProgram","navigateBack",{delta:1})}else{var i="/pages/vipRouter/vipRouter?"+w({router:"challengeSysResult",params:d()(t)});this._exec("miniProgram","navigateTo",{url:i,success:e,fail:n})}}},{key:"showFavourable",value:function(t,e){this._exec("miniProgram","navigateTo",{url:"/vipshop/user/pages/myCoupon/myCoupon",success:t,fail:e})}},{key:"goVIPCurrency",value:function(t,e){this._exec("miniProgram","navigateTo",{url:"/vipshop/user/pages/myVipcoin/myVipcoin",success:t,fail:e})}}]),t}(),Lt=function(){function t(){l()(this,t)}return h()(t,[{key:"setMenuTitle",value:function(t,e,n){var r=(t=t||{}).title||"";try{var i=document.body;document.title=r;var o=document.createElement("iframe");o.style.display="none",o.onload=function(){setTimeout(function(){i.removeChild(o),"function"==typeof e&&e()},0)},o.src="/favicon.ico?_v_=1",i.appendChild(o)}catch(t){"function"==typeof n&&n(t)}}}]),t}(),Dt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.supportProtocol=dt.supportProtocols,n.event=new vt(t),n.wx={},n.adapter={shopping:new mt,user:new It,order:new yt,base:new jt,ui:new Lt},n.liteAppType=t.liteAppType,n}return O()(e,t),h()(e,[{key:"_isFunction",value:function(t){return t&&"[object Function]"==={}.toString.call(t)}},{key:"init",value:function(){bt(function(t,e){var n=this,r=this._core.opts.bizType,i=r?xt({platform:"wxlite",bizType:r}):"";for(var o in dt.router)dt.router[o]=wt({url:i||dt.router[o],dateNow:t,dateType:e,cacheTime:3e5});"function"==typeof window.define&&(window.define.amd||window.define.cmd)&&window.require?this.liteAppType.isWx?window.require([dt.jsSdk.wx,dt.router.wx],function(t){n.wx=t,n._registerWxEnv()}):this.liteAppType.isQq?window.require([dt.jsSdk.qq,dt.router.qq],function(t){n.wx=t,n.isReady=!0,n.readyCallback()}):this.liteAppType.isSwan?window.require([dt.jsSdk.swan,dt.router.swan],function(){n.wx=window.swan,n.isReady=!0,n.readyCallback()}):this.liteAppType.isTt&&window.require([dt.jsSdk.tt,dt.router.tt],function(){n.wx=window.tt,n.isReady=!0,n.readyCallback()}):this._loadScript()},this)}},{key:"_loadScript",value:function(){var t=this,e=0,n=void 0,r=void 0,i=void 0;this.liteAppType.isWx?(n="wx",r=dt.router.wx,i=function(){t.wx=window.wx,t._registerWxEnv()}):this.liteAppType.isSwan?(n="swan",r=dt.router.swan,i=function(){t.wx=window.swan,t.isReady=!0,t.readyCallback()}):this.liteAppType.isTt?(n="tt",r=dt.router.tt,i=function(){t.wx=window.tt,t.isReady=!0,t.readyCallback()}):this.liteAppType.isQq&&(n="qq",r=dt.router.qq,i=function(){t.wx=window.qq,t.isReady=!0,t.readyCallback()});var o={};function a(t,e){var n=t.code,r=t.url,i=e+"-"+n;if(!o[i])switch(o[i]=!0,n){case St:et(e+"-load-error",{url:r});break;case kt:et(e+"-load-timeout",{url:r})}}function s(){++e>=2&&i&&i()}var c=dt.jsSdk[n];c&&(Ct(c,function(t){t?a(t,"sdk"):s()},{timeout:1e4,retry:1,retryUrl:function(){var t,e=(t=c.match(/\/([^\/?#]+)[^\/]*$/)).length>1?t[1]:null;return"https://h2bak.vipstatic.com/h5rsc.vipstatic.com/hercules_static/mpsdk/"+n+"/"+e}}),r&&Ct(r,function(t){t?a(t,"router"):s()},{timeout:1e4,retry:1,retryUrl:function(t){return t.oUrl.replace("h2.vipstatic.com","h2bak.vipstatic.com")}}))}},{key:"_registerWxEnv",value:function(){var t=this,e="signatureUrl"+(new Date).getTime(),n=document.createElement("script"),r=dt.signatureUrl+"?url="+encodeURIComponent(location.href)+"&jsonp="+e,i=window.VH_BIZ_WX_HASH;i&&(r+="&fs="+i),n.src=r,window[e]=function(e){Number(e.code)?t._initSupportFail("绛惧悕鎺ュ彛"):(t.wx.config({debug:!1,appId:e.data.appid,timestamp:e.data.timestamp,nonceStr:e.data.noncestr,signature:e.data.signature,jsApiList:dt.supportJSAPILIST}),t.wx.ready(function(){t.isReady=!0,t.readyCallback()}),t.wx.error(function(){t._initSupportFail("wx.config")}))},document.head.appendChild(n)}},{key:"_initSupportFail",value:function(t){this.isReady=!0,this.readyCallback()}},{key:"exec",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.wx&&this.isReady){var r=t?this.liteAppType.isSwan?this.wx.webView:this.wx[t]:this.wx;window.setTimeout(function(){r[e](n)},200)}else n.fail&&n.fail(V)}}]),e}(A),Rt=Z,Ft=function(t,e){var n=_t()({},t),r=n.params,i=void 0===r?{}:r,o=n.success,a=void 0===o?function(){}:o,s=n.fail,c=void 0===s?function(){}:s,u={code:"1",msg:"success",data:{}};e.routeMap?(i.pages.forEach(function(t){u.data[t]=e.routeMap[t]&&e.routeMap[t].tested?1:0}),a(u)):(i.pages.forEach(function(t){u.data[t]=0}),c(X))},Nt=-9003,Bt=-9004,zt=-9005,Ut=!1,Ht=!1,$t=null,Vt=null,Wt=void 0;function qt(t,e){Ut?$t=t:window.loginDeal&&window.loginDeal.go?t&&t():(Ut=!0,Pt("//mlogin.vip.com/asserts/js/login-deal.min.js",function(n){if(Ut=!1,n)e({code:Nt,msg:"鍔犺浇login-deal鏃跺彂鐢熼敊璇"}),et("load_mlogin_failed",{platform:encodeURIComponent(d()(Wt.event.core.platform))});else{if(!document.getElementById("J-mlogin-plugin-css")){var r=document.createElement("link");r.rel="stylesheet",r.id="J-mlogin-plugin-css",r.href="//mlogin.vip.com/asserts/css/login.css",document.body.appendChild(r)}$t?$t():t&&t()}$t=null}))}function Xt(){var t=window.location.href.split("#"),e=Math.random().toString().replace(".","");/(?:[\?&])(_t=[^&]+)/.test(t[0])?t[0]=t[0].replace(/([\?&])(_t=[^&]+)/,"$1_t="+e):t[0].indexOf("?")>0?t[0]+="&_t="+e:t[0]+="?_t="+e,window.location.replace(t.join("#"))}function Yt(t,e,n){try{n?window.loginDeal&&window.loginDeal.go({onWinLogin:function(t){!0===t.success&&Xt()},openid:n.openid,unionid:n.unionid,headimgurl:n.headimgurl,nickname:n.nickname,isChangeWeixinBind:n.isChangeWeixinBind||!1}):window.loginDeal&&window.loginDeal.go({onWinLogin:function(t){!0===t.success&&Xt()}}),t({code:0,msg:"success"})}catch(t){e({code:Bt,msg:"鏉ヨ嚜loginDeal鐨勬湭鐭ラ敊璇"})}}var Gt={base:{routeTo:!0,check:!0,getModuleSupportApi:!0,getSupportModule:!0},user:{login:!0}},Kt={base:{routeTo:function(t,e){var n=_t()({},t),r=n.params,i=void 0===r?{}:r,o=(n.success,n.fail),a=void 0===o?function(){}:o;Ft({params:{pages:[i.name]},success:function(t){if(1===t.data[i.name])try{var n=function(t,e,n,r){var i=_t()({},n),o=i.name,a=i.params,s=void 0===a?{}:a,c=t[o];if(!(o&&c&&c.t))throw{code:-1,message:"[getUrlFromPathName] notFound"};if(c&&c.t)try{var u="";return Tt(c.t,"string")?u=Mt(c.t,s):Tt(c.t,"function")&&(u=Mt(c.t(s,r,{every:Et,getParamQueries:At,merge:Ot}),s)),u}catch(t){throw{code:-2,message:t.message||"[parseTemplate] parse fail"}}}(e.routeMap,i.name,i,{platform:e.event.core.platform,core:e.event.core});e.event.core._hercules.utils.redirect(n)}catch(t){a(_t()({},V,{info:{msg:"[webEngine] 閫氳繃閰嶇疆鑾峰彇url澶辫触锛岃纭畾閰嶇疆鎴栧叆鍙傜殑姝g‘鎬",code:-9001,extraInfo:{params:i,routeMap:e.routeMap,error:t}}}))}else a(_t()({},V,{info:{msg:"[webEngine] 璇ヨ矾鐢眜rl鏈畾涔夛紝璇疯仈绯籧offee.huang or guangyao.huang",code:-9002,extraInfo:i.name}}))},fail:a},e)},check:Ft,getModuleSupportApi:function(t,e){var n=_t()({},t),r=n.success,i=void 0===r?function(){}:r,o=n.fail,a=void 0===o?function(){}:o,s=n.params,c=void 0===s?{}:s,u={code:1,data:[]};try{c.plugin.forEach(function(t){if(e.supportProtocol&&e.supportProtocol[t]){var n=e.supportProtocol[t],r={};for(var i in r[t]=[],n)!0===n[i]&&r[t].push(i);u.data.push(r)}}),i(u)}catch(t){u.code=-9006,u.msg="杩愯鏃堕敊璇細"+t,a(u),et("getModuleSupportApiError runtime error锛"+t,{platform:encodeURIComponent(d()(e.event.core.platform))})}},getSupportModule:function(t,e){var n=_t()({},t),r=n.success,i=void 0===r?function(){}:r,o=n.fail,a=void 0===o?function(){}:o,s=(n.params,{code:1,data:[]});try{if(e.supportProtocol)for(var c in e.supportProtocol)s.data.push(c);i(s)}catch(t){s.code=-9007,s.msg="杩愯鏃堕敊璇細"+t,a(s),et("getSupportModule runtime error锛"+t,{platform:encodeURIComponent(d()(e.event.core.platform))})}}},user:{login:function(t,e){var n=_t()({},t),r=n.success,i=void 0===r?function(){}:r,o=n.fail,a=void 0===o?function(){}:o,s=n.params,c=void 0===s?{}:s;qt((Wt=e).event.core.platform.isWebWeixin?function(){!function(t,e){if(window.onGetUserInfo=function(n){var r=n.data||{};switch(n.code){case 0:Vt?Vt(r):t&&t(r);break;case-33:var i=n.data.redirectUrl+"?type="+n.data.type+"&src="+encodeURIComponent(location.href);window.location.href=i;break;default:e({code:zt,msg:"鑾峰彇寰俊鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇細"+n.msg}),et("getUserInfo_failed",{platform:encodeURIComponent(d()(Wt.event.core.platform))})}},Ht)Vt=t;else{Ht=!0;var n="//weixin-api.vip.com/user/getUserInfo?jsonp=onGetUserInfo&source=source&type=3&_t="+(new Date).getTime(),r=window.VH_BIZ_WX_HASH;r&&(n+="&fs="+r),Pt(n,function(t){Ht=!1,t&&e({code:zt,msg:"鑾峰彇寰俊鐢ㄦ埛淇℃伅鏃跺彂鐢熺綉缁滈敊璇"}),Vt=null})}}(function(t){t.isChangeWeixinBind=c.isChangeWeixinBind,Yt(i,a,t)},a)}:function(){Yt(i,a)},a)}}},Qt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.supportProtocol=Gt,n.routeMap=null,n.event=new Rt(t),n}return O()(e,t),h()(e,[{key:"init",value:function(){var t=this,e=this._core.opts.bizType;Pt(e?xt({platform:"web",bizType:e}):"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/web_routeto.js",function(e){if(e){if(e&&e.code===kt)return;et("web route file load failed",{mName:"",iName:"",platform:encodeURIComponent(d()(t.event.core.platform)),params:""}),t.isReady=!0,t.readyCallback()}else t.routeMap=window.__h5herculesRouteToMap||{},t.isReady=!0,t.readyCallback()},{timeToRefresh:3e5,retry:1,retryUrl:function(t){return t.oUrl.replace("h2.vipstatic.com","h2bak.vipstatic.com")}})}},{key:"exec",value:function(t,e,n,r,i){this._webInternalExec(t,e,{success:n,fail:r,params:i})}},{key:"_webInternalExec",value:function(t,e,n){var r=_t()({},n).fail,i=void 0===r?function(){}:r,o=Kt[t]||{};if(o[e])try{o[e](n,this)}catch(r){i(_t()({},V,{info:{code:-9e3,msg:'璋冪敤鍐呴儴鏂规硶"'+t+"."+e+'"鍑洪敊',extraInfo:{error:r,option:n}}})),et("error invoking internal modules interface",{mName:t,iName:e,platform:encodeURIComponent(d()(this.event.core.platform)),params:encodeURIComponent(d()(n))})}}}]),e}(A),Jt=Z,Zt=function(){function t(){l()(this,t)}return h()(t,[{key:"routeTo",value:function(t,e,n){var r=window.__quickAppRouteToMap[t.name];if(r&&!0===r.tested){var i=void 0;switch(m()(r.t)){case"string":i=Mt(r.t,t.params);break;case"function":i=Mt(r.t(t.params,null,{setParam:w}),t.params);break;default:return void(n&&n(V))}this._exec({url:i})}else n&&n(V)}},{key:"showActivity",value:function(t,e,n){var r=void 0;switch(t.name){case"home_search":var i={},o=t.params;o&&(o.url?i.suggest_word=d()({type:"2",showWord:o.search_word||"",typeValue:o.url}):o.search_word&&(i.keyword=encodeURIComponent(o.search_word))),r=w(i)?"/pages/searchSuggest?"+w(i):"/pages/searchSuggest";break;default:return void(n&&n(V))}this._exec({url:r})}},{key:"goPrePage",value:function(){window.history&&window.history.go(-1)}}]),t}(),te=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t){t.sn&&(t.sn=t.sn.split(",")[0]);var e="/subPages/order/orderDetail?order_sn="+t.sn;t.isPrevSell&&(e+="&order_type="+t.isPrevSell),this._exec({url:e})}},{key:"showBookOrder",value:function(){this._exec({url:"/subPages/order/orderList?status=all&selectedIndex=1"})}}]),t}(),ee=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(t){var e=w(t)?"/pages/index?"+w(t):"/pages/index";this._exec({url:e})}},{key:"showBrandProducts",value:function(t){var e=w(t)?"/pages/brand?"+w(t):"/pages/brand";this._exec({url:e})}},{key:"showGoodsDetail",value:function(t){var e=w(t)?"/pages/product/detail?"+w(t):"/pages/product/detail";this._exec({url:e})}},{key:"brandCategoryGoodsList",value:function(t){var e=t.parentCategoryId?"&hierarchy_id="+t.parentCategoryId:"",n=t.is_warmup?"&iswarmup="+t.is_warmup:"",r="//m.vip.com/classify-brand-0-0-0-0-0-1-20.html?brand_store_sn="+t.brandSN+e+n+"&title="+t.brandName+"&source_tag="+(t.source_tag||"");this.utils.redirect(r)}},{key:"categoryGoodsList",value:function(t){var e=w(t)?"/pages/classify/classifyList?"+w(t):"/pages/classify/classifyList";this._exec({url:e})}}]),t}(),ne=function(){function t(){l()(this,t)}return h()(t,[{key:"login",value:function(){this._exec({url:"/pages/loginPhone"})}},{key:"challengeSysResult",value:function(t){window.location.href="https://defend.vip.com/Index/app/?r=verification.exchange.index&challengeSysResult="+encodeURIComponent(d()(t))}},{key:"goToMyCenter",value:function(t,e){this._exec({url:"/pages/index?toolbarCode=userCenter"})}}]),t}(),re=function(){function t(){l()(this,t)}return h()(t,[{key:"fastOrderAdd",value:function(t){var e=w(t)?"/pages/checkout?"+w({brand_id:t.brandId,product_id:t.productId,size_id:t.sizeId,size_num:t.sizeNum,configure_id:t.configureId,act_id:t.groupId,act_no:t.actNo,buy_type:t.buyType}):"/pages/checkout";this._exec({url:e})}},{key:"callNativePayment",value:function(t,e,n){system.onmessage=function(t){e({code:1,data:JSON.parse(t)})};var r={action:"callNativePayment",data:t};system.postMessage(d()(r))}},{key:"checkPaymentApps",value:function(t,e,n){system.onmessage=function(t){e({code:1,data:JSON.parse(t)})};var r={action:"checkPaymentApps",data:t};system.postMessage(d()(r))}}]),t}(),ie=n("woOf"),oe=n.n(ie),ae=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t){var e=w(t)?"/pages/product/detail?"+w(oe()(t,{goodsId:t.productId})):"/pages/product/detail";this._exec({url:e}),this._exec({url:e})}}]),t}(),se=function(){function t(){l()(this,t)}return h()(t,[{key:"shareSpecial",value:function(t){var e={action:"share",data:{shareId:t.shareId,url:t.specialUrl}};system.postMessage(d()(e))}}]),t}(),ce=function(){function t(){l()(this,t)}return h()(t,[{key:"showAddDesktopIcon",value:function(t){var e={action:"AddDesktopIcon",data:{dialog:t.dialog,position:t.position}};system.postMessage(d()(e))}},{key:"setMenuButton",value:function(t){system.onmessage=function(e){"shareSpecial"==JSON.parse(e).action&&t.menus[0].clickEventMethod({code:200,msg:"ok"})};var e={action:"setMenuTitle",data:{dialog:t.dialog,position:t.position}};system.postMessage(d()(e))}}]),t}(),ue=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new Jt(t),n.adapter={base:new Zt,order:new te,shopping:new ee,user:new ne,payment:new re,cart:new ae,share:new se,ui:new ce},n}return O()(e,t),h()(e,[{key:"init",value:function(){var t=this;bt(function(e,n){var r=t._core.opts.bizType,i=wt({url:r?xt({platform:"quickapp",bizType:r}):"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/quickapp_routeto.js",dateNow:e,dateType:n,cacheTime:3e5});t._loadScript(i,function(e){e&&e.code===kt||(t._initSupportProtocol(),t.isReady=!0,t.readyCallback())})},t)}},{key:"exec",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};window.system&&this.isReady&&window.system.go(t.url)}},{key:"_loadScript",value:function(t,e){Ct(t,e,{retry:1,retryUrl:function(t){return t.oUrl.replace("h2.vipstatic.com","h2bak.vipstatic.com")}})}},{key:"_initSupportProtocol",value:function(){var t=this;c()(this.adapter).forEach(function(e){t.supportProtocol[e]={},a()(i()(t.adapter[e])).forEach(function(n){t.supportProtocol[e][n]=!0})})}}]),e}(A),le=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.doCall=t.doCall.bind(t),n}return O()(e,t),h()(e,[{key:"subscribe",value:function(t){this.doCall("base","registerService",null,null,{eventtype:t,jsmethod:this.globalCallbackFuncName})}}]),e}(Z),fe=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new le(t),n.appInfo=t.appInfo,n}return O()(e,t),h()(e,[{key:"init",value:function(){this._getSupportedModule()}},{key:"exec",value:function(t,e,n,r,i){var o=_();o.cdv&&o.cdv.exec({module:t,method:e,params:i,success:function(t,e){n&&n(e)},fail:function(t,e){r&&r(e)}})}},{key:"_getSupportedModule",value:function(){var t=this;this.exec("base","getSupportModule",function(e){try{e&&e.data&&e.data.length>0?t._getSupportedModuleInterface(e.data):et("hasNotSupportModule",{msg:d()(e)})}catch(t){}},function(e){t._initSupportFail("getSupportModule",e)})}},{key:"_getSupportedModuleInterface",value:function(t){var e=this;this.exec("base","getModuleSupportApi",function(t){try{t&&t.data&&t.data.length>0||et("hasNotSupportApi",{msg:d()(t)})}catch(t){}e._setSupportedInterface(t),e.isReady=!0,e.readyCallback()},function(t){e._initSupportFail("getModuleSupportApi",t)},{plugin:t})}},{key:"_initSupportFail",value:function(t,e){this.isReady=!0,this.readyCallback();try{et("faillBackWhenGetSupportList",{methodName:t,data:d()(e)})}catch(t){}}},{key:"_setSupportedInterface",value:function(t){var e=this;t.data.forEach(function(t){a()(t).forEach(function(n){e.supportProtocol[n]=e.supportProtocol[n]||{},t[n].forEach(function(t){e.supportProtocol[n][t]=!0})})})}}]),e}(A),he={deviceBack:"event_type_deviceback",comingsoonBack:"event_type_comingsoonback",navBack:"event_type_back",resume:"event_type_appresume",pause:"event_type_apppause",payResult:"event_type_payment_result",huaweiPayType:"event_type_huawei_pay_support_result",shake:"event_type_customer_shaked_mobilephone",menuButtonClick:"event_type_menu_button_click",babyFileUpdate:"event_type_notify_baby_update",autoShareV2Click:"event_type_menu_autoshare_click",bindPhoneSuccess:"event_type_bind_phone_result",setPayPwdSuccess:"event_type_set_pay_pwd_result",tabInactive:"event_type_tab_inactive",tabActive:"event_type_tab_active",snapshotShare:"event_type_snapshot_share",saveCommentSuccess:"event_type_save_comment",faceDetectResult:"event_type_facedetect_result",handleCalendarResult:"event_type_calendar_event_result",tenvideoLoginResult:"event_type_get_tenvideo_login_info_result",handleBatchCalendarResult:"event_type_batch_calendar_event_result",cardIdentificationResult:"event_type_cardIdentification_result",evokeFacedetectResult:"event_type_evoke_facedetect_result",faceIdentification:"event_type_faceIdentification_result",securityVerificationResult:"event_type_securityVerification_result"},pe=function(){function t(e){l()(this,t),this.eventEngine=e,this.globalCallbackFuncName=e.globalCallbackFuncName,this._eventHandlers={},this.type=he,this._registerCallback(),this.eventEngine.bindToolMethod(this)}return h()(t,[{key:"once",value:function(t,e){return this._listen(t,e,!0),this}},{key:"on",value:function(t,e){return this._listen(t,e,!1),this}},{key:"off",value:function(t,e){return this._eventHandlers[t]&&(this._eventHandlers[t]=e?this._eventHandlers[t].filter(function(t){return t!==e}):[],this._eventHandlers[t]&&this.eventEngine.unsubscribe(t)),this}},{key:"_registerCallback",value:function(){var t=this;this.eventEngine.registerCommonEventCallback(function(e){t._eventHandlers[e.eventType]=(t._eventHandlers[e.eventType]||[]).filter(function(t){return t.handler&&t.handler(e.data),!t.once})})}},{key:"_addToList",value:function(t,e,n){this._eventHandlers[t]=this._eventHandlers[t]||[],this._eventHandlers[t].push({once:n,handler:e})}},{key:"_listen",value:function(t,e,n){this._eventHandlers[t]&&0!=this._eventHandlers[t].length||this.eventEngine.subscribe(t);var r=t===this.type.tenvideoLoginResult?function(){et("vh_event_log",{detail:d()(arguments)}),e.apply(null,arguments)}:e;this._addToList(t,r,n)}}]),t}();function de(){var t=navigator&&navigator.userAgent||"";return"miniprogram"===window.__wxjs_environment&&!window.__qqjs_environment||/MicroMessenger/i.test(t)&&/miniProgram/.test(t)}var ve=function(){function t(e){l()(this,t),this._engineMap={cordova:nt,wxLiteApp:Dt,vipshop:pt,web:Qt},this._hercules=e,this.opts=e.opts,this.platform={isRN:!1,isApp:!1,isWXLite:!1,isWXKe:!1,isQuickApp:!1,isWeb:!1,isWebWeixin:!1,isBkNative:!1},this.liteAppType={isWx:!1,isSwan:!1,isTt:!1,isQq:!1},this.appInfo={},this.taskQueue=[],this.degradePlugin={},this._initPlatform(),this.engine=this._getEngineInstance(),this._onEngineChange()}return h()(t,[{key:"doCall",value:function(t,e,n,r,i){var o=this,a=this;function s(n){r&&r(n),et("doCallFail",{mName:t,iName:e,platform:encodeURIComponent(d()(a.platform)),params:encodeURIComponent(d()(i)),failMsg:encodeURIComponent(d()(n))})}if(this.engine.isReady)this.engine.checkSupport(t,e)?(et("protocol-supported",{mName:t,iName:e,platform:encodeURIComponent(d()(this.platform)),params:encodeURIComponent(d()(i))},10),this.engine.checkAdapter(t,e)?this.engine.adapter[t][e].call(this._hercules,i,n,s):this.engine.exec(t,e,n,s,i)):this._customDegrade(t,e,n,s,i);else{var c=arguments;this.taskQueue.push(c),setTimeout(function(){var t=o.taskQueue.indexOf(c);t>-1&&o.taskQueue.splice(t,1),!0!==c.hasCall&&s&&s(q)},1e4)}}},{key:"register",value:function(t){var e=this;a()(t).forEach(function(n){var r=e.degradePlugin[n]=e.degradePlugin[n]||{};a()(t[n]).forEach(function(e){var i=t[n][e];"function"==typeof i&&(r[e]=i)})})}},{key:"onEngineReady",value:function(){this._cleanTaskQueue()}},{key:"setEngine",value:function(t){this.engine=new this._engineMap[t](this),this._onEngineChange()}},{key:"_onEngineChange",value:function(){var t=this;this.engine.onEngineReady(t.onEngineReady.bind(t)),this.exec=this.engine.exec.bind(this.engine),this.adapter=this.engine.adapter,this.event=new pe(this.engine.event),this.engine.init()}},{key:"_cleanTaskQueue",value:function(){var t=this,e=this.taskQueue;this.taskQueue=[],e.forEach(function(e){t.doCall.apply(t,e),e.hasCall=!0})}},{key:"_customDegrade",value:function(t,e,n,r,i){this.degradePlugin[t]&&this.degradePlugin[t][e]?i?this.degradePlugin[t][e](i,n,r):this.degradePlugin[t][e](n,r):"vh"===t&&"ready"===e?n&&n(Y):(et("protocol-not-support",{mName:t,iName:e,platform:encodeURIComponent(d()(this.platform)),params:encodeURIComponent(d()(i))}),this.platform.isApp||this.platform.isBkNative?r&&r(V):r&&r(W))}},{key:"_initPlatform",value:function(){this._initAppInfo();var t=this.appInfo,e=t.app_version?t.app_version.split("."):[],n=4===e.length&&8===e[3].length,r=-1!==(t.client||"").indexOf("wechat_mini_program"),i=navigator&&navigator.userAgent||"",o=de(),a=b();g()?this.platform.isBkNative=!0:t.app_version&&(n||r)&&/MicroMessenger/i.test(i)||o?(this.platform.isWXLite=!0,this.liteAppType.isWx=!0,o&&(t._confirmWxLite=!0)):t.app_version&&n&&/swan/i.test(i)||"swan"===window.__swanjs_environment?(this.platform.isWXLite=!0,this.liteAppType.isSwan=!0):t.app_version&&n&&/toutiaomicroapp/i.test(i.toLowerCase())||"microapp"===window.__ttjsenv__?(this.platform.isWXLite=!0,this.liteAppType.isTt=!0):/miniprogram/i.test(i)&&/qq/i.test(i)&&!/MicroMessenger/i.test(i)||"miniprogram"===window.__qqjs_environment?(this.platform.isWXLite=!0,this.liteAppType.isQq=!0):t.app_version&&/VIPQuickAPP/i.test(i)&&window.system?this.platform.isQuickApp=!0:t.app_version?a.app_name&&a.app_name.indexOf("weixiangke")>-1?k(t.app_version,"6.2.0")?this.platform.isWeb=!0:(this.platform.isApp=!0,this.platform.isWXKe=!0):this.platform.isApp=!0:"undefined"!=typeof GLOBAL?this.platform.isRN=!0:(this.platform.isWeb=!0,/MicroMessenger/i.test(i)&&(this.platform.isWebWeixin=!0)),this.platform.isWXLite&&t.app_version&&setInterval(function(){!function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:864e5,n=new Date((new Date).getTime()+e);document.cookie=x+"="+encodeURIComponent(t)+"; expires="+n.toGMTString()+"; path=/;domain=.vip.com"}(d()(t),1e4)},3e3)}},{key:"_initAppInfo",value:function(){var t,e,n,r=b(),i=g()?{}:JSON.parse((t=new RegExp("(?:^|;+|\\s+)"+x+"=([^;]*)"),((e=document.cookie.match(t))?decodeURIComponent(e[1]):"")||"{}")),o=g()?{}:null!==(n=window.navigator.userAgent.match(/VIPSHOP\/([.0-9]+)\s\(([^;]+);\s([^;]+);\s([^\)]+)\)/))?{app_version:n[1],protocol_version:n[3],client:n[2]}:{app_version:null,protocol_version:null,client:null},a=!(i._confirmWxLite&&!de());this.appInfo={app_version:o.app_version||a&&i.app_version||r.app_version,protocol_version:o.protocol_version||a&&i.protocol_version||r.protocol_version,client:o.client||a&&i.client||r.client,_confirmWxLite:a&&i._confirmWxLite||!1}}},{key:"_getEngineInstance",value:function(){var t={init:function(){},onEngineReady:function(){},onDegrade:function(){},exec:function(){},event:{bindToolMethod:function(){},subscribe:function(){},unsubscribe:function(){},registerCommonEventCallback:function(){}}};return this.platform.isApp?t=this.appInfo.protocol_version?new this._engineMap.cordova(this):new this._engineMap.vipshop(this):this.platform.isRN||(t=this.platform.isQuickApp?new ue(this):this.platform.isWXLite?new this._engineMap.wxLiteApp(this):this.platform.isBkNative?new fe(this):new this._engineMap.web(this)),t}}]),t}(),me=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(t,e,n){return this.doCall("shopping","goHome",e,n,t)}},{key:"showBrandProducts",value:function(t,e,n){this.doCall("shopping","showBrandProducts",e,n,t)}},{key:"showGoodsDetail",value:function(t,e,n){this.doCall("shopping","showGoodsDetail",e,n,t)}},{key:"openAdver",value:function(t,e,n){this.doCall("shopping","openAdver",e,n,t)}},{key:"brandCategoryGoods",value:function(t,e,n){this.doCall("shopping","brandCategoryGoods",e,n,t)}},{key:"categoryGoodsList",value:function(t,e,n){this.doCall("shopping","categoryGoodsList",e,n,N(t))}},{key:"brandCategoryGoodsList",value:function(t,e,n){this.doCall("shopping","brandCategoryGoodsList",e,n,N(t))}},{key:"showCommentEditor",value:function(t,e,n){this.doCall("shopping","showCommentEditor",e,n,t)}},{key:"goToAR",value:function(t,e,n){this.doCall("shopping","goToAR",e,n,t)}},{key:"showFootShapeDetail",value:function(t,e,n){this.doCall("shopping","showFootShapeDetail",e,n,t)}},{key:"addFootShapeData",value:function(t,e){this.doCall("shopping","addFootShapeData",t,e,{})}},{key:"showSkuModule",value:function(t,e,n){this.doCall("shopping","showSkuModule",e,n,t)}},{key:"batchCalendarEvent",value:function(t,e,n){this.doCall("shopping","batchCalendarEvent",e,n,t)}},{key:"publishNotes",value:function(t,e,n){this.doCall("shopping","publishNotes",e,n,t)}}]),t}(),ye=function(){function t(){l()(this,t)}return h()(t,[{key:"login",value:function(t,e,n){"function"==typeof t&&(n=e,e=t,t=null),this._core.platform.isWebWeixin&&t?this.doCall("user","login",e,n,{isChangeWeixinBind:t.isChangeWeixinBind}):this.doCall("user","login",e,n)}},{key:"registerUser",value:function(t,e){this.doCall("user","registerUser",t,e)}},{key:"goVIPCurrency",value:function(t,e){this.doCall("user","goVIPCurrency",t,e)}},{key:"showFavourable",value:function(t,e){this.doCall("user","showFavourable",t,e)}},{key:"addFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_add_favourite",this.event.mockJSFunctionCallback("fake_event_type_add_favourite",function(t){return{code:t}},e),this.doCall("user","addFavourite",e,n,t)}},{key:"delFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_del_favourite",this.event.mockJSFunctionCallback("fake_event_type_del_favourite",function(t){return{code:t}},e),this.doCall("user","delFavourite",e,n,t)}},{key:"goToMyCenter",value:function(t,e){this.doCall("user","goToMyCenter",t,e)}},{key:"informationGathering",value:function(t,e,n){this.doCall("user","informationGathering",e,n,t)}},{key:"goToOnlineService",value:function(t,e,n){this.doCall("user","goToOnlineService",e,n,t)}},{key:"gotoBabyEdit",value:function(t,e,n){this.doCall("user","gotoBabyEdit",e,n,t)}},{key:"challengeSysResult",value:function(t,e,n){this.doCall("user","challengeSysResult",e,n,t)}},{key:"goToSetPayPwd",value:function(t,e){this.doCall("user","goToSetPayPwd",t,e)}},{key:"goToBindPhone",value:function(t,e){this.doCall("user","goToBindPhone",t,e)}},{key:"getWeChatLoginInfo",value:function(t,e){this.event.off("event_type_get_wechat_login_info_result").on("event_type_get_wechat_login_info_result",t),this.doCall("user","getWeChatLoginInfo",null,e)}}]),t}(),ge=function(){function t(){l()(this,t)}return h()(t,[{key:"shareActivity",value:function(t,e,n){this.event.off("event_type_menu_share_activity").on("event_type_menu_share_activity",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareActivity",null,n,t)}},{key:"shareSpecial",value:function(t,e,n){this.event.off("event_type_menu_share_special").on("event_type_menu_share_special",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareSpecial",null,n,t)}},{key:"shareVirtualProduct",value:function(t,e,n){this.event.off("event_type_menu_share_virtual_product").on("event_type_menu_share_virtual_product",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareVirtualProduct",null,n,t)}},{key:"shareVis",value:function(t,e,n){this.event.off("event_type_menu_share_vis").on("event_type_menu_share_vis",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareVis",null,n,t)}},{key:"shareImg",value:function(t,e,n){this.doCall("share","shareImg",e,n,t)}},{key:"shareSendGift",value:function(t,e,n){this.doCall("share","shareSendGift",e,n,t)}},{key:"shareProduct",value:function(t,e,n){this.event.off("event_type_menu_share_product").on("event_type_menu_share_product",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareProduct",e,n,t)}},{key:"shareBrand",value:function(t,e,n){this.event.off("event_type_menu_share_brand").on("event_type_menu_share_brand",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareBrand",e,n,t)}},{key:"shareUnity",value:function(t,e,n){this.doCall("share","shareUnity",e,n,t)}}]),t}(),_e=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t,e,n){this.doCall("order","showOrder",e,n,t)}},{key:"showBookOrder",value:function(t,e){this.doCall("order","showBookOrder",t,e)}}]),t}(),be=function(){function t(){l()(this,t)}return h()(t,[{key:"goPay",value:function(t,e,n){this.doCall("payment","goPay",e,n,t)}},{key:"checkPaymentApps",value:function(t,e,n){this.doCall("payment","checkPaymentApps",e,n,t)}},{key:"fastOrderAdd",value:function(t,e,n){this.doCall("payment","fastOrderAdd",e,n,t)}},{key:"callNativePayment",value:function(t,e,n){this.doCall("payment","callNativePayment",e,n,t)}},{key:"livenessFaceDetect",value:function(t,e,n){this.doCall("payment","livenessFaceDetect",e,n,t)}},{key:"getTongdunBlackBox",value:function(t,e){this.doCall("payment","getTongdunBlackBox",t,e)}},{key:"getTouchIDToken",value:function(t,e){this.doCall("payment","getTouchIDToken",t,e)}},{key:"cardIdentification",value:function(t,e,n){this.doCall("payment","cardIdentification",e,n,t)}},{key:"evokeFaceDetect",value:function(t,e,n){this.doCall("payment","evokeFaceDetect",e,n,t)}},{key:"faceIdentification",value:function(t,e,n){this.doCall("payment","faceIdentification",e,n,t)}},{key:"securityVerification",value:function(t,e,n){this.doCall("payment","securityVerification",e,n,t)}},{key:"evokeWxpayScoreUse",value:function(t,e,n){this.doCall("payment","evokeWxpayScoreUse",e,n,t)}}]),t}(),we=function(){function t(){l()(this,t)}return h()(t,[{key:"startObservingShake",value:function(t,e){this.doCall("base","startObservingShake",t,e)}},{key:"stopObservingShake",value:function(t,e){this.doCall("base","stopObservingShake",t,e)}},{key:"downloadApk",value:function(t,e,n){this.doCall("base","downloadApk",e,n,t)}},{key:"goPrePage",value:function(t,e){this.doCall("base","goPrePage",t,e)}},{key:"goH5",value:function(t,e,n){this.doCall("base","goH5",e,n,t)}},{key:"check",value:function(t,e,n){this.doCall("base","check",e,n,t)}},{key:"_routeToPage",value:function(t,e,n){t=t||{},this.doCall("base","_routeToPage",e,n,t)}},{key:"routeTo",value:function(t,e,n){if("string"==typeof t){var r=t.match(/viprouter\:\/\/([^\?]+)[\?]*([^#]*)/);if(t={},r.length&&r[1])if(t.name=r[1],t.params={},r[2])r[2].split("&").forEach(function(e){e.indexOf("=")>0&&(e=e.split("="),t.params[e[0]]=e[1])})}(t=t||{}).params||(t.params={}),this.doCall("base","routeTo",e,n,t)}},{key:"webview",value:function(t,e,n){this.doCall("base","webview",e,n,t)}},{key:"registerService",value:function(t,e,n){this.doCall("base","registerService",e,n,t)}},{key:"getSupportModule",value:function(t,e){this.doCall("base","getSupportModule",t,e)}},{key:"getModuleSupportApi",value:function(t,e,n){this.doCall("base","getModuleSupportApi",e,n,t)}},{key:"checkSupportApi",value:function(t,e,n){this.doCall("base","checkSupportApi",e,n,t)}},{key:"getProtocolVersion",value:function(t,e){this.doCall("base","getProtocolVersion",t,e)}},{key:"getAppVersion",value:function(t,e){this.doCall("base","getAppVersion",t,e)}},{key:"getAppBaseInfo",value:function(t,e,n){this.doCall("base","getAppBaseInfo",e,n,t)}},{key:"smsSend",value:function(t,e,n){this.doCall("base","smsSend",e,n,t)}},{key:"playVideo",value:function(t,e,n){this.doCall("base","playVideo",e,n,t)}},{key:"playVideoV2",value:function(t,e,n){this.doCall("base","playVideoV2",e,n,t)}},{key:"permitVideo",value:function(t,e){this.doCall("base","permitVideo",t,e)}},{key:"getUserLocation",value:function(t,e){this.doCall("base","getUserLocation",t,e)}},{key:"saveImgGallery",value:function(t,e,n){t.image=encodeURIComponent(t.image),this.doCall("base","saveImgGallery",e,n,t)}},{key:"showActivity",value:function(t,e,n){(t=t||{}).params=t.params||{},this.doCall("base","showActivity",e,n,t)}},{key:"goNativePageResult",value:function(t,e,n){var r={action:t.action,result:t.result};"object"===m()(r.result)&&(r.result=d()(r.result)),this.doCall("base","goNativePageResult",e,n,r)}},{key:"emitEvent",value:function(t,e,n){this.doCall("base","emitEvent",e,n,t)}},{key:"goToExternalBrowser",value:function(t,e,n){this.doCall("base","goToExternalBrowser",e,n,t)}},{key:"copy2clipboard",value:function(t,e,n){this.doCall("base","copy2clipboard",e,n,t)}},{key:"getNotificationEnable",value:function(t,e){this.doCall("base","getNotificationEnable",t,e)}},{key:"isAppInstalled",value:function(t,e,n){var r="",i=this._core.appInfo.client;i===M||i===j?r=t.androidPid:i!==I&&i!==L||(r=t.iOSPid),this.doCall("base","isAppInstalled",e,n,{pid:r})}},{key:"sendUri",value:function(t,e,n){var r=null,i=null;t.schemaFullPath?(r=encodeURIComponent(t.schemaFullPath),t.callbackUrl&&(i=encodeURIComponent(t.callbackUrl))):r="vipjr://showWebView?body="+encodeURIComponent(d()(t)),this.doCall("base","sendUri",e,n,{uri:r,callbackUrl:i})}},{key:"openCamera",value:function(t,e,n){this.doCall("base","openCamera",e,n,t)}},{key:"closeCamera",value:function(t,e){this.doCall("base","closeCamera",t,e)}},{key:"calendarEvent",value:function(t,e,n){this.doCall("base","calendarEvent",e,n,t)}},{key:"selectImages",value:function(t,e,n){this.event.off("event_type_select_images_result").on("event_type_select_images_result",e),this.doCall("base","selectImages",null,n,t)}},{key:"launchWXMiniProgram",value:function(t,e,n){this.doCall("base","launchWXMiniProgram",e,n,t)}}]),t}(),xe=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t,e,n){this.doCall("cart","addCart",e,n,t)}}]),t}(),Se=function(){function t(){l()(this,t)}return h()(t,[{key:"showToast",value:function(t,e,n){this.doCall("ui","showToast",e,n,t)}},{key:"showLoading",value:function(t,e){this.doCall("ui","showLoading",t,e)}},{key:"hideLoading",value:function(t,e){this.doCall("ui","hideLoading",t,e)}},{key:"showDialog",value:function(t,e,n){if("BUTTON_TYPE_CENTER"===t.buttonType){var r=t.buttonCenterEventMethod;if(!t.buttonCenterText)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_CENTER蹇呴』浼犲叆buttonCenterText");if("function"!=typeof r)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_CENTER蹇呴』浼犲叆buttonCenterEventMethod锛岀被鍨嬩负function");t.buttonCenterEventMethod=this.event.globalCallbackFuncName;var i="event_type_dialog_button_center";this.event.off(i).on(i,r)}else{if("BUTTON_TYPE_LEFTRIGHT"!==t.buttonType)throw new Error("[Hercules]锛歜uttonType涓嶆纭紝璇蜂紶鍏UTTON_TYPE_CENTER鎴朆UTTON_TYPE_LEFTRIGHT");var o=t.buttonLeftEventMethod,a=t.buttonRightEventMethod;if(!t.buttonLeftText)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonLeftText");if(!t.buttonRightText)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonRightText");if("function"!=typeof o)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonLeftEventMethod锛岀被鍨嬩负function");t.buttonLeftEventMethod=this.event.globalCallbackFuncName;if(this.event.off("event_type_dialog_button_left").on("event_type_dialog_button_left",o),"function"!=typeof a)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonRightEventMethod锛岀被鍨嬩负function");t.buttonRightEventMethod=this.event.globalCallbackFuncName;this.event.off("event_type_dialog_button_right").on("event_type_dialog_button_right",a)}this.doCall("ui","showDialog",e,n,t)}},{key:"showMenu",value:function(t,e){this.doCall("ui","showMenu",t,e)}},{key:"hideMenu",value:function(t,e){this.doCall("ui","hideMenu",t,e)}},{key:"setMenuTitle",value:function(t,e,n){this.doCall("ui","setMenuTitle",e,n,t)}},{key:"hideMenuButton",value:function(t,e,n){this.doCall("ui","hideMenuButton",e,n,t)}},{key:"showFloatView",value:function(t,e,n){this.doCall("ui","showFloatView",e,n,t)}},{key:"enablePullRefresh",value:function(t,e,n){this.doCall("ui","enablePullRefresh",e,n,t)}},{key:"showFloatViewV2",value:function(t,e,n){this.doCall("ui","showFloatViewV2",e,n,t)}},{key:"setMenuButton",value:function(t,e,n){if(this._core.platform.isQuickApp)this.doCall("ui","setMenuButton",e,n,t);else{for(var r={},i=0,o=t.menus.length;i0&&void 0!==arguments[0]?arguments[0]:{}).bk;return function(t){y=t}(void 0===t?{}:t),new ke};e.a=Ce},F1ui:function(t,e,n){var r=n("Ds5P"),i=Math.PI/180;r(r.S,"Math",{radians:function(t){return t*i}})},F3sI:function(t,e,n){var r=n("Ds5P"),i=n("PHqh"),o=n("BbyF");r(r.S,"String",{raw:function(t){for(var e=i(t.raw),n=o(e.length),r=arguments.length,a=[],s=0;n>s;)a.push(String(e[s++])),s=0:f>h;h+=p)h in l&&(s=e(s,l[h],h,u));return s}},Fkvj:function(t,e,n){var r=n("bJWQ"),i=n("PqYH"),o=n("i4ON"),a=n("jD7S"),s=n("py9u"),c=n("mKB/"),u=n("hrPF"),l=n("Nkkh"),f=n("1QDk"),h=n("MoMe"),p=n("xond"),d=n("gHOb"),v=n("UfSK"),m=n("5/Qr"),y=n("WQFf"),g=n("NGEn"),_=n("ggOT"),b=n("dwsC"),w=n("yCNF"),x=n("SGXn"),S=n("ktak"),k=1,C=2,T=4,E="[object Arguments]",O="[object Function]",A="[object GeneratorFunction]",P="[object Object]",M={};M[E]=M["[object Array]"]=M["[object ArrayBuffer]"]=M["[object DataView]"]=M["[object Boolean]"]=M["[object Date]"]=M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Map]"]=M["[object Number]"]=M[P]=M["[object RegExp]"]=M["[object Set]"]=M["[object String]"]=M["[object Symbol]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M["[object Error]"]=M[O]=M["[object WeakMap]"]=!1,t.exports=function t(e,n,j,I,L,D){var R,F=n&k,N=n&C,B=n&T;if(j&&(R=L?j(e,I,L,D):j(e)),void 0!==R)return R;if(!w(e))return e;var z=g(e);if(z){if(R=v(e),!F)return u(e,R)}else{var U=d(e),H=U==O||U==A;if(_(e))return c(e,F);if(U==P||U==E||H&&!L){if(R=N||H?{}:y(e),!F)return N?f(e,s(R,e)):l(e,a(R,e))}else{if(!M[U])return L?e:{};R=m(e,U,F)}}D||(D=new r);var $=D.get(e);if($)return $;if(D.set(e,R),x(e))return e.forEach(function(r){R.add(t(r,n,j,r,e,D))}),R;if(b(e))return e.forEach(function(r,i){R.set(i,t(r,n,j,i,e,D))}),R;var V=B?N?p:h:N?keysIn:S,W=z?void 0:V(e);return i(W||e,function(r,i){W&&(r=e[i=r]),o(R,i,t(r,n,j,i,e,D))}),R}},FryR:function(t,e,n){var r=n("/whu");t.exports=function(t){return Object(r(t))}},FtD3:function(t,e,n){"use strict";var r=n("t8qj");t.exports=function(t,e,n,i,o){var a=new Error(t);return r(a,e,n,i,o)}},G0Wc:function(t,e,n){var r=n("yCNF"),i=n("HT7L"),o=n("8gK5"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return o(t);var e=i(t),n=[];for(var s in t)("constructor"!=s||!e&&a.call(t,s))&&n.push(s);return n}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},"G5/o":function(t,e,n){n("uqUo")("getOwnPropertyNames",function(){return n("Rrel").f})},G8ar:function(t,e,n){var r=n("cdq7"),i=n("8++/"),o=n("i6nN");t.exports=function(t,e,n){return e==e?o(t,e,n):r(t,i,n)}},GHBc:function(t,e,n){"use strict";var r=n("cGG2");t.exports=r.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=i(window.location.href),function(e){var n=r.isString(e)?i(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0}},GQaK:function(t,e,n){"use strict"; +/*! + * better-normal-scroll v1.15.1 + * (c) 2016-2019 ustbhuangyi + * Released under the MIT License. + */function r(t,e){for(;e+10;function l(){return window.performance&&window.performance.now?window.performance.now()+window.performance.timing.navigationStart:+new Date}function f(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"click",n=void 0;"mouseup"===t.type||"mousecancel"===t.type?n=t:"touchend"!==t.type&&"touchcancel"!==t.type||(n=t.changedTouches[0]);var r={};n&&(r.screenX=n.screenX||0,r.screenY=n.screenY||0,r.clientX=n.clientX||0,r.clientY=n.clientY||0);var i=void 0,o=!0,a=!0;if("undefined"!=typeof MouseEvent)try{i=new MouseEvent(e,f({bubbles:o,cancelable:a},r))}catch(t){s()}else s();function s(){(i=document.createEvent("Event")).initEvent(e,o,a),f(i,r)}i.forwardedTouchEvent=!0,i._constructed=!0,t.target.dispatchEvent(i)}function L(t,e){t.removeChild(e)}var D={startX:0,startY:0,scrollX:!1,scrollY:!0,freeScroll:!1,directionLockThreshold:5,eventPassthrough:"",click:!1,tap:!1,bounce:!0,bounceTime:800,momentum:!0,momentumLimitTime:300,momentumLimitDistance:15,swipeTime:2500,swipeBounceTime:500,deceleration:.0015,flickLimitTime:200,flickLimitDistance:100,resizePolling:60,probeType:0,preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT|AUDIO)$/},HWCompositing:!0,useTransition:!0,useTransform:!0,bindToWrapper:!1,disableMouse:C,disableTouch:!C,observeDOM:!0,autoBlur:!0,wheel:!1,snap:!1,scrollbar:!1,pullDownRefresh:!1,pullUpLoad:!1,mouseWheel:!1,stopPropagation:!1,zoom:!1,infinity:!1,dblclick:!1};var R={swipe:{style:"cubic-bezier(0.23, 1, 0.32, 1)",fn:function(t){return 1+--t*t*t*t*t}},swipeBounce:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(t){return t*(2-t)}},bounce:{style:"cubic-bezier(0.165, 0.84, 0.44, 1)",fn:function(t){return 1- --t*t*t*t}}};function F(t,e,n,r,i,o,a,s){var c=t-e,u=Math.abs(c)/n,l=a.deceleration,f=a.itemHeight,h=a.swipeBounceTime,p=a.wheel,d=a.swipeTime,v=p?4:15,m=t+u/l*(c<0?-1:1);return p&&f&&(m=s._findNearestValidWheel(m).y),mi&&(m=o?Math.min(i+o/4,i+o/v*u):i,d=h),{destination:Math.round(m),duration:d}}function N(){}var B=a?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||function(t){return window.setTimeout(t,(t.interval||100/60)/2)}:N,z=a?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||function(t){window.clearTimeout(t)}:N,U=1,H=-1,$=1,V=-1,W=1,q=3;function X(t,e){if(!t)throw new Error("[BScroll] "+e)}function Y(t){var e=document.createElement("div"),n=document.createElement("div");return e.style.cssText="position:absolute;z-index:9999;pointerEvents:none",n.style.cssText="box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px;",n.className="bscroll-indicator","horizontal"===t?(e.style.cssText+=";height:7px;left:2px;right:2px;bottom:0",n.style.height="100%",e.className="bscroll-horizontal-scrollbar"):(e.style.cssText+=";width:7px;bottom:2px;top:2px;right:1px",n.style.width="100%",e.className="bscroll-vertical-scrollbar"),e.style.cssText+=";overflow:hidden",e.appendChild(n),e}function G(t,e){this.wrapper=e.el,this.wrapperStyle=this.wrapper.style,this.indicator=this.wrapper.children[0],this.indicatorStyle=this.indicator.style,this.scroller=t,this.direction=e.direction,e.fade?(this.visible=0,this.wrapperStyle.opacity="0"):this.visible=1,this.sizeRatioX=1,this.sizeRatioY=1,this.maxPosX=0,this.maxPosY=0,this.x=0,this.y=0,e.interactive&&this._addDOMEvents()}G.prototype.handleEvent=function(t){switch(t.type){case"touchstart":case"mousedown":this._start(t);break;case"touchmove":case"mousemove":this._move(t);break;case"touchend":case"mouseup":case"touchcancel":case"mousecancel":this._end(t)}},G.prototype.refresh=function(){this._shouldShow()&&(this.transitionTime(),this._calculate(),this.updatePosition())},G.prototype.fade=function(t,e){var n=this;if(!e||this.visible){var r=t?250:500;t=t?"1":"0",this.wrapperStyle[O.transitionDuration]=r+"ms",clearTimeout(this.fadeTimeout),this.fadeTimeout=setTimeout(function(){n.wrapperStyle.opacity=t,n.visible=+t},0)}},G.prototype.updatePosition=function(){if("vertical"===this.direction){var t=Math.round(this.sizeRatioY*this.scroller.y);if(t<0){this.transitionTime(500);var e=Math.max(this.indicatorHeight+3*t,8);this.indicatorStyle.height=e+"px",t=0}else if(t>this.maxPosY){this.transitionTime(500);var n=Math.max(this.indicatorHeight-3*(t-this.maxPosY),8);this.indicatorStyle.height=n+"px",t=this.maxPosY+this.indicatorHeight-n}else this.indicatorStyle.height=this.indicatorHeight+"px";this.y=t,this.scroller.options.useTransform?this.indicatorStyle[O.transform]="translateY("+t+"px)"+this.scroller.translateZ:this.indicatorStyle.top=t+"px"}else{var r=Math.round(this.sizeRatioX*this.scroller.x);if(r<0){this.transitionTime(500);var i=Math.max(this.indicatorWidth+3*r,8);this.indicatorStyle.width=i+"px",r=0}else if(r>this.maxPosX){this.transitionTime(500);var o=Math.max(this.indicatorWidth-3*(r-this.maxPosX),8);this.indicatorStyle.width=o+"px",r=this.maxPosX+this.indicatorWidth-o}else this.indicatorStyle.width=this.indicatorWidth+"px";this.x=r,this.scroller.options.useTransform?this.indicatorStyle[O.transform]="translateX("+r+"px)"+this.scroller.translateZ:this.indicatorStyle.left=r+"px"}},G.prototype.transitionTime=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.indicatorStyle[O.transitionDuration]=t+"ms"},G.prototype.transitionTimingFunction=function(t){this.indicatorStyle[O.transitionTimingFunction]=t},G.prototype.destroy=function(){this._removeDOMEvents(),this.wrapper.parentNode.removeChild(this.wrapper)},G.prototype._start=function(t){var e=t.touches?t.touches[0]:t;t.preventDefault(),t.stopPropagation(),this.transitionTime(),this.initiated=!0,this.moved=!1,this.lastPointX=e.pageX,this.lastPointY=e.pageY,this.startTime=l(),this._handleMoveEvents(y),this.scroller.trigger("beforeScrollStart")},G.prototype._move=function(t){var e=t.touches?t.touches[0]:t;t.preventDefault(),t.stopPropagation(),this.moved||this.scroller.trigger("scrollStart"),this.moved=!0;var n=e.pageX-this.lastPointX;this.lastPointX=e.pageX;var r=e.pageY-this.lastPointY;this.lastPointY=e.pageY;var i=this.x+n,o=this.y+r;this._pos(i,o)},G.prototype._end=function(t){if(this.initiated){this.initiated=!1,t.preventDefault(),t.stopPropagation(),this._handleMoveEvents(g);var e=this.scroller.options.snap;if(e){var n=e.speed,r=e.easing,i=void 0===r?R.bounce:r,o=this.scroller._nearestSnap(this.scroller.x,this.scroller.y),a=n||Math.max(Math.max(Math.min(Math.abs(this.scroller.x-o.x),1e3),Math.min(Math.abs(this.scroller.y-o.y),1e3)),300);this.scroller.x===o.x&&this.scroller.y===o.y||(this.scroller.directionX=0,this.scroller.directionY=0,this.scroller.currentPage=o,this.scroller.scrollTo(o.x,o.y,a,i))}this.moved&&this.scroller.trigger("scrollEnd",{x:this.scroller.x,y:this.scroller.y})}},G.prototype._pos=function(t,e){t<0?t=0:t>this.maxPosX&&(t=this.maxPosX),e<0?e=0:e>this.maxPosY&&(e=this.maxPosY),t=Math.round(t/this.sizeRatioX),e=Math.round(e/this.sizeRatioY),this.scroller.scrollTo(t,e),this.scroller.trigger("scroll",{x:this.scroller.x,y:this.scroller.y})},G.prototype._shouldShow=function(){return"vertical"===this.direction&&this.scroller.hasVerticalScroll||"horizontal"===this.direction&&this.scroller.hasHorizontalScroll?(this.wrapper.style.display="",!0):(this.wrapper.style.display="none",!1)},G.prototype._calculate=function(){if("vertical"===this.direction){var t=this.wrapper.clientHeight;this.indicatorHeight=Math.max(Math.round(t*t/(this.scroller.scrollerHeight||t||1)),8),this.indicatorStyle.height=this.indicatorHeight+"px",this.maxPosY=t-this.indicatorHeight,this.sizeRatioY=this.maxPosY/this.scroller.maxScrollY}else{var e=this.wrapper.clientWidth;this.indicatorWidth=Math.max(Math.round(e*e/(this.scroller.scrollerWidth||e||1)),8),this.indicatorStyle.width=this.indicatorWidth+"px",this.maxPosX=e-this.indicatorWidth,this.sizeRatioX=this.maxPosX/this.scroller.maxScrollX}},G.prototype._addDOMEvents=function(){var t=y;this._handleDOMEvents(t)},G.prototype._removeDOMEvents=function(){var t=g;this._handleDOMEvents(t),this._handleMoveEvents(t)},G.prototype._handleMoveEvents=function(t){this.scroller.options.disableTouch||t(window,"touchmove",this),this.scroller.options.disableMouse||t(window,"mousemove",this)},G.prototype._handleDOMEvents=function(t){this.scroller.options.disableTouch||(t(this.indicator,"touchstart",this),t(window,"touchend",this)),this.scroller.options.disableMouse||(t(this.indicator,"mousedown",this),t(window,"mouseup",this))};var K=2e3;function Q(t){if(t&&t.classList)return t.classList.contains("tombstone")}function J(t,e){var n=this;this.options=e,X("function"==typeof this.options.createTombstone,"Infinite scroll need createTombstone Function to create tombstone"),X("function"==typeof this.options.fetch,"Infinite scroll need fetch Function to fetch new data."),X("function"==typeof this.options.render,"Infinite scroll need render Function to render each item."),this.firstAttachedItem=0,this.lastAttachedItem=0,this.anchorScrollTop=0,this.anchorItem={index:0,offset:0},this.tombstoneHeight=0,this.tombstoneWidth=0,this.tombstones=[],this.tombstonesAnimationHandlers=[],this.items=[],this.loadedItems=0,this.requestInProgress=!1,this.hasMore=!0,this.scroller=t,this.wrapperEl=this.scroller.wrapper,this.scrollerEl=this.scroller.scroller,this.scroller.on("resize",function(){n.onResize()}),this.scroller.on("destroy",function(){n.destroy()}),this._onResizeHandler=setTimeout(function(){n.onResize(),n.scroller.on("scroll",function(){n.onScroll()})})}function Z(t,e){this.wrapper="string"==typeof t?document.querySelector(t):t,this.wrapper,this.scroller=this.wrapper.children[0],this.scroller,this.scrollerStyle=this.scroller.style,this._init(e)}J.prototype.destroy=function(){var t=this;clearTimeout(this._onResizeHandler),this.tombstonesAnimationHandlers.forEach(function(t){clearTimeout(t)}),this.tombstonesAnimationHandlers=null,this.items.forEach(function(e){e.node&&(t.scrollerEl.removeChild(e.node),e.node=null)}),this.scroller.infiniteScroller=null,this.scroller=null,this.wrapperEl=null,this.scrollerEl=null,this.items=null,this.tombstones=null},J.prototype.onScroll=function(){var t=-this.scroller.y,e=t-this.anchorScrollTop;this.anchorItem=0===t?{index:0,offset:0}:this._calculateAnchoredItem(this.anchorItem,e),this.anchorScrollTop=t;var n=this._calculateAnchoredItem(this.anchorItem,this.scroller.wrapperHeight),r=this.anchorItem.index,i=n.index;e<0?(r-=30,i+=10):(r-=10,i+=30),this.fill(r,i),this.maybeRequestContent()},J.prototype.onResize=function(){var t=this.options.createTombstone();t.style.position="absolute",this.scrollerEl.appendChild(t),t.style.display="",this.tombstoneHeight=t.offsetHeight,this.tombstoneWidth=t.offsetWidth,this.scrollerEl.removeChild(t);for(var e=0;ethis.firstAttachedItem;)e-=this.items[n-1].height||this.tombstoneHeight,n--;return e},J.prototype._setupAnimations=function(t,e){var n=this;for(var r in t){var i=t[r];this.items[r].node.style[O.transform]="translateY("+(this.anchorScrollTop+i[1])+"px) scale("+this.tombstoneWidth/this.items[r].width+", "+this.tombstoneHeight/this.items[r].height+")",this.items[r].node.offsetTop,i[0].offsetTop,this.items[r].node.style[O.transition]=w+"transform 200ms"}for(var o=this.firstAttachedItem;o0&&this.items[n-1].height;)e+=this.items[n-1].height,n--;r=Math.max(-n,Math.ceil(Math.min(e,0)/this.tombstoneHeight))}else{for(;e>0&&n=this.items.length||!this.items[n].height)&&(r=Math.floor(Math.max(e,0)/this.tombstoneHeight))}return{index:n+=r,offset:e-=r*this.tombstoneHeight}},function(t){t.prototype._init=function(t){this._handleOptions(t),this._events={},this.x=0,this.y=0,this.directionX=0,this.directionY=0,this.setScale(1),this._addDOMEvents(),this._initExtFeatures(),this._watchTransition(),this.options.observeDOM&&this._initDOMObserver(),this.options.autoBlur&&this._handleAutoBlur(),this.refresh(),this.options.snap||this.scrollTo(this.options.startX,this.options.startY),this.enable()},t.prototype.setScale=function(t){this.lastScale=h(this.scale)?t:this.scale,this.scale=t},t.prototype._handleOptions=function(t){this.options=f({},D,t),this.translateZ=this.options.HWCompositing&&k?" translateZ(0)":"",this.options.useTransition=this.options.useTransition&&E,this.options.useTransform=this.options.useTransform&&T,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollX="horizontal"!==this.options.eventPassthrough&&this.options.scrollX,this.options.scrollY="vertical"!==this.options.eventPassthrough&&this.options.scrollY,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,!0===this.options.tap&&(this.options.tap="tap")},t.prototype._addDOMEvents=function(){var t=y;this._handleDOMEvents(t)},t.prototype._removeDOMEvents=function(){var t=g;this._handleDOMEvents(t)},t.prototype._handleDOMEvents=function(t){var e=this.options.bindToWrapper?this.wrapper:window;t(window,"orientationchange",this),t(window,"resize",this),this.options.click&&t(this.wrapper,"click",this,!0),this.options.disableMouse||(t(this.wrapper,"mousedown",this),t(e,"mousemove",this),t(e,"mousecancel",this),t(e,"mouseup",this)),C&&!this.options.disableTouch&&(t(this.wrapper,"touchstart",this),t(e,"touchmove",this),t(e,"touchcancel",this),t(e,"touchend",this)),t(this.scroller,O.transitionEnd,this)},t.prototype._initExtFeatures=function(){this.options.snap&&this._initSnap(),this.options.scrollbar&&this._initScrollbar(),this.options.pullUpLoad&&this._initPullUp(),this.options.pullDownRefresh&&this._initPullDown(),this.options.wheel&&this._initWheel(),this.options.mouseWheel&&this._initMouseWheel(),this.options.zoom&&this._initZoom(),this.options.infinity&&this._initInfinite()},t.prototype._watchTransition=function(){if("function"==typeof Object.defineProperty){var t=this,e=!1,n=this.options.useTransition?"isInTransition":"isAnimating";Object.defineProperty(this,n,{get:function(){return e},set:function(n){e=n;for(var r=t.scroller.children.length?t.scroller.children:[t.scroller],i=e&&!t.pulling?"none":"auto",o=0;othis.minScrollX||this.xthis.minScrollY||this.y1&&this._zoomStart(t);break;case"touchmove":case"mousemove":this.options.zoom&&t.touches&&t.touches.length>1?this._zoom(t):this._move(t);break;case"touchend":case"mouseup":case"touchcancel":case"mousecancel":this.scaled?this._zoomEnd(t):this._end(t);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(t);break;case"click":this.enabled&&!t._constructed&&(j(t.target,this.options.preventDefaultException)||(t.preventDefault(),t.stopPropagation()));break;case"wheel":case"DOMMouseScroll":case"mousewheel":this._onMouseWheel(t)}},t.prototype.refresh=function(){var t="static"===window.getComputedStyle(this.wrapper,null).position,e=M(this.wrapper);this.wrapperWidth=e.width,this.wrapperHeight=e.height;var n=M(this.scroller);this.scrollerWidth=Math.round(n.width*this.scale),this.scrollerHeight=Math.round(n.height*this.scale),this.relativeX=n.left,this.relativeY=n.top,t&&(this.relativeX-=e.left,this.relativeY-=e.top),this.minScrollX=0,this.minScrollY=0;var r=this.options.wheel;r?(this.items=this.scroller.children,this._checkWheelAllDisabled(),this.options.itemHeight=this.itemHeight=this.items.length?this.scrollerHeight/this.items.length:0,void 0===this.selectedIndex&&(this.selectedIndex=r.selectedIndex||0),this.options.startY=-this.selectedIndex*this.itemHeight,this.maxScrollX=0,this.maxScrollY=-this.itemHeight*(this.items.length-1)):(this.maxScrollX=this.wrapperWidth-this.scrollerWidth,this.options.infinity||(this.maxScrollY=this.wrapperHeight-this.scrollerHeight),this.maxScrollX<0?(this.maxScrollX-=this.relativeX,this.minScrollX=-this.relativeX):this.scale>1&&(this.maxScrollX=this.maxScrollX/2-this.relativeX,this.minScrollX=this.maxScrollX),this.maxScrollY<0?(this.maxScrollY-=this.relativeY,this.minScrollY=-this.relativeY):this.scale>1&&(this.maxScrollY=this.maxScrollY/2-this.relativeY,this.minScrollY=this.maxScrollY)),this.hasHorizontalScroll=this.options.scrollX&&this.maxScrollXthis.options.momentumLimitTime&&!this.moved&&oo+this.options.directionLockThreshold?this.directionLocked="h":o>=i+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"===this.directionLocked){if("vertical"===this.options.eventPassthrough)t.preventDefault();else if("horizontal"===this.options.eventPassthrough)return void(this.initiated=!1);r=0}else if("v"===this.directionLocked){if("horizontal"===this.options.eventPassthrough)t.preventDefault();else if("vertical"===this.options.eventPassthrough)return void(this.initiated=!1);n=0}n=this.hasHorizontalScroll?n:0,r=this.hasVerticalScroll?r:0,this.movingDirectionX=n>0?V:n<0?$:0,this.movingDirectionY=r>0?H:r<0?U:0;var s=this.x+n,c=this.y+r,u=!1,f=!1,h=!1,p=!1,d=this.options.bounce;!1!==d&&(u=void 0===d.top||d.top,f=void 0===d.bottom||d.bottom,h=void 0===d.left||d.left,p=void 0===d.right||d.right),(s>this.minScrollX||sthis.minScrollX&&h||sthis.minScrollX?this.minScrollX:this.maxScrollX),(c>this.minScrollY||cthis.minScrollY&&u||cthis.minScrollY?this.minScrollY:this.maxScrollY),this.moved||(this.moved=!0,this.trigger("scrollStart")),this._translate(s,c),a-this.startTime>this.options.momentumLimitTime&&(this.startTime=a,this.startX=this.x,this.startY=this.y,this.options.probeType===W&&this.trigger("scroll",{x:this.x,y:this.y})),this.options.probeType>W&&this.trigger("scroll",{x:this.x,y:this.y});var v=document.documentElement.scrollLeft||window.pageXOffset||document.body.scrollLeft,m=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop,y=this.pointX-v,g=this.pointY-m;(y>document.documentElement.clientWidth-this.options.momentumLimitDistance||ydocument.documentElement.clientHeight-this.options.momentumLimitDistance)&&this._end(t)}}},t.prototype._end=function(t){if(this.enabled&&!this.destroyed&&P[t.type]===this.initiated){this.initiated=!1,this.options.preventDefault&&!j(t.target,this.options.preventDefaultException)&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.trigger("touchEnd",{x:this.x,y:this.y}),this.isInTransition=!1;var e=Math.round(this.x),n=Math.round(this.y),r=e-this.absStartX,i=n-this.absStartY;if(this.directionX=r>0?V:r<0?$:0,this.directionY=i>0?H:i<0?U:0,!this.options.pullDownRefresh||!this._checkPullDown())if(this._checkClick(t))this.trigger("scrollCancel");else if(!this.resetPosition(this.options.bounceTime,R.bounce)){this._translate(e,n),this.endTime=l();var o=this.endTime-this.startTime,a=Math.abs(e-this.startX),s=Math.abs(n-this.startY);if(this._events.flick&&othis.options.momentumLimitDistance||a>this.options.momentumLimitDistance)){var u=!1,f=!1,h=!1,p=!1,d=this.options.bounce;!1!==d&&(u=void 0===d.top||d.top,f=void 0===d.bottom||d.bottom,h=void 0===d.left||d.left,p=void 0===d.right||d.right);var v=this.directionX===V&&h||this.directionX===$&&p?this.wrapperWidth:0,m=this.directionY===H&&u||this.directionY===U&&f?this.wrapperHeight:0,y=this.hasHorizontalScroll?F(this.x,this.startX,o,this.maxScrollX,this.minScrollX,v,this.options,this):{destination:e,duration:0},g=this.hasVerticalScroll?F(this.y,this.startY,o,this.maxScrollY,this.minScrollY,m,this.options,this):{destination:n,duration:0};e=y.destination,n=g.destination,c=Math.max(y.duration,g.duration),this.isInTransition=!0}else this.options.wheel&&(n=this._findNearestValidWheel(n).y,c=this.options.wheel.adjustTime||400);var _=R.swipe;if(this.options.snap){var b=this._nearestSnap(e,n);this.currentPage=b,c=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(e-b.x),1e3),Math.min(Math.abs(n-b.y),1e3)),300),e=b.x,n=b.y,this.directionX=0,this.directionY=0,_=this.options.snap.easing||R.bounce}if(e!==this.x||n!==this.y)return(e>this.minScrollX||ethis.minScrollY||n0&&void 0!==arguments[0]?arguments[0]:0;if(this.scrollerStyle[O.transitionDuration]=t+"ms",this.options.wheel)for(var e=0;e=f)return i.isAnimating=!1,i._translate(t,e,c),i.trigger("scroll",{x:i.x,y:i.y}),void(i.pulling||i.resetPosition(i.options.bounceTime)||i.trigger("scrollEnd",{x:i.x,y:i.y}));var d=r(p=(p-u)/n),v=(t-o)*d+o,m=(e-a)*d+a,y=(c-s)*d+s;i._translate(v,m,y),i.isAnimating&&(i.animateTimer=B(h)),i.options.probeType===q&&i.trigger("scroll",{x:i.x,y:i.y})}()},t.prototype.scrollBy=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:R.bounce;t=this.x+t,e=this.y+e,this.scrollTo(t,e,n,r)},t.prototype.scrollTo=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:R.bounce,i=arguments[4];if(this.options.wheel&&(e=this._findNearestValidWheel(e).y),this.isInTransition=this.options.useTransition&&n>0&&(this.x!==t||this.y!==e),!n||this.options.useTransition){if(this._transitionTimingFunction(r.style),this._transitionTime(n),this._translate(t,e),n&&this.options.probeType===q&&this._startProbe(),!n&&!i){if(this.options.zoom)return;this.trigger("scroll",{x:t,y:e}),this._reflow=document.body.offsetHeight,this.resetPosition(this.options.bounceTime,R.bounce)||this.trigger("scrollEnd",{x:t,y:e})}this.options.wheel&&(this.selectedIndex=this._findNearestValidWheel(e).index)}else this._animate(t,e,n,r.fn)},t.prototype.scrollToElement=function(t,e,n,r,i){if(t&&(t=t.nodeType?t:this.scroller.querySelector(t),!this.options.wheel||t.classList.contains(this.options.wheel.wheelItemClass))){var o=_(t);o.left-=this.wrapperOffset.left,o.top-=this.wrapperOffset.top,!0===n&&(n=Math.round(t.offsetWidth/2-this.wrapper.offsetWidth/2)),!0===r&&(r=Math.round(t.offsetHeight/2-this.wrapper.offsetHeight/2)),o.left-=n||0,o.top-=r||0,o.left=o.left>this.minScrollX?this.minScrollX:o.leftthis.minScrollY?this.minScrollY:o.top0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:R.bounce,n=this.x,r=Math.round(n);!this.hasHorizontalScroll||r>this.minScrollX?n=this.minScrollX:rthis.minScrollY?i=this.minScrollY:o2&&void 0!==arguments[2]?arguments[2]:this;this._events[t]||(this._events[t]=[]),this._events[t].push([e,n])},t.prototype.once=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this;function r(){this.off(t,r),e.apply(n,arguments)}r.fn=e,this.on(t,r)},t.prototype.off=function(t,e){var n=this._events[t];if(n)for(var i=n.length;i--;)(n[i][0]===e||n[i][0]&&n[i][0].fn===e)&&r(n,i)},t.prototype.trigger=function(t){var e=this._events[t];if(e)for(var n=e.length,r=[].concat(o(e)),a=0;a1?(function(t,e){e.firstChild?function(t,e){e.parentNode.insertBefore(t,e)}(t,e.firstChild):e.appendChild(t)}(n[n.length-1].cloneNode(!0),this.scroller),this.scroller.appendChild(n[1].cloneNode(!0))):e.loop=!1}var r=e.el;"string"==typeof r&&(r=this.scroller.querySelectorAll(r)),this.on("refresh",function(){if(t.pages=[],t.wrapperWidth&&t.wrapperHeight&&t.scrollerWidth&&t.scrollerHeight){var n=e.stepX||t.wrapperWidth,i=e.stepY||t.wrapperHeight,o=0,a=void 0,s=void 0,c=void 0,u=0,l=void 0,f=0,h=void 0,p=void 0;if(r)for(l=r.length,h=-1;ut.maxScrollX&&f++;else for(s=Math.round(n/2),c=Math.round(i/2);o>-t.scrollerWidth;){for(t.pages[u]=[],l=0,a=0;a>-t.scrollerHeight;)t.pages[u][l]={x:Math.max(o,t.maxScrollX),y:Math.max(a,t.maxScrollY),width:n,height:i,cx:o-s,cy:a-c},a-=i,l++;o-=n,u++}t._checkSnapLoop();var d=e._loopX?1:0,v=e._loopY?1:0;t._goToPage(t.currentPage.pageX||d,t.currentPage.pageY||v,0,void 0,!0);var m=e.threshold;m%1==0?(t.snapThresholdX=m,t.snapThresholdY=m):(t.snapThresholdX=Math.round(t.pages[t.currentPage.pageX][t.currentPage.pageY].width*m),t.snapThresholdY=Math.round(t.pages[t.currentPage.pageX][t.currentPage.pageY].height*m))}}),this.on("scrollEnd",function(){e.loop&&(e._loopX?(0===t.currentPage.pageX&&t._goToPage(t.pages.length-2,t.currentPage.pageY,0,void 0,!0),t.currentPage.pageX===t.pages.length-1&&t._goToPage(1,t.currentPage.pageY,0,void 0,!0)):(0===t.currentPage.pageY&&t._goToPage(t.currentPage.pageX,t.pages[0].length-2,0,void 0,!0),t.currentPage.pageY===t.pages[0].length-1&&t._goToPage(t.currentPage.pageX,1,0,void 0,!0)))}),!1!==e.listenFlick&&this.on("flick",function(){var n=e.speed||Math.max(Math.max(Math.min(Math.abs(t.x-t.startX),1e3),Math.min(Math.abs(t.y-t.startY),1e3)),300);t._goToPage(t.currentPage.pageX+t.directionX,t.currentPage.pageY+t.directionY,n)}),this.on("destroy",function(){if(e.loop){var n=t.scroller.children;n.length>2&&(L(t.scroller,n[n.length-1]),L(t.scroller,n[0]))}})},t.prototype._checkSnapLoop=function(){var t=this.options.snap;t.loop&&this.pages&&this.pages.length&&(this.pages.length>1&&(t._loopX=!0),this.pages[0]&&this.pages[0].length>1&&(t._loopY=!0),t._loopX&&t._loopY)},t.prototype._nearestSnap=function(t,e){if(!this.pages.length)return{x:0,y:0,pageX:0,pageY:0};var n=0;if(Math.abs(t-this.absStartX)<=this.snapThresholdX&&Math.abs(e-this.absStartY)<=this.snapThresholdY)return this.currentPage;t>this.minScrollX?t=this.minScrollX:tthis.minScrollY?e=this.minScrollY:e=this.pages[n][0].cx){t=this.pages[n][0].x;break}r=this.pages[n].length;for(var i=0;i=this.pages[0][i].cy){e=this.pages[0][i].y;break}return n===this.currentPage.pageX&&((n+=this.directionX)<0?n=0:n>=this.pages.length&&(n=this.pages.length-1),t=this.pages[n][0].x),i===this.currentPage.pageY&&((i+=this.directionY)<0?i=0:i>=this.pages[0].length&&(i=this.pages[0].length-1),e=this.pages[0][i].y),{x:t,y:e,pageX:n,pageY:i}},t.prototype._goToPage=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments[2],r=arguments[3],i=arguments[4],o=this.options.snap;if(o&&this.pages&&this.pages.length&&(r=r||o.easing||R.bounce,t>=this.pages.length?t=this.pages.length-1:t<0&&(t=0),this.pages[t])){e>=this.pages[t].length?e=this.pages[t].length-1:e<0&&(e=0);var a=this.pages[t][e].x,s=this.pages[t][e].y;n=void 0===n?o.speed||Math.max(Math.max(Math.min(Math.abs(a-this.x),1e3),Math.min(Math.abs(s-this.y),1e3)),300):n,this.currentPage={x:a,y:s,pageX:t,pageY:e},this.scrollTo(a,s,n,r,i)}},t.prototype.goToPage=function(t,e,n,r){var i=this.options.snap;if(i&&this.pages&&this.pages.length){if(i.loop){var o=void 0;i._loopX?(t>=(o=this.pages.length-2)?t=o-1:t<0&&(t=0),t+=1):(e>=(o=this.pages[0].length-2)?e=o-1:e<0&&(e=0),e+=1)}this._goToPage(t,e,n,r)}},t.prototype.next=function(t,e){if(this.options.snap){var n=this.currentPage.pageX,r=this.currentPage.pageY;++n>=this.pages.length&&this.hasVerticalScroll&&(n=0,r++),this._goToPage(n,r,t,e)}},t.prototype.prev=function(t,e){if(this.options.snap){var n=this.currentPage.pageX,r=this.currentPage.pageY;--n<0&&this.hasVerticalScroll&&(n=0,r--),this._goToPage(n,r,t,e)}},t.prototype.getCurrentPage=function(){var t=this.options.snap;return t?t.loop?t._loopX?f({},this.currentPage,{pageX:this.currentPage.pageX-1}):f({},this.currentPage,{pageY:this.currentPage.pageY-1}):this.currentPage:null}}(Z),function(t){t.prototype.wheelTo=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.options.wheel){var e=-t*this.itemHeight;this.scrollTo(0,e)}},t.prototype.getSelectedIndex=function(){return this.options.wheel&&this.selectedIndex},t.prototype._initWheel=function(){var t=this.options.wheel;t.wheelWrapperClass||(t.wheelWrapperClass="wheel-scroll"),t.wheelItemClass||(t.wheelItemClass="wheel-item"),t.wheelDisabledItemClass||(t.wheelDisabledItemClass="wheel-disabled-item"),void 0===t.selectedIndex&&(t.selectedIndex=0)},t.prototype._findNearestValidWheel=function(t){t=t>0?0:t=0&&-1!==i[n].className.indexOf(e.wheelDisabledItemClass);)n--;if(n<0)for(n=r;n<=i.length-1&&-1!==i[n].className.indexOf(e.wheelDisabledItemClass);)n++;return n===i.length&&(n=r),{index:this.wheelItemsAllDisabled?-1:n,y:-n*this.itemHeight}},t.prototype._checkWheelAllDisabled=function(){var t=this.options.wheel,e=this.items;this.wheelItemsAllDisabled=!0;for(var n=0;n0&&void 0!==arguments[0])||arguments[0];this.options.pullDownRefresh=t,this._initPullDown()},t.prototype.closePullDown=function(){this.options.pullDownRefresh=!1},t.prototype.autoPullDownRefresh=function(){var t=this.options.pullDownRefresh,e=t.threshold,n=void 0===e?90:e,r=t.stop,i=void 0===r?40:r;this.pulling||(this.pulling=!0,this.scrollTo(this.x,n),this.trigger("pullingDown"),this.scrollTo(this.x,i,this.options.bounceTime,R.bounce))}}(Z),function(t){t.prototype._initPullUp=function(){this.options.probeType=q,this.pullupWatching=!1,this._watchPullUp()},t.prototype._watchPullUp=function(){this.pullupWatching||(this.pullupWatching=!0,this.on("scroll",this._checkToEnd))},t.prototype._checkToEnd=function(t){var e=this,n=this.options.pullUpLoad.threshold,r=void 0===n?0:n;this.movingDirectionY===U&&t.y<=this.maxScrollY+r&&(this.once("scrollEnd",function(){e.pullupWatching=!1}),this.trigger("pullingUp"),this.off("scroll",this._checkToEnd))},t.prototype.finishPullUp=function(){var t=this;this.pullupWatching?this.once("scrollEnd",function(){t._watchPullUp()}):this._watchPullUp()},t.prototype.openPullUp=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.options.pullUpLoad=t,this._initPullUp()},t.prototype.closePullUp=function(){this.options.pullUpLoad=!1,this.pullupWatching&&(this.pullupWatching=!1,this.off("scroll",this._checkToEnd))}}(Z),function(t){t.prototype._initMouseWheel=function(){var t=this;this._handleMouseWheelEvent(y),this.on("destroy",function(){clearTimeout(t.mouseWheelTimer),clearTimeout(t.mouseWheelEndTimer),t._handleMouseWheelEvent(g)}),this.firstWheelOpreation=!0},t.prototype._handleMouseWheelEvent=function(t){t(this.wrapper,"wheel",this),t(this.wrapper,"mousewheel",this),t(this.wrapper,"DOMMouseScroll",this)},t.prototype._onMouseWheel=function(t){var e=this;if(this.enabled){t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.firstWheelOpreation&&this.trigger("scrollStart"),this.firstWheelOpreation=!1;var n=this.options.mouseWheel,r=n.speed,i=void 0===r?20:r,o=n.invert,a=void 0!==o&&o,s=n.easeTime,c=void 0===s?300:s;clearTimeout(this.mouseWheelTimer),this.mouseWheelTimer=setTimeout(function(){e.options.snap||c||e.trigger("scrollEnd",{x:e.x,y:e.y}),e.firstWheelOpreation=!0},400);var u=void 0,l=void 0;switch(!0){case"deltaX"in t:1===t.deltaMode?(u=-t.deltaX*i,l=-t.deltaY*i):(u=-t.deltaX,l=-t.deltaY);break;case"wheelDeltaX"in t:u=t.wheelDeltaX/120*i,l=t.wheelDeltaY/120*i;break;case"wheelDelta"in t:u=l=t.wheelDelta/120*i;break;case"detail"in t:u=l=-t.detail/3*i;break;default:return}var f=a?-1:1;u*=f,l*=f,this.hasVerticalScroll||(u=l,l=0);var h=void 0,p=void 0;if(this.options.snap)return h=this.currentPage.pageX,p=this.currentPage.pageY,u>0?h--:u<0&&h++,l>0?p--:l<0&&p++,void this._goToPage(h,p);h=this.x+Math.round(this.hasHorizontalScroll?u:0),p=this.y+Math.round(this.hasVerticalScroll?l:0),this.movingDirectionX=this.directionX=u>0?-1:u<0?1:0,this.movingDirectionY=this.directionY=l>0?-1:l<0?1:0,h>this.minScrollX?h=this.minScrollX:hthis.minScrollY?p=this.minScrollY:pthis.minScrollX?o=this.minScrollX:othis.minScrollY?a=this.minScrollY:ac&&(r=2*c*Math.pow(.5,c/r));var u=r/this.startScale,l=this.startX-(this.originX-this.relativeX)*(u-1),f=this.startY-(this.originY-this.relativeY)*(u-1);this.setScale(r),this.scrollTo(l,f,0)}},t.prototype._zoomEnd=function(t){if(this.enabled&&!this.destroyed&&P[t.type]===this.initiated){this.options.preventDefault&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.isInTransition=!1,this.isAnimating=!1,this.initiated=0;var e=this.options.zoom,n=e.min,r=void 0===n?1:n,i=e.max,o=void 0===i?4:i,a=this.scale>o?o:this.scale1?arguments[1]:void 0)}})},Gu7T:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("c/Tr"),o=(r=i)&&r.__esModule?r:{default:r};e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e0?Math.floor:Math.ceil)(t)}})},H7zx:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{signbit:function(t){return(t=+t)!=t?t:0==t?1/t==1/0:t>0}})},HT7L:function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},Hhm4:function(t,e,n){var r=n("Ds5P");r(r.S+r.F*!n("bUqO"),"Object",{defineProperties:n("twxM")})},"Hl+4":function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{sign:n("cwmK")})},ICSD:function(t,e,n){var r=n("ITwD"),i=n("mTAn");t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},IFpc:function(t,e,n){"use strict";var r=n("XO1R"),i=n("UKM+"),o=n("BbyF"),a=n("rFzY"),s=n("kkCw")("isConcatSpreadable");t.exports=function t(e,n,c,u,l,f,h,p){for(var d,v,m=l,y=0,g=!!h&&a(h,p,3);y0)m=t(e,n,d,o(d.length),m,f-1)-1;else{if(m>=9007199254740991)throw TypeError();e[m]=d}m++}y++}return m}},IMUI:function(t,e,n){var r=n("Ds5P");r(r.S,"Array",{isArray:n("XO1R")})},IRJ3:function(t,e,n){"use strict";var r=n("7ylX"),i=n("fU25"),o=n("yYvK"),a={};n("2p1q")(a,n("kkCw")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},ITwD:function(t,e,n){var r=n("gGqR"),i=n("eFps"),o=n("yCNF"),a=n("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,h=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!o(t)||i(t))&&(r(t)?h:s).test(a(t))}},Ibhu:function(t,e,n){var r=n("D2L2"),i=n("TcQ7"),o=n("vFc/")(!1),a=n("ax3d")("IE_PROTO");t.exports=function(t,e){var n,s=i(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},"Ilb/":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},"J+j9":function(t,e,n){"use strict";n("y325")("fixed",function(t){return function(){return t(this,"tt","","")}})},J2ob:function(t,e,n){"use strict";n("y325")("sup",function(t){return function(){return t(this,"sup","","")}})},JBvZ:function(t,e,n){var r=n("imBK");t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},JG34:function(t,e,n){var r=n("Ds5P"),i=n("DIVP"),o=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},JJ3w:function(t,e,n){n("0j1G")("Map")},"JP+z":function(t,e,n){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r-1}},Jbuy:function(t,e,n){"use strict";var r=n("32VL");n("Ds5P")({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},K0JP:function(t,e,n){n("77Ug")("Int32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},K6ED:function(t,e,n){t.exports={default:n("cnlX"),__esModule:!0}},KB1o:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},KCLY:function(t,e,n){"use strict";(function(e){var r=n("cGG2"),i=n("5VQ+"),o={"Content-Type":"application/x-www-form-urlencoded"};function a(t,e){!r.isUndefined(t)&&r.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var s,c={adapter:("undefined"!=typeof XMLHttpRequest?s=n("7GwW"):void 0!==e&&(s=n("7GwW")),s),transformRequest:[function(t,e){return i(e,"Content-Type"),r.isFormData(t)||r.isArrayBuffer(t)||r.isBuffer(t)||r.isStream(t)||r.isFile(t)||r.isBlob(t)?t:r.isArrayBufferView(t)?t.buffer:r.isURLSearchParams(t)?(a(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):r.isObject(t)?(a(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300}};c.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(t){c.headers[t]={}}),r.forEach(["post","put","patch"],function(t){c.headers[t]=r.merge(o)}),t.exports=c}).call(e,n("W2nU"))},KOrd:function(t,e,n){var r=n("WBcL"),i=n("FryR"),o=n("mZON")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},Kh4W:function(t,e,n){e.f=n("dSzd")},Kh5d:function(t,e,n){var r=n("sB3e"),i=n("PzxK");n("uqUo")("getPrototypeOf",function(){return function(t){return i(r(t))}})},KmWZ:function(t,e,n){var r=n("duB3");t.exports=function(){this.__data__=new r,this.size=0}},Kzd6:function(t,e,n){var r=n("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},L42u:function(t,e,n){var r,i,o,a=n("+ZMJ"),s=n("knuC"),c=n("RPLV"),u=n("ON07"),l=n("7KvD"),f=l.process,h=l.setImmediate,p=l.clearImmediate,d=l.MessageChannel,v=l.Dispatch,m=0,y={},g=function(){var t=+this;if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},_=function(t){g.call(t.data)};h&&p||(h=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return y[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},p=function(t){delete y[t]},"process"==n("R9M2")(f)?r=function(t){f.nextTick(a(g,t,1))}:v&&v.now?r=function(t){v.now(a(g,t,1))}:d?(o=(i=new d).port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",_,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),g.call(t)}}:function(t){setTimeout(a(g,t,1),0)}),t.exports={set:h,clear:p}},LG56:function(t,e,n){var r=n("Ds5P");r(r.S,"Number",{isNaN:function(t){return t!=t}})},LKZe:function(t,e,n){var r=n("NpIQ"),i=n("X8DO"),o=n("TcQ7"),a=n("MmMw"),s=n("D2L2"),c=n("SfB7"),u=Object.getOwnPropertyDescriptor;e.f=n("+E39")?u:function(t,e){if(t=o(t),e=a(e,!0),c)try{return u(t,e)}catch(t){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},"LRL/":function(t,e,n){"use strict";n("Ymdd")("trimRight",function(t){return function(){return t(this,2)}},"trimEnd")},La7N:function(t,e,n){n("0j1G")("WeakMap")},LhTa:function(t,e,n){var r=n("rFzY"),i=n("Q6Nf"),o=n("FryR"),a=n("BbyF"),s=n("plSV");t.exports=function(t,e){var n=1==t,c=2==t,u=3==t,l=4==t,f=6==t,h=5==t||f,p=e||s;return function(e,s,d){for(var v,m,y=o(e),g=i(y),_=r(s,d,3),b=a(g.length),w=0,x=n?p(e,b):c?p(e,0):void 0;b>w;w++)if((h||w in g)&&(m=_(v=g[w],w,y),t))if(n)x[w]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:x.push(v)}else if(l)return!1;return f?-1:u||l?l:x}}},LlNE:function(t,e,n){var r=n("Ds5P"),i=Math.exp;r(r.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},Lqg1:function(t,e,n){var r=n("Ds5P"),i=Math.imul;r(r.S+r.F*n("zgIt")(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function(t,e){var n=+t,r=+e,i=65535&n,o=65535&r;return 0|i*o+((65535&n>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},LrcN:function(t,e,n){"use strict";var r=n("OzIq"),i=n("bUqO"),o=n("V3l/"),a=n("07k+"),s=n("2p1q"),c=n("A16L"),u=n("zgIt"),l=n("9GpA"),f=n("oeih"),h=n("BbyF"),p=n("8D8H"),d=n("WcO1").f,v=n("lDLk").f,m=n("zCYm"),y=n("yYvK"),g="prototype",_="Wrong index!",b=r.ArrayBuffer,w=r.DataView,x=r.Math,S=r.RangeError,k=r.Infinity,C=b,T=x.abs,E=x.pow,O=x.floor,A=x.log,P=x.LN2,M=i?"_b":"buffer",j=i?"_l":"byteLength",I=i?"_o":"byteOffset";function L(t,e,n){var r,i,o,a=new Array(n),s=8*n-e-1,c=(1<>1,l=23===e?E(2,-24)-E(2,-77):0,f=0,h=t<0||0===t&&1/t<0?1:0;for((t=T(t))!=t||t===k?(i=t!=t?1:0,r=c):(r=O(A(t)/P),t*(o=E(2,-r))<1&&(r--,o*=2),(t+=r+u>=1?l/o:l*E(2,1-u))*o>=2&&(r++,o/=2),r+u>=c?(i=0,r=c):r+u>=1?(i=(t*o-1)*E(2,e),r+=u):(i=t*E(2,u-1)*E(2,e),r=0));e>=8;a[f++]=255&i,i/=256,e-=8);for(r=r<0;a[f++]=255&r,r/=256,s-=8);return a[--f]|=128*h,a}function D(t,e,n){var r,i=8*n-e-1,o=(1<>1,s=i-7,c=n-1,u=t[c--],l=127&u;for(u>>=7;s>0;l=256*l+t[c],c--,s-=8);for(r=l&(1<<-s)-1,l>>=-s,s+=e;s>0;r=256*r+t[c],c--,s-=8);if(0===l)l=1-a;else{if(l===o)return r?NaN:u?-k:k;r+=E(2,e),l-=a}return(u?-1:1)*r*E(2,l-e)}function R(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function F(t){return[255&t]}function N(t){return[255&t,t>>8&255]}function B(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function z(t){return L(t,52,8)}function U(t){return L(t,23,4)}function H(t,e,n){v(t[g],e,{get:function(){return this[n]}})}function $(t,e,n,r){var i=p(+n);if(i+e>t[j])throw S(_);var o=t[M]._b,a=i+t[I],s=o.slice(a,a+e);return r?s:s.reverse()}function V(t,e,n,r,i,o){var a=p(+n);if(a+e>t[j])throw S(_);for(var s=t[M]._b,c=a+t[I],u=r(+i),l=0;lY;)(W=X[Y++])in b||s(b,W,C[W]);o||(q.constructor=b)}var G=new w(new b(2)),K=w[g].setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||c(w[g],{setInt8:function(t,e){K.call(this,t,e<<24>>24)},setUint8:function(t,e){K.call(this,t,e<<24>>24)}},!0)}else b=function(t){l(this,b,"ArrayBuffer");var e=p(t);this._b=m.call(new Array(e),0),this[j]=e},w=function(t,e,n){l(this,w,"DataView"),l(t,b,"DataView");var r=t[j],i=f(e);if(i<0||i>r)throw S("Wrong offset!");if(i+(n=void 0===n?r-i:h(n))>r)throw S("Wrong length!");this[M]=t,this[I]=i,this[j]=n},i&&(H(b,"byteLength","_l"),H(w,"buffer","_b"),H(w,"byteLength","_l"),H(w,"byteOffset","_o")),c(w[g],{getInt8:function(t){return $(this,1,t)[0]<<24>>24},getUint8:function(t){return $(this,1,t)[0]},getInt16:function(t){var e=$(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=$(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return R($(this,4,t,arguments[1]))},getUint32:function(t){return R($(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return D($(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return D($(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){V(this,1,t,F,e)},setUint8:function(t,e){V(this,1,t,F,e)},setInt16:function(t,e){V(this,2,t,N,e,arguments[2])},setUint16:function(t,e){V(this,2,t,N,e,arguments[2])},setInt32:function(t,e){V(this,4,t,B,e,arguments[2])},setUint32:function(t,e){V(this,4,t,B,e,arguments[2])},setFloat32:function(t,e){V(this,4,t,U,e,arguments[2])},setFloat64:function(t,e){V(this,8,t,z,e,arguments[2])}});y(b,"ArrayBuffer"),y(w,"DataView"),s(w[g],a.VIEW,!0),e.ArrayBuffer=b,e.DataView=w},M4fF:function(t,e,n){(function(t,r){var i; +/** + * @license + * Lodash + * Copyright JS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(){var o,a=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",u="__lodash_hash_undefined__",l=500,f="__lodash_placeholder__",h=1,p=2,d=4,v=1,m=2,y=1,g=2,_=4,b=8,w=16,x=32,S=64,k=128,C=256,T=512,E=30,O="...",A=800,P=16,M=1,j=2,I=1/0,L=9007199254740991,D=1.7976931348623157e308,R=NaN,F=4294967295,N=F-1,B=F>>>1,z=[["ary",k],["bind",y],["bindKey",g],["curry",b],["curryRight",w],["flip",T],["partial",x],["partialRight",S],["rearg",C]],U="[object Arguments]",H="[object Array]",$="[object AsyncFunction]",V="[object Boolean]",W="[object Date]",q="[object DOMException]",X="[object Error]",Y="[object Function]",G="[object GeneratorFunction]",K="[object Map]",Q="[object Number]",J="[object Null]",Z="[object Object]",tt="[object Proxy]",et="[object RegExp]",nt="[object Set]",rt="[object String]",it="[object Symbol]",ot="[object Undefined]",at="[object WeakMap]",st="[object WeakSet]",ct="[object ArrayBuffer]",ut="[object DataView]",lt="[object Float32Array]",ft="[object Float64Array]",ht="[object Int8Array]",pt="[object Int16Array]",dt="[object Int32Array]",vt="[object Uint8Array]",mt="[object Uint8ClampedArray]",yt="[object Uint16Array]",gt="[object Uint32Array]",_t=/\b__p \+= '';/g,bt=/\b(__p \+=) '' \+/g,wt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,xt=/&(?:amp|lt|gt|quot|#39);/g,St=/[&<>"']/g,kt=RegExp(xt.source),Ct=RegExp(St.source),Tt=/<%-([\s\S]+?)%>/g,Et=/<%([\s\S]+?)%>/g,Ot=/<%=([\s\S]+?)%>/g,At=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Pt=/^\w*$/,Mt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,jt=/[\\^$.*+?()[\]{}|]/g,It=RegExp(jt.source),Lt=/^\s+|\s+$/g,Dt=/^\s+/,Rt=/\s+$/,Ft=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Nt=/\{\n\/\* \[wrapped with (.+)\] \*/,Bt=/,? & /,zt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ut=/\\(\\)?/g,Ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,$t=/\w*$/,Vt=/^[-+]0x[0-9a-f]+$/i,Wt=/^0b[01]+$/i,qt=/^\[object .+?Constructor\]$/,Xt=/^0o[0-7]+$/i,Yt=/^(?:0|[1-9]\d*)$/,Gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Kt=/($^)/,Qt=/['\n\r\u2028\u2029\\]/g,Jt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Zt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",te="[\\ud800-\\udfff]",ee="["+Zt+"]",ne="["+Jt+"]",re="\\d+",ie="[\\u2700-\\u27bf]",oe="[a-z\\xdf-\\xf6\\xf8-\\xff]",ae="[^\\ud800-\\udfff"+Zt+re+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",se="\\ud83c[\\udffb-\\udfff]",ce="[^\\ud800-\\udfff]",ue="(?:\\ud83c[\\udde6-\\uddff]){2}",le="[\\ud800-\\udbff][\\udc00-\\udfff]",fe="[A-Z\\xc0-\\xd6\\xd8-\\xde]",he="(?:"+oe+"|"+ae+")",pe="(?:"+fe+"|"+ae+")",de="(?:"+ne+"|"+se+")"+"?",ve="[\\ufe0e\\ufe0f]?"+de+("(?:\\u200d(?:"+[ce,ue,le].join("|")+")[\\ufe0e\\ufe0f]?"+de+")*"),me="(?:"+[ie,ue,le].join("|")+")"+ve,ye="(?:"+[ce+ne+"?",ne,ue,le,te].join("|")+")",ge=RegExp("['鈥橾","g"),_e=RegExp(ne,"g"),be=RegExp(se+"(?="+se+")|"+ye+ve,"g"),we=RegExp([fe+"?"+oe+"+(?:['鈥橾(?:d|ll|m|re|s|t|ve))?(?="+[ee,fe,"$"].join("|")+")",pe+"+(?:['鈥橾(?:D|LL|M|RE|S|T|VE))?(?="+[ee,fe+he,"$"].join("|")+")",fe+"?"+he+"+(?:['鈥橾(?:d|ll|m|re|s|t|ve))?",fe+"+(?:['鈥橾(?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",re,me].join("|"),"g"),xe=RegExp("[\\u200d\\ud800-\\udfff"+Jt+"\\ufe0e\\ufe0f]"),Se=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ke=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ce=-1,Te={};Te[lt]=Te[ft]=Te[ht]=Te[pt]=Te[dt]=Te[vt]=Te[mt]=Te[yt]=Te[gt]=!0,Te[U]=Te[H]=Te[ct]=Te[V]=Te[ut]=Te[W]=Te[X]=Te[Y]=Te[K]=Te[Q]=Te[Z]=Te[et]=Te[nt]=Te[rt]=Te[at]=!1;var Ee={};Ee[U]=Ee[H]=Ee[ct]=Ee[ut]=Ee[V]=Ee[W]=Ee[lt]=Ee[ft]=Ee[ht]=Ee[pt]=Ee[dt]=Ee[K]=Ee[Q]=Ee[Z]=Ee[et]=Ee[nt]=Ee[rt]=Ee[it]=Ee[vt]=Ee[mt]=Ee[yt]=Ee[gt]=!0,Ee[X]=Ee[Y]=Ee[at]=!1;var Oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ae=parseFloat,Pe=parseInt,Me="object"==typeof t&&t&&t.Object===Object&&t,je="object"==typeof self&&self&&self.Object===Object&&self,Ie=Me||je||Function("return this")(),Le="object"==typeof e&&e&&!e.nodeType&&e,De=Le&&"object"==typeof r&&r&&!r.nodeType&&r,Re=De&&De.exports===Le,Fe=Re&&Me.process,Ne=function(){try{var t=De&&De.require&&De.require("util").types;return t||Fe&&Fe.binding&&Fe.binding("util")}catch(t){}}(),Be=Ne&&Ne.isArrayBuffer,ze=Ne&&Ne.isDate,Ue=Ne&&Ne.isMap,He=Ne&&Ne.isRegExp,$e=Ne&&Ne.isSet,Ve=Ne&&Ne.isTypedArray;function We(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function qe(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i-1}function Je(t,e,n){for(var r=-1,i=null==t?0:t.length;++r-1;);return n}function wn(t,e){for(var n=t.length;n--&&cn(e,t[n],0)>-1;);return n}var xn=pn({"脌":"A","脕":"A","脗":"A","脙":"A","脛":"A","脜":"A","脿":"a","谩":"a","芒":"a","茫":"a","盲":"a","氓":"a","脟":"C","莽":"c","脨":"D","冒":"d","脠":"E","脡":"E","脢":"E","脣":"E","猫":"e","茅":"e","锚":"e","毛":"e","脤":"I","脥":"I","脦":"I","脧":"I","矛":"i","铆":"i","卯":"i","茂":"i","脩":"N","帽":"n","脪":"O","脫":"O","脭":"O","脮":"O","脰":"O","脴":"O","貌":"o","贸":"o","么":"o","玫":"o","枚":"o","酶":"o","脵":"U","脷":"U","脹":"U","脺":"U","霉":"u","煤":"u","没":"u","眉":"u","脻":"Y","媒":"y","每":"y","脝":"Ae","忙":"ae","脼":"Th","镁":"th","脽":"ss","膧":"A","膫":"A","膭":"A","膩":"a","膬":"a","膮":"a","膯":"C","膱":"C","膴":"C","膶":"C","膰":"c","膲":"c","膵":"c","膷":"c","膸":"D","膼":"D","膹":"d","膽":"d","膾":"E","臄":"E","臇":"E","臉":"E","臍":"E","膿":"e","臅":"e","臈":"e","臋":"e","臎":"e","臏":"G","臑":"G","臓":"G","蘑":"G","臐":"g","臒":"g","摹":"g","模":"g","膜":"H","摩":"H","磨":"h","魔":"h","抹":"I","莫":"I","默":"I","漠":"I","陌":"I","末":"i","墨":"i","沫":"i","寞":"i","谋":"i","拇":"J","牡":"j","亩":"K","姆":"k","母":"k","墓":"L","幕":"L","慕":"L","目":"L","艁":"L","暮":"l","募":"l","木":"l","艀":"l","艂":"l","艃":"N","艆":"N","艊":"N","艎":"N","艅":"n","艈":"n","艌":"n","艐":"n","艑":"O","艓":"O","艕":"O","艒":"o","艔":"o","艖":"o","艛":"R","艝":"R","艠":"R","艜":"r","艞":"r","艡":"r","艢":"S","艤":"S","艦":"S","艩":"S","艣":"s","艥":"s","艧":"s","拧":"s","泞":"T","扭":"T","纽":"T","牛":"t","钮":"t","脓":"t","浓":"U","弄":"U","努":"U","女":"U","虐":"U","挪":"U","农":"u","奴":"u","怒":"u","暖":"u","疟":"u","懦":"u","糯":"W","诺":"w","哦":"Y","欧":"y","鸥":"Y","殴":"Z","呕":"Z","沤":"Z","藕":"z","偶":"z","啪":"z","牟":"IJ","某":"ij","艗":"Oe","艙":"oe","艍":"'n","趴":"s"}),Sn=pn({"&":"&","<":"<",">":">",'"':""","'":"'"});function kn(t){return"\\"+Oe[t]}function Cn(t){return xe.test(t)}function Tn(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function En(t,e){return function(n){return t(e(n))}}function On(t,e){for(var n=-1,r=t.length,i=0,o=[];++n",""":'"',"'":"'"});var Ln=function t(e){var n,r=(e=null==e?Ie:Ln.defaults(Ie.Object(),e,Ln.pick(Ie,ke))).Array,i=e.Date,Jt=e.Error,Zt=e.Function,te=e.Math,ee=e.Object,ne=e.RegExp,re=e.String,ie=e.TypeError,oe=r.prototype,ae=Zt.prototype,se=ee.prototype,ce=e["__core-js_shared__"],ue=ae.toString,le=se.hasOwnProperty,fe=0,he=(n=/[^.]+$/.exec(ce&&ce.keys&&ce.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",pe=se.toString,de=ue.call(ee),ve=Ie._,me=ne("^"+ue.call(le).replace(jt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ye=Re?e.Buffer:o,be=e.Symbol,xe=e.Uint8Array,Oe=ye?ye.allocUnsafe:o,Me=En(ee.getPrototypeOf,ee),je=ee.create,Le=se.propertyIsEnumerable,De=oe.splice,Fe=be?be.isConcatSpreadable:o,Ne=be?be.iterator:o,on=be?be.toStringTag:o,pn=function(){try{var t=Bo(ee,"defineProperty");return t({},"",{}),t}catch(t){}}(),Dn=e.clearTimeout!==Ie.clearTimeout&&e.clearTimeout,Rn=i&&i.now!==Ie.Date.now&&i.now,Fn=e.setTimeout!==Ie.setTimeout&&e.setTimeout,Nn=te.ceil,Bn=te.floor,zn=ee.getOwnPropertySymbols,Un=ye?ye.isBuffer:o,Hn=e.isFinite,$n=oe.join,Vn=En(ee.keys,ee),Wn=te.max,qn=te.min,Xn=i.now,Yn=e.parseInt,Gn=te.random,Kn=oe.reverse,Qn=Bo(e,"DataView"),Jn=Bo(e,"Map"),Zn=Bo(e,"Promise"),tr=Bo(e,"Set"),er=Bo(e,"WeakMap"),nr=Bo(ee,"create"),rr=er&&new er,ir={},or=fa(Qn),ar=fa(Jn),sr=fa(Zn),cr=fa(tr),ur=fa(er),lr=be?be.prototype:o,fr=lr?lr.valueOf:o,hr=lr?lr.toString:o;function pr(t){if(Os(t)&&!ys(t)&&!(t instanceof yr)){if(t instanceof mr)return t;if(le.call(t,"__wrapped__"))return ha(t)}return new mr(t)}var dr=function(){function t(){}return function(e){if(!Es(e))return{};if(je)return je(e);t.prototype=e;var n=new t;return t.prototype=o,n}}();function vr(){}function mr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=o}function yr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=F,this.__views__=[]}function gr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Dr(t,e,n,r,i,a){var s,c=e&h,u=e&p,l=e&d;if(n&&(s=i?n(t,r,i,a):n(t)),s!==o)return s;if(!Es(t))return t;var f=ys(t);if(f){if(s=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&le.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!c)return no(t,s)}else{var v=Ho(t),m=v==Y||v==G;if(ws(t))return Ki(t,c);if(v==Z||v==U||m&&!i){if(s=u||m?{}:Vo(t),!c)return u?function(t,e){return ro(t,Uo(t),e)}(t,function(t,e){return t&&ro(e,oc(e),t)}(s,t)):function(t,e){return ro(t,zo(t),e)}(t,Mr(s,t))}else{if(!Ee[v])return i?t:{};s=function(t,e,n){var r,i,o,a=t.constructor;switch(e){case ct:return Qi(t);case V:case W:return new a(+t);case ut:return function(t,e){var n=e?Qi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case lt:case ft:case ht:case pt:case dt:case vt:case mt:case yt:case gt:return Ji(t,n);case K:return new a;case Q:case rt:return new a(t);case et:return(o=new(i=t).constructor(i.source,$t.exec(i))).lastIndex=i.lastIndex,o;case nt:return new a;case it:return r=t,fr?ee(fr.call(r)):{}}}(t,v,c)}}a||(a=new xr);var y=a.get(t);if(y)return y;if(a.set(t,s),Is(t))return t.forEach(function(r){s.add(Dr(r,e,n,r,t,a))}),s;if(As(t))return t.forEach(function(r,i){s.set(i,Dr(r,e,n,i,t,a))}),s;var g=f?o:(l?u?jo:Mo:u?oc:ic)(t);return Xe(g||t,function(r,i){g&&(r=t[i=r]),Or(s,i,Dr(r,e,n,i,t,a))}),s}function Rr(t,e,n){var r=n.length;if(null==t)return!r;for(t=ee(t);r--;){var i=n[r],a=e[i],s=t[i];if(s===o&&!(i in t)||!a(s))return!1}return!0}function Fr(t,e,n){if("function"!=typeof t)throw new ie(c);return ia(function(){t.apply(o,n)},e)}function Nr(t,e,n,r){var i=-1,o=Qe,s=!0,c=t.length,u=[],l=e.length;if(!c)return u;n&&(e=Ze(e,yn(n))),r?(o=Je,s=!1):e.length>=a&&(o=_n,s=!1,e=new wr(e));t:for(;++i-1},_r.prototype.set=function(t,e){var n=this.__data__,r=Ar(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},br.prototype.clear=function(){this.size=0,this.__data__={hash:new gr,map:new(Jn||_r),string:new gr}},br.prototype.delete=function(t){var e=Fo(this,t).delete(t);return this.size-=e?1:0,e},br.prototype.get=function(t){return Fo(this,t).get(t)},br.prototype.has=function(t){return Fo(this,t).has(t)},br.prototype.set=function(t,e){var n=Fo(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},wr.prototype.add=wr.prototype.push=function(t){return this.__data__.set(t,u),this},wr.prototype.has=function(t){return this.__data__.has(t)},xr.prototype.clear=function(){this.__data__=new _r,this.size=0},xr.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},xr.prototype.get=function(t){return this.__data__.get(t)},xr.prototype.has=function(t){return this.__data__.has(t)},xr.prototype.set=function(t,e){var n=this.__data__;if(n instanceof _r){var r=n.__data__;if(!Jn||r.length0&&n(s)?e>1?Vr(s,e-1,n,r,i):tn(i,s):r||(i[i.length]=s)}return i}var Wr=so(),qr=so(!0);function Xr(t,e){return t&&Wr(t,e,ic)}function Yr(t,e){return t&&qr(t,e,ic)}function Gr(t,e){return Ke(e,function(e){return ks(t[e])})}function Kr(t,e){for(var n=0,r=(e=qi(e,t)).length;null!=t&&ne}function ti(t,e){return null!=t&&le.call(t,e)}function ei(t,e){return null!=t&&e in ee(t)}function ni(t,e,n){for(var i=n?Je:Qe,a=t[0].length,s=t.length,c=s,u=r(s),l=1/0,f=[];c--;){var h=t[c];c&&e&&(h=Ze(h,yn(e))),l=qn(h.length,l),u[c]=!n&&(e||a>=120&&h.length>=120)?new wr(c&&h):o}h=t[0];var p=-1,d=u[0];t:for(;++p=s)return c;var u=n[r];return c*("desc"==u?-1:1)}}return t.index-e.index}(t,e,n)})}function gi(t,e,n){for(var r=-1,i=e.length,o={};++r-1;)s!==t&&De.call(s,c,1),De.call(t,c,1);return t}function bi(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;qo(i)?De.call(t,i,1):Ni(t,i)}}return t}function wi(t,e){return t+Bn(Gn()*(e-t+1))}function xi(t,e){var n="";if(!t||e<1||e>L)return n;do{e%2&&(n+=t),(e=Bn(e/2))&&(t+=t)}while(e);return n}function Si(t,e){return oa(ta(t,e,Pc),t+"")}function ki(t){return kr(pc(t))}function Ci(t,e){var n=pc(t);return ca(n,Lr(e,0,n.length))}function Ti(t,e,n,r){if(!Es(t))return t;for(var i=-1,a=(e=qi(e,t)).length,s=a-1,c=t;null!=c&&++io?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var a=r(o);++i>>1,a=t[o];null!==a&&!Ds(a)&&(n?a<=e:a=a){var l=e?null:So(t);if(l)return An(l);s=!1,i=_n,u=new wr}else u=e?[]:c;t:for(;++r=r?t:Pi(t,e,n)}var Gi=Dn||function(t){return Ie.clearTimeout(t)};function Ki(t,e){if(e)return t.slice();var n=t.length,r=Oe?Oe(n):new t.constructor(n);return t.copy(r),r}function Qi(t){var e=new t.constructor(t.byteLength);return new xe(e).set(new xe(t)),e}function Ji(t,e){var n=e?Qi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Zi(t,e){if(t!==e){var n=t!==o,r=null===t,i=t==t,a=Ds(t),s=e!==o,c=null===e,u=e==e,l=Ds(e);if(!c&&!l&&!a&&t>e||a&&s&&u&&!c&&!l||r&&s&&u||!n&&u||!i)return 1;if(!r&&!a&&!l&&t1?n[i-1]:o,s=i>2?n[2]:o;for(a=t.length>3&&"function"==typeof a?(i--,a):o,s&&Xo(n[0],n[1],s)&&(a=i<3?o:a,i=1),e=ee(e);++r-1?i[a?e[s]:s]:o}}function ho(t){return Po(function(e){var n=e.length,r=n,i=mr.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if("function"!=typeof a)throw new ie(c);if(i&&!s&&"wrapper"==Lo(a))var s=new mr([],!0)}for(r=s?r:n;++r1&&b.reverse(),h&&lc))return!1;var l=a.get(t);if(l&&a.get(e))return l==e;var f=-1,h=!0,p=n&m?new wr:o;for(a.set(t,e),a.set(e,t);++f-1&&t%1==0&&t1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Ft,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Xe(z,function(n){var r="_."+n[0];e&n[1]&&!Qe(t,r)&&t.push(r)}),t.sort()}(function(t){var e=t.match(Nt);return e?e[1].split(Bt):[]}(r),n)))}function sa(t){var e=0,n=0;return function(){var r=Xn(),i=P-(r-n);if(n=r,i>0){if(++e>=A)return arguments[0]}else e=0;return t.apply(o,arguments)}}function ca(t,e){var n=-1,r=t.length,i=r-1;for(e=e===o?r:e;++n1?t[e-1]:o;return ja(t,n="function"==typeof n?(t.pop(),n):o)});function Ba(t){var e=pr(t);return e.__chain__=!0,e}function za(t,e){return e(t)}var Ua=Po(function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,i=function(e){return Ir(e,t)};return!(e>1||this.__actions__.length)&&r instanceof yr&&qo(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:za,args:[i],thisArg:o}),new mr(r,this.__chain__).thru(function(t){return e&&!t.length&&t.push(o),t})):this.thru(i)});var Ha=io(function(t,e,n){le.call(t,n)?++t[n]:jr(t,n,1)});var $a=fo(ma),Va=fo(ya);function Wa(t,e){return(ys(t)?Xe:Br)(t,Ro(e,3))}function qa(t,e){return(ys(t)?Ye:zr)(t,Ro(e,3))}var Xa=io(function(t,e,n){le.call(t,n)?t[n].push(e):jr(t,n,[e])});var Ya=Si(function(t,e,n){var i=-1,o="function"==typeof e,a=_s(t)?r(t.length):[];return Br(t,function(t){a[++i]=o?We(e,t,n):ri(t,e,n)}),a}),Ga=io(function(t,e,n){jr(t,n,e)});function Ka(t,e){return(ys(t)?Ze:hi)(t,Ro(e,3))}var Qa=io(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]});var Ja=Si(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Xo(t,e[0],e[1])?e=[]:n>2&&Xo(e[0],e[1],e[2])&&(e=[e[0]]),yi(t,Vr(e,1),[])}),Za=Rn||function(){return Ie.Date.now()};function ts(t,e,n){return e=n?o:e,e=t&&null==e?t.length:e,Co(t,k,o,o,o,o,e)}function es(t,e){var n;if("function"!=typeof e)throw new ie(c);return t=Us(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=o),n}}var ns=Si(function(t,e,n){var r=y;if(n.length){var i=On(n,Do(ns));r|=x}return Co(t,r,e,n,i)}),rs=Si(function(t,e,n){var r=y|g;if(n.length){var i=On(n,Do(rs));r|=x}return Co(e,r,t,n,i)});function is(t,e,n){var r,i,a,s,u,l,f=0,h=!1,p=!1,d=!0;if("function"!=typeof t)throw new ie(c);function v(e){var n=r,a=i;return r=i=o,f=e,s=t.apply(a,n)}function m(t){var n=t-l;return l===o||n>=e||n<0||p&&t-f>=a}function y(){var t=Za();if(m(t))return g(t);u=ia(y,function(t){var n=e-(t-l);return p?qn(n,a-(t-f)):n}(t))}function g(t){return u=o,d&&r?v(t):(r=i=o,s)}function _(){var t=Za(),n=m(t);if(r=arguments,i=this,l=t,n){if(u===o)return function(t){return f=t,u=ia(y,e),h?v(t):s}(l);if(p)return u=ia(y,e),v(l)}return u===o&&(u=ia(y,e)),s}return e=$s(e)||0,Es(n)&&(h=!!n.leading,a=(p="maxWait"in n)?Wn($s(n.maxWait)||0,e):a,d="trailing"in n?!!n.trailing:d),_.cancel=function(){u!==o&&Gi(u),f=0,r=l=i=u=o},_.flush=function(){return u===o?s:g(Za())},_}var os=Si(function(t,e){return Fr(t,1,e)}),as=Si(function(t,e,n){return Fr(t,$s(e)||0,n)});function ss(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ie(c);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(ss.Cache||br),n}function cs(t){if("function"!=typeof t)throw new ie(c);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}ss.Cache=br;var us=Xi(function(t,e){var n=(e=1==e.length&&ys(e[0])?Ze(e[0],yn(Ro())):Ze(Vr(e,1),yn(Ro()))).length;return Si(function(r){for(var i=-1,o=qn(r.length,n);++i=e}),ms=ii(function(){return arguments}())?ii:function(t){return Os(t)&&le.call(t,"callee")&&!Le.call(t,"callee")},ys=r.isArray,gs=Be?yn(Be):function(t){return Os(t)&&Jr(t)==ct};function _s(t){return null!=t&&Ts(t.length)&&!ks(t)}function bs(t){return Os(t)&&_s(t)}var ws=Un||$c,xs=ze?yn(ze):function(t){return Os(t)&&Jr(t)==W};function Ss(t){if(!Os(t))return!1;var e=Jr(t);return e==X||e==q||"string"==typeof t.message&&"string"==typeof t.name&&!Ms(t)}function ks(t){if(!Es(t))return!1;var e=Jr(t);return e==Y||e==G||e==$||e==tt}function Cs(t){return"number"==typeof t&&t==Us(t)}function Ts(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=L}function Es(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Os(t){return null!=t&&"object"==typeof t}var As=Ue?yn(Ue):function(t){return Os(t)&&Ho(t)==K};function Ps(t){return"number"==typeof t||Os(t)&&Jr(t)==Q}function Ms(t){if(!Os(t)||Jr(t)!=Z)return!1;var e=Me(t);if(null===e)return!0;var n=le.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&ue.call(n)==de}var js=He?yn(He):function(t){return Os(t)&&Jr(t)==et};var Is=$e?yn($e):function(t){return Os(t)&&Ho(t)==nt};function Ls(t){return"string"==typeof t||!ys(t)&&Os(t)&&Jr(t)==rt}function Ds(t){return"symbol"==typeof t||Os(t)&&Jr(t)==it}var Rs=Ve?yn(Ve):function(t){return Os(t)&&Ts(t.length)&&!!Te[Jr(t)]};var Fs=bo(fi),Ns=bo(function(t,e){return t<=e});function Bs(t){if(!t)return[];if(_s(t))return Ls(t)?jn(t):no(t);if(Ne&&t[Ne])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Ne]());var e=Ho(t);return(e==K?Tn:e==nt?An:pc)(t)}function zs(t){return t?(t=$s(t))===I||t===-I?(t<0?-1:1)*D:t==t?t:0:0===t?t:0}function Us(t){var e=zs(t),n=e%1;return e==e?n?e-n:e:0}function Hs(t){return t?Lr(Us(t),0,F):0}function $s(t){if("number"==typeof t)return t;if(Ds(t))return R;if(Es(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Es(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Lt,"");var n=Wt.test(t);return n||Xt.test(t)?Pe(t.slice(2),n?2:8):Vt.test(t)?R:+t}function Vs(t){return ro(t,oc(t))}function Ws(t){return null==t?"":Ri(t)}var qs=oo(function(t,e){if(Qo(e)||_s(e))ro(e,ic(e),t);else for(var n in e)le.call(e,n)&&Or(t,n,e[n])}),Xs=oo(function(t,e){ro(e,oc(e),t)}),Ys=oo(function(t,e,n,r){ro(e,oc(e),t,r)}),Gs=oo(function(t,e,n,r){ro(e,ic(e),t,r)}),Ks=Po(Ir);var Qs=Si(function(t,e){t=ee(t);var n=-1,r=e.length,i=r>2?e[2]:o;for(i&&Xo(e[0],e[1],i)&&(r=1);++n1),e}),ro(t,jo(t),n),r&&(n=Dr(n,h|p|d,Oo));for(var i=e.length;i--;)Ni(n,e[i]);return n});var uc=Po(function(t,e){return null==t?{}:function(t,e){return gi(t,e,function(e,n){return tc(t,n)})}(t,e)});function lc(t,e){if(null==t)return{};var n=Ze(jo(t),function(t){return[t]});return e=Ro(e),gi(t,n,function(t,n){return e(t,n[0])})}var fc=ko(ic),hc=ko(oc);function pc(t){return null==t?[]:gn(t,ic(t))}var dc=uo(function(t,e,n){return e=e.toLowerCase(),t+(n?vc(e):e)});function vc(t){return Sc(Ws(t).toLowerCase())}function mc(t){return(t=Ws(t))&&t.replace(Gt,xn).replace(_e,"")}var yc=uo(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),gc=uo(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),_c=co("toLowerCase");var bc=uo(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()});var wc=uo(function(t,e,n){return t+(n?" ":"")+Sc(e)});var xc=uo(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),Sc=co("toUpperCase");function kc(t,e,n){return t=Ws(t),(e=n?o:e)===o?function(t){return Se.test(t)}(t)?function(t){return t.match(we)||[]}(t):function(t){return t.match(zt)||[]}(t):t.match(e)||[]}var Cc=Si(function(t,e){try{return We(t,o,e)}catch(t){return Ss(t)?t:new Jt(t)}}),Tc=Po(function(t,e){return Xe(e,function(e){e=la(e),jr(t,e,ns(t[e],t))}),t});function Ec(t){return function(){return t}}var Oc=ho(),Ac=ho(!0);function Pc(t){return t}function Mc(t){return ci("function"==typeof t?t:Dr(t,h))}var jc=Si(function(t,e){return function(n){return ri(n,t,e)}}),Ic=Si(function(t,e){return function(n){return ri(t,n,e)}});function Lc(t,e,n){var r=ic(e),i=Gr(e,r);null!=n||Es(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Gr(e,ic(e)));var o=!(Es(n)&&"chain"in n&&!n.chain),a=ks(t);return Xe(i,function(n){var r=e[n];t[n]=r,a&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=no(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,tn([this.value()],arguments))})}),t}function Dc(){}var Rc=yo(Ze),Fc=yo(Ge),Nc=yo(rn);function Bc(t){return Yo(t)?hn(la(t)):function(t){return function(e){return Kr(e,t)}}(t)}var zc=_o(),Uc=_o(!0);function Hc(){return[]}function $c(){return!1}var Vc=mo(function(t,e){return t+e},0),Wc=xo("ceil"),qc=mo(function(t,e){return t/e},1),Xc=xo("floor");var Yc,Gc=mo(function(t,e){return t*e},1),Kc=xo("round"),Qc=mo(function(t,e){return t-e},0);return pr.after=function(t,e){if("function"!=typeof e)throw new ie(c);return t=Us(t),function(){if(--t<1)return e.apply(this,arguments)}},pr.ary=ts,pr.assign=qs,pr.assignIn=Xs,pr.assignInWith=Ys,pr.assignWith=Gs,pr.at=Ks,pr.before=es,pr.bind=ns,pr.bindAll=Tc,pr.bindKey=rs,pr.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return ys(t)?t:[t]},pr.chain=Ba,pr.chunk=function(t,e,n){e=(n?Xo(t,e,n):e===o)?1:Wn(Us(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var a=0,s=0,c=r(Nn(i/e));ai?0:i+n),(r=r===o||r>i?i:Us(r))<0&&(r+=i),r=n>r?0:Hs(r);n>>0)?(t=Ws(t))&&("string"==typeof e||null!=e&&!js(e))&&!(e=Ri(e))&&Cn(t)?Yi(jn(t),0,n):t.split(e,n):[]},pr.spread=function(t,e){if("function"!=typeof t)throw new ie(c);return e=null==e?0:Wn(Us(e),0),Si(function(n){var r=n[e],i=Yi(n,0,e);return r&&tn(i,r),We(t,this,i)})},pr.tail=function(t){var e=null==t?0:t.length;return e?Pi(t,1,e):[]},pr.take=function(t,e,n){return t&&t.length?Pi(t,0,(e=n||e===o?1:Us(e))<0?0:e):[]},pr.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?Pi(t,(e=r-(e=n||e===o?1:Us(e)))<0?0:e,r):[]},pr.takeRightWhile=function(t,e){return t&&t.length?zi(t,Ro(e,3),!1,!0):[]},pr.takeWhile=function(t,e){return t&&t.length?zi(t,Ro(e,3)):[]},pr.tap=function(t,e){return e(t),t},pr.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new ie(c);return Es(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),is(t,e,{leading:r,maxWait:e,trailing:i})},pr.thru=za,pr.toArray=Bs,pr.toPairs=fc,pr.toPairsIn=hc,pr.toPath=function(t){return ys(t)?Ze(t,la):Ds(t)?[t]:no(ua(Ws(t)))},pr.toPlainObject=Vs,pr.transform=function(t,e,n){var r=ys(t),i=r||ws(t)||Rs(t);if(e=Ro(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:Es(t)&&ks(o)?dr(Me(t)):{}}return(i?Xe:Xr)(t,function(t,r,i){return e(n,t,r,i)}),n},pr.unary=function(t){return ts(t,1)},pr.union=Oa,pr.unionBy=Aa,pr.unionWith=Pa,pr.uniq=function(t){return t&&t.length?Fi(t):[]},pr.uniqBy=function(t,e){return t&&t.length?Fi(t,Ro(e,2)):[]},pr.uniqWith=function(t,e){return e="function"==typeof e?e:o,t&&t.length?Fi(t,o,e):[]},pr.unset=function(t,e){return null==t||Ni(t,e)},pr.unzip=Ma,pr.unzipWith=ja,pr.update=function(t,e,n){return null==t?t:Bi(t,e,Wi(n))},pr.updateWith=function(t,e,n,r){return r="function"==typeof r?r:o,null==t?t:Bi(t,e,Wi(n),r)},pr.values=pc,pr.valuesIn=function(t){return null==t?[]:gn(t,oc(t))},pr.without=Ia,pr.words=kc,pr.wrap=function(t,e){return ls(Wi(e),t)},pr.xor=La,pr.xorBy=Da,pr.xorWith=Ra,pr.zip=Fa,pr.zipObject=function(t,e){return $i(t||[],e||[],Or)},pr.zipObjectDeep=function(t,e){return $i(t||[],e||[],Ti)},pr.zipWith=Na,pr.entries=fc,pr.entriesIn=hc,pr.extend=Xs,pr.extendWith=Ys,Lc(pr,pr),pr.add=Vc,pr.attempt=Cc,pr.camelCase=dc,pr.capitalize=vc,pr.ceil=Wc,pr.clamp=function(t,e,n){return n===o&&(n=e,e=o),n!==o&&(n=(n=$s(n))==n?n:0),e!==o&&(e=(e=$s(e))==e?e:0),Lr($s(t),e,n)},pr.clone=function(t){return Dr(t,d)},pr.cloneDeep=function(t){return Dr(t,h|d)},pr.cloneDeepWith=function(t,e){return Dr(t,h|d,e="function"==typeof e?e:o)},pr.cloneWith=function(t,e){return Dr(t,d,e="function"==typeof e?e:o)},pr.conformsTo=function(t,e){return null==e||Rr(t,e,ic(e))},pr.deburr=mc,pr.defaultTo=function(t,e){return null==t||t!=t?e:t},pr.divide=qc,pr.endsWith=function(t,e,n){t=Ws(t),e=Ri(e);var r=t.length,i=n=n===o?r:Lr(Us(n),0,r);return(n-=e.length)>=0&&t.slice(n,i)==e},pr.eq=ps,pr.escape=function(t){return(t=Ws(t))&&Ct.test(t)?t.replace(St,Sn):t},pr.escapeRegExp=function(t){return(t=Ws(t))&&It.test(t)?t.replace(jt,"\\$&"):t},pr.every=function(t,e,n){var r=ys(t)?Ge:Ur;return n&&Xo(t,e,n)&&(e=o),r(t,Ro(e,3))},pr.find=$a,pr.findIndex=ma,pr.findKey=function(t,e){return an(t,Ro(e,3),Xr)},pr.findLast=Va,pr.findLastIndex=ya,pr.findLastKey=function(t,e){return an(t,Ro(e,3),Yr)},pr.floor=Xc,pr.forEach=Wa,pr.forEachRight=qa,pr.forIn=function(t,e){return null==t?t:Wr(t,Ro(e,3),oc)},pr.forInRight=function(t,e){return null==t?t:qr(t,Ro(e,3),oc)},pr.forOwn=function(t,e){return t&&Xr(t,Ro(e,3))},pr.forOwnRight=function(t,e){return t&&Yr(t,Ro(e,3))},pr.get=Zs,pr.gt=ds,pr.gte=vs,pr.has=function(t,e){return null!=t&&$o(t,e,ti)},pr.hasIn=tc,pr.head=_a,pr.identity=Pc,pr.includes=function(t,e,n,r){t=_s(t)?t:pc(t),n=n&&!r?Us(n):0;var i=t.length;return n<0&&(n=Wn(i+n,0)),Ls(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&cn(t,e,n)>-1},pr.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Us(n);return i<0&&(i=Wn(r+i,0)),cn(t,e,i)},pr.inRange=function(t,e,n){return e=zs(e),n===o?(n=e,e=0):n=zs(n),function(t,e,n){return t>=qn(e,n)&&t=-L&&t<=L},pr.isSet=Is,pr.isString=Ls,pr.isSymbol=Ds,pr.isTypedArray=Rs,pr.isUndefined=function(t){return t===o},pr.isWeakMap=function(t){return Os(t)&&Ho(t)==at},pr.isWeakSet=function(t){return Os(t)&&Jr(t)==st},pr.join=function(t,e){return null==t?"":$n.call(t,e)},pr.kebabCase=yc,pr.last=Sa,pr.lastIndexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r;return n!==o&&(i=(i=Us(n))<0?Wn(r+i,0):qn(i,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,i):sn(t,ln,i,!0)},pr.lowerCase=gc,pr.lowerFirst=_c,pr.lt=Fs,pr.lte=Ns,pr.max=function(t){return t&&t.length?Hr(t,Pc,Zr):o},pr.maxBy=function(t,e){return t&&t.length?Hr(t,Ro(e,2),Zr):o},pr.mean=function(t){return fn(t,Pc)},pr.meanBy=function(t,e){return fn(t,Ro(e,2))},pr.min=function(t){return t&&t.length?Hr(t,Pc,fi):o},pr.minBy=function(t,e){return t&&t.length?Hr(t,Ro(e,2),fi):o},pr.stubArray=Hc,pr.stubFalse=$c,pr.stubObject=function(){return{}},pr.stubString=function(){return""},pr.stubTrue=function(){return!0},pr.multiply=Gc,pr.nth=function(t,e){return t&&t.length?mi(t,Us(e)):o},pr.noConflict=function(){return Ie._===this&&(Ie._=ve),this},pr.noop=Dc,pr.now=Za,pr.pad=function(t,e,n){t=Ws(t);var r=(e=Us(e))?Mn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return go(Bn(i),n)+t+go(Nn(i),n)},pr.padEnd=function(t,e,n){t=Ws(t);var r=(e=Us(e))?Mn(t):0;return e&&re){var r=t;t=e,e=r}if(n||t%1||e%1){var i=Gn();return qn(t+i*(e-t+Ae("1e-"+((i+"").length-1))),e)}return wi(t,e)},pr.reduce=function(t,e,n){var r=ys(t)?en:dn,i=arguments.length<3;return r(t,Ro(e,4),n,i,Br)},pr.reduceRight=function(t,e,n){var r=ys(t)?nn:dn,i=arguments.length<3;return r(t,Ro(e,4),n,i,zr)},pr.repeat=function(t,e,n){return e=(n?Xo(t,e,n):e===o)?1:Us(e),xi(Ws(t),e)},pr.replace=function(){var t=arguments,e=Ws(t[0]);return t.length<3?e:e.replace(t[1],t[2])},pr.result=function(t,e,n){var r=-1,i=(e=qi(e,t)).length;for(i||(i=1,t=o);++rL)return[];var n=F,r=qn(t,F);e=Ro(e),t-=F;for(var i=mn(r,e);++n=a)return t;var c=n-Mn(r);if(c<1)return r;var u=s?Yi(s,0,c).join(""):t.slice(0,c);if(i===o)return u+r;if(s&&(c+=u.length-c),js(i)){if(t.slice(c).search(i)){var l,f=u;for(i.global||(i=ne(i.source,Ws($t.exec(i))+"g")),i.lastIndex=0;l=i.exec(f);)var h=l.index;u=u.slice(0,h===o?c:h)}}else if(t.indexOf(Ri(i),c)!=c){var p=u.lastIndexOf(i);p>-1&&(u=u.slice(0,p))}return u+r},pr.unescape=function(t){return(t=Ws(t))&&kt.test(t)?t.replace(xt,In):t},pr.uniqueId=function(t){var e=++fe;return Ws(t)+e},pr.upperCase=xc,pr.upperFirst=Sc,pr.each=Wa,pr.eachRight=qa,pr.first=_a,Lc(pr,(Yc={},Xr(pr,function(t,e){le.call(pr.prototype,e)||(Yc[e]=t)}),Yc),{chain:!1}),pr.VERSION="4.17.11",Xe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){pr[t].placeholder=pr}),Xe(["drop","take"],function(t,e){yr.prototype[t]=function(n){n=n===o?1:Wn(Us(n),0);var r=this.__filtered__&&!e?new yr(this):this.clone();return r.__filtered__?r.__takeCount__=qn(n,r.__takeCount__):r.__views__.push({size:qn(n,F),type:t+(r.__dir__<0?"Right":"")}),r},yr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Xe(["filter","map","takeWhile"],function(t,e){var n=e+1,r=n==M||3==n;yr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Ro(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),Xe(["head","last"],function(t,e){var n="take"+(e?"Right":"");yr.prototype[t]=function(){return this[n](1).value()[0]}}),Xe(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");yr.prototype[t]=function(){return this.__filtered__?new yr(this):this[n](1)}}),yr.prototype.compact=function(){return this.filter(Pc)},yr.prototype.find=function(t){return this.filter(t).head()},yr.prototype.findLast=function(t){return this.reverse().find(t)},yr.prototype.invokeMap=Si(function(t,e){return"function"==typeof t?new yr(this):this.map(function(n){return ri(n,t,e)})}),yr.prototype.reject=function(t){return this.filter(cs(Ro(t)))},yr.prototype.slice=function(t,e){t=Us(t);var n=this;return n.__filtered__&&(t>0||e<0)?new yr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==o&&(n=(e=Us(e))<0?n.dropRight(-e):n.take(e-t)),n)},yr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},yr.prototype.toArray=function(){return this.take(F)},Xr(yr.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=pr[r?"take"+("last"==e?"Right":""):e],a=r||/^find/.test(e);i&&(pr.prototype[e]=function(){var e=this.__wrapped__,s=r?[1]:arguments,c=e instanceof yr,u=s[0],l=c||ys(e),f=function(t){var e=i.apply(pr,tn([t],s));return r&&h?e[0]:e};l&&n&&"function"==typeof u&&1!=u.length&&(c=l=!1);var h=this.__chain__,p=!!this.__actions__.length,d=a&&!h,v=c&&!p;if(!a&&l){e=v?e:new yr(this);var m=t.apply(e,s);return m.__actions__.push({func:za,args:[f],thisArg:o}),new mr(m,h)}return d&&v?t.apply(this,s):(m=this.thru(f),d?r?m.value()[0]:m.value():m)})}),Xe(["pop","push","shift","sort","splice","unshift"],function(t){var e=oe[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);pr.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(ys(i)?i:[],t)}return this[n](function(n){return e.apply(ys(n)?n:[],t)})}}),Xr(yr.prototype,function(t,e){var n=pr[e];if(n){var r=n.name+"";(ir[r]||(ir[r]=[])).push({name:e,func:n})}}),ir[po(o,g).name]=[{name:"wrapper",func:o}],yr.prototype.clone=function(){var t=new yr(this.__wrapped__);return t.__actions__=no(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=no(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=no(this.__views__),t},yr.prototype.reverse=function(){if(this.__filtered__){var t=new yr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},yr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=ys(t),r=e<0,i=n?t.length:0,o=function(t,e,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:t,value:t?o:this.__values__[this.__index__++]}},pr.prototype.plant=function(t){for(var e,n=this;n instanceof vr;){var r=ha(n);r.__index__=0,r.__values__=o,e?i.__wrapped__=r:e=r;var i=r;n=n.__wrapped__}return i.__wrapped__=t,e},pr.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof yr){var e=t;return this.__actions__.length&&(e=new yr(this)),(e=e.reverse()).__actions__.push({func:za,args:[Ea],thisArg:o}),new mr(e,this.__chain__)}return this.thru(Ea)},pr.prototype.toJSON=pr.prototype.valueOf=pr.prototype.value=function(){return Ui(this.__wrapped__,this.__actions__)},pr.prototype.first=pr.prototype.head,Ne&&(pr.prototype[Ne]=function(){return this}),pr}();Ie._=Ln,(i=function(){return Ln}.call(e,n,e,r))===o||(r.exports=i)}).call(this)}).call(e,n("DuR2"),n("3IRH")(t))},M6a0:function(t,e){},M8WE:function(t,e,n){e.f=n("kkCw")},MU5D:function(t,e,n){var r=n("R9M2");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},MfeA:function(t,e,n){"use strict";var r=n("DIVP"),i=n("BbyF"),o=n("TwzQ"),a=n("9Dx1");n("Vg1y")("match",1,function(t,e,n,s){return[function(n){var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=s(n,t,this);if(e.done)return e.value;var c=r(t),u=String(this);if(!c.global)return a(c,u);var l=c.unicode;c.lastIndex=0;for(var f,h=[],p=0;null!==(f=a(c,u));){var d=String(f[0]);h[p]=d,""===d&&(c.lastIndex=o(u,i(c.lastIndex),l)),p++}return 0===p?null:h}]})},Mhyx:function(t,e,n){var r=n("/bQp"),i=n("dSzd")("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},MjHD:function(t,e,n){var r=n("Ds5P"),i=n("x78i"),o=Math.exp;r(r.S+r.F*n("zgIt")(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},MmMw:function(t,e,n){var r=n("EqjI");t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},MoMe:function(t,e,n){var r=n("FCuZ"),i=n("l9Lx"),o=n("ktak");t.exports=function(t){return r(t,o,i)}},MsuQ:function(t,e,n){"use strict";var r=n("Dgii"),i=n("zq/X");t.exports=n("0Rih")("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=r.getEntry(i(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(i(this,"Map"),0===t?0:t,e)}},r,!0)},MyjO:function(t,e,n){n("77Ug")("Uint8",1,function(t){return function(e,n,r){return t(this,e,n,r)}},!0)},N2Ao:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){var e=n("woOf"),r=n.n(e),i=n("C4MV"),o=n.n(i),a=n("pFYg"),s=n.n(a);!function(e,r){if("object"===("undefined"==typeof exports?"undefined":s()(exports))&&"object"===s()(t))t.exports=r();else if("function"==typeof define&&n("nErl"))define([],r);else{var i=r();for(var o in i)("object"===("undefined"==typeof exports?"undefined":s()(exports))?exports:e)[o]=i[o]}}(this,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||o()(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=2)}([function(t,e,n){e.__esModule=!0,e.genImageSrc=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.isHttp2,a=e.http2Hostname;t=t.replace(/[?&]x_vip_host=[^&#]+/,"");var s=(0,r.genLocation)(t);if(n&&a&&-1!=s.origin.indexOf(a)){var c=s.href.replace(s.protocol+"//"+s.hostname,o);return c}var u=s.href.replace(s.protocol+"//"+s.hostname,i);return s.search.length>0?u+"&x_vip_host="+s.hostname:u+"?x_vip_host="+s.hostname};var r=n(1),i="//bak.appsimg.com",o="//h2bak.appsimg.com"},function(t,e,n){function r(t,e){var n=new RegExp("(\\s|^)"+e+"(\\s|$)");return n.test(t.getAttribute("class")||"")&&n}e.__esModule=!0,e.hasClass=r,e.addClass=function(t,e){r(t,e)||t.setAttribute("class",(t.getAttribute("class")||"").trim()+" "+e)},e.genLocation=function(t){var e=document.createElement("a");return e.href=t,e}},function(t,e,n){var r=n(0),i=n(3);t.exports={genImageSrc:r.genImageSrc,observer:i.run}},function(t,e,n){e.__esModule=!0,e.run=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u=(c=r()({},c,t)).imgClass?document.getElementsByClassName(c.imgClass):document.getElementsByTagName("img");var e=function(){l(t)};window.MutationObserver?new MutationObserver(e).observe(s,{childList:!0,subtree:!0,attributes:!0}):(s.addEventListener("DOMNodeInserted",e,!0),s.addEventListener("DOMAttrModified",e,!0),setInterval(e,999))},n(4);var i=n(1),o=n(0),a=n(5),s=document.documentElement,c={imgClass:"",imgBackUpClass:"dns-image-error"},u=null,l=function(t){for(var e=0,n=u.length;e_;_++)if((m=e?g(a(d=t[_])[0],d[1]):g(t[_]))===u||m===l)return m}else for(v=y.call(t);!(d=v.next()).done;)if((m=i(v,g,d.value,e))===u||m===l)return m}).BREAK=u,e.RETURN=l},NYxO:function(t,e,n){"use strict";(function(t){n.d(e,"c",function(){return w}),n.d(e,"b",function(){return x});var r=("undefined"!=typeof window?window:void 0!==t?t:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function i(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function o(t){return null!==t&&"object"==typeof t}var a=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},s={namespaced:{configurable:!0}};s.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(t,e){this._children[t]=e},a.prototype.removeChild=function(t){delete this._children[t]},a.prototype.getChild=function(t){return this._children[t]},a.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},a.prototype.forEachChild=function(t){i(this._children,t)},a.prototype.forEachGetter=function(t){this._rawModule.getters&&i(this._rawModule.getters,t)},a.prototype.forEachAction=function(t){this._rawModule.actions&&i(this._rawModule.actions,t)},a.prototype.forEachMutation=function(t){this._rawModule.mutations&&i(this._rawModule.mutations,t)},Object.defineProperties(a.prototype,s);var c=function(t){this.register([],t,!1)};c.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},c.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")},"")},c.prototype.update=function(t){!function t(e,n,r){0;n.update(r);if(r.modules)for(var i in r.modules){if(!n.getChild(i))return void 0;t(e.concat(i),n.getChild(i),r.modules[i])}}([],this.root,t)},c.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var o=new a(e,n);0===t.length?this.root=o:this.get(t.slice(0,-1)).addChild(t[t.length-1],o);e.modules&&i(e.modules,function(e,i){r.register(t.concat(i),e,n)})},c.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var u;var l=function(t){var e=this;void 0===t&&(t={}),!u&&"undefined"!=typeof window&&window.Vue&&g(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var i=t.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new c(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var o=this,a=this.dispatch,s=this.commit;this.dispatch=function(t,e){return a.call(o,t,e)},this.commit=function(t,e,n){return s.call(o,t,e,n)},this.strict=i;var l=this._modules.root.state;v(this,l,[],this._modules.root),d(this,l),n.forEach(function(t){return t(e)}),(void 0!==t.devtools?t.devtools:u.config.devtools)&&function(t){r&&(t._devtoolHook=r,r.emit("vuex:init",t),r.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){r.emit("vuex:mutation",t,e)}))}(this)},f={state:{configurable:!0}};function h(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function p(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;v(t,n,[],t._modules.root,!0),d(t,n,e)}function d(t,e,n){var r=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var o={};i(t._wrappedGetters,function(e,n){o[n]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,t._vm=new u({data:{$$state:e},computed:o}),u.config.silent=a,t.strict&&function(t){t._vm.$watch(function(){return this._data.$$state},function(){0},{deep:!0,sync:!0})}(t),r&&(n&&t._withCommit(function(){r._data.$$state=null}),u.nextTick(function(){return r.$destroy()}))}function v(t,e,n,r,i){var o=!n.length,a=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[a],t._modulesNamespaceMap[a]=r),!o&&!i){var s=m(e,n.slice(0,-1)),c=n[n.length-1];t._withCommit(function(){u.set(s,c,r.state)})}var l=r.context=function(t,e,n){var r=""===e,i={dispatch:r?t.dispatch:function(n,r,i){var o=y(n,r,i),a=o.payload,s=o.options,c=o.type;return s&&s.root||(c=e+c),t.dispatch(c,a)},commit:r?t.commit:function(n,r,i){var o=y(n,r,i),a=o.payload,s=o.options,c=o.type;s&&s.root||(c=e+c),t.commit(c,a,s)}};return Object.defineProperties(i,{getters:{get:r?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},r=e.length;Object.keys(t.getters).forEach(function(i){if(i.slice(0,r)===e){var o=i.slice(r);Object.defineProperty(n,o,{get:function(){return t.getters[i]},enumerable:!0})}}),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return m(t.state,n)}}}),i}(t,a,n);r.forEachMutation(function(e,n){!function(t,e,n,r){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,r.state,e)})}(t,a+n,e,l)}),r.forEachAction(function(e,n){var r=e.root?n:a+n,i=e.handler||e;!function(t,e,n,r){(t._actions[e]||(t._actions[e]=[])).push(function(e){var i,o=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e);return(i=o)&&"function"==typeof i.then||(o=Promise.resolve(o)),t._devtoolHook?o.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):o})}(t,r,i,l)}),r.forEachGetter(function(e,n){!function(t,e,n,r){if(t._wrappedGetters[e])return void 0;t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)}}(t,a+n,e,l)}),r.forEachChild(function(r,o){v(t,e,n.concat(o),r,i)})}function m(t,e){return e.reduce(function(t,e){return t[e]},t)}function y(t,e,n){return o(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function g(t){u&&t===u|| +/** + * vuex v3.1.3 + * (c) 2020 Evan You + * @license MIT + */ +function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(u=t)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(t){0},l.prototype.commit=function(t,e,n){var r=this,i=y(t,e,n),o=i.type,a=i.payload,s=(i.options,{type:o,payload:a}),c=this._mutations[o];c&&(this._withCommit(function(){c.forEach(function(t){t(a)})}),this._subscribers.slice().forEach(function(t){return t(s,r.state)}))},l.prototype.dispatch=function(t,e){var n=this,r=y(t,e),i=r.type,o=r.payload,a={type:i,payload:o},s=this._actions[i];if(s){try{this._actionSubscribers.slice().filter(function(t){return t.before}).forEach(function(t){return t.before(a,n.state)})}catch(t){0}return(s.length>1?Promise.all(s.map(function(t){return t(o)})):s[0](o)).then(function(t){try{n._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(a,n.state)})}catch(t){0}return t})}},l.prototype.subscribe=function(t){return h(t,this._subscribers)},l.prototype.subscribeAction=function(t){return h("function"==typeof t?{before:t}:t,this._actionSubscribers)},l.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},l.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},l.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),v(this,this.state,t,this._modules.get(t),n.preserveState),d(this,this.state)},l.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=m(e.state,t.slice(0,-1));u.delete(n,t[t.length-1])}),p(this)},l.prototype.hotUpdate=function(t){this._modules.update(t),p(this,!0)},l.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(l.prototype,f);var _=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=C(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof i?i.call(this,e,n):e[i]},n[r].vuex=!0}),n}),b=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var o=C(this.$store,"mapMutations",t);if(!o)return;r=o.context.commit}return"function"==typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}}),n}),w=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;i=t+i,n[r]=function(){if(!t||C(this.$store,"mapGetters",t))return this.$store.getters[i]},n[r].vuex=!0}),n}),x=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var o=C(this.$store,"mapActions",t);if(!o)return;r=o.context.dispatch}return"function"==typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}}),n});function S(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function k(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function C(t,e,n){return t._modulesNamespaceMap[n]}var T={Store:l,install:g,version:"3.1.3",mapState:_,mapMutations:b,mapGetters:w,mapActions:x,createNamespacedHelpers:function(t){return{mapState:_.bind(null,t),mapGetters:w.bind(null,t),mapMutations:b.bind(null,t),mapActions:x.bind(null,t)}}};e.a=T}).call(e,n("DuR2"))},NfZy:function(t,e,n){n("77Ug")("Uint32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},NkRn:function(t,e,n){var r=n("TQ3y").Symbol;t.exports=r},Nkkh:function(t,e,n){var r=n("tv3T"),i=n("l9Lx");t.exports=function(t,e){return r(t,i(t),e)}},Nkrw:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(4);r(r.P+r.F*!n("NNrz")([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},No4x:function(t,e,n){var r=n("Ds5P");r(r.P,"Array",{fill:n("zCYm")}),n("RhFG")("fill")},NpIQ:function(t,e){e.f={}.propertyIsEnumerable},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},O4Lo:function(t,e,n){var r=n("yCNF"),i=n("RVHk"),o=n("kxzG"),a="Expected a function",s=Math.max,c=Math.min;t.exports=function(t,e,n){var u,l,f,h,p,d,v=0,m=!1,y=!1,g=!0;if("function"!=typeof t)throw new TypeError(a);function _(e){var n=u,r=l;return u=l=void 0,v=e,h=t.apply(r,n)}function b(t){var n=t-d;return void 0===d||n>=e||n<0||y&&t-v>=f}function w(){var t=i();if(b(t))return x(t);p=setTimeout(w,function(t){var n=e-(t-d);return y?c(n,f-(t-v)):n}(t))}function x(t){return p=void 0,g&&u?_(t):(u=l=void 0,h)}function S(){var t=i(),n=b(t);if(u=arguments,l=this,d=t,n){if(void 0===p)return function(t){return v=t,p=setTimeout(w,e),m?_(t):h}(d);if(y)return p=setTimeout(w,e),_(d)}return void 0===p&&(p=setTimeout(w,e)),h}return e=o(e)||0,r(n)&&(m=!!n.leading,f=(y="maxWait"in n)?s(o(n.maxWait)||0,e):f,g="trailing"in n?!!n.trailing:g),S.cancel=function(){void 0!==p&&clearTimeout(p),v=0,u=d=l=p=void 0},S.flush=function(){return void 0===p?h:x(i())},S}},O4R0:function(t,e,n){n("+MLA"),t.exports=n("FeBl").Object.freeze},O4g8:function(t,e){t.exports=!0},ON07:function(t,e,n){var r=n("EqjI"),i=n("7KvD").document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},OYls:function(t,e,n){n("crlp")("asyncIterator")},OgTs:function(t,e,n){var r=n("OzIq").parseInt,i=n("Ymdd").trim,o=n("Xduv"),a=/^[-+]?0[xX]/;t.exports=8!==r(o+"08")||22!==r(o+"0x16")?function(t,e){var n=i(String(t),3);return r(n,e>>>0||(a.test(n)?16:10))}:r},OvRC:function(t,e,n){t.exports={default:n("oM7Q"),__esModule:!0}},OzIq:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},PHCx:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},PHqh:function(t,e,n){var r=n("Q6Nf"),i=n("/whu");t.exports=function(t){return r(i(t))}},POb3:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Map");t.exports=r},PbPd:function(t,e,n){"use strict";var r=n("UKM+"),i=n("KOrd"),o=n("kkCw")("hasInstance"),a=Function.prototype;o in a||n("lDLk").f(a,o,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},Pf15:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("kiBT")),i=a(n("OvRC")),o=a(n("pFYg"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,o.default)(e)));t.prototype=(0,i.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(r.default?(0,r.default)(t,e):t.__proto__=e)}},PqYH:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n2){var n,r,i,o=(e=y?e.trim():h(e,3)).charCodeAt(0);if(43===o||45===o){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+e}for(var a,c=e.slice(2),u=0,l=c.length;ui)return NaN;return parseInt(c,r)}}return+e};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof p&&(m?c(function(){v.valueOf.call(n)}):"Number"!=o(n))?a(new d(g(e)),n,p):g(e)};for(var _,b=n("bUqO")?u(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;b.length>w;w++)i(d,_=b[w])&&!i(p,_)&&f(p,_,l(d,_));p.prototype=v,v.constructor=p,n("R3AP")(r,"Number",p)}},QG7u:function(t,e,n){var r=n("vmSO");t.exports=function(t,e){var n=[];return r(t,!1,n.push,n,e),n}},QKXm:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},QRG4:function(t,e,n){var r=n("UuGF"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},QWLi:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("oeih"),o=n("fS0v"),a=n("xAdt"),s=1..toFixed,c=Math.floor,u=[0,0,0,0,0,0],l="Number.toFixed: incorrect invocation!",f=function(t,e){for(var n=-1,r=e;++n<6;)r+=t*u[n],u[n]=r%1e7,r=c(r/1e7)},h=function(t){for(var e=6,n=0;--e>=0;)n+=u[e],u[e]=c(n/t),n=n%t*1e7},p=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==u[t]){var n=String(u[t]);e=""===e?n:e+a.call("0",7-n.length)+n}return e},d=function(t,e,n){return 0===e?n:e%2==1?d(t,e-1,n*t):d(t*t,e/2,n)};r(r.P+r.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n("zgIt")(function(){s.call({})})),"Number",{toFixed:function(t){var e,n,r,s,c=o(this,l),u=i(t),v="",m="0";if(u<0||u>20)throw RangeError(l);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(v="-",c=-c),c>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(c*d(2,69,1))-69)<0?c*d(2,-e,1):c/d(2,e,1),n*=4503599627370496,(e=52-e)>0){for(f(0,n),r=u;r>=7;)f(1e7,0),r-=7;for(f(d(10,r,1),0),r=e-1;r>=23;)h(1<<23),r-=23;h(1<0?v+((s=m.length)<=u?"0."+a.call("0",u-s)+m:m.slice(0,s-u)+"."+m.slice(s-u)):v+m}})},"QWe/":function(t,e,n){n("crlp")("observable")},QaEu:function(t,e,n){var r=n("Ds5P");r(r.S,"Date",{now:function(){return(new Date).getTime()}})},QcWB:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("w6Dh"),o=n("SDXa");r(r.S,"Promise",{try:function(t){var e=i.f(this),n=o(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}})},Qh14:function(t,e,n){var r=n("ReGu"),i=n("QKXm");t.exports=Object.keys||function(t){return r(t,i)}},QzLV:function(t,e,n){var r=n("Ds5P");r(r.S+r.F*!n("bUqO"),"Object",{defineProperty:n("lDLk").f})},R3AP:function(t,e,n){var r=n("OzIq"),i=n("2p1q"),o=n("WBcL"),a=n("ulTY")("src"),s=n("73qY"),c=(""+s).split("toString");n("7gX0").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var u="function"==typeof n;u&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(u&&(o(n,a)||i(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},R3KI:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{iaddh:function(t,e,n,r){var i=t>>>0,o=n>>>0;return(e>>>0)+(r>>>0)+((i&o|(i|o)&~(i+o>>>0))>>>31)|0}})},R4pa:function(t,e,n){"use strict";n("y325")("big",function(t){return function(){return t(this,"big","","")}})},R4wc:function(t,e,n){var r=n("kM2E");r(r.S+r.F,"Object",{assign:n("To3L")})},R9M2:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},RGrk:function(t,e,n){var r=n("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:i.call(e,t)}},RPLV:function(t,e,n){var r=n("7KvD").document;t.exports=r&&r.documentElement},RVHk:function(t,e,n){var r=n("TQ3y");t.exports=function(){return r.Date.now()}},"RY/4":function(t,e,n){var r=n("R9M2"),i=n("dSzd")("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},Racj:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("49qz")(!1);r(r.P,"String",{codePointAt:function(t){return i(this,t)}})},Re3r:function(t,e){function n(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)} +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +t.exports=function(t){return null!=t&&(n(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},ReGu:function(t,e,n){var r=n("WBcL"),i=n("PHqh"),o=n("ot5s")(!1),a=n("mZON")("IE_PROTO");t.exports=function(t,e){var n,s=i(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},Rh28:function(t,e){var n=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}},RhFG:function(t,e,n){var r=n("kkCw")("unscopables"),i=Array.prototype;void 0==i[r]&&n("2p1q")(i,r,{}),t.exports=function(t){i[r][t]=!0}},Rk41:function(t,e,n){var r=Date.prototype,i=r.toString,o=r.getTime;new Date(NaN)+""!="Invalid Date"&&n("R3AP")(r,"toString",function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"})},Rrel:function(t,e,n){var r=n("TcQ7"),i=n("n0T6").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return a.slice()}}(t):i(r(t))}},Rw4K:function(t,e,n){var r=n("Ds5P");r(r.S,"Reflect",{ownKeys:n("YUr7")})},Rz2z:function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},"S+E/":function(t,e,n){var r=n("Ds5P"),i=n("OgTs");r(r.G+r.F*(parseInt!=i),{parseInt:i})},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},S82l:function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},SDXa:function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},SGXn:function(t,e,n){var r=n("eP4g"),i=n("S7p9"),o=n("Dc0G"),a=o&&o.isSet,s=a?i(a):r;t.exports=s},SHe9:function(t,e,n){var r=n("wC1N"),i=n("kkCw")("iterator"),o=n("bN1p");t.exports=n("7gX0").getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[r(t)]}},SPtU:function(t,e,n){var r=n("x9zv"),i=n("KOrd"),o=n("WBcL"),a=n("Ds5P"),s=n("UKM+"),c=n("DIVP");a(a.S,"Reflect",{get:function t(e,n){var a,u,l=arguments.length<3?e:arguments[2];return c(e)===l?e[n]:(a=r.f(e,n))?o(a,"value")?a.value:void 0!==a.get?a.get.call(l):void 0:s(u=i(e))?t(u,n,l):void 0}})},SRCy:function(t,e,n){var r=n("Ds5P"),i=n("x78i"),o=Math.exp;r(r.S,"Math",{tanh:function(t){var e=i(t=+t),n=i(-t);return e==1/0?1:n==1/0?-1:(e-n)/(o(t)+o(-t))}})},"SU+a":function(t,e,n){"use strict";n("y325")("small",function(t){return function(){return t(this,"small","","")}})},Sejc:function(t,e,n){var r,i,o,a=n("rFzY"),s=n("PHCx"),c=n("d075"),u=n("jhxf"),l=n("OzIq"),f=l.process,h=l.setImmediate,p=l.clearImmediate,d=l.MessageChannel,v=l.Dispatch,m=0,y={},g=function(){var t=+this;if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},_=function(t){g.call(t.data)};h&&p||(h=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return y[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},p=function(t){delete y[t]},"process"==n("ydD5")(f)?r=function(t){f.nextTick(a(g,t,1))}:v&&v.now?r=function(t){v.now(a(g,t,1))}:d?(o=(i=new d).port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",_,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),g.call(t)}}:function(t){setTimeout(a(g,t,1),0)}),t.exports={set:h,clear:p}},SfB7:function(t,e,n){t.exports=!n("+E39")&&!n("S82l")(function(){return 7!=Object.defineProperty(n("ON07")("div"),"a",{get:function(){return 7}}).a})},SldL:function(t,e){!function(e){"use strict";var n,r=Object.prototype,i=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag",u="object"==typeof t,l=e.regeneratorRuntime;if(l)u&&(t.exports=l);else{(l=e.regeneratorRuntime=u?t.exports:{}).wrap=b;var f="suspendedStart",h="suspendedYield",p="executing",d="completed",v={},m={};m[a]=function(){return this};var y=Object.getPrototypeOf,g=y&&y(y(M([])));g&&g!==r&&i.call(g,a)&&(m=g);var _=k.prototype=x.prototype=Object.create(m);S.prototype=_.constructor=k,k.constructor=S,k[c]=S.displayName="GeneratorFunction",l.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===S||"GeneratorFunction"===(e.displayName||e.name))},l.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,k):(t.__proto__=k,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(_),t},l.awrap=function(t){return{__await:t}},C(T.prototype),T.prototype[s]=function(){return this},l.AsyncIterator=T,l.async=function(t,e,n,r){var i=new T(b(t,e,n,r));return l.isGeneratorFunction(e)?i:i.next().then(function(t){return t.done?t.value:i.next()})},C(_),_[c]="Generator",_[a]=function(){return this},_.toString=function(){return"[object Generator]"},l.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},l.values=M,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(A),!t)for(var e in this)"t"===e.charAt(0)&&i.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,i){return s.type="throw",s.arg=t,e.next=r,i&&(e.method="next",e.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;A(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:M(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function b(t,e,n,r){var i=e&&e.prototype instanceof x?e:x,o=Object.create(i.prototype),a=new P(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===d){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=w(t,e,n);if("normal"===c.type){if(r=n.done?d:h,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=d,n.method="throw",n.arg=c.arg)}}}(t,n,a),o}function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function x(){}function S(){}function k(){}function C(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function T(t){var e;this._invoke=function(n,r){function o(){return new Promise(function(e,o){!function e(n,r,o,a){var s=w(t[n],t,r);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&i.call(u,"__await")?Promise.resolve(u.__await).then(function(t){e("next",t,o,a)},function(t){e("throw",t,o,a)}):Promise.resolve(u).then(function(t){c.value=t,o(c)},a)}a(s.arg)}(n,r,e,o)})}return e=e?e.then(o,o):o()}}function E(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,E(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=w(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,v;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function M(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++ru;)for(var h,p=s(arguments[u++]),d=l?r(p).concat(l(p)):r(p),v=d.length,m=0;v>m;)f.call(p,h=d[m++])&&(n[h]=p[h]);return n}:c},Tvex:function(t,e,n){var r=n("7YkW"),i=n("JUs9"),o=n("s96k"),a=n("dmQx"),s=n("V3Yo"),c=n("octw"),u=200;t.exports=function(t,e,n){var l=-1,f=i,h=t.length,p=!0,d=[],v=d;if(n)p=!1,f=o;else if(h>=u){var m=e?null:s(t);if(m)return c(m);p=!1,f=a,v=new r}else v=e?[]:d;t:for(;++l1?arguments[1]:void 0)}}),n("RhFG")(o)},UJiG:function(t,e,n){"use strict";n("y325")("link",function(t){return function(e){return t(this,"a","href",e)}})},"UKM+":function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},UbXY:function(t,e,n){var r=n("Ds5P"),i=n("Y7Tz");r(r.P+r.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},UfSK:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(r.index=t.index,r.input=t.input),r}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UuGF:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},"V/H1":function(t,e,n){"use strict";var r=n("fJSx"),i=n("zq/X");n("0Rih")("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(i(this,"WeakSet"),t,!0)}},r,!1,!0)},V3Yo:function(t,e,n){var r=n("5N57"),i=n("qrdl"),o=n("octw"),a=r&&1/o(new r([,-0]))[1]==1/0?function(t){return new r(t)}:i;t.exports=a},"V3l/":function(t,e){t.exports=!1},V3tA:function(t,e,n){n("R4wc"),t.exports=n("FeBl").Object.assign},VORN:function(t,e,n){var r=n("yCNF"),i=Object.create,o=function(){function t(){}return function(e){if(!r(e))return{};if(i)return i(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=o},VTn2:function(t,e,n){var r=n("UKM+"),i=n("1aA0").onFreeze;n("3i66")("freeze",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},"VU/8":function(t,e){t.exports=function(t,e,n,r,i,o){var a,s=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(a=t,s=t.default);var u,l="function"==typeof s?s.options:s;if(e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId=i),o?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=u):r&&(u=r),u){var f=l.functional,h=f?l.render:l.beforeCreate;f?(l._injectStyles=u,l.render=function(t,e){return u.call(e),h(t,e)}):l.beforeCreate=h?[].concat(h,u):[u]}return{esModule:a,exports:s,options:l}}},VWgF:function(t,e,n){var r=n("7gX0"),i=n("OzIq"),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n("V3l/")?"pure":"global",copyright:"漏 2019 Denis Pushkarev (zloirock.ru)"})},Vg1y:function(t,e,n){"use strict";n("Jbuy");var r=n("R3AP"),i=n("2p1q"),o=n("zgIt"),a=n("/whu"),s=n("kkCw"),c=n("32VL"),u=s("species"),l=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var h=s(t),p=!o(function(){var e={};return e[h]=function(){return 7},7!=""[t](e)}),d=p?!o(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[u]=function(){return n}),n[h](""),!e}):void 0;if(!p||!d||"replace"===t&&!l||"split"===t&&!f){var v=/./[h],m=n(a,h,""[t],function(t,e,n,r,i){return e.exec===c?p&&!i?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),y=m[0],g=m[1];r(String.prototype,t,y),i(RegExp.prototype,h,2==e?function(t,e){return g.call(t,this,e)}:function(t){return g.call(t,this)})}}},VjuZ:function(t,e,n){"use strict";var r=n("DIVP"),i=n("FryR"),o=n("BbyF"),a=n("oeih"),s=n("TwzQ"),c=n("9Dx1"),u=Math.max,l=Math.min,f=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;n("Vg1y")("replace",2,function(t,e,n,d){return[function(r,i){var o=t(this),a=void 0==r?void 0:r[e];return void 0!==a?a.call(r,o,i):n.call(String(o),r,i)},function(t,e){var i=d(n,t,this,e);if(i.done)return i.value;var f=r(t),h=String(this),p="function"==typeof e;p||(e=String(e));var m=f.global;if(m){var y=f.unicode;f.lastIndex=0}for(var g=[];;){var _=c(f,h);if(null===_)break;if(g.push(_),!m)break;""===String(_[0])&&(f.lastIndex=s(h,o(f.lastIndex),y))}for(var b,w="",x=0,S=0;S=x&&(w+=h.slice(x,C)+P,x=C+k.length)}return w+h.slice(x)}];function v(t,e,r,o,a,s){var c=r+t.length,u=o.length,l=p;return void 0!==a&&(a=i(a),l=h),n.call(s,l,function(n,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":s=a[i.slice(1,-1)];break;default:var l=+i;if(0===l)return n;if(l>u){var h=f(l/10);return 0===h?n:h<=u?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):n}s=o[l-1]}return void 0===s?"":s})}})},"W/IU":function(t,e,n){var r=n("UKM+"),i=n("1aA0").onFreeze;n("3i66")("seal",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},W0pi:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{DEG_PER_RAD:Math.PI/180})},W2nU:function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var t=s(h);l=!0;for(var e=u.length;e;){for(c=u,u=[];++f1)for(var n=1;n=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},WiIn:function(t,e,n){var r=n("Ds5P");r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},WpPb:function(t,e,n){var r=n("UKM+");n("3i66")("isFrozen",function(t){return function(e){return!r(e)||!!t&&t(e)}})},WpTh:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n("RhFG")("find")},Wwne:function(t,e,n){n("r2E/"),t.exports=n("7gX0").RegExp.escape},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},"X/Hz":function(t,e,n){"use strict";n("y325")("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},X6NR:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{clamp:function(t,e,n){return Math.min(n,Math.max(e,t))}})},X7aK:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("DIVP"),o=function(t){this._t=i(t),this._i=0;var e,n=this._k=[];for(e in t)n.push(e)};n("IRJ3")(o,"Object",function(){var t,e=this._k;do{if(this._i>=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}}),r(r.S,"Reflect",{enumerate:function(t){return new o(t)}})},X8DO:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},XO1R:function(t,e,n){var r=n("ydD5");t.exports=Array.isArray||function(t){return"Array"==r(t)}},XSOZ:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},XXBo:function(t,e,n){var r=n("wC1N"),i=n("QG7u");t.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");return i(this)}}},Xc4G:function(t,e,n){var r=n("lktj"),i=n("1kS7"),o=n("NpIQ");t.exports=function(t){var e=r(t),n=i.f;if(n)for(var a,s=n(t),c=o.f,u=0;s.length>u;)c.call(t,a=s[u++])&&e.push(a);return e}},Xd32:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("5PlU")},Xduv:function(t,e){t.exports="\t\n\v\f\r 聽釟釥庘鈥佲傗冣勨呪嗏団堚夆娾仧銆\u2028\u2029\ufeff"},XgCd:function(t,e,n){"use strict";var r=String.prototype.replace,i=/%20/g;t.exports={default:"RFC3986",formatters:{RFC1738:function(t){return r.call(t,i,"+")},RFC3986:function(t){return t}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},XmWM:function(t,e,n){"use strict";var r=n("KCLY"),i=n("cGG2"),o=n("fuGk"),a=n("xLtR");function s(t){this.defaults=t,this.interceptors={request:new o,response:new o}}s.prototype.request=function(t){"string"==typeof t&&(t=i.merge({url:arguments[0]},arguments[1])),(t=i.merge(r,{method:"get"},this.defaults,t)).method=t.method.toLowerCase();var e=[a,void 0],n=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)n=n.then(e.shift(),e.shift());return n},i.forEach(["delete","get","head","options"],function(t){s.prototype[t]=function(e,n){return this.request(i.merge(n||{},{method:t,url:e}))}}),i.forEach(["post","put","patch"],function(t){s.prototype[t]=function(e,n,r){return this.request(i.merge(r||{},{method:t,url:e,data:n}))}}),t.exports=s},XtiL:function(t,e,n){var r=n("Ds5P");r(r.S,"Number",{isInteger:n("n982")})},XvUs:function(t,e,n){var r=n("DIVP");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},Xxa5:function(t,e,n){t.exports=n("jyFz")},Y1N3:function(t,e){e.f=Object.getOwnPropertySymbols},Y1S0:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("BbyF"),o=n("kqpo"),a="".endsWith;r(r.P+r.F*n("1ETD")("endsWith"),"String",{endsWith:function(t){var e=o(this,t,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=i(e.length),s=void 0===n?r:Math.min(i(n),r),c=String(t);return a?a.call(e,c,s):e.slice(s-c.length,s)===c}})},Y1aA:function(t,e){e.f={}.propertyIsEnumerable},Y5ex:function(t,e,n){var r=n("UKM+"),i=n("1aA0").onFreeze;n("3i66")("preventExtensions",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},Y7Tz:function(t,e,n){"use strict";var r=n("zgIt"),i=Date.prototype.getTime,o=Date.prototype.toISOString,a=function(t){return t>9?t:"0"+t};t.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!r(function(){o.call(new Date(NaN))})?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+("00000"+Math.abs(e)).slice(r?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}:o},YUr7:function(t,e,n){var r=n("WcO1"),i=n("Y1N3"),o=n("DIVP"),a=n("OzIq").Reflect;t.exports=a&&a.ownKeys||function(t){var e=r.f(o(t)),n=i.f;return n?e.concat(n(t)):e}},"YVn/":function(t,e,n){var r=n("Ds5P"),i=n("lKE8")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},YeCl:function(t,e,n){var r=n("CW5P"),i=n("A9mX"),o=n("v8Dt"),a=n("agim"),s=n("Dv2r");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++edocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[o[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=c(),void 0===e?n:i(n,e)}},YsVG:function(t,e,n){var r=n("z4hc"),i=n("S7p9"),o=n("Dc0G"),a=o&&o.isTypedArray,s=a?i(a):r;t.exports=s},Z2pD:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?i:e,this}},ZDXm:function(t,e,n){"use strict";var r,i=n("OzIq"),o=n("LhTa")(0),a=n("R3AP"),s=n("1aA0"),c=n("oYd7"),u=n("fJSx"),l=n("UKM+"),f=n("zq/X"),h=n("zq/X"),p=!i.ActiveXObject&&"ActiveXObject"in i,d=s.getWeak,v=Object.isExtensible,m=u.ufstore,y=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(t){if(l(t)){var e=d(t);return!0===e?m(f(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return u.def(f(this,"WeakMap"),t,e)}},_=t.exports=n("0Rih")("WeakMap",y,g,u,!0,!0);h&&p&&(c((r=u.getConstructor(y,"WeakMap")).prototype,g),s.NEED=!0,o(["delete","has","get","set"],function(t){var e=_.prototype,n=e[t];a(e,t,function(e,i){if(l(e)&&!v(e)){this._f||(this._f=new r);var o=this._f[t](e,i);return"set"==t?this:o}return n.call(this,e,i)})}))},ZGh9:function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?n:e)&&("number"==i||"symbol"!=i&&r.test(t))&&t>-1&&t%1==0&&t1?arguments[1]:void 0,m=void 0!==v,y=0,g=l(h);if(m&&(v=r(v,d>2?arguments[2]:void 0,2)),void 0==g||p==Array&&s(g))for(n=new p(e=c(h.length));e>y;y++)u(n,y,m?v(h[y],y):h[y]);else for(f=g.call(h),n=new p;!(i=f.next()).done;y++)u(n,y,m?a(f,v,[i.value,y],!0):i.value);return n.length=y,n}})},blYT:function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n("DuR2"))},boo2:function(t,e,n){var r=n("UKM+"),i=n("XO1R"),o=n("kkCw")("species");t.exports=function(t){var e;return i(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!i(e.prototype)||(e=void 0),r(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},bqOW:function(t,e,n){var r=n("Ds5P"),i=n("zo/l"),o=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],i(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?o(e):o(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},"c/Tr":function(t,e,n){t.exports={default:n("5zde"),__esModule:!0}},cGG2:function(t,e,n){"use strict";var r=n("JP+z"),i=n("Re3r"),o=Object.prototype.toString;function a(t){return"[object Array]"===o.call(t)}function s(t){return null!==t&&"object"==typeof t}function c(t){return"[object Function]"===o.call(t)}function u(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),a(t))for(var n=0,r=t.length;n-1?t.splice(n,1):void 0}}function o(t,e){if("IMG"===t.tagName&&t.getAttribute("data-srcset")){var n=t.getAttribute("data-srcset"),r=[],i=t.parentNode.offsetWidth*e,o=void 0,a=void 0,s=void 0;(n=n.trim().split(",")).map(function(t){t=t.trim(),-1===(o=t.lastIndexOf(" "))?(a=t,s=999998):(a=t.substr(0,o),s=parseInt(t.substr(o+1,t.length-o-2),10)),r.push([s,a])}),r.sort(function(t,e){if(t[0]e[0])return 1;if(t[0]===e[0]){if(-1!==e[1].indexOf(".webp",e[1].length-5))return 1;if(-1!==t[1].indexOf(".webp",t[1].length-5))return-1}return 0});for(var c="",u=void 0,l=r.length,f=0;f=i){c=u[1];break}return c}}function a(t,e){for(var n=void 0,r=0,i=t.length;r0&&void 0!==arguments[0]?arguments[0]:1;return m&&window.devicePixelRatio||t},w=function(){if(m){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}}(),x={on:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];w?t.addEventListener(e,n,{capture:r,passive:!0}):t.addEventListener(e,n,r)},off:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t.removeEventListener(e,n,r)}},S=function(t,e,n){var r=new Image;r.src=t.src,r.onload=function(){e({naturalHeight:r.naturalHeight,naturalWidth:r.naturalWidth,src:r.src})},r.onerror=function(t){n(t)}},k=function(t,e){return"undefined"!=typeof getComputedStyle?getComputedStyle(t,null).getPropertyValue(e):t.style[e]},C=function(t){return k(t,"overflow")+k(t,"overflow-y")+k(t,"overflow-x")},T={},E=function(){function t(e){var n=e.el,r=e.src,i=e.error,o=e.loading,a=e.bindType,s=e.$parent,c=e.options,l=e.elRenderer;u(this,t),this.el=n,this.src=r,this.error=i,this.loading=o,this.bindType=a,this.attempt=0,this.naturalHeight=0,this.naturalWidth=0,this.options=c,this.rect=null,this.$parent=s,this.elRenderer=l,this.performanceData={init:Date.now(),loadStart:0,loadEnd:0},this.filter(),this.initState(),this.render("loading",!1)}return l(t,[{key:"initState",value:function(){"dataset"in this.el?this.el.dataset.src=this.src:this.el.setAttribute("data-src",this.src),this.state={error:!1,loaded:!1,rendered:!1}}},{key:"record",value:function(t){this.performanceData[t]=Date.now()}},{key:"update",value:function(t){var e=t.src,n=t.loading,r=t.error,i=this.src;this.src=e,this.loading=n,this.error=r,this.filter(),i!==this.src&&(this.attempt=0,this.initState())}},{key:"getRect",value:function(){this.rect=this.el.getBoundingClientRect()}},{key:"checkInView",value:function(){return this.getRect(),this.rect.topthis.options.preLoadTop&&this.rect.left0}},{key:"filter",value:function(){var t=this;(function(t){if(!(t instanceof Object))return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e})(this.options.filter).map(function(e){t.options.filter[e](t,t.options)})}},{key:"renderLoading",value:function(t){var e=this;S({src:this.loading},function(n){e.render("loading",!1),t()},function(){t(),e.options.silent})}},{key:"load",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s;return this.attempt>this.options.attempt-1&&this.state.error?(this.options.silent,void e()):this.state.loaded||T[this.src]?(this.state.loaded=!0,e(),this.render("loaded",!0)):void this.renderLoading(function(){t.attempt++,t.record("loadStart"),S({src:t.src},function(n){t.naturalHeight=n.naturalHeight,t.naturalWidth=n.naturalWidth,t.state.loaded=!0,t.state.error=!1,t.record("loadEnd"),t.render("loaded",!1),T[t.src]=1,e()},function(e){t.options.silent,t.state.error=!0,t.state.loaded=!1,t.render("error",!1)})})}},{key:"render",value:function(t,e){this.elRenderer(this,t,e)}},{key:"performance",value:function(){var t="loading",e=0;return this.state.loaded&&(t="loaded",e=(this.performanceData.loadEnd-this.performanceData.loadStart)/1e3),this.state.error&&(t="error"),{src:this.src,state:t,time:e}}},{key:"destroy",value:function(){this.el=null,this.src=null,this.error=null,this.loading=null,this.bindType=null,this.attempt=0}}]),t}(),O="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",A=["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],P={rootMargin:"0px",threshold:0},M=function(t){return function(){function e(t){var n=t.preLoad,r=t.error,i=t.throttleWait,o=t.preLoadTop,a=t.dispatchEvent,s=t.loading,c=t.attempt,l=t.silent,f=void 0===l||l,h=t.scale,p=t.listenEvents,d=(t.hasbind,t.filter),v=t.adapter,y=t.observer,_=t.observerOptions;u(this,e),this.version="1.2.6",this.mode=g.event,this.ListenerQueue=[],this.TargetIndex=0,this.TargetQueue=[],this.options={silent:f,dispatchEvent:!!a,throttleWait:i||200,preLoad:n||1.3,preLoadTop:o||0,error:r||O,loading:s||O,attempt:c||3,scale:h||b(h),ListenEvents:p||A,hasbind:!1,supportWebp:function(){if(!m)return!1;var t=!0,e=document;try{var n=e.createElement("object");n.type="image/webp",n.style.visibility="hidden",n.innerHTML="!",e.body.appendChild(n),t=!n.offsetWidth,e.body.removeChild(n)}catch(e){t=!1}return t}(),filter:d||{},adapter:v||{},observer:!!y,observerOptions:_||P},this._initEvent(),this.lazyLoadHandler=function(t,e){var n=null,r=0;return function(){if(!n){var i=this,o=arguments,a=function(){r=Date.now(),n=!1,t.apply(i,o)};Date.now()-r>=e?a():n=setTimeout(a,e)}}}(this._lazyLoadHandler.bind(this),this.options.throttleWait),this.setMode(this.options.observer?g.observer:g.event)}return l(e,[{key:"config",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v(this.options,t)}},{key:"performance",value:function(){var t=[];return this.ListenerQueue.map(function(e){t.push(e.performance())}),t}},{key:"addLazyBox",value:function(t){this.ListenerQueue.push(t),m&&(this._addListenerTarget(window),this._observer&&this._observer.observe(t.el),t.$el&&t.$el.parentNode&&this._addListenerTarget(t.$el.parentNode))}},{key:"add",value:function(e,n,r){var i=this;if(function(t,e){for(var n=!1,r=0,i=t.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=new(M(t))(e),r=new j({lazy:n}),i="2"===t.version.split(".")[0];t.prototype.$Lazyload=n,e.lazyComponent&&t.component("lazy-component",function(t){return{props:{tag:{type:String,default:"div"}},render:function(t){return!1===this.show?t(this.tag):t(this.tag,null,this.$slots.default)},data:function(){return{el:null,state:{loaded:!1},rect:{},show:!1}},mounted:function(){this.el=this.$el,t.addLazyBox(this),t.lazyLoadHandler()},beforeDestroy:function(){t.removeComponent(this)},methods:{getRect:function(){this.rect=this.$el.getBoundingClientRect()},checkInView:function(){return this.getRect(),m&&this.rect.top0&&this.rect.left0},load:function(){this.show=!0,this.state.loaded=!0,this.$emit("show",this)}}}}(n)),e.lazyImage&&t.component("lazy-image",function(t){return{props:{src:[String,Object],tag:{type:String,default:"img"}},render:function(t){return t(this.tag,{attrs:{src:this.renderSrc}},this.$slots.default)},data:function(){return{el:null,options:{src:"",error:"",loading:"",attempt:t.options.attempt},state:{loaded:!1,error:!1,attempt:0},rect:{},renderSrc:""}},watch:{src:function(){this.init(),t.addLazyBox(this),t.lazyLoadHandler()}},created:function(){this.init(),this.renderSrc=this.options.loading},mounted:function(){this.el=this.$el,t.addLazyBox(this),t.lazyLoadHandler()},beforeDestroy:function(){t.removeComponent(this)},methods:{init:function(){var e=t._valueFormatter(this.src),n=e.src,r=e.loading,i=e.error;this.state.loaded=!1,this.options.src=n,this.options.error=i,this.options.loading=r,this.renderSrc=this.options.loading},getRect:function(){this.rect=this.$el.getBoundingClientRect()},checkInView:function(){return this.getRect(),m&&this.rect.top0&&this.rect.left0},load:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s;if(this.state.attempt>this.options.attempt-1&&this.state.error)return t.options.silent,void n();var r=this.options.src;S({src:r},function(t){var n=t.src;e.renderSrc=n,e.state.loaded=!0},function(t){e.state.attempt++,e.renderSrc=e.options.error,e.state.error=!0})}}}}(n)),i?(t.directive("lazy",{bind:n.add.bind(n),update:n.update.bind(n),componentUpdated:n.lazyLoadHandler.bind(n),unbind:n.remove.bind(n)}),t.directive("lazy-container",{bind:r.bind.bind(r),update:r.update.bind(r),unbind:r.unbind.bind(r)})):(t.directive("lazy",{bind:n.lazyLoadHandler.bind(n),update:function(t,e){v(this.vm.$refs,this.vm.$els),n.add(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){n.remove(this.el)}}),t.directive("lazy-container",{update:function(t,e){r.update(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){r.unbind(this.el)}}))}}},t.exports=r()},cWxy:function(t,e,n){"use strict";var r=n("dVOP");function i(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(t){e=t});var n=this;t(function(t){n.reason||(n.reason=new r(t),e(n.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var t;return{token:new i(function(e){t=e}),cancel:t}},t.exports=i},cdq7:function(t,e){t.exports=function(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o0?arguments[0]:void 0)}},{add:function(t){return r.def(i(this,"Set"),t=0===t?0:t,t)}},r)},dSzd:function(t,e,n){var r=n("e8AB")("wks"),i=n("3Eo+"),o=n("7KvD").Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},dTzs:function(t,e,n){n("77Ug")("Float32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},dULJ:function(t,e,n){var r=n("Ds5P"),i=n("OgTs");r(r.S+r.F*(Number.parseInt!=i),"Number",{parseInt:i})},dVOP:function(t,e,n){"use strict";function r(t){this.message=t}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,t.exports=r},dY0y:function(t,e,n){var r=n("dSzd")("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},deUO:function(t,e,n){var r=n("imBK");t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},dich:function(t,e,n){var r=n("Ds5P"),i=n("Sejc");r(r.G+r.B,{setImmediate:i.set,clearImmediate:i.clear})},"dm+7":function(t,e,n){var r=n("Ds5P");r(r.S,"Reflect",{has:function(t,e){return e in t}})},dm6P:function(t,e,n){"use strict";t.exports=n("V3l/")||!n("zgIt")(function(){var t=Math.random();__defineSetter__.call(null,t,function(){}),delete n("OzIq")[t]})},dmQx:function(t,e){t.exports=function(t,e){return t.has(e)}},du7g:function(t,e,n){var r=n("TQ3y").isFinite;t.exports=function(t){return"number"==typeof t&&r(t)}},duB3:function(t,e,n){var r=n("WxI4"),i=n("dFpP"),o=n("JBvZ"),a=n("2Hvv"),s=n("deUO");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++ei;)X(t,n=r[i++],e[n]);return t},G=function(t){var e=R.call(this,t=w(t,!0));return!(this===z&&i(N,t)&&!i(B,t))&&(!(e||!i(this,t)||!i(N,t)||i(this,L)&&this[L][t])||e)},K=function(t,e){if(t=b(t),e=w(e,!0),t!==z||!i(N,e)||i(B,e)){var n=O(t,e);return!n||!i(N,e)||i(t,L)&&t[L][e]||(n.enumerable=!0),n}},Q=function(t){for(var e,n=P(b(t)),r=[],o=0;n.length>o;)i(N,e=n[o++])||e==L||e==c||r.push(e);return r},J=function(t){for(var e,n=t===z,r=P(n?B:b(t)),o=[],a=0;r.length>a;)!i(N,e=r[a++])||n&&!i(z,e)||o.push(N[e]);return o};U||(s((M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(B,n),i(this,L)&&i(this[L],t)&&(this[L][t]=!1),V(this,t,x(1,n))};return o&&$&&V(z,t,{configurable:!0,set:e}),W(t)}).prototype,"toString",function(){return this._k}),C.f=K,T.f=X,n("n0T6").f=k.f=Q,n("NpIQ").f=G,n("1kS7").f=J,o&&!n("O4g8")&&s(z,"propertyIsEnumerable",G,!0),d.f=function(t){return W(p(t))}),a(a.G+a.W+a.F*!U,{Symbol:M});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Z.length>tt;)p(Z[tt++]);for(var et=E(p.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!U,"Symbol",{for:function(t){return i(F,t+="")?F[t]:F[t]=M(t)},keyFor:function(t){if(!q(t))throw TypeError(t+" is not a symbol!");for(var e in F)if(F[e]===t)return e},useSetter:function(){$=!0},useSimple:function(){$=!1}}),a(a.S+a.F*!U,"Object",{create:function(t,e){return void 0===e?S(t):Y(S(t),e)},defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:K,getOwnPropertyNames:Q,getOwnPropertySymbols:J}),j&&a(a.S+a.F*(!U||u(function(){var t=M();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(_(e)||void 0!==t)&&!q(t))return y(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!q(e))return e}),r[1]=e,I.apply(j,r)}}),M.prototype[D]||n("hJx8")(M.prototype,D,M.prototype.valueOf),f(M,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},fZOM:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},fZjL:function(t,e,n){t.exports={default:n("jFbC"),__esModule:!0}},fkB2:function(t,e,n){var r=n("UuGF"),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},fuGk:function(t,e,n){"use strict";var r=n("cGG2");function i(){this.handlers=[]}i.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.forEach=function(t){r.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=i},fx22:function(t,e,n){for(var r=n("WgSQ"),i=n("Qh14"),o=n("R3AP"),a=n("OzIq"),s=n("2p1q"),c=n("bN1p"),u=n("kkCw"),l=u("iterator"),f=u("toStringTag"),h=c.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=i(p),v=0;vs||n!=n?u*(1/0):u*n}},g36u:function(t,e,n){var r=n("OzIq"),i=n("Sejc").set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,c="process"==n("ydD5")(a);t.exports=function(){var t,e,n,u=function(){var r,i;for(c&&(r=a.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(u)};else if(!o||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var l=s.resolve(void 0);n=function(){l.then(u)}}else n=function(){i.call(r,u)};else{var f=!0,h=document.createTextNode("");new o(u).observe(h,{characterData:!0}),n=function(){h.data=f=!f}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}},g8Ux:function(t,e,n){var r=n("77Pl"),i=n("3fs2");t.exports=n("FeBl").getIterator=function(t){var e=i(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return r(e.call(t))}},gAsd:function(t,e,n){n("G5/o");var r=n("FeBl").Object;t.exports=function(t){return r.getOwnPropertyNames(t)}},gGqR:function(t,e,n){var r=n("aCM0"),i=n("yCNF"),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=r(t);return e==a||e==s||e==o||e==c}},gHOb:function(t,e,n){var r=n("d4US"),i=n("POb3"),o=n("bO0Y"),a=n("5N57"),s=n("bIbi"),c=n("aCM0"),u=n("Ai/T"),l=u(r),f=u(i),h=u(o),p=u(a),d=u(s),v=c;(r&&"[object DataView]"!=v(new r(new ArrayBuffer(1)))||i&&"[object Map]"!=v(new i)||o&&"[object Promise]"!=v(o.resolve())||a&&"[object Set]"!=v(new a)||s&&"[object WeakMap]"!=v(new s))&&(v=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?u(n):"";if(r)switch(r){case l:return"[object DataView]";case f:return"[object Map]";case h:return"[object Promise]";case p:return"[object Set]";case d:return"[object WeakMap]"}return e}),t.exports=v},gPva:function(t,e,n){var r=n("UKM+");n("3i66")("isExtensible",function(t){return function(e){return!!r(e)&&(!t||t(e))}})},gRE1:function(t,e,n){t.exports={default:n("TmV0"),__esModule:!0}},gYYG:function(t,e,n){"use strict";var r=n("wC1N"),i={};i[n("kkCw")("toStringTag")]="z",i+""!="[object z]"&&n("R3AP")(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},gbyG:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("ot5s")(!0);r(r.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n("RhFG")("includes")},ggOT:function(t,e,n){(function(t){var r=n("TQ3y"),i=n("gwcX"),o="object"==typeof e&&e&&!e.nodeType&&e,a=o&&"object"==typeof t&&t&&!t.nodeType&&t,s=a&&a.exports===o?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,n("3IRH")(t))},gvDt:function(t,e,n){var r=n("UKM+"),i=n("DIVP"),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n("rFzY")(Function.call,n("x9zv").f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:o}},gwcX:function(t,e){t.exports=function(){return!1}},h65t:function(t,e,n){var r=n("UuGF"),i=n("52gC");t.exports=function(t){return function(e,n){var o,a,s=String(i(e)),c=r(n),u=s.length;return c<0||c>=u?t?"":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536}}},h7Xi:function(t,e,n){var r=n("Ds5P");r(r.P+r.R,"Map",{toJSON:n("XXBo")("Map")})},hJx8:function(t,e,n){var r=n("evD5"),i=n("X8DO");t.exports=n("+E39")?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},hrPF:function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n>>16,s=r>>>16,c=(a*o>>>0)+(i*o>>>16);return a*s+(c>>>16)+((i*s>>>0)+(65535&c)>>>16)}})},i4ON:function(t,e,n){var r=n("nw3t"),i=n("22B7"),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var a=t[e];o.call(t,e)&&i(a,n)&&(void 0!==n||e in t)||r(t,e,n)}},i68Q:function(t,e,n){var r=n("Ds5P");r(r.S,"Object",{create:n("7ylX")})},i6nN:function(t,e){t.exports=function(t,e,n){for(var r=n-1,i=t.length;++r=0,o=i&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,t.exports=n("SldL"),i)r.regeneratorRuntime=o;else try{delete r.regeneratorRuntime}catch(t){r.regeneratorRuntime=void 0}},kBOG:function(t,e,n){var r=n("Ds5P"),i=n("cwmK");r(r.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},kM2E:function(t,e,n){var r=n("7KvD"),i=n("FeBl"),o=n("+ZMJ"),a=n("hJx8"),s=n("D2L2"),c=function(t,e,n){var u,l,f,h=t&c.F,p=t&c.G,d=t&c.S,v=t&c.P,m=t&c.B,y=t&c.W,g=p?i:i[e]||(i[e]={}),_=g.prototype,b=p?r:d?r[e]:(r[e]||{}).prototype;for(u in p&&(n=e),n)(l=!h&&b&&void 0!==b[u])&&s(g,u)||(f=l?b[u]:n[u],g[u]=p&&"function"!=typeof b[u]?n[u]:m&&l?o(f,r):y&&b[u]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):v&&"function"==typeof f?o(Function.call,f):f,v&&((g.virtual||(g.virtual={}))[u]=f,t&c.R&&_&&!_[u]&&a(_,u,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},kiBT:function(t,e,n){t.exports={default:n("i/C/"),__esModule:!0}},kic5:function(t,e,n){var r=n("UKM+"),i=n("gvDt").set;t.exports=function(t,e,n){var o,a=e.constructor;return a!==n&&"function"==typeof a&&(o=a.prototype)!==n.prototype&&r(o)&&i&&i(t,o),t}},kkCw:function(t,e,n){var r=n("VWgF")("wks"),i=n("ulTY"),o=n("OzIq").Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},knuC:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},kqpo:function(t,e,n){var r=n("u0PK"),i=n("/whu");t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(t))}},ktak:function(t,e,n){var r=n("7e4z"),i=n("/GnY"),o=n("bGc4");t.exports=function(t){return o(t)?r(t):i(t)}},kvU2:function(t,e,n){var r=n("Fkvj"),i=1,o=4;t.exports=function(t){return r(t,i|o)}},kxzG:function(t,e,n){var r=n("yCNF"),i=n("6MiT"),o=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,u=/^0o[0-7]+$/i,l=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return o;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(a,"");var n=c.test(t);return n||u.test(t)?l(t.slice(2),n?2:8):s.test(t)?o:+t}},l9Lx:function(t,e,n){var r=n("lb6C"),i=n("C0hh"),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(t){return null==t?[]:(t=Object(t),r(a(t),function(e){return o.call(t,e)}))}:i;t.exports=s},lDLk:function(t,e,n){var r=n("DIVP"),i=n("xZa+"),o=n("s4j0"),a=Object.defineProperty;e.f=n("bUqO")?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},lKE8:function(t,e,n){var r=n("Qh14"),i=n("PHqh"),o=n("Y1aA").f;t.exports=function(t){return function(e){for(var n,a=i(e),s=r(a),c=s.length,u=0,l=[];c>u;)o.call(a,n=s[u++])&&l.push(t?[n,a[n]]:a[n]);return l}}},lOnJ:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},lb6C:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++ny;)v(m[y++]);f.constructor=u,u.prototype=f,n("R3AP")(r,"RegExp",u)}n("CEne")("RegExp")},lyhN:function(t,e,n){var r=n("Ds5P"),i=Math.atanh;r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},lz8G:function(t,e,n){ +/*! For license information please see vip-params-encrypt.min.js.LICENSE.txt */ +var r;self,r=function(){return function(){var t={579:function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(354),o={data:{secret:{"9cf2380318f54f31acfb1d6e274f5555":"U2FsdGVkX1/99rlgOzI8aWvdLPObVFIKRTSRwfWddLe6pBtQViqQTQugsEVD/6LcyczNKjTHQzxhPOxmMEvqMA=="},aes:{secret:"qyrohlf5sjazleru"}},encrypt:function(t,e,n){var o=this;if(t&&e){if("object"===(void 0===e?"undefined":r(e))){var a=[];for(var s in e)void 0!==e[s]&&null!==e[s]||(e[s]=""),a.push(s+"="+e[s]);e=a.join("&")}var c=i.lib.WordArray.random(16),u=o.data.secret[t]?o.data.secret[t]:"";u=o.aesDecrypt(u,o.data.aes.secret);var l=i.MD5(u),f=i.AES.encrypt(e,l,{iv:c,mode:i.mode.CBC,padding:i.pad.Pkcs7}),h=i.lib.WordArray.create(c.words.slice(0));return h.concat(f.ciphertext),h.toString(i.enc.Base64)}},aesEncrypt:function(t,e){return i.AES.encrypt(t,e).toString()},aesDecrypt:function(t,e){return i.AES.decrypt(t,e).toString(i.enc.Utf8)}};t.exports=o},452:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib.BlockCipher,n=t.algo,i=[],o=[],a=[],s=[],c=[],u=[],l=[],f=[],h=[],p=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var n=0,r=0;for(e=0;e<256;e++){var d=r^r<<1^r<<2^r<<3^r<<4;d=d>>>8^255&d^99,i[n]=d,o[d]=n;var v=t[n],m=t[v],y=t[m],g=257*t[d]^16843008*d;a[n]=g<<24|g>>>8,s[n]=g<<16|g>>>16,c[n]=g<<8|g>>>24,u[n]=g,g=16843009*y^65537*m^257*v^16843008*n,l[d]=g<<24|g>>>8,f[d]=g<<16|g>>>16,h[d]=g<<8|g>>>24,p[d]=g,n?(n=v^t[t[t[y^v]]],r^=t[t[r]]):n=r=1}}();var d=[0,1,2,4,8,16,32,64,128,27,54],v=n.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,n=t.sigBytes/4,r=4*((this._nRounds=n+6)+1),o=this._keySchedule=[],a=0;a6&&a%n==4&&(u=i[u>>>24]<<24|i[u>>>16&255]<<16|i[u>>>8&255]<<8|i[255&u]):(u=i[(u=u<<8|u>>>24)>>>24]<<24|i[u>>>16&255]<<16|i[u>>>8&255]<<8|i[255&u],u^=d[a/n|0]<<24),o[a]=o[a-n]^u);for(var s=this._invKeySchedule=[],c=0;c>>24]]^f[i[u>>>16&255]]^h[i[u>>>8&255]]^p[i[255&u]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,a,s,c,u,i)},decryptBlock:function(t,e){var n=t[e+1];t[e+1]=t[e+3],t[e+3]=n,this._doCryptBlock(t,e,this._invKeySchedule,l,f,h,p,o),n=t[e+1],t[e+1]=t[e+3],t[e+3]=n},_doCryptBlock:function(t,e,n,r,i,o,a,s){for(var c=this._nRounds,u=t[e]^n[0],l=t[e+1]^n[1],f=t[e+2]^n[2],h=t[e+3]^n[3],p=4,d=1;d>>24]^i[l>>>16&255]^o[f>>>8&255]^a[255&h]^n[p++],m=r[l>>>24]^i[f>>>16&255]^o[h>>>8&255]^a[255&u]^n[p++],y=r[f>>>24]^i[h>>>16&255]^o[u>>>8&255]^a[255&l]^n[p++],g=r[h>>>24]^i[u>>>16&255]^o[l>>>8&255]^a[255&f]^n[p++];u=v,l=m,f=y,h=g}v=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&h])^n[p++],m=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[h>>>8&255]<<8|s[255&u])^n[p++],y=(s[f>>>24]<<24|s[h>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^n[p++],g=(s[h>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^n[p++],t[e]=v,t[e+1]=m,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(v)}(),r.AES)},109:function(t,e,n){var r;t.exports=(r=n(249),n(888),void(r.lib.Cipher||function(t){var e=r,n=e.lib,i=n.Base,o=n.WordArray,a=n.BufferedBlockAlgorithm,s=e.enc,c=(s.Utf8,s.Base64),u=e.algo.EvpKDF,l=n.Cipher=a.extend({cfg:i.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,n){this.cfg=this.cfg.extend(n),this._xformMode=t,this._key=e,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?_:y}return function(e){return{encrypt:function(n,r,i){return t(r).encrypt(e,n,r,i)},decrypt:function(n,r,i){return t(r).decrypt(e,n,r,i)}}}}()}),f=(n.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),h=n.BlockCipherMode=i.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),p=f.CBC=function(){var e=h.extend();function n(e,n,r){var i,o=this._iv;o?(i=o,this._iv=t):i=this._prevBlock;for(var a=0;a>>2];t.sigBytes-=e}},v=(n.BlockCipher=l.extend({cfg:l.cfg.extend({mode:p,padding:d}),reset:function(){var t;l.reset.call(this);var e=this.cfg,n=e.iv,r=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=r.createEncryptor:(t=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,n&&n.words):(this._mode=t.call(r,this,n&&n.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),n.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),m=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,n=t.salt;return(n?o.create([1398893684,1701076831]).concat(n).concat(e):e).toString(c)},parse:function(t){var e,n=c.parse(t),r=n.words;return 1398893684==r[0]&&1701076831==r[1]&&(e=o.create(r.slice(2,4)),r.splice(0,4),n.sigBytes-=16),v.create({ciphertext:n,salt:e})}},y=n.SerializableCipher=i.extend({cfg:i.extend({format:m}),encrypt:function(t,e,n,r){r=this.cfg.extend(r);var i=t.createEncryptor(n,r),o=i.finalize(e),a=i.cfg;return v.create({ciphertext:o,key:n,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:r.format})},decrypt:function(t,e,n,r){return r=this.cfg.extend(r),e=this._parse(e,r.format),t.createDecryptor(n,r).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),g=(e.kdf={}).OpenSSL={execute:function(t,e,n,r){r||(r=o.random(8));var i=u.create({keySize:e+n}).compute(t,r),a=o.create(i.words.slice(e),4*n);return i.sigBytes=4*e,v.create({key:i,iv:a,salt:r})}},_=n.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:g}),encrypt:function(t,e,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,t.keySize,t.ivSize);r.iv=i.iv;var o=y.encrypt.call(this,t,e,i.key,r);return o.mixIn(i),o},decrypt:function(t,e,n,r){r=this.cfg.extend(r),e=this._parse(e,r.format);var i=r.kdf.execute(n,t.keySize,t.ivSize,e.salt);return r.iv=i.iv,y.decrypt.call(this,t,e,i.key,r)}})}()))},249:function(t,e,n){var r;t.exports=r=r||function(t,e){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==n.g&&n.g.crypto&&(r=n.g.crypto),!r)try{r=n(480)}catch(t){}var i=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function t(){}return function(e){var n;return t.prototype=e,n=new t,t.prototype=null,n}}(),a={},s=a.lib={},c=s.Base={extend:function(t){var e=o(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},u=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=void 0!=e?e:4*t.length},toString:function(t){return(t||f).stringify(this)},concat:function(t){var e=this.words,n=t.words,r=this.sigBytes,i=t.sigBytes;if(this.clamp(),r%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[r+o>>>2]|=a<<24-(r+o)%4*8}else for(o=0;o>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=t.ceil(n/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],n=0;n>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r>>3]|=parseInt(t.substr(r,2),16)<<24-r%8*4;return new u.init(n,e/2)}},h=l.Latin1={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r>>2]|=(255&t.charCodeAt(r))<<24-r%4*8;return new u.init(n,e)}},p=l.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},d=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=p.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var n,r=this._data,i=r.words,o=r.sigBytes,a=this.blockSize,s=o/(4*a),c=(s=e?t.ceil(s):t.max((0|s)-this._minBufferSize,0))*a,l=t.min(4*c,o);if(c){for(var f=0;f>>6-a%4*2;i[o>>>2]|=s<<24-o%4*8,o++}return e.create(i,o)}t.enc.Base64={stringify:function(t){var e=t.words,n=t.sigBytes,r=this._map;t.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s>>6*(3-s)&63));var c=r.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(t){var e=t.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var n=t.length,r=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return e.create(r,2*n)}},n.Utf16LE={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],o=0;o>>2]>>>16-o%4*8&65535);r.push(String.fromCharCode(a))}return r.join("")},parse:function(t){for(var n=t.length,r=[],o=0;o>>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(r,2*n)}}}(),r.enc.Utf16)},888:function(t,e,n){var r,i,o,a,s,c,u,l;t.exports=(l=n(249),n(783),n(824),o=(i=(r=l).lib).Base,a=i.WordArray,c=(s=r.algo).MD5,u=s.EvpKDF=o.extend({cfg:o.extend({keySize:4,hasher:c,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var n,r=this.cfg,i=r.hasher.create(),o=a.create(),s=o.words,c=r.keySize,u=r.iterations;s.lengthr&&(e=t.finalize(e)),e.clamp();for(var i=this._oKey=e.clone(),a=this._iKey=e.clone(),s=i.words,c=a.words,u=0;u>>2]|=t[i]<<24-i%4*8;e.call(this,r,n)}else e.apply(this,arguments)}).prototype=t}}(),r.lib.WordArray)},214:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var r=e+n,i=t[r];t[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=t[e+0],c=t[e+1],p=t[e+2],d=t[e+3],v=t[e+4],m=t[e+5],y=t[e+6],g=t[e+7],_=t[e+8],b=t[e+9],w=t[e+10],x=t[e+11],S=t[e+12],k=t[e+13],C=t[e+14],T=t[e+15],E=o[0],O=o[1],A=o[2],P=o[3];E=h(E=f(E=f(E=f(E=f(E=l(E=l(E=l(E=l(E=u(E=u(E=u(E=u(E,O,A,P,a,7,s[0]),O=u(O,A=u(A,P=u(P,E,O,A,c,12,s[1]),E,O,p,17,s[2]),P,E,d,22,s[3]),A,P,v,7,s[4]),O=u(O,A=u(A,P=u(P,E,O,A,m,12,s[5]),E,O,y,17,s[6]),P,E,g,22,s[7]),A,P,_,7,s[8]),O=u(O,A=u(A,P=u(P,E,O,A,b,12,s[9]),E,O,w,17,s[10]),P,E,x,22,s[11]),A,P,S,7,s[12]),O=u(O,A=u(A,P=u(P,E,O,A,k,12,s[13]),E,O,C,17,s[14]),P,E,T,22,s[15]),A,P,c,5,s[16]),O=l(O,A=l(A,P=l(P,E,O,A,y,9,s[17]),E,O,x,14,s[18]),P,E,a,20,s[19]),A,P,m,5,s[20]),O=l(O,A=l(A,P=l(P,E,O,A,w,9,s[21]),E,O,T,14,s[22]),P,E,v,20,s[23]),A,P,b,5,s[24]),O=l(O,A=l(A,P=l(P,E,O,A,C,9,s[25]),E,O,d,14,s[26]),P,E,_,20,s[27]),A,P,k,5,s[28]),O=l(O,A=l(A,P=l(P,E,O,A,p,9,s[29]),E,O,g,14,s[30]),P,E,S,20,s[31]),A,P,m,4,s[32]),O=f(O,A=f(A,P=f(P,E,O,A,_,11,s[33]),E,O,x,16,s[34]),P,E,C,23,s[35]),A,P,c,4,s[36]),O=f(O,A=f(A,P=f(P,E,O,A,v,11,s[37]),E,O,g,16,s[38]),P,E,w,23,s[39]),A,P,k,4,s[40]),O=f(O,A=f(A,P=f(P,E,O,A,a,11,s[41]),E,O,d,16,s[42]),P,E,y,23,s[43]),A,P,b,4,s[44]),O=f(O,A=f(A,P=f(P,E,O,A,S,11,s[45]),E,O,T,16,s[46]),P,E,p,23,s[47]),A,P,a,6,s[48]),O=h(O=h(O=h(O=h(O,A=h(A,P=h(P,E,O,A,g,10,s[49]),E,O,C,15,s[50]),P,E,m,21,s[51]),A=h(A,P=h(P,E=h(E,O,A,P,S,6,s[52]),O,A,d,10,s[53]),E,O,w,15,s[54]),P,E,c,21,s[55]),A=h(A,P=h(P,E=h(E,O,A,P,_,6,s[56]),O,A,T,10,s[57]),E,O,y,15,s[58]),P,E,k,21,s[59]),A=h(A,P=h(P,E=h(E,O,A,P,v,6,s[60]),O,A,x,10,s[61]),E,O,p,15,s[62]),P,E,b,21,s[63]),o[0]=o[0]+E|0,o[1]=o[1]+O|0,o[2]=o[2]+A|0,o[3]=o[3]+P|0},_doFinalize:function(){var e=this._data,n=e.words,r=8*this._nDataBytes,i=8*e.sigBytes;n[i>>>5]|=128<<24-i%32;var o=t.floor(r/4294967296),a=r;n[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,c=s.words,u=0;u<4;u++){var l=c[u];c[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function u(t,e,n,r,i,o,a){var s=t+(e&n|~e&r)+i+a;return(s<>>32-o)+e}function l(t,e,n,r,i,o,a){var s=t+(e&r|n&~r)+i+a;return(s<>>32-o)+e}function f(t,e,n,r,i,o,a){var s=t+(e^n^r)+i+a;return(s<>>32-o)+e}function h(t,e,n,r,i,o,a){var s=t+(n^(e|~r))+i+a;return(s<>>32-o)+e}e.MD5=o._createHelper(c),e.HmacMD5=o._createHmacHelper(c)}(Math),r.MD5)},568:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.mode.CFB=function(){var t=r.lib.BlockCipherMode.extend();function e(t,e,n,r){var i,o=this._iv;o?(i=o.slice(0),this._iv=void 0):i=this._prevBlock,r.encryptBlock(i,0);for(var a=0;a>24&255)){var e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}function n(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t}var i=t.Encryptor=t.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,o=this._iv,a=this._counter;o&&(a=this._counter=o.slice(0),this._iv=void 0),n(a);var s=a.slice(0);r.encryptBlock(s,0);for(var c=0;c>>2]|=i<<24-o%4*8,t.sigBytes+=i},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Ansix923)},807:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.Iso10126={pad:function(t,e){var n=4*e,i=n-t.sigBytes%n;t.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Iso10126)},77:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.Iso97971={pad:function(t,e){t.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(t,e)},unpad:function(t){r.pad.ZeroPadding.unpad(t),t.sigBytes--}},r.pad.Iso97971)},991:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding)},475:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.ZeroPadding={pad:function(t,e){var n=4*e;t.clamp(),t.sigBytes+=n-(t.sigBytes%n||n)},unpad:function(t){var e=t.words,n=t.sigBytes-1;for(n=t.sigBytes-1;n>=0;n--)if(e[n>>>2]>>>24-n%4*8&255){t.sigBytes=n+1;break}}},r.pad.ZeroPadding)},112:function(t,e,n){var r,i,o,a,s,c,u,l,f;t.exports=(f=n(249),n(783),n(824),o=(i=(r=f).lib).Base,a=i.WordArray,c=(s=r.algo).SHA1,u=s.HMAC,l=s.PBKDF2=o.extend({cfg:o.extend({keySize:4,hasher:c,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var n=this.cfg,r=u.create(n.hasher,t),i=a.create(),o=a.create([1]),s=i.words,c=o.words,l=n.keySize,f=n.iterations;s.length>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],r=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)s.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(e){var o=e.words,a=o[0],c=o[1],u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=u>>>16|4294901760&l,h=l<<16|65535&u;for(r[0]^=u,r[1]^=f,r[2]^=l,r[3]^=h,r[4]^=u,r[5]^=f,r[6]^=l,r[7]^=h,i=0;i<4;i++)s.call(this)}},_doProcessBlock:function(t,e){var r=this._X;s.call(this),n[0]=r[0]^r[5]>>>16^r[3]<<16,n[1]=r[2]^r[7]>>>16^r[5]<<16,n[2]=r[4]^r[1]>>>16^r[7]<<16,n[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)n[i]=16711935&(n[i]<<8|n[i]>>>24)|4278255360&(n[i]<<24|n[i]>>>8),t[e+i]^=n[i]},blockSize:4,ivSize:2});function s(){for(var t=this._X,e=this._C,n=0;n<8;n++)i[n]=e[n];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,n=0;n<8;n++){var r=t[n]+e[n],a=65535&r,s=r>>>16,c=((a*a>>>17)+a*s>>>15)+s*s,u=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=c^u}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.RabbitLegacy=e._createHelper(a)}(),r.RabbitLegacy)},454:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib.StreamCipher,n=[],i=[],o=[],a=t.algo.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,n=0;n<4;n++)t[n]=16711935&(t[n]<<8|t[n]>>>24)|4278255360&(t[n]<<24|t[n]>>>8);var r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,n=0;n<4;n++)s.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,a=o[0],c=o[1],u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=u>>>16|4294901760&l,h=l<<16|65535&u;for(i[0]^=u,i[1]^=f,i[2]^=l,i[3]^=h,i[4]^=u,i[5]^=f,i[6]^=l,i[7]^=h,n=0;n<4;n++)s.call(this)}},_doProcessBlock:function(t,e){var r=this._X;s.call(this),n[0]=r[0]^r[5]>>>16^r[3]<<16,n[1]=r[2]^r[7]>>>16^r[5]<<16,n[2]=r[4]^r[1]>>>16^r[7]<<16,n[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)n[i]=16711935&(n[i]<<8|n[i]>>>24)|4278255360&(n[i]<<24|n[i]>>>8),t[e+i]^=n[i]},blockSize:4,ivSize:2});function s(){for(var t=this._X,e=this._C,n=0;n<8;n++)i[n]=e[n];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,n=0;n<8;n++){var r=t[n]+e[n],a=65535&r,s=r>>>16,c=((a*a>>>17)+a*s>>>15)+s*s,u=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=c^u}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.Rabbit=e._createHelper(a)}(),r.Rabbit)},857:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib.StreamCipher,n=t.algo,i=n.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,n=t.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;i=0;for(var o=0;i<256;i++){var a=i%n,s=e[a>>>2]>>>24-a%4*8&255;o=(o+r[i]+s)%256;var c=r[i];r[i]=r[o],r[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var t=this._S,e=this._i,n=this._j,r=0,i=0;i<4;i++){n=(n+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[n],t[n]=o,r|=t[(t[e]+t[n])%256]<<24-8*i}return this._i=e,this._j=n,r}t.RC4=e._createHelper(i);var a=n.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)o.call(this)}});t.RC4Drop=e._createHelper(a)}(),r.RC4)},706:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=i.create([0,1518500249,1859775393,2400959708,2840853838]),h=i.create([1352829926,1548603684,1836072691,2053994217,0]),p=a.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var r=e+n,i=t[r];t[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,a,p,b,w,x,S,k,C,T,E,O=this._hash.words,A=f.words,P=h.words,M=s.words,j=c.words,I=u.words,L=l.words;for(x=o=O[0],S=a=O[1],k=p=O[2],C=b=O[3],T=w=O[4],n=0;n<80;n+=1)E=o+t[e+M[n]]|0,E+=n<16?d(a,p,b)+A[0]:n<32?v(a,p,b)+A[1]:n<48?m(a,p,b)+A[2]:n<64?y(a,p,b)+A[3]:g(a,p,b)+A[4],E=(E=_(E|=0,I[n]))+w|0,o=w,w=b,b=_(p,10),p=a,a=E,E=x+t[e+j[n]]|0,E+=n<16?g(S,k,C)+P[0]:n<32?y(S,k,C)+P[1]:n<48?m(S,k,C)+P[2]:n<64?v(S,k,C)+P[3]:d(S,k,C)+P[4],E=(E=_(E|=0,L[n]))+T|0,x=T,T=C,C=_(k,10),k=S,S=E;E=O[1]+p+C|0,O[1]=O[2]+b+T|0,O[2]=O[3]+w+x|0,O[3]=O[4]+o+S|0,O[4]=O[0]+a+k|0,O[0]=E},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),t.sigBytes=4*(e.length+1),this._process();for(var i=this._hash,o=i.words,a=0;a<5;a++){var s=o[a];o[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function d(t,e,n){return t^e^n}function v(t,e,n){return t&e|~t&n}function m(t,e,n){return(t|~e)^n}function y(t,e,n){return t&n|e&~n}function g(t,e,n){return t^(e|~n)}function _(t,e){return t<>>32-e}e.RIPEMD160=o._createHelper(p),e.HmacRIPEMD160=o._createHmacHelper(p)}(Math),r.RIPEMD160)},783:function(t,e,n){var r,i,o,a,s,c,u,l;t.exports=(i=(r=l=n(249)).lib,o=i.WordArray,a=i.Hasher,s=r.algo,c=[],u=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],u=0;u<80;u++){if(u<16)c[u]=0|t[e+u];else{var l=c[u-3]^c[u-8]^c[u-14]^c[u-16];c[u]=l<<1|l>>>31}var f=(r<<5|r>>>27)+s+c[u];f+=u<20?1518500249+(i&o|~i&a):u<40?1859775393+(i^o^a):u<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=r,r=f}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;return e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),e[15+(r+64>>>9<<4)]=n,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=a.clone.call(this);return t._hash=this._hash.clone(),t}}),r.SHA1=a._createHelper(u),r.HmacSHA1=a._createHmacHelper(u),l.SHA1)},792:function(t,e,n){var r,i,o,a,s,c;t.exports=(c=n(249),n(153),i=(r=c).lib.WordArray,o=r.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=a._doFinalize.call(this);return t.sigBytes-=4,t}}),r.SHA224=a._createHelper(s),r.HmacSHA224=a._createHmacHelper(s),c.SHA224)},153:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.algo,s=[],c=[];!function(){function e(e){for(var n=t.sqrt(e),r=2;r<=n;r++)if(!(e%r))return!1;return!0}function n(t){return 4294967296*(t-(0|t))|0}for(var r=2,i=0;i<64;)e(r)&&(i<8&&(s[i]=n(t.pow(r,.5))),c[i]=n(t.pow(r,1/3)),i++),r++}();var u=[],l=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],f=n[6],h=n[7],p=0;p<64;p++){if(p<16)u[p]=0|t[e+p];else{var d=u[p-15],v=(d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3,m=u[p-2],y=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;u[p]=v+u[p-7]+y+u[p-16]}var g=r&i^r&o^i&o,_=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),b=h+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&l^~s&f)+c[p]+u[p];h=f,f=l,l=s,s=a+b|0,a=o,o=i,i=r,r=b+(_+g)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0,n[5]=n[5]+l|0,n[6]=n[6]+f|0,n[7]=n[7]+h|0},_doFinalize:function(){var e=this._data,n=e.words,r=8*this._nDataBytes,i=8*e.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=t.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,e.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),r.SHA256)},327:function(t,e,n){var r;t.exports=(r=n(249),n(938),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.x64.Word,s=e.algo,c=[],u=[],l=[];!function(){for(var t=1,e=0,n=0;n<24;n++){c[t+5*e]=(n+1)*(n+2)/2%64;var r=(2*t+3*e)%5;t=e%5,e=r}for(t=0;t<5;t++)for(e=0;e<5;e++)u[t+5*e]=e+(2*t+3*e)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,f=0,h=0;h<7;h++){if(1&i){var p=(1<>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(O=n[i]).high^=a,O.low^=o}for(var s=0;s<24;s++){for(var h=0;h<5;h++){for(var p=0,d=0,v=0;v<5;v++)p^=(O=n[h+5*v]).high,d^=O.low;var m=f[h];m.high=p,m.low=d}for(h=0;h<5;h++){var y=f[(h+4)%5],g=f[(h+1)%5],_=g.high,b=g.low;for(p=y.high^(_<<1|b>>>31),d=y.low^(b<<1|_>>>31),v=0;v<5;v++)(O=n[h+5*v]).high^=p,O.low^=d}for(var w=1;w<25;w++){var x=(O=n[w]).high,S=O.low,k=c[w];k<32?(p=x<>>32-k,d=S<>>32-k):(p=S<>>64-k,d=x<>>64-k);var C=f[u[w]];C.high=p,C.low=d}var T=f[0],E=n[0];for(T.high=E.high,T.low=E.low,h=0;h<5;h++)for(v=0;v<5;v++){var O=n[w=h+5*v],A=f[w],P=f[(h+1)%5+5*v],M=f[(h+2)%5+5*v];O.high=A.high^~P.high&M.high,O.low=A.low^~P.low&M.low}O=n[0];var j=l[s];O.high^=j.high,O.low^=j.low}},_doFinalize:function(){var e=this._data,n=e.words,r=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;n[r>>>5]|=1<<24-r%32,n[(t.ceil((r+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*n.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,c=s/8,u=[],l=0;l>>24)|4278255360&(h<<24|h>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),u.push(p),u.push(h)}return new i.init(u,s)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),n=0;n<25;n++)e[n]=e[n].clone();return t}});e.SHA3=o._createHelper(h),e.HmacSHA3=o._createHmacHelper(h)}(Math),r.SHA3)},460:function(t,e,n){var r,i,o,a,s,c,u,l;t.exports=(l=n(249),n(938),n(34),i=(r=l).x64,o=i.Word,a=i.WordArray,s=r.algo,c=s.SHA512,u=s.SHA384=c.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=c._doFinalize.call(this);return t.sigBytes-=16,t}}),r.SHA384=c._createHelper(u),r.HmacSHA384=c._createHmacHelper(u),l.SHA384)},34:function(t,e,n){var r;t.exports=(r=n(249),n(938),function(){var t=r,e=t.lib.Hasher,n=t.x64,i=n.Word,o=n.WordArray,a=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],u=[];!function(){for(var t=0;t<80;t++)u[t]=s()}();var l=a.SHA512=e.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],f=n[6],h=n[7],p=r.high,d=r.low,v=i.high,m=i.low,y=o.high,g=o.low,_=a.high,b=a.low,w=s.high,x=s.low,S=l.high,k=l.low,C=f.high,T=f.low,E=h.high,O=h.low,A=p,P=d,M=v,j=m,I=y,L=g,D=_,R=b,F=w,N=x,B=S,z=k,U=C,H=T,$=E,V=O,W=0;W<80;W++){var q,X,Y=u[W];if(W<16)X=Y.high=0|t[e+2*W],q=Y.low=0|t[e+2*W+1];else{var G=u[W-15],K=G.high,Q=G.low,J=(K>>>1|Q<<31)^(K>>>8|Q<<24)^K>>>7,Z=(Q>>>1|K<<31)^(Q>>>8|K<<24)^(Q>>>7|K<<25),tt=u[W-2],et=tt.high,nt=tt.low,rt=(et>>>19|nt<<13)^(et<<3|nt>>>29)^et>>>6,it=(nt>>>19|et<<13)^(nt<<3|et>>>29)^(nt>>>6|et<<26),ot=u[W-7],at=ot.high,st=ot.low,ct=u[W-16],ut=ct.high,lt=ct.low;X=(X=(X=J+at+((q=Z+st)>>>0>>0?1:0))+rt+((q+=it)>>>0>>0?1:0))+ut+((q+=lt)>>>0>>0?1:0),Y.high=X,Y.low=q}var ft,ht=F&B^~F&U,pt=N&z^~N&H,dt=A&M^A&I^M&I,vt=P&j^P&L^j&L,mt=(A>>>28|P<<4)^(A<<30|P>>>2)^(A<<25|P>>>7),yt=(P>>>28|A<<4)^(P<<30|A>>>2)^(P<<25|A>>>7),gt=(F>>>14|N<<18)^(F>>>18|N<<14)^(F<<23|N>>>9),_t=(N>>>14|F<<18)^(N>>>18|F<<14)^(N<<23|F>>>9),bt=c[W],wt=bt.high,xt=bt.low,St=$+gt+((ft=V+_t)>>>0>>0?1:0),kt=yt+vt;$=U,V=H,U=B,H=z,B=F,z=N,F=D+(St=(St=(St=St+ht+((ft+=pt)>>>0>>0?1:0))+wt+((ft+=xt)>>>0>>0?1:0))+X+((ft+=q)>>>0>>0?1:0))+((N=R+ft|0)>>>0>>0?1:0)|0,D=I,R=L,I=M,L=j,M=A,j=P,A=St+(mt+dt+(kt>>>0>>0?1:0))+((P=ft+kt|0)>>>0>>0?1:0)|0}d=r.low=d+P,r.high=p+A+(d>>>0

>>0?1:0),m=i.low=m+j,i.high=v+M+(m>>>0>>0?1:0),g=o.low=g+L,o.high=y+I+(g>>>0>>0?1:0),b=a.low=b+R,a.high=_+D+(b>>>0>>0?1:0),x=s.low=x+N,s.high=w+F+(x>>>0>>0?1:0),k=l.low=k+z,l.high=S+B+(k>>>0>>0?1:0),T=f.low=T+H,f.high=C+U+(T>>>0>>0?1:0),O=h.low=O+V,h.high=E+$+(O>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;return e[r>>>5]|=128<<24-r%32,e[30+(r+128>>>10<<5)]=Math.floor(n/4294967296),e[31+(r+128>>>10<<5)]=n,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(l),t.HmacSHA512=e._createHmacHelper(l)}(),r.SHA512)},253:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib,n=e.WordArray,i=e.BlockCipher,o=t.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=o.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],n=0;n<56;n++){var r=a[n]-1;e[n]=t[r>>>5]>>>31-r%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var u=i[o]=[],l=c[o];for(n=0;n<24;n++)u[n/6|0]|=e[(s[n]-1+l)%28]<<31-n%6,u[4+(n/6|0)]|=e[28+(s[n+24]-1+l)%28]<<31-n%6;for(u[0]=u[0]<<1|u[0]>>>31,n=1;n<7;n++)u[n]=u[n]>>>4*(n-1)+3;u[7]=u[7]<<5|u[7]>>>27}var f=this._invSubKeys=[];for(n=0;n<16;n++)f[n]=i[15-n]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,n){this._lBlock=t[e],this._rBlock=t[e+1],h.call(this,4,252645135),h.call(this,16,65535),p.call(this,2,858993459),p.call(this,8,16711935),h.call(this,1,1431655765);for(var r=0;r<16;r++){for(var i=n[r],o=this._lBlock,a=this._rBlock,s=0,c=0;c<8;c++)s|=u[c][((a^i[c])&l[c])>>>0];this._lBlock=a,this._rBlock=o^s}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,h.call(this,1,1431655765),p.call(this,8,16711935),p.call(this,2,858993459),h.call(this,16,65535),h.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function h(t,e){var n=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=n,this._lBlock^=n<>>t^this._lBlock)&e;this._lBlock^=n,this._rBlock^=n<192.");var e=t.slice(0,2),r=t.length<4?t.slice(0,2):t.slice(2,4),i=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=f.createEncryptor(n.create(e)),this._des2=f.createEncryptor(n.create(r)),this._des3=f.createEncryptor(n.create(i))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(d)}(),r.TripleDES)},938:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.Base,o=n.WordArray,a=e.x64={};a.Word=i.extend({init:function(t,e){this.high=t,this.low=e}}),a.WordArray=i.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=void 0!=e?e:8*t.length},toX32:function(){for(var t=this.words,e=t.length,n=[],r=0;r1?arguments[1]:void 0,!1)}})},mClu:function(t,e,n){var r=n("kM2E");r(r.S+r.F*!n("+E39"),"Object",{defineProperty:n("evD5").f})},mJx5:function(t,e,n){"use strict";var r=n("u0PK"),i=n("DIVP"),o=n("7O1s"),a=n("TwzQ"),s=n("BbyF"),c=n("9Dx1"),u=n("32VL"),l=n("zgIt"),f=Math.min,h=[].push,p=!l(function(){RegExp(4294967295,"y")});n("Vg1y")("split",2,function(t,e,n,l){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var i=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(i,t,e);for(var o,a,s,c=[],l=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),f=0,p=void 0===e?4294967295:e>>>0,d=new RegExp(t.source,l+"g");(o=u.call(d,i))&&!((a=d.lastIndex)>f&&(c.push(i.slice(f,o.index)),o.length>1&&o.index=p));)d.lastIndex===o.index&&d.lastIndex++;return f===i.length?!s&&d.test("")||c.push(""):c.push(i.slice(f)),c.length>p?c.slice(0,p):c}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var i=t(this),o=void 0==n?void 0:n[e];return void 0!==o?o.call(n,i,r):d.call(String(i),n,r)},function(t,e){var r=l(d,t,this,e,d!==n);if(r.done)return r.value;var u=i(t),h=String(this),v=o(u,RegExp),m=u.unicode,y=(u.ignoreCase?"i":"")+(u.multiline?"m":"")+(u.unicode?"u":"")+(p?"y":"g"),g=new v(p?u:"^(?:"+u.source+")",y),_=void 0===e?4294967295:e>>>0;if(0===_)return[];if(0===h.length)return null===c(g,h)?[h]:[];for(var b=0,w=0,x=[];wu;)o.call(a,n=s[u++])&&l.push(t?[n,a[n]]:a[n]);return l}}},mgnk:function(t,e,n){var r=n("aCM0"),i=n("UnEC"),o="[object Arguments]";t.exports=function(t){return i(t)&&r(t)==o}},mhn7:function(t,e,n){"use strict";n("Ymdd")("trim",function(t){return function(){return t(this,3)}})},msXi:function(t,e,n){var r=n("77Pl");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},mtWM:function(t,e,n){t.exports=n("tIFN")},mvHQ:function(t,e,n){t.exports={default:n("qkKv"),__esModule:!0}},mw3O:function(t,e,n){"use strict";var r=n("CwSZ"),i=n("DDCP"),o=n("XgCd");t.exports={formats:o,parse:i,stringify:r}},n0T6:function(t,e,n){var r=n("Ibhu"),i=n("xnc9").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},n12u:function(t,e,n){var r=n("Ds5P");r(r.S+r.F,"Object",{assign:n("oYd7")})},n982:function(t,e,n){var r=n("UKM+"),i=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&i(t)===t}},nErl:function(t,e){(function(e){t.exports=e}).call(e,{})},nRs1:function(t,e,n){var r=n("Ds5P");r(r.S,"Object",{is:n("4IZP")})},nfUF:function(module,exports,__webpack_require__){var e;window,e=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=81)}([function(t,e,n){"use strict";e.__esModule=!0,e.ComponentType={Label:"label",Image:"image",Countdown:"countdown",Flow:"flow",Block:"block",Flexbox:"flex",Component:"component",SectionList:"section_list",Button:"button",Segment:"segment",Tab:"tab",AsyncBox:"async_box",Marquee:"marquee",Native:"native"},e.BuildInData={$screen:{safe_areas:{}},$sys:{platform:"web",lightart_sdk_version:"1.4.35",lightart_version:"1.4.0"}},e.EVENTS={COMP_RENDER:"COMP_RENDER",BATCH_RENDER:"BATCH_RENDER",CHILDREN_SCROLL:"CHILDREN_SCROLL",NATIVE_COMP_RENDER:"NATIVE_COMP_RENDER",NATIVE_COMP_DESTROY:"NATIVE_COMP_DESTROY",CLICK_HREF:"CLICK_HREF",STATISTICS_CLICK:"STATISTICS_CLICK",STATISTICS_EXPOSE:"STATISTICS_EXPOSE",UPDATE_CACHE:"UPDATE_CACHE"}},function(t,e,n){"use strict";e.__esModule=!0;var r=o(n(4)),i=o(n(11));function o(t){return t&&t.__esModule?t:{default:t}}var a="textContent"in document.createTextNode("")?"textContent":"innerText",s="ontouchend"in document;e.default={isSupportTouch:s,div:function(t,e){return this.create("div",t,e)},span:function(t,e){return this.create("span",t,e)},create:function(t,e,n){var r=document.createElement(t);if(e&&(r.className=e),n)if("string"==typeof n)r.style.cssText=n;else for(var i in n)r.style[i]=n[i];return r},text:function(t,e){t&&(t[a]=e)},addEventListener:function(t,e,n){t&&e&&(t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent("on"+e,n))},removeEventListener:function(t,e,n){t&&e&&(t.removeEventListener?t.removeEventListener(e,n):t.detachEvent("on"+e,n))},loadImg:function(t){var e=this,n=t.el,r=t.srcPic,i=t.errPic,o=t.loadingCls,a=t.loadedCls,s=new Image,c=function(){e.removeClass(n,o),e.addClass(n,a),"IMG"===n.tagName.toUpperCase()?n.setAttribute("src",r):n.style.backgroundImage="url("+r+")",s.onload=null};s.onload=c,i&&(s.onerror=function(){e.addClass(n,a),"IMG"===n.tagName.toUpperCase()?n.setAttribute("src",i):n.style.backgroundImage="url("+i+")",s.onerror=null}),s.src=r,s.width&&s.height?c():this.addClass(n,o)},attr:function(t,e,n){if(3!==arguments.length)return t.getAttribute(e);t.setAttribute(e,n)},style:function(t,e){if(t&&e)try{for(var n in e)t.style[n]=e[n]}catch(t){(0,i.default)("style",t)}},hasClass:function(t,e){return!(!e||!t)&&(t.classList?t.classList.contains(e):0<=t.className.indexOf(e))},addClass:function(t,e){return e&&t&&(t.classList?t.classList.add(e):t.className=(t.className+" "+e).trim()),this},removeClass:function(t,e){return e&&t&&(t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(e),"").trim()),this},addStyleEl:function(t,e){var n=document.createElement("style");return n.type="text/css",e&&(n.id=e),t&&(r.default.isIE()&&r.default.version<10?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))),document.getElementsByTagName("head")[0].appendChild(n),n},getComputedStyle:function(t,e){try{return window.getComputedStyle(t,e)}catch(n){return new function(t){return this.el=t,this.getPropertyValue=function(e){var n=/(-([a-z]){1})/g;return"float"==e&&(e="styleFloat"),n.test(e)&&(e=e.replace(n,function(){return arguments[2].toUpperCase()})),t.currentStyle[e]?t.currentStyle[e]:null},this}(t,e)}},getStyleVal:function(t,e){try{return this.getComputedStyle(t,null).getPropertyValue(e)}catch(t){return""}},getTouchEvents:function(){return s?["touchstart","touchmove","touchend"]:["mousedown","mousemove","mouseup"]}}},function(t,e,n){"use strict";e.__esModule=!0;var r=f(n(6)),i=n(3),o=f(n(5)),a=n(0),s=f(n(19)),c=f(n(1)),u=f(n(4)),l=f(n(45));function f(t){return t&&t.__esModule?t:{default:t}}var h={start:"t",center:"c",end:"b"},p={start:"l",center:"c",end:"r"},d=function(t){function e(n,r,i){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var o=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this));return o.parsedTmpl=n,o.root=r,o.el=null,o.children=[],o.curClasses=null,o.tagName="div",o.isUseLayoutAlign=!1,o.attrs={},o.index=void 0===i?-1:i,o.animationManager=null,o.srcAttr=r.lazyOptions().attr,o.statPath=null,o}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.setParent=function(t){return this.parent=t,this},e.prototype.init=function(){return this.parsedTmpl.animation&&(r.default.prepareAnimation(this.parsedTmpl.animation),this.animationManager=new l.default(this)),this.initData(),this.initStyle(),this.prepareClass(),this.initClasses(),this.initAttrs(),this.createChildren(),this.initEvent(),this},e.prototype.initData=function(){},e.prototype.initStyle=function(){this.styleObject=r.default.create(this.parsedTmpl),this.adjustStyle()},e.prototype.prepareClass=function(){this.parsedTmpl.actions&&this.parsedTmpl.actions.click&&this.addClass("ltart-clkable")},e.prototype.initClasses=function(){},e.prototype.initAttrs=function(){this.attrs.id=this.parsedTmpl.component_id||(0,i.uid)(),this.attrs["data-editorid"]=this.parsedTmpl.__TPL_TRACK_ID__,this.appendAttrs(this.attrs)},e.prototype.appendAttrs=function(){},e.prototype.initEvent=function(){},e.prototype.getEl=function(){return this.el||(this.el=document.getElementById(this.attrs.id)),this.el},e.prototype.id=function(){return this.attrs.id},e.prototype.getConnector=function(){return this.root},e.prototype.render=function(t){this.root.getActionManager().addTarget(this),this.root.getStatistics().addTarget(this),this.renderChildren(t),this.fixIE(),this.onRender(t),c.default.hasClass(this.el,"ltart-bg")&&!this.root.addToLazyload(this.el)&&c.default.loadImg({el:this.el,srcPic:this.el.getAttribute(this.srcAttr)}),this.animationManager&&this.animationManager.init(),this.getConnector().fire(a.EVENTS.COMP_RENDER,{el:this.getEl(),clickData:this.parsedTmpl.actions&&this.parsedTmpl.actions.click&&this.parsedTmpl.actions.click.params,statistics:this.parsedTmpl.statistics,business:this.parsedTmpl.business,instance:this})},e.prototype.fixIE=function(){var t=this.el;!1===u.default.transformPrefix&&c.default.hasClass(this.el,"ltart-vhalign-box")&&(t=t.querySelector(".ltart-vhalign-cc"))&&c.default.style(t,{marginTop:"-"+t.clientHeight/2+"px",marginLeft:"-"+t.clientWidth/2+"px"})},e.prototype.renderChildren=function(t){this.children.forEach(function(e){e.render(t)})},e.prototype.onRender=function(){},e.prototype.destroy=function(){t.prototype.destroy.call(this),this.root.getStatistics().removeTarget(this),this.root.getActionManager().removeTarget(this),this.animationManager&&this.animationManager.destroy(),this.destroyChildren(),this.onDestroy()},e.prototype.destroyChildren=function(){for(;this.children.length;)this.children.shift().destroy()},e.prototype.onDestroy=function(){},e.prototype.createChildren=function(){var t=this,e=this.parsedTmpl.components;Array.isArray(e)&&e.forEach(function(e,n){t.createChild(e,n)})},e.prototype.createChild=function(t,e,n){var r=o.default.create(this,t,this.root,e,n);return this.addChild(r),r},e.prototype.addChild=function(t){t&&this.children.push(t)},e.prototype.toElement=function(){var t=document.createElement(this.tagName),e=null;for(var n in this.childrenToElement(this.wrapAllChild(t)),this.getAttributes(),this.attrs)null!==(e=this.attrs[n])&&""!==e&&void 0!==e&&("style"===n?t.style.cssText=e:"classes"===n?t.className=e:t.setAttribute(n,e));return this.el=t},e.prototype.getAttributes=function(){return this.attrs.classes=this.getClasses(),this.attrs.style=(0,i.serialStyle)(this.styleObject),this.attrs},e.prototype.getClasses=function(){return this.curClasses?this.curClasses.join(" "):""},e.prototype.childrenToElement=function(t){var e=this,n=!1,r=null,i=null;this.children.forEach(function(o){r=o.toElement(),o.isUseLayoutAlign?(n=!0,(i=e._createLayoutAlign(o)).appendChild(r)):i=r,t.appendChild(e.wrapChild(i))}),n&&this.addClass("ltart-vhalign-box")},e.prototype.wrapAllChild=function(t){return t},e.prototype.wrapChild=function(t){return t},e.prototype._createLayoutAlign=function(t){var e="ltart-vhalign-item ltart-vhalign-"+h[t.parsedTmpl.layout_align.v]+p[t.parsedTmpl.layout_align.h];return c.default.div(e)},e.prototype.adjustStyle=function(){if(this.styleObject._bgPic&&(this.addClass("ltart-bg"),this.attrs[this.srcAttr]=this.styleObject._bgPic,delete this.styleObject._bgPic),this.canUseLayoutAlign()){var t=this.parsedTmpl.layout_align;t&&(t.v&&"none"!==t.v||t.h&&"none"!==t.h)&&(this.isUseLayoutAlign=!0,delete this.styleObject.top,delete this.styleObject.left)}this.forceAbsolute()?this.styleObject.position="absolute":this.styleObject.position||!this.styleObject.left&&!this.styleObject.top||(this.styleObject.position="relative"),this.forceFlexbox()&&Object.assign(this.styleObject,r.default.setFlexboxItem(this.parsedTmpl)),this.__setGravity()},e.prototype.__setGravity=function(){var t=(0,i.isValidVal)(this.parsedTmpl.gravity)?Number(this.parsedTmpl.gravity):0;t&&this.parent&&this.parent.isCompType(a.ComponentType.Flow)&&Object.assign(this.styleObject,{"-webkit-box-flex":t,"-ms-flex-positive":t,"flex-grow":t})},e.prototype.addClass=function(t){this.curClasses||(this.curClasses=[]),-1===this.curClasses.indexOf(t)&&this.curClasses.push(t)},e.prototype.canUseLayoutAlign=function(){return!!this.parent&&(this.parent.isCompType(a.ComponentType.Block)||this.parent.isCompType(a.ComponentType.Countdown))},e.prototype.forceAbsolute=function(){return this.parent&&this.parent.isCompType(a.ComponentType.Block)&&!this.isUseLayoutAlign},e.prototype.forceFlexbox=function(){return this.parent&&this.parent.isCompType(a.ComponentType.Flexbox)},e.prototype.isCompType=function(t){return t===a.ComponentType.Component},e.prototype.closest=function(t){for(var e=this.parent;e&&!e.isCompType(t);)e=e.parent;return e},e.prototype.closestOriginTmpl=function(){for(var t=null,e=this;e&&!t;)t=e.getOriginTmpl(),e=e.parent;return t||this.root.getOriginTmpl()},e.prototype.getOriginTmpl=function(){return null},e.prototype.moveChildrenToComp=function(t){var e=document.createDocumentFragment();for(this.children.forEach(function(n){n.setParent(t),t.addChild(n),e.appendChild(n.toElement())}),t.getEl().appendChild(e);this.children.length;)this.children.shift().render()},e.prototype.replaceChild=function(t,e){t.index=e.index;for(var n=0;n=r(t)+n+t.offsetHeight}(t,e,n)||function(t,e,n){var r=window.innerWidth;return(e===window?r+window.pageXOffset:i(e)+r)<=i(t)-n}(t,e,n)||function(t,e,n){return(e===window?window.pageXOffset:i(e))>=i(t)+n+t.offsetWidth}(t,e,n))}},function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){var n=2Math.abs(e/2)&&(this.trans=this.trans-e/2);else if(Math.abs(this.trans)>=Math.abs(e)-this.elWidth)return this.trans=-(Math.abs(e)-this.elWidth),void this.__move()}else if(this.__isCircular())this.trans=(this.trans||-e+this.elWidth)+n,0Math.abs(this.innerScrollWidth/2))this.trans=this.trans+Math.abs(this.innerScrollWidth/2);else if(Math.abs(this.trans)>=Math.abs(this.innerScrollWidth)-this.elWidth)return this.trans=-(Math.abs(this.innerScrollWidth)-this.elWidth),void this.__move();this.__move(),this._startCustomX=this._moveCustomX,this._startCustomY=this._moveCustomY},e.prototype.__goonScroll=function(){this.__stop=!1,this.__linearScroll()},e.prototype.isCompType=function(t){return t===i.ComponentType.Marquee},e}(r.default);e.default=s},function(t,e,n){"use strict";e.__esModule=!0;var r=a(n(1)),i=a(n(6)),o=a(n(4));function a(t){return t&&t.__esModule?t:{default:t}}var s=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.el=e.el,this.$inner=e.$inner,this.initStyle=i.default.getScrollbar(e.parsedTmpl),this.config={axis:e.axis,opacity:this.initStyle.opacity,onEnd:e.onEnd},this.init()}return t.prototype.init=function(){this.touches={_start:{},_move:{},_end:{},delta:0},this._onStart=this._onStart.bind(this),this._onMove=this._onMove.bind(this),this._onEnd=this._onEnd.bind(this),this._onClick=this._onClick.bind(this);var t="x"===this.config.axis?"Width":"Height";this.config.viewLen=this.$inner["client"+t],this.config.totalLen=this.$inner["scroll"+t],this.initDom(),this.initEvent(),this.config.ratio=this.$scrollbar["scroll"+t]/this.$inner["scroll"+t]},t.prototype.initDom=function(){this.$scrollbar=r.default.div("ltart-flow-scrollbar"),r.default.style(this.$scrollbar,{backgroundColor:this.initStyle.backgroundColor,height:"x"===this.config.axis?this.initStyle.thickness:this.initStyle.length,width:"x"===this.config.axis?this.initStyle.length:this.initStyle.thickness,borderRadius:this.initStyle.thickness,opacity:this.config.opacity}),this.$indicator=r.default.span("ltart-flow-indicator");var t={backgroundColor:this.initStyle.foregroundColor,borderRadius:this.initStyle.thickness};"x"===this.config.axis?t.width=100*this.config.viewLen/this.config.totalLen+"%":t.height=100*this.config.viewLen/this.config.totalLen+"%",r.default.style(this.$indicator,t),this.$scrollbar.appendChild(this.$indicator),this.el.appendChild(this.$scrollbar)},t.prototype.initEvent=function(){var t=r.default.getTouchEvents();r.default.addEventListener(this.$inner,t[0],this._onStart),r.default.addEventListener(this.$inner,t[1],this._onMove),r.default.addEventListener(this.$inner,t[2],this._onEnd),r.default.addEventListener(this.$inner,"click",this._onClick)},t.prototype._onStart=function(t){this.touches._start.x=this._pageX(t),this.touches._start.y=this._pageY(t),this.touches._start.t=t.timeStamp,this.$scrollbar.style.opacity=1,this.config.scrolling=!0},t.prototype._onMove=function(t){if(this.stopInertiaScroll=!0,this.config.scrolling){this.touches._move.prevx=this.touches._move.x,this.touches._move.prevy=this.touches._move.y,this.touches._move.prevt=this.touches._move.t,this.touches._move.x=this._pageX(t),this.touches._move.y=this._pageY(t),this.touches._move.t=t.timeStamp;var e=this.config.axis;"x"===e?Math.abs(this.touches._move.y-this.touches._start.y)>Math.abs(this.touches._move.x-this.touches._start.x)?this.config.scrolling=!1:t.cancelable&&t.preventDefault():"y"===e&&(Math.abs(this.touches._move.x-this.touches._start.x)>Math.abs(this.touches._move.y-this.touches._start.y)?this.config.scrolling=!1:t.cancelable&&t.preventDefault()),this.config.scrolling&&this._updatePos(this.touches._start,this.touches._move),this.touches._moved=!0}},t.prototype._onEnd=function(t){var e=this.config.axis;this.touches._end.x=this._pageX(t),this.touches._end.y=this._pageY(t),this.touches.delta=this._forceBounds(this.touches.delta+(this.touches._end[e]-this.touches._start[e]));var n=(this.touches._move[e]-this.touches._move["prev"+e])/(this.touches._move.t-this.touches._move.prevt)*1e3;if(this.config.scrolling&&this.touches._moved)if(this.stopInertiaScroll=!1,100e.clientWidth:e.scrollHeight>e.clientHeight;if((0,o.isValidVal)(this.loadMoreUrl)&&(this.loadMore=new a.default({component:this,url:this.loadMoreUrl})),"true"===String(this.parsedTmpl.smart_overflow)&&this.__hasBounds())for(var r=e.getBoundingClientRect(),u=null,l=e.children.length-1;0<=l&&(2<(u=e.children[l].getBoundingClientRect()).right-r.right||2this.config.wrapper.clientHeight&&(this.scrollTarget=this.config.wrapper)}this.lazyload&&this.lazyload.watchScroll(this.scrollTarget)},t.prototype.onAfterRender=function(){this._updateLazyload()},t.prototype.onChildScroll=function(){this._updateLazyload()},t.prototype._updateLazyload=function(){this.lazyload&&this.lazyload.update()},t.prototype.__onNativeCompRender=function(t){var e=this.config.nativeComp;if(e&&"function"==typeof e.onRender)try{e.onRender(t.parsedTmpl.name,t.parsedTmpl.params,t.el)}catch(t){_.default.warn(g.LoggerType.NATIVE_COMP_RENDER_ERR,t)}},t.prototype.__onNativeCompDestory=function(t){var e=this.config.nativeComp;if(e&&"function"==typeof e.onDestory)try{e.onDestory(t.parsedTmpl.name,t.parsedTmpl.params,t.el)}catch(t){_.default.warn(g.LoggerType.NATIVE_COMP_DESTROY_ERR,t)}},t.prototype.__onUpdateCache=function(t){Object.assign(this._cacheData,t)},t.prototype.toElement=function(){return this.rootElement=this.instance.toElement(),this.rootElement},t.prototype.setExtraData=function(t){return Object.assign(this._extraData,t),this},t.prototype.refresh=function(){return this.destroy(),this.init(),this.renderToDom(),this},t.prototype.destroy=function(){this._renderCalled=!1,this.instance&&(this.instance.destroy(),this.instance=null,this.config.wrapper.removeChild(this.elementBox)),this.lazyload&&this.lazyload.destroy(),this.statistics.destroy(),this.actionManager.destroy(),this.eventListener.destroy(),this._isEditorMode()&&h.default.destroy()},t.prototype._isEditorMode=function(){return!0===this.config.editor},t.prototype.getVersion=function(){return u.BuildInData.$sys.lightart_version},t.prototype.getSdkVersion=function(){return u.BuildInData.$sys.lightart_sdk_version},t.prototype.trigger=function(t){return this.actionManager.triggerAction(t),this},t.prototype.onRender=function(t){return this.eventListener.on(u.EVENTS.COMP_RENDER,t),this},t.prototype.onEvent=function(t,e){return this.eventListener.on(t,e),this},t.prototype.onHref=function(t){return this.eventListener.on(u.EVENTS.CLICK_HREF,t),this},t.prototype.onStatClick=function(t){return this.eventListener.on(u.EVENTS.STATISTICS_CLICK,t),this},t.prototype.onStatExpose=function(t){return this.eventListener.on(u.EVENTS.STATISTICS_EXPOSE,t),this},t.prototype.onDblclick=function(t){return this._isEditorMode()&&h.default.init(this.elementBox,t),this},t}();S.buildTmpl=o.buildTmpl,e.default=S},function(t,e,n){var r=n(21);t.exports=function(t){return Object(r(t))}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports=!1},function(t,e,n){var r=n(15),i=n(8),o="__core-js_shared__",a=i[o]||(i[o]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(55)?"pure":"global",copyright:"漏 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(56)("keys"),i=n(24);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){var r=n(20),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e,n){var r=n(20),i=Math.min;t.exports=function(t){return 0c;)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},function(t,e,n){var r=n(62),i=n(54);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){"use strict";var r=n(63),i=n(53),o=n(52),a=n(51),s=n(22),c=Object.assign;t.exports=!c||n(12)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,u=1,l=i.f,f=o.f;u*,.ltart-marquee>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.ltart-flow.width-in-viewport,.ltart-marquee.width-in-viewport{max-width:100vw}.ltart-flow .ltart-flow-inner,.ltart-marquee .ltart-flow-inner{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}.ltart-flow .ltart-flow-inner>*,.ltart-marquee .ltart-flow-inner>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.ltart-flow .ltart-marquee-inner,.ltart-marquee .ltart-marquee-inner{position:relative;display:inline-block}.ltart-flow .ltart-flow-scrollbar,.ltart-marquee .ltart-flow-scrollbar{position:absolute;margin:auto;z-index:1;-webkit-transition:opacity .3s linear;transition:opacity .3s linear;background:#fff}.ltart-flow.ltart-lock-x .ltart-flow-scrollbar,.ltart-marquee.ltart-lock-x .ltart-flow-scrollbar{right:0;left:0;bottom:2px}.ltart-flow.ltart-lock-y .ltart-flow-scrollbar,.ltart-marquee.ltart-lock-y .ltart-flow-scrollbar{right:2px;top:0;bottom:0}.ltart-flow .ltart-flow-indicator,.ltart-marquee .ltart-flow-indicator{display:inline-block;position:absolute;height:100%;width:100%;will-change:transform;background:#000;z-index:1}.ltart-lock-x{overflow-x:hidden}.ltart-lock-y{overflow-y:hidden}.ltart-segment{scroll-behavior:smooth}.ltart-segment .ltart-segment-inner{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.ltart-label{line-height:1.2}.ltart-label-inner{overflow:hidden;text-overflow:ellipsis}.ltart-label-inner.ltart-line-clamp{display:-webkit-box;word-break:break-all;overflow:hidden;-webkit-box-orient:vertical}.ltart-smfont-center,.ltart-smfont-left,.ltart-smfont-right{display:inline-block;white-space:nowrap;overflow:visible}.ltart-smfont-left{-webkit-transform-origin:0 50%;-ms-transform-origin:0 50%;transform-origin:0 50%}.ltart-smfont-center{-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%}.ltart-smfont-right{-webkit-transform-origin:100% 50%;-ms-transform-origin:100% 50%;transform-origin:100% 50%}.ltart-btn .ltart-btn-normal{display:block}.ltart-btn.canActive:active .ltart-btn-normal{display:none}.ltart-btn.canActive:active .ltart-btn-highlighted{display:block}.ltart-btn.selected .ltart-btn-highlighted,.ltart-btn.selected .ltart-btn-normal{display:none}.ltart-btn.selected .ltart-btn-selected{display:block}.ltart-btn-highlighted,.ltart-btn-normal,.ltart-btn-selected{width:100%;height:100%;display:none}.ltart-tab.ltart-flex-h .ltart-tab-seg{height:100%;overflow:hidden}.ltart-tab-content .ltart-tab-item{display:none}.ltart-tab-item{width:100%;height:100%;overflow:hidden}.ltart-flex-h,.ltart-flex-v{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.ltart-flex-h{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ltart-flex-h-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.ltart-flex-v-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.ltart-flex-h-start{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.ltart-flex-v-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.ltart-flex-h-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.ltart-flex-v-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.ltart-plfl-flex .ltart-flex-h,.ltart-plfl-flex .ltart-flex-v{display:inline-block}.ltart-plfl-flex .ltart-flow.ltart-flex-v>.ltart-flex-h,.ltart-plfl-flex .ltart-flow.ltart-flex-v>.ltart-flex-v{margin:0 auto}.ltart-plfl-flex.lightart-wrap-box .ltart-flow,.ltart-plfl-flex .ltart-flex-v>.ltart-flex-h,.ltart-plfl-flex .ltart-flex-v>.ltart-flex-v{display:block}.ltart-plfl-flex .ltart-flex-v>div{margin:0 auto}.ltart-plfl-flex .ltart-flex-h{overflow-x:auto;overflow-y:hidden;white-space:nowrap}.ltart-plfl-flex .ltart-flex-h>div{display:inline-block}.ltart-plfl-flex .ltart-label.ltart-flex-v-center:after{content:"";display:inline-block;vertical-align:middle;height:100%;font-size:0}.ltart-plfl-flex .ltart-label.ltart-flex-v-center .ltart-label-inner{display:inline-block;vertical-align:middle}.ltart-plfl-flex .ltart-segment{display:table}.ltart-plfl-flex .ltart-segment.ltart-flex-h-start{text-align:left}.ltart-plfl-flex .ltart-segment.ltart-flex-h-center{text-align:center}.ltart-plfl-flex .ltart-segment.ltart-flex-h-end{text-align:right}.ltart-plfl-flex .ltart-segment-inner{display:table-cell!important}.ltart-plfl-flex .ltart-segment-inner .ltart-label{text-align:left}.ltart-plfl-flex .ltart-flex-v-start .ltart-segment-inner{vertical-align:top}.ltart-plfl-flex .ltart-flex-v-center .ltart-segment-inner{vertical-align:middle}.ltart-plfl-flex .ltart-flex-v-end .ltart-segment-inner{vertical-align:bottom}.ltart-vhalign-box{display:table}.ltart-vhalign-item{display:table-cell;position:absolute}.ltart-vhalign-tl{top:0;left:0}.ltart-vhalign-tc{top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ltart-vhalign-tr{top:0;right:0}.ltart-vhalign-cl{top:50%;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ltart-vhalign-cc{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ltart-vhalign-cr{top:50%;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ltart-vhalign-bl{bottom:0;left:0}.ltart-vhalign-bc{bottom:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ltart-vhalign-br{bottom:0;right:0}.ltart-sectionlist{overflow:auto}.ltart-plfl-column .ltart-sectionlist-bd{display:table}.ltart-plfl-column .ltart-sectionlist-col,.ltart-plfl-column .ltart-sectionlist-col-gap{display:table-cell}.ltart-animation{-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform}.ltart-flexbox{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;overflow-x:auto}.ltart-flexbox>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.ltart-flexbox-direction-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ltart-flexbox-direction-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ltart-flexbox-direction-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ltart-flexbox-direction-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ltart-flexbox-flexwrap-nowrap{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.ltart-flexbox-flexwrap-wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ltart-flexbox-flexwrap-wrap-reverse{-webkit-flex-wrap:wrap-reverse;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.ltart-flexbox-justifycontent-flex-start{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.ltart-flexbox-justifycontent-flex-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.ltart-flexbox-justifycontent-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.ltart-flexbox-justifycontent-space-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.ltart-flexbox-justifycontent-space-around{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.ltart-flexbox-aligncontent-flex-start{-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start}.ltart-flexbox-aligncontent-flex-end{-webkit-align-content:flex-end;-ms-flex-line-pack:end;align-content:flex-end}.ltart-flexbox-aligncontent-center{-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.ltart-flexbox-aligncontent-space-between{-webkit-align-content:space-between;-ms-flex-line-pack:justify;align-content:space-between}.ltart-flexbox-aligncontent-space-around{-webkit-align-content:space-around;-ms-flex-line-pack:distribute;align-content:space-around}.ltart-flexbox-aligncontent-stretch{-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch}.ltart-flexbox-alignitems-flex-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.ltart-flexbox-alignitems-flex-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.ltart-flexbox-alignitems-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.ltart-flexbox-alignitems-baseline{-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline}.ltart-flexbox-alignitems-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}',""])},function(t,e,n){var r=n(79);"string"==typeof r&&(r=[[t.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(77)(r,i),r.locals&&(t.exports=r.locals)},function(t,e,n){"use strict";e.__esModule=!0,n(80),n(75);var r=function(t){return t&&t.__esModule?t:{default:t}}(n(50)),i=null;r.default.run=function(t){return i&&(i.destroy(),i=null),(i=new r.default(t)).renderToDom(),i},e.default=r.default}]).default},module.exports=e()},nh2o:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("OzIq"),o=n("7gX0"),a=n("g36u")(),s=n("kkCw")("observable"),c=n("XSOZ"),u=n("DIVP"),l=n("9GpA"),f=n("A16L"),h=n("2p1q"),p=n("vmSO"),d=p.RETURN,v=function(t){return null==t?void 0:c(t)},m=function(t){var e=t._c;e&&(t._c=void 0,e())},y=function(t){return void 0===t._o},g=function(t){y(t)||(t._o=void 0,m(t))},_=function(t,e){u(t),this._c=void 0,this._o=t,t=new b(this);try{var n=e(t),r=n;null!=n&&("function"==typeof n.unsubscribe?n=function(){r.unsubscribe()}:c(n),this._c=n)}catch(e){return void t.error(e)}y(this)&&m(this)};_.prototype=f({},{unsubscribe:function(){g(this)}});var b=function(t){this._s=t};b.prototype=f({},{next:function(t){var e=this._s;if(!y(e)){var n=e._o;try{var r=v(n.next);if(r)return r.call(n,t)}catch(t){try{g(e)}finally{throw t}}}},error:function(t){var e=this._s;if(y(e))throw t;var n=e._o;e._o=void 0;try{var r=v(n.error);if(!r)throw t;t=r.call(n,t)}catch(t){try{m(e)}finally{throw t}}return m(e),t},complete:function(t){var e=this._s;if(!y(e)){var n=e._o;e._o=void 0;try{var r=v(n.complete);t=r?r.call(n,t):void 0}catch(t){try{m(e)}finally{throw t}}return m(e),t}}});var w=function(t){l(this,w,"Observable","_f")._f=c(t)};f(w.prototype,{subscribe:function(t){return new _(t,this._f)},forEach:function(t){var e=this;return new(o.Promise||i.Promise)(function(n,r){c(t);var i=e.subscribe({next:function(e){try{return t(e)}catch(t){r(t),i.unsubscribe()}},error:r,complete:n})})}}),f(w,{from:function(t){var e="function"==typeof this?this:w,n=v(u(t)[s]);if(n){var r=u(n.call(t));return r.constructor===e?r:new e(function(t){return r.subscribe(t)})}return new e(function(e){var n=!1;return a(function(){if(!n){try{if(p(t,!1,function(t){if(e.next(t),n)return d})===d)return}catch(t){if(n)throw t;return void e.error(t)}e.complete()}}),function(){n=!0}})},of:function(){for(var t=0,e=arguments.length,n=new Array(e);t1&&(r=Math.min(r,o(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},oJlt:function(t,e,n){"use strict";var r=n("cGG2"),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,n,o,a={};return t?(r.forEach(t.split("\n"),function(t){if(o=t.indexOf(":"),e=r.trim(t.substr(0,o)).toLowerCase(),n=r.trim(t.substr(o+1)),e){if(a[e]&&i.indexOf(e)>=0)return;a[e]="set-cookie"===e?(a[e]?a[e]:[]).concat([n]):a[e]?a[e]+", "+n:n}}),a):a}},oM7Q:function(t,e,n){n("sF+V");var r=n("FeBl").Object;t.exports=function(t,e){return r.create(t,e)}},oYd7:function(t,e,n){"use strict";var r=n("Qh14"),i=n("Y1N3"),o=n("Y1aA"),a=n("FryR"),s=n("Q6Nf"),c=Object.assign;t.exports=!c||n("zgIt")(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,u=1,l=i.f,f=o.f;c>u;)for(var h,p=s(arguments[u++]),d=l?r(p).concat(l(p)):r(p),v=d.length,m=0;v>m;)f.call(p,h=d[m++])&&(n[h]=p[h]);return n}:c},oYp4:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FryR"),o=n("XSOZ"),a=n("lDLk");n("bUqO")&&r(r.P+n("dm6P"),"Object",{__defineGetter__:function(t,e){a.f(i(this),t,{get:o(e),enumerable:!0,configurable:!0})}})},octw:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}},oeih:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},ot5s:function(t,e,n){var r=n("PHqh"),i=n("BbyF"),o=n("zo/l");t.exports=function(t){return function(e,n,a){var s,c=r(e),u=i(c.length),l=o(a,u);if(t&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},oyG6:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r); +/*! + * JavaScript Cookie v2.2.0 + * https://github.com/jsCookie/jsCookie + * + * Copyright 2006, 2015 Klaus Hartl & Fagner Brack + * Released under the MIT license + */e.a=function(){function t(){for(var t=0,e={};t1){if("number"==typeof(a=t({path:"/"},r.defaults,a)).expires){var c=new Date;c.setMilliseconds(c.getMilliseconds()+864e5*a.expires),a.expires=c}a.expires=a.expires?a.expires.toUTCString():"";try{s=i()(o),/^[\{\[]/.test(s)&&(o=s)}catch(t){}o=n.write?n.write(o,e):encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=(e=(e=encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C|5B|5D)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var u="";for(var l in a)a[l]&&(u+="; "+l,!0!==a[l]&&(u+="="+a[l]));return document.cookie=e+"="+o+u}e||(s={});for(var f=document.cookie?document.cookie.split("; "):[],h=/(%[0-9A-Z]{2})+/g,p=0;p=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=e.charAt(r):o<128?n+=i[o]:o<2048?n+=i[192|o>>6]+i[128|63&o]:o<55296||o>=57344?n+=i[224|o>>12]+i[128|o>>6&63]+i[128|63&o]:(r+=1,o=65536+((1023&o)<<10|1023&e.charCodeAt(r)),n+=i[240|o>>18]+i[128|o>>12&63]+i[128|o>>6&63]+i[128|63&o])}return n},isBuffer:function(t){return null!==t&&void 0!==t&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},merge:function t(e,n,i){if(!n)return e;if("object"!=typeof n){if(Array.isArray(e))e.push(n);else{if("object"!=typeof e)return[e,n];(i.plainObjects||i.allowPrototypes||!r.call(Object.prototype,n))&&(e[n]=!0)}return e}if("object"!=typeof e)return[e].concat(n);var a=e;return Array.isArray(e)&&!Array.isArray(n)&&(a=o(e,i)),Array.isArray(e)&&Array.isArray(n)?(n.forEach(function(n,o){r.call(e,o)?e[o]&&"object"==typeof e[o]?e[o]=t(e[o],n,i):e.push(n):e[o]=n}),e):Object.keys(n).reduce(function(e,o){var a=n[o];return r.call(e,o)?e[o]=t(e[o],a,i):e[o]=a,e},a)}}},pBtG:function(t,e,n){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},pFYg:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("Zzip")),i=a(n("5QVw")),o="function"==typeof i.default&&"symbol"==typeof r.default?function(t){return typeof t}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?"symbol":typeof t};function a(t){return t&&t.__esModule?t:{default:t}}e.default="function"==typeof i.default&&"symbol"===o(r.default)?function(t){return void 0===t?"undefined":o(t)}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?"symbol":void 0===t?"undefined":o(t)}},pTUa:function(t,e,n){var r=n("/I3N");t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},pWGb:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{log1p:n("Rz2z")})},"pd+2":function(t,e,n){n("bUqO")&&"g"!=/./g.flags&&n("lDLk").f(RegExp.prototype,"flags",{configurable:!0,get:n("0pGU")})},plSV:function(t,e,n){var r=n("boo2");t.exports=function(t,e){return new(r(t))(e)}},pxG4:function(t,e,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},py9u:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t,e){return t&&r(e,i(e),t)}},qARP:function(t,e,n){"use strict";var r=n("lOnJ");t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},qRfI:function(t,e,n){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},"qZb+":function(t,e,n){n("0j1G")("Set")},qdHU:function(t,e,n){n("iKpr")("WeakSet")},qio6:function(t,e,n){var r=n("evD5"),i=n("77Pl"),o=n("lktj");t.exports=n("+E39")?Object.defineProperties:function(t,e){i(t);for(var n,a=o(e),s=a.length,c=0;s>c;)r.f(t,n=a[c++],e[n]);return t}},qkKv:function(t,e,n){var r=n("FeBl"),i=r.JSON||(r.JSON={stringify:JSON.stringify});t.exports=function(t){return i.stringify.apply(i,arguments)}},qkyc:function(t,e,n){var r=n("kkCw")("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},qrdl:function(t,e){t.exports=function(){}},qtRy:function(t,e,n){n("77Ug")("Int16",2,function(t){return function(e,n,r){return t(this,e,n,r)}})},qwQ3:function(t,e,n){"use strict";var r=n("DIVP"),i=n("4IZP"),o=n("9Dx1");n("Vg1y")("search",1,function(t,e,n,a){return[function(n){var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=a(n,t,this);if(e.done)return e.value;var s=r(t),c=String(this),u=s.lastIndex;i(u,0)||(s.lastIndex=0);var l=o(s,c);return i(s.lastIndex,u)||(s.lastIndex=u),null===l?-1:l.index}]})},qwTf:function(t,e,n){var r=n("TQ3y").Uint8Array;t.exports=r},qyJz:function(t,e,n){"use strict";var r=n("+ZMJ"),i=n("kM2E"),o=n("sB3e"),a=n("msXi"),s=n("Mhyx"),c=n("QRG4"),u=n("fBQ2"),l=n("3fs2");i(i.S+i.F*!n("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,h=o(t),p="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,m=void 0!==v,y=0,g=l(h);if(m&&(v=r(v,d>2?arguments[2]:void 0,2)),void 0==g||p==Array&&s(g))for(n=new p(e=c(h.length));e>y;y++)u(n,y,m?v(h[y],y):h[y]);else for(f=g.call(h),n=new p;!(i=f.next()).done;y++)u(n,y,m?a(f,v,[i.value,y],!0):i.value);return n.length=y,n}})},"r2E/":function(t,e,n){var r=n("Ds5P"),i=n("nqOf")(/[\\^$*+?.()|[\]{}]/g,"\\$&");r(r.S,"RegExp",{escape:function(t){return i(t)}})},rFzY:function(t,e,n){var r=n("XSOZ");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},s4j0:function(t,e,n){var r=n("UKM+");t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},s96k:function(t,e){t.exports=function(t,e,n){for(var r=-1,i=null==t?0:t.length;++r1?arguments[1]:void 0,!0)}})},t8qj:function(t,e,n){"use strict";t.exports=function(t,e,n,r,i){return t.config=e,n&&(t.code=n),t.request=r,t.response=i,t}},t8rQ:function(t,e,n){var r=n("7e4z"),i=n("G0Wc"),o=n("bGc4");t.exports=function(t){return o(t)?r(t,!0):i(t)}},t8x9:function(t,e,n){var r=n("77Pl"),i=n("lOnJ"),o=n("dSzd")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[o])?e:i(n)}},tIFN:function(t,e,n){"use strict";var r=n("cGG2"),i=n("JP+z"),o=n("XmWM"),a=n("KCLY");function s(t){var e=new o(t),n=i(o.prototype.request,e);return r.extend(n,o.prototype,e),r.extend(n,e),n}var c=s(a);c.Axios=o,c.create=function(t){return s(r.merge(a,t))},c.Cancel=n("dVOP"),c.CancelToken=n("cWxy"),c.isCancel=n("pBtG"),c.all=function(t){return Promise.all(t)},c.spread=n("pxG4"),t.exports=c,t.exports.default=c},tJwI:function(t,e,n){var r=n("FryR"),i=n("Qh14");n("3i66")("keys",function(){return function(t){return i(r(t))}})},taNN:function(t,e,n){var r=n("Ds5P"),i=180/Math.PI;r(r.S,"Math",{degrees:function(t){return t*i}})},thJu:function(t,e,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function i(){this.message="String contains an invalid character"}i.prototype=new Error,i.prototype.code=5,i.prototype.name="InvalidCharacterError",t.exports=function(t){for(var e,n,o=String(t),a="",s=0,c=r;o.charAt(0|s)||(c="=",s%1);a+=c.charAt(63&e>>8-s%1*8)){if((n=o.charCodeAt(s+=.75))>255)throw new i;e=e<<8|n}return a}},tqSY:function(t,e,n){var r=n("Ds5P");r(r.P,"String",{repeat:n("xAdt")})},tv3T:function(t,e,n){var r=n("i4ON"),i=n("nw3t");t.exports=function(t,e,n,o){var a=!n;n||(n={});for(var s=-1,c=e.length;++sc;)r.f(t,n=a[c++],e[n]);return t}},u0PK:function(t,e,n){var r=n("UKM+"),i=n("ydD5"),o=n("kkCw")("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},u2KI:function(t,e,n){t.exports={default:n("O4R0"),__esModule:!0}},uDYd:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("XSOZ"),o=n("FryR"),a=n("zgIt"),s=[].sort,c=[1,2,3];r(r.P+r.F*(a(function(){c.sort(void 0)})||!a(function(){c.sort(null)})||!n("NNrz")(s)),"Array",{sort:function(t){return void 0===t?s.call(o(this)):s.call(o(this),i(t))}})},uEEG:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{scale:n("WY8G")})},uIr7:function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,i=t.length;++n94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},v3hU:function(t,e,n){var r=n("dSUw"),i=n("QG7u"),o=n("wCso"),a=n("DIVP"),s=n("KOrd"),c=o.keys,u=o.key,l=function(t,e){var n=c(t,e),o=s(t);if(null===o)return n;var a=l(o,e);return a.length?n.length?i(new r(n.concat(a))):a:n};o.exp({getMetadataKeys:function(t){return l(a(t),arguments.length<2?void 0:u(arguments[1]))}})},v8Dt:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).get(t)}},v8VU:function(t,e,n){var r=n("OzIq"),i=n("Ds5P"),o=n("41xE"),a=[].slice,s=/MSIE .\./.test(o),c=function(t){return function(e,n){var r=arguments.length>2,i=!!r&&a.call(arguments,2);return t(r?function(){("function"==typeof e?e:Function(e)).apply(this,i)}:e,n)}};i(i.G+i.B+i.F*s,{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},v90c:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("IFpc"),o=n("FryR"),a=n("BbyF"),s=n("oeih"),c=n("plSV");r(r.P,"Array",{flatten:function(){var t=arguments[0],e=o(this),n=a(e.length),r=c(e,0);return i(r,e,e,n,0,void 0===t?1:s(t)),r}}),n("RhFG")("flatten")},"vFc/":function(t,e,n){var r=n("TcQ7"),i=n("QRG4"),o=n("fkB2");t.exports=function(t){return function(e,n,a){var s,c=r(e),u=i(c.length),l=o(a,u);if(t&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},"vIB/":function(t,e,n){"use strict";var r=n("O4g8"),i=n("kM2E"),o=n("880/"),a=n("hJx8"),s=n("/bQp"),c=n("94VQ"),u=n("e6n0"),l=n("PzxK"),f=n("dSzd")("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(t,e,n,d,v,m,y){c(n,e,d);var g,_,b,w=function(t){if(!h&&t in C)return C[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},x=e+" Iterator",S="values"==v,k=!1,C=t.prototype,T=C[f]||C["@@iterator"]||v&&C[v],E=T||w(v),O=v?S?w("entries"):E:void 0,A="Array"==e&&C.entries||T;if(A&&(b=l(A.call(new t)))!==Object.prototype&&b.next&&(u(b,x,!0),r||"function"==typeof b[f]||a(b,f,p)),S&&T&&"values"!==T.name&&(k=!0,E=function(){return T.call(this)}),r&&!y||!h&&!k&&C[f]||a(C,f,E),s[e]=E,s[x]=p,v)if(g={values:S?E:w("values"),keys:m?E:w("keys"),entries:O},y)for(_ in g)_ in C||o(C,_,g[_]);else i(i.P+i.F*(h||k),e,g);return g}},vi0E:function(t,e,n){var r=n("f931")(Object.getPrototypeOf,Object);t.exports=r},vmSO:function(t,e,n){var r=n("rFzY"),i=n("XvUs"),o=n("9vb1"),a=n("DIVP"),s=n("BbyF"),c=n("SHe9"),u={},l={};(e=t.exports=function(t,e,n,f,h){var p,d,v,m,y=h?function(){return t}:c(t),g=r(n,f,e?2:1),_=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(o(y)){for(p=s(t.length);p>_;_++)if((m=e?g(a(d=t[_])[0],d[1]):g(t[_]))===u||m===l)return m}else for(v=y.call(t);!(d=v.next()).done;)if((m=i(v,g,d.value,e))===u||m===l)return m}).BREAK=u,e.RETURN=l},vmSu:function(t,e,n){var r=n("Ds5P"),i=n("7ylX"),o=n("XSOZ"),a=n("DIVP"),s=n("UKM+"),c=n("zgIt"),u=n("ZtwE"),l=(n("OzIq").Reflect||{}).construct,f=c(function(){function t(){}return!(l(function(){},[],t)instanceof t)}),h=!c(function(){l(function(){})});r(r.S+r.F*(f||h),"Reflect",{construct:function(t,e){o(t),a(e);var n=arguments.length<3?t:o(arguments[2]);if(h&&!f)return l(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return r.push.apply(r,e),new(u.apply(t,r))}var c=n.prototype,p=i(s(c)?c:Object.prototype),d=Function.apply.call(t,p,e);return s(d)?d:p}})},vnWP:function(t,e,n){var r=n("Ds5P"),i=n("WY8G"),o=n("g/m8");r(r.S,"Math",{fscale:function(t,e,n,r,a){return o(i(t,e,n,r,a))}})},vsh6:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(t){return o(i(t),arguments.length<2?void 0:a(arguments[1]))}})},"vu/c":function(t,e,n){n("3g/S")("observable")},w6Dh:function(t,e,n){"use strict";var r=n("XSOZ");t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},w6W7:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(1);r(r.P+r.F*!n("NNrz")([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},wC1N:function(t,e,n){var r=n("ydD5"),i=n("kkCw")("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},wCso:function(t,e,n){var r=n("MsuQ"),i=n("Ds5P"),o=n("VWgF")("metadata"),a=o.store||(o.store=new(n("ZDXm"))),s=function(t,e,n){var i=a.get(t);if(!i){if(!n)return;a.set(t,i=new r)}var o=i.get(e);if(!o){if(!n)return;i.set(e,o=new r)}return o};t.exports={store:a,map:s,has:function(t,e,n){var r=s(e,n,!1);return void 0!==r&&r.has(t)},get:function(t,e,n){var r=s(e,n,!1);return void 0===r?void 0:r.get(t)},set:function(t,e,n,r){s(n,r,!0).set(t,e)},keys:function(t,e){var n=s(t,e,!1),r=[];return n&&n.forEach(function(t,e){r.push(e)}),r},key:function(t){return void 0===t||"symbol"==typeof t?t:String(t)},exp:function(t){i(i.S,"Reflect",t)}}},wVdn:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(3);r(r.P+r.F*!n("NNrz")([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},wnRD:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FkIZ");r(r.P+r.F*!n("NNrz")([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},woOf:function(t,e,n){t.exports={default:n("V3tA"),__esModule:!0}},wrs0:function(t,e,n){var r=n("Ds5P"),i=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,o=0,a=0,s=arguments.length,c=0;a0?(r=n/c)*r:n;return c===1/0?1/0:c*Math.sqrt(o)}})},wvVD:function(t,e){t.exports=function(t,e){"use strict";var n=function(){},r=function(t){setTimeout(t||n,0)},i={addEventListener:!!window.addEventListener,touch:"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,transitions:function(t){var e=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(var n in e)if(void 0!==t.style[e[n]])return!0;return!1}(document.createElement("swipe"))};if(t){var o,a,s,c,u=t.children[0];e=e||{};var l=parseInt(e.startSlide,10)||0,f=e.speed||300;e.continuous=void 0===e.continuous||e.continuous;var h,p,d=e.auto||0,v={},m={},y={handleEvent:function(t){switch(t.type){case"touchstart":this.start(t);break;case"touchmove":this.move(t);break;case"touchend":r(this.end(t));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":r(this.transitionEnd(t));break;case"resize":r(g)}e.stopPropagation&&t.stopPropagation()},start:function(t){var e=t.touches[0];v={x:e.pageX,y:e.pageY,time:+new Date},p=void 0,m={},u.addEventListener("touchmove",this,!1),u.addEventListener("touchend",this,!1)},move:function(t){if(!(t.touches.length>1||t.scale&&1!==t.scale)){e.disableScroll&&t.preventDefault();var n=t.touches[0];m={x:n.pageX-v.x,y:n.pageY-v.y},void 0===p&&(p=!!(p||Math.abs(m.x)0||l==o.length-1&&m.x<0?Math.abs(m.x)/s+1:1),S(l-1,m.x+a[l-1],0),S(l,m.x+a[l],0),S(l+1,m.x+a[l+1],0)))}},end:function(t){var n=+new Date-v.time,r=Number(n)<250&&Math.abs(m.x)>20||Math.abs(m.x)>s/2,i=!l&&m.x>0||l==o.length-1&&m.x<0;e.continuous&&(i=!1);var c=m.x<0;p||(r&&!i?(c?(e.continuous?(x(b(l-1),-s,0),x(b(l+2),s,0)):x(l-1,-s,0),x(l,a[l]-s,f),x(b(l+1),a[b(l+1)]-s,f),l=b(l+1)):(e.continuous?(x(b(l+1),s,0),x(b(l-2),-s,0)):x(l+1,s,0),x(l,a[l]+s,f),x(b(l-1),a[b(l-1)]+s,f),l=b(l-1)),e.callback&&e.callback(l,o[l])):e.continuous?(x(b(l-1),-s,f),x(l,0,f),x(b(l+1),s,f)):(x(l-1,-s,f),x(l,0,f),x(l+1,s,f))),u.removeEventListener("touchmove",y,!1),u.removeEventListener("touchend",y,!1)},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==l&&(d&&k(),e.transitionEnd&&e.transitionEnd.call(t,l,o[l]))}};return g(),d&&k(),i.addEventListener?(i.touch&&u.addEventListener("touchstart",y,!1),i.transitions&&(u.addEventListener("webkitTransitionEnd",y,!1),u.addEventListener("msTransitionEnd",y,!1),u.addEventListener("oTransitionEnd",y,!1),u.addEventListener("otransitionend",y,!1),u.addEventListener("transitionend",y,!1)),window.addEventListener("resize",y,!1)):window.onresize=function(){g()},{setup:function(){g()},slide:function(t,e){C(),w(t,e)},prev:function(){C(),e.continuous?w(l-1):l&&w(l-1)},next:function(){C(),_()},stop:function(){C()},getPos:function(){return l},getNumSlides:function(){return c},kill:function(){C(),u.style.width="",u.style.left="";for(var t=o.length;t--;){var e=o[t];e.style.width="",e.style.left="",i.transitions&&S(t,0,0)}i.addEventListener?(u.removeEventListener("touchstart",y,!1),u.removeEventListener("webkitTransitionEnd",y,!1),u.removeEventListener("msTransitionEnd",y,!1),u.removeEventListener("oTransitionEnd",y,!1),u.removeEventListener("otransitionend",y,!1),u.removeEventListener("transitionend",y,!1),window.removeEventListener("resize",y,!1)):window.onresize=null}}}function g(){o=u.children,c=o.length,o.length<2&&(e.continuous=!1),i.transitions&&e.continuous&&o.length<3&&(u.appendChild(o[0].cloneNode(!0)),u.appendChild(u.children[1].cloneNode(!0)),o=u.children),a=new Array(o.length),s=t.getBoundingClientRect().width||t.offsetWidth,u.style.width=o.length*s+"px";for(var n=o.length;n--;){var r=o[n];r.style.width=s+"px",r.setAttribute("data-index",n),i.transitions&&(r.style.left=n*-s+"px",x(n,l>n?-s:ll?t:l)-p-1),s*c,0);t=b(t),x(l,s*c,n||f),x(t,0,n||f),e.continuous&&x(b(t-c),-s*c,0)}else t=b(t),function(t,n,r){if(r)var i=+new Date,a=setInterval(function(){var s=+new Date-i;if(s>r)return u.style.left=n+"px",d&&k(),e.transitionEnd&&e.transitionEnd.call(event,l,o[l]),void clearInterval(a);u.style.left=(n-t)*(Math.floor(s/r*100)/100)+t+"px"},4);else u.style.left=n+"px"}(l*-s,t*-s,n||f);l=t,r(e.callback&&e.callback(l,o[l]))}}function x(t,e,n){S(t,e,n),a[t]=e}function S(t,e,n){var r=o[t],i=r&&r.style;i&&(i.webkitTransitionDuration=i.MozTransitionDuration=i.msTransitionDuration=i.OTransitionDuration=i.transitionDuration=n+"ms",i.webkitTransform="translate("+e+"px,0)translateZ(0)",i.msTransform=i.MozTransform=i.OTransform="translateX("+e+"px)")}function k(){h=setTimeout(_,d)}function C(){d=0,clearTimeout(h)}}},wxAW:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("C4MV"),o=(r=i)&&r.__esModule?r:{default:r};e.default=function(){function t(t,e){for(var n=0;n22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},x9zv:function(t,e,n){var r=n("Y1aA"),i=n("fU25"),o=n("PHqh"),a=n("s4j0"),s=n("WBcL"),c=n("xZa+"),u=Object.getOwnPropertyDescriptor;e.f=n("bUqO")?u:function(t,e){if(t=o(t),e=a(e,!0),c)try{return u(t,e)}catch(t){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},xAdt:function(t,e,n){"use strict";var r=n("oeih"),i=n("/whu");t.exports=function(t){var e=String(i(this)),n="",o=r(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(n+=e);return n}},xCpI:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FryR"),o=n("s4j0"),a=n("KOrd"),s=n("x9zv").f;n("bUqO")&&r(r.P+n("dm6P"),"Object",{__lookupGetter__:function(t){var e,n=i(this),r=o(t,!0);do{if(e=s(n,r))return e.get}while(n=a(n))}})},xGkn:function(t,e,n){"use strict";var r=n("4mcu"),i=n("EGZi"),o=n("/bQp"),a=n("TcQ7");t.exports=n("vIB/")(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},"xH/j":function(t,e,n){var r=n("hJx8");t.exports=function(t,e,n){for(var i in e)n&&t[i]?t[i]=e[i]:r(t,i,e[i]);return t}},xLtR:function(t,e,n){"use strict";var r=n("cGG2"),i=n("TNV1"),o=n("pBtG"),a=n("KCLY"),s=n("dIwP"),c=n("qRfI");function u(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return u(t),t.baseURL&&!s(t.url)&&(t.url=c(t.baseURL,t.url)),t.headers=t.headers||{},t.data=i(t.data,t.headers,t.transformRequest),t.headers=r.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||a.adapter)(t).then(function(e){return u(t),e.data=i(e.data,e.headers,t.transformResponse),e},function(e){return o(e)||(u(t),e&&e.response&&(e.response.data=i(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},xMpm:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("bSML");r(r.S+r.F*n("zgIt")(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},xONB:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},xQ6e:function(t,e){function n(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function r(t,e,r,i,o,a){return n((s=n(n(e,t),n(i,a)))<<(c=o)|s>>>32-c,r);var s,c}function i(t,e,n,i,o,a,s){return r(e&n|~e&i,t,e,o,a,s)}function o(t,e,n,i,o,a,s){return r(e&i|n&~i,t,e,o,a,s)}function a(t,e,n,i,o,a,s){return r(e^n^i,t,e,o,a,s)}function s(t,e,n,i,o,a,s){return r(n^(e|~i),t,e,o,a,s)}function c(t){for(var e=1732584193,r=-271733879,c=-1732584194,u=271733878,l=0;l>2]>>n%4*8+4&15)+"0123456789abcdef".charAt(t[n>>2]>>n%4*8&15);return e}function l(t){for(var e=1+(t.length+8>>6),n=new Array(16*e),r=0;r<16*e;r++)n[r]=0;for(r=0;r>2]|=(255&t.charCodeAt(r))<>2]|=128<"+i+""};t.exports=function(t,e){var n={};n[t]=e(s),r(r.P+r.F*i(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},y9m4:function(t,e,n){"use strict";var r,i,o,a,s=n("V3l/"),c=n("OzIq"),u=n("rFzY"),l=n("wC1N"),f=n("Ds5P"),h=n("UKM+"),p=n("XSOZ"),d=n("9GpA"),v=n("vmSO"),m=n("7O1s"),y=n("Sejc").set,g=n("g36u")(),_=n("w6Dh"),b=n("SDXa"),w=n("41xE"),x=n("nphH"),S=c.TypeError,k=c.process,C=k&&k.versions,T=C&&C.v8||"",E=c.Promise,O="process"==l(k),A=function(){},P=i=_.f,M=!!function(){try{var t=E.resolve(1),e=(t.constructor={})[n("kkCw")("species")]=function(t){t(A,A)};return(O||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==T.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(t){}}(),j=function(t){var e;return!(!h(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;g(function(){for(var r=t._v,i=1==t._s,o=0,a=function(e){var n,o,a,s=i?e.ok:e.fail,c=e.resolve,u=e.reject,l=e.domain;try{s?(i||(2==t._h&&R(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?u(S("Promise-chain cycle")):(o=j(n))?o.call(n,c,u):c(n)):u(r)}catch(t){l&&!a&&l.exit(),u(t)}};n.length>o;)a(n[o++]);t._c=[],t._n=!1,e&&!t._h&&L(t)})}},L=function(t){y.call(c,function(){var e,n,r,i=t._v,o=D(t);if(o&&(e=b(function(){O?k.emit("unhandledRejection",i,t):(n=c.onunhandledrejection)?n({promise:t,reason:i}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",i)}),t._h=O||D(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},D=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){y.call(c,function(){var e;O?k.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=j(t))?g(function(){var r={_w:n,_d:!1};try{e.call(t,u(N,r,1),u(F,r,1))}catch(t){F.call(r,t)}}):(n._v=t,n._s=1,I(n,!1))}catch(t){F.call({_w:n,_d:!1},t)}}};M||(E=function(t){d(this,E,"Promise","_h"),p(t),r.call(this);try{t(u(N,this,1),u(F,this,1))}catch(t){F.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("A16L")(E.prototype,{then:function(t,e){var n=P(m(this,E));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=O?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=u(N,t,1),this.reject=u(F,t,1)},_.f=P=function(t){return t===E||t===a?new o(t):i(t)}),f(f.G+f.W+f.F*!M,{Promise:E}),n("yYvK")(E,"Promise"),n("CEne")("Promise"),a=n("7gX0").Promise,f(f.S+f.F*!M,"Promise",{reject:function(t){var e=P(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!M),"Promise",{resolve:function(t){return x(s&&this===a?E:this,t)}}),f(f.S+f.F*!(M&&n("qkyc")(function(t){E.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=P(e),r=n.resolve,i=n.reject,o=b(function(){var n=[],o=0,a=1;v(t,!1,function(t){var s=o++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},i)}),--a||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,i=b(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},yAnQ:function(t,e,n){var r;!function(){var i=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)},o=function(){var t={},e=document.createElement("div").style,n=function(){for(var t=["t","webkitT","MozT","msT","OT"],n=0,r=t.length;n0&&(a=i?i/2.5*(u/8):0,s=(c=Math.abs(t)+a)/u),{destination:Math.round(a),duration:s}};var i=r("transform");return t.extend(t,{hasTransform:!1!==i,hasPerspective:r("perspective")in e,hasTouch:"ontouchstart"in window,hasPointer:!(!window.PointerEvent&&!window.MSPointerEvent),hasTransition:r("transition")in e}),t.isBadAndroid=function(){var t=window.navigator.appVersion;if(/Android/.test(t)&&!/Chrome\/\d/.test(t)){var e=t.match(/Safari\/(\d+.\d)/);return!(e&&"object"==typeof e&&e.length>=2)||parseFloat(e[1])<535.19}return!1}(),t.extend(t.style={},{transform:i,transitionTimingFunction:r("transitionTimingFunction"),transitionDuration:r("transitionDuration"),transitionDelay:r("transitionDelay"),transformOrigin:r("transformOrigin")}),t.hasClass=function(t,e){return new RegExp("(^|\\s)"+e+"(\\s|$)").test(t.className)},t.addClass=function(e,n){if(!t.hasClass(e,n)){var r=e.className.split(" ");r.push(n),e.className=r.join(" ")}},t.removeClass=function(e,n){if(t.hasClass(e,n)){var r=new RegExp("(^|\\s)"+n+"(\\s|$)","g");e.className=e.className.replace(r," ")}},t.offset=function(t){for(var e=-t.offsetLeft,n=-t.offsetTop;t=t.offsetParent;)e-=t.offsetLeft,n-=t.offsetTop;return{left:e,top:n}},t.preventDefaultException=function(t,e){for(var n in e)if(e[n].test(t[n]))return!0;return!1},t.extend(t.eventType={},{touchstart:1,touchmove:1,touchend:1,mousedown:2,mousemove:2,mouseup:2,pointerdown:3,pointermove:3,pointerup:3,MSPointerDown:3,MSPointerMove:3,MSPointerUp:3}),t.extend(t.ease={},{quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(t){return t*(2-t)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(t){return Math.sqrt(1- --t*t)}},back:{style:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fn:function(t){return(t-=1)*t*(5*t+4)+1}},bounce:{style:"",fn:function(t){return(t/=1)<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}},elastic:{style:"",fn:function(t){return 0===t?0:1==t?1:.4*Math.pow(2,-10*t)*Math.sin((t-.055)*(2*Math.PI)/.22)+1}}}),t.tap=function(t,e){var n=document.createEvent("Event");n.initEvent(e,!0,!0),n.pageX=t.pageX,n.pageY=t.pageY,t.target.dispatchEvent(n)},t.click=function(t){var e,n=t.target;/(SELECT|INPUT|TEXTAREA)/i.test(n.tagName)||((e=document.createEvent(window.MouseEvent?"MouseEvents":"Event")).initEvent("click",!0,!0),e.view=t.view||window,e.detail=1,e.screenX=n.screenX||0,e.screenY=n.screenY||0,e.clientX=n.clientX||0,e.clientY=n.clientY||0,e.ctrlKey=!!t.ctrlKey,e.altKey=!!t.altKey,e.shiftKey=!!t.shiftKey,e.metaKey=!!t.metaKey,e.button=0,e.relatedTarget=null,e._constructed=!0,n.dispatchEvent(e))},t}();function a(t,e){for(var n in this.wrapper="string"==typeof t?document.querySelector(t):t,this.scroller=this.wrapper.children[0],this.scrollerStyle=this.scroller.style,this.options={disablePointer:!0,disableTouch:!o.hasTouch,disableMouse:o.hasTouch,startX:0,startY:0,scrollY:!0,directionLockThreshold:5,momentum:!0,bounce:!0,bounceTime:600,bounceEasing:"",preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT)$/},HWCompositing:!0,useTransition:!0,useTransform:!0,bindToWrapper:void 0===window.onmousedown},e)this.options[n]=e[n];this.translateZ=this.options.HWCompositing&&o.hasPerspective?" translateZ(0)":"",this.options.useTransition=o.hasTransition&&this.options.useTransition,this.options.useTransform=o.hasTransform&&this.options.useTransform,this.options.eventPassthrough=!0===this.options.eventPassthrough?"vertical":this.options.eventPassthrough,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollY="vertical"!=this.options.eventPassthrough&&this.options.scrollY,this.options.scrollX="horizontal"!=this.options.eventPassthrough&&this.options.scrollX,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,this.options.bounceEasing="string"==typeof this.options.bounceEasing?o.ease[this.options.bounceEasing]||o.ease.circular:this.options.bounceEasing,this.options.resizePolling=void 0===this.options.resizePolling?60:this.options.resizePolling,!0===this.options.tap&&(this.options.tap="tap"),this.options.useTransition||this.options.useTransform||/relative|absolute/i.test(this.scrollerStyle.position)||(this.scrollerStyle.position="relative"),"scale"==this.options.shrinkScrollbars&&(this.options.useTransition=!1),this.options.invertWheelDirection=this.options.invertWheelDirection?-1:1,3==this.options.probeType&&(this.options.useTransition=!1),this.x=0,this.y=0,this.directionX=0,this.directionY=0,this._events={},this._init(),this.refresh(),this.scrollTo(this.options.startX,this.options.startY),this.enable()}a.prototype={version:"1.0.0",_init:function(){this._initEvents()},destroy:function(){this._initEvents(!0),clearTimeout(this.resizeTimeout),this.resizeTimeout=null,this._execEvent("destroy")},_transitionEnd:function(t){t.target==this.scroller&&this.isInTransition&&(this._transitionTime(),this.resetPosition(this.options.bounceTime)||(this.isInTransition=!1,this._execEvent("scrollEnd")))},_start:function(t){if(1!=o.eventType[t.type]&&0!==(t.which?t.button:t.button<2?0:4==t.button?1:2))return;if(this.enabled&&(!this.initiated||o.eventType[t.type]===this.initiated)){!this.options.preventDefault||o.isBadAndroid||o.preventDefaultException(t.target,this.options.preventDefaultException)||t.preventDefault();var e,n=t.touches?t.touches[0]:t;this.initiated=o.eventType[t.type],this.moved=!1,this.distX=0,this.distY=0,this.directionX=0,this.directionY=0,this.directionLocked=0,this.startTime=o.getTime(),this.options.useTransition&&this.isInTransition?(this._transitionTime(),this.isInTransition=!1,e=this.getComputedPosition(),this._translate(Math.round(e.x),Math.round(e.y)),this._execEvent("scrollEnd")):!this.options.useTransition&&this.isAnimating&&(this.isAnimating=!1,this._execEvent("scrollEnd")),this.startX=this.x,this.startY=this.y,this.absStartX=this.x,this.absStartY=this.y,this.pointX=n.pageX,this.pointY=n.pageY,this._execEvent("beforeScrollStart")}},_move:function(t){if(this.enabled&&o.eventType[t.type]===this.initiated){this.options.preventDefault;var e,n,r,i,a=t.touches?t.touches[0]:t,s=a.pageX-this.pointX,c=a.pageY-this.pointY,u=o.getTime();if(this.pointX=a.pageX,this.pointY=a.pageY,this.distX+=s,this.distY+=c,r=Math.abs(this.distX),i=Math.abs(this.distY),!(u-this.endTime>300&&r<10&&i<10)){if(this.directionLocked||this.options.freeScroll||(r>i+this.options.directionLockThreshold?this.directionLocked="h":i>=r+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"==this.directionLocked){if("vertical"==this.options.eventPassthrough)t.preventDefault();else if("horizontal"==this.options.eventPassthrough)return void(this.initiated=!1);c=0}else if("v"==this.directionLocked){if("horizontal"==this.options.eventPassthrough)t.preventDefault();else if("vertical"==this.options.eventPassthrough)return void(this.initiated=!1);s=0}s=this.hasHorizontalScroll?s:0,c=this.hasVerticalScroll?c:0,e=this.x+s,n=this.y+c,(e>0||e0?0:this.maxScrollX),(n>0||n0?0:this.maxScrollY),this.directionX=s>0?-1:s<0?1:0,this.directionY=c>0?-1:c<0?1:0,this.moved||this._execEvent("scrollStart"),this.moved=!0,this._translate(e,n),u-this.startTime>300&&(this.startTime=u,this.startX=this.x,this.startY=this.y,1==this.options.probeType&&this._execEvent("scroll")),this.options.probeType>1&&this._execEvent("scroll")}}},_end:function(t){if(this.enabled&&o.eventType[t.type]===this.initiated){this.options.preventDefault&&!o.preventDefaultException(t.target,this.options.preventDefaultException)&&t.preventDefault();t.changedTouches&&t.changedTouches[0];var e,n,r=o.getTime()-this.startTime,i=Math.round(this.x),a=Math.round(this.y),s=Math.abs(i-this.startX),c=Math.abs(a-this.startY),u=0,l="";if(this.isInTransition=0,this.initiated=0,this.endTime=o.getTime(),!this.resetPosition(this.options.bounceTime)){if(this.scrollTo(i,a),!this.moved)return this.options.tap&&o.tap(t,this.options.tap),this.options.click&&o.click(t),void this._execEvent("scrollCancel");if(this._events.flick&&r<200&&s<100&&c<100)this._execEvent("flick");else{if(this.options.momentum&&r<300&&(e=this.hasHorizontalScroll?o.momentum(this.x,this.startX,r,this.maxScrollX,this.options.bounce?this.wrapperWidth:0,this.options.deceleration):{destination:i,duration:0},n=this.hasVerticalScroll?o.momentum(this.y,this.startY,r,this.maxScrollY,this.options.bounce?this.wrapperHeight:0,this.options.deceleration):{destination:a,duration:0},i=e.destination,a=n.destination,u=Math.max(e.duration,n.duration),this.isInTransition=1),this.options.snap){var f=this._nearestSnap(i,a);this.currentPage=f,u=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(i-f.x),1e3),Math.min(Math.abs(a-f.y),1e3)),300),i=f.x,a=f.y,this.directionX=0,this.directionY=0,l=this.options.bounceEasing}if(i!=this.x||a!=this.y)return(i>0||i0||a0?e=0:this.x0?n=0:this.y-1&&this._events[t].splice(n,1)}},_execEvent:function(t){if(this._events[t]){var e=0,n=this._events[t].length;if(n)for(;e0;var i=this.options.useTransition&&r.style;!n||i?(i&&(this._transitionTimingFunction(r.style),this._transitionTime(n)),this._translate(t,e)):this._animate(t,e,n,r.fn)},scrollToElement:function(t,e,n,r,i){if(t=t.nodeType?t:this.scroller.querySelector(t)){var a=o.offset(t);a.left-=this.wrapperOffset.left,a.top-=this.wrapperOffset.top,!0===n&&(n=Math.round(t.offsetWidth/2-this.wrapper.offsetWidth/2)),!0===r&&(r=Math.round(t.offsetHeight/2-this.wrapper.offsetHeight/2)),a.left-=n||0,a.top-=r||0,a.left=a.left>0?0:a.left0?0:a.top=l)return a.isAnimating=!1,a._translate(t,e),void(a.resetPosition(a.options.bounceTime)||a._execEvent("scrollEnd"));d=r(v=(v-u)/n),h=(t-s)*d+s,p=(e-c)*d+c,a._translate(h,p),a.isAnimating&&i(f),3==a.options.probeType&&a._execEvent("scroll")}()},handleEvent:function(t){switch(t.type){case"touchstart":case"pointerdown":case"MSPointerDown":case"mousedown":this._start(t);break;case"touchmove":case"pointermove":case"MSPointerMove":case"mousemove":this._move(t);break;case"touchend":case"pointerup":case"MSPointerUp":case"mouseup":case"touchcancel":case"pointercancel":case"MSPointerCancel":case"mousecancel":this._end(t);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(t);break;case"click":this.enabled&&!t._constructed&&(t.preventDefault(),t.stopPropagation())}}},a.utils=o;var s={isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isFunction:function(t){return"function"==typeof t},attrToData:function(t,e){var n={};for(var r in t.dataset)n[r]=t.dataset[r];return n.dom=t,n.atindex=e,n},attrToHtml:function(t){var e="";for(var n in t)e+="data-"+n+'="'+t[n]+'"';return e}};function c(t,e){if(!(this instanceof c))return new c(t,e);this.html=t,this.opts=e;var n=document.createElement("div");n.className="olay";var r=document.createElement("div");r.className="layer",this.el=n,this.layer_el=r,this.init()}function u(t,e,n){if(!s.isArray(e)||0===e.length)throw new TypeError("the data must be a non-empty array!");if(-1==[1,2,3,4,5,6].indexOf(t))throw new RangeError("the level parameter must be one of 1,2,3,4,5,6!");this.data=e,this.level=t||1,this.options=n,this.typeBox="one-level-box",1===this.level?this.typeBox="one-level-box":2===this.level?this.typeBox="two-level-box":3===this.level?this.typeBox="three-level-box":4===this.level?this.typeBox="four-level-box":5===this.level?this.typeBox="five-level-box":6===this.level&&(this.typeBox="six-level-box"),this.title=n.title||"",this.options.itemHeight=n.itemHeight||35,this.options.itemShowCount=-1!==[3,5,7,9].indexOf(n.itemShowCount)?n.itemShowCount:7,this.options.coverArea1Top=Math.floor(this.options.itemShowCount/2),this.options.coverArea2Top=Math.ceil(this.options.itemShowCount/2),this.options.headerHeight=n.headerHeight||44,this.options.relation=s.isArray(this.options.relation)?this.options.relation:[],this.options.oneTwoRelation=this.options.relation[0],this.options.twoThreeRelation=this.options.relation[1],this.options.threeFourRelation=this.options.relation[2],this.options.fourFiveRelation=this.options.relation[3],this.options.fiveSixRelation=this.options.relation[4],"px"!==this.options.cssUnit&&"rem"!==this.options.cssUnit&&(this.options.cssUnit="px");this.selectOneObj={id:this.options.oneLevelId},this.selectTwoObj={id:this.options.twoLevelId},this.selectThreeObj={id:this.options.threeLevelId},this.selectFourObj={id:this.options.fourLevelId},this.selectFiveObj={id:this.options.fiveLevelId},this.selectSixObj={id:this.options.sixLevelId},this.setBase(),this.init()}c.prototype={init:function(){this.layer_el.innerHTML=this.html,this.opts.container&&document.querySelector(this.opts.container)?document.querySelector(this.opts.container).appendChild(this.el):document.body.appendChild(this.el),this.el.appendChild(this.layer_el),this.el.style.height=Math.max(document.documentElement.getBoundingClientRect().height,window.innerHeight),this.opts.className&&(this.el.className+=" "+this.opts.className),this.bindEvent()},bindEvent:function(){var t=this.el.querySelectorAll(".sure"),e=this.el.querySelectorAll(".close"),n=this;this.el.addEventListener("click",function(t){n.close(),n.opts.maskCallback&&n.opts.maskCallback()}),this.layer_el.addEventListener("click",function(t){t.stopPropagation()}),Array.prototype.slice.call(t).forEach(function(t,e){t.addEventListener("click",function(){n.close()})}),Array.prototype.slice.call(e).forEach(function(t,e){t.addEventListener("click",function(){n.close(),n.opts.fallback&&n.opts.fallback()})})},close:function(){var t=this;t.el&&(t.opts.showAnimate?(t.el.className+=" fadeOutDown",setTimeout(function(){t.removeDom()},500)):t.removeDom())},removeDom:function(){this.el.parentNode.removeChild(this.el),this.el=null,document.documentElement.classList.contains("ios-select-body-class")&&document.documentElement.classList.remove("ios-select-body-class")}},u.prototype={init:function(){this.initLayer(),this.setLevelData(1,this.options.oneLevelId,this.options.twoLevelId,this.options.threeLevelId,this.options.fourLevelId,this.options.fiveLevelId,this.options.sixLevelId)},initLayer:function(){var t=this,e=this.options.sureText||"纭畾",n=this.options.closeText||"鍙栨秷",r=this.options.headerHeight+this.options.cssUnit,i=['

',''+n+"",''+e+"",'

',"
",'
','
','
    ',"
","
",'
','
    ',"
","
",'
','
    ',"
","
",'
','
    ',"
","
",'
','
    ',"
","
",'
','
    ',"
","
","
",'
','
','
','
',"
"].join("\r\n");this.iosSelectLayer=new c(i,{className:"ios-select-widget-box "+this.typeBox+(this.options.addClassName?" "+this.options.addClassName:"")+(this.options.showAnimate?" fadeInUp":""),container:this.options.container||"",showAnimate:this.options.showAnimate,fallback:this.options.fallback,maskCallback:this.options.maskCallback}),this.iosSelectTitleDom=this.iosSelectLayer.el.querySelector("#iosSelectTitle"),this.iosSelectLoadingBoxDom=this.iosSelectLayer.el.querySelector("#iosSelectLoadingBox"),this.iosSelectTitleDom.innerHTML=this.title,this.options.headerHeight&&this.options.itemHeight&&(this.coverArea1Dom=this.iosSelectLayer.el.querySelector(".cover-area1"),this.coverArea1Dom.style.top=this.options.headerHeight+this.options.itemHeight*this.options.coverArea1Top+this.options.cssUnit,this.coverArea2Dom=this.iosSelectLayer.el.querySelector(".cover-area2"),this.coverArea2Dom.style.top=this.options.headerHeight+this.options.itemHeight*this.options.coverArea2Top+this.options.cssUnit),this.oneLevelContainDom=this.iosSelectLayer.el.querySelector("#oneLevelContain"),this.twoLevelContainDom=this.iosSelectLayer.el.querySelector("#twoLevelContain"),this.threeLevelContainDom=this.iosSelectLayer.el.querySelector("#threeLevelContain"),this.fourLevelContainDom=this.iosSelectLayer.el.querySelector("#fourLevelContain"),this.fiveLevelContainDom=this.iosSelectLayer.el.querySelector("#fiveLevelContain"),this.sixLevelContainDom=this.iosSelectLayer.el.querySelector("#sixLevelContain"),this.oneLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-one-level"),this.twoLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-two-level"),this.threeLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-three-level"),this.fourLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-four-level"),this.fiveLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-five-level"),this.sixLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-six-level"),this.iosSelectLayer.el.querySelector(".layer").style.height=this.options.itemHeight*this.options.itemShowCount+this.options.headerHeight+this.options.cssUnit,this.oneLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,document.documentElement.classList.add("ios-select-body-class"),this.scrollOne=new a("#oneLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollOne,1),this.level>=2&&(this.twoLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollTwo=new a("#twoLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollTwo,2)),this.level>=3&&(this.threeLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollThree=new a("#threeLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollThree,3)),this.level>=4&&(this.fourLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollFour=new a("#fourLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollFour,4)),this.level>=5&&(this.fiveLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollFive=new a("#fiveLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollFive,5)),this.level>=6&&(this.sixLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollSix=new a("#sixLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollSix,6)),this.selectBtnDom=this.iosSelectLayer.el.querySelector(".sure"),this.selectBtnDom.addEventListener("click",function(e){t.options.callback&&t.options.callback(t.selectOneObj,t.selectTwoObj,t.selectThreeObj,t.selectFourObj,t.selectFiveObj,t.selectSixObj)})},mapKeyByIndex:function(t){var e={index:1,levelContain:this.oneLevelContainDom,relation:this.options.oneTwoRelation};return 2===t?e={index:2,levelContain:this.twoLevelContainDom,relation:this.options.twoThreeRelation}:3===t?e={index:3,levelContain:this.threeLevelContainDom,relation:this.options.threeFourRelation}:4===t?e={index:4,levelContain:this.fourLevelContainDom,relation:this.options.fourFiveRelation}:5===t?e={index:5,levelContain:this.fiveLevelContainDom,relation:this.options.fiveSixRelation}:6===t&&(e={index:6,levelContain:this.sixLevelContainDom,relation:0}),e},setScorllEvent:function(t,e){var n=this,r=n.mapKeyByIndex(e);t.on("scrollStart",function(){n.toggleClassList(r.levelContain)}),t.on("scroll",function(){if(!isNaN(this.y)){var t,e=Math.abs(this.y/n.baseSize)/n.options.itemHeight;t=Math.round(e)+1,n.toggleClassList(r.levelContain),n.changeClassName(r.levelContain,t)}}),t.on("scrollEnd",function(){var i=Math.abs(this.y/n.baseSize)/n.options.itemHeight,o=1,a=0;Math.ceil(i)===Math.round(i)?(a=Math.ceil(i)*n.options.itemHeight*n.baseSize,o=Math.ceil(i)+1):(a=Math.floor(i)*n.options.itemHeight*n.baseSize,o=Math.floor(i)+1),t.scrollTo(0,-a,0),n.toggleClassList(r.levelContain);var c=n.changeClassName(r.levelContain,o),u=s.attrToData(c,o);n.setSelectObj(e,u),n.level>e&&(1===r.relation&&s.isArray(n.data[e])||s.isFunction(n.data[e]))&&n.setLevelData(e+1,n.selectOneObj.id,n.selectTwoObj.id,n.selectThreeObj.id,n.selectFourObj.id,n.selectFiveObj.id,n.selectSixObj.id)}),t.on("scrollCancel",function(){var i=Math.abs(this.y/n.baseSize)/n.options.itemHeight,o=1,a=0;Math.ceil(i)===Math.round(i)?(a=Math.ceil(i)*n.options.itemHeight*n.baseSize,o=Math.ceil(i)+1):(a=Math.floor(i)*n.options.itemHeight*n.baseSize,o=Math.floor(i)+1),t.scrollTo(0,-a,0),n.toggleClassList(r.levelContain);var c=n.changeClassName(r.levelContain,o),u=s.attrToData(c,o);n.setSelectObj(e,u),n.level>e&&(1===r.relation&&s.isArray(n.data[e])||s.isFunction(n.data[e]))&&n.setLevelData(e+1,n.selectOneObj.id,n.selectTwoObj.id,n.selectThreeObj.id,n.selectFourObj.id,n.selectFiveObj.id,n.selectSixObj.id)})},loadingShow:function(){this.options.showLoading&&(this.iosSelectLoadingBoxDom.style.display="block")},loadingHide:function(){this.iosSelectLoadingBoxDom.style.display="none"},mapRenderByIndex:function(t){var e={index:1,relation:0,levelUlContainDom:this.oneLevelUlContainDom,scrollInstance:this.scrollOne,levelContainDom:this.oneLevelContainDom};return 2===t?e={index:2,relation:this.options.oneTwoRelation,levelUlContainDom:this.twoLevelUlContainDom,scrollInstance:this.scrollTwo,levelContainDom:this.twoLevelContainDom}:3===t?e={index:3,relation:this.options.twoThreeRelation,levelUlContainDom:this.threeLevelUlContainDom,scrollInstance:this.scrollThree,levelContainDom:this.threeLevelContainDom}:4===t?e={index:4,relation:this.options.threeFourRelation,levelUlContainDom:this.fourLevelUlContainDom,scrollInstance:this.scrollFour,levelContainDom:this.fourLevelContainDom}:5===t?e={index:5,relation:this.options.fourFiveRelation,levelUlContainDom:this.fiveLevelUlContainDom,scrollInstance:this.scrollFive,levelContainDom:this.fiveLevelContainDom}:6===t&&(e={index:6,relation:this.options.fiveSixRelation,levelUlContainDom:this.sixLevelUlContainDom,scrollInstance:this.scrollSix,levelContainDom:this.sixLevelContainDom}),e},getLevelData:function(t,e,n,r,i,o){var a=[],s=this.mapRenderByIndex(t);if(1===t)a=this.data[0];else if(1===s.relation){var c=arguments[t-1];this.data[t-1].forEach(function(t,e,n){t.parentId==c&&a.push(t)})}else a=this.data[t-1];return a},setLevelData:function(t,e,n,r,i,o,a){if(s.isArray(this.data[t-1])){var c=this.getLevelData(t,e,n,r,i);this.renderLevel(t,e,n,r,i,o,a,c)}else{if(!s.isFunction(this.data[t-1]))throw new Error("data format error");this.loadingShow(),this.data[t-1].apply(this,[e,n,r,i,o].slice(0,t-1).concat(function(s){this.loadingHide(),this.renderLevel(t,e,n,r,i,o,a,s)}.bind(this)))}},renderLevel:function(t,e,n,r,i,o,a,c){var u=0,l=arguments[t];c.some(function(t,e,n){return t.id==l})||(l=c[0].id);var f="",h=this.options.itemHeight+this.options.cssUnit;f+=this.getWhiteItem(),c.forEach(function(t,e,n){t.id==l?(f+='
  • '+t.value+"
  • ",u=e+1):f+='
  • "+t.value+"
  • "}),f+=this.getWhiteItem();var p=this.mapRenderByIndex(t);p.levelUlContainDom.innerHTML=f,p.scrollInstance.refresh(),p.scrollInstance.scrollToElement(":nth-child("+u+")",0);var d=this.changeClassName(p.levelContainDom,u),v=s.attrToData(d,u);this.setSelectObj(t,v),this.level>t&&this.setLevelData(t+1,this.selectOneObj.id,this.selectTwoObj.id,this.selectThreeObj.id,this.selectFourObj.id,this.selectFiveObj.id,this.selectSixObj.id)},setSelectObj:function(t,e){1===t?this.selectOneObj=e:2===t?this.selectTwoObj=e:3===t?this.selectThreeObj=e:4===t?this.selectFourObj=e:5===t?this.selectFiveObj=e:6===t&&(this.selectSixObj=e)},getWhiteItem:function(){var t="",e=this.options.itemHeight+this.options.cssUnit,n='
  • ';return t+=n,this.options.itemShowCount>3&&(t+=n),this.options.itemShowCount>5&&(t+=n),this.options.itemShowCount>7&&(t+=n),t},changeClassName:function(t,e){var n;return 3===this.options.itemShowCount?(n=t.querySelector("li:nth-child("+(e+1)+")")).classList.add("at"):5===this.options.itemShowCount?((n=t.querySelector("li:nth-child("+(e+2)+")")).classList.add("at"),t.querySelector("li:nth-child("+(e+1)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+3)+")").classList.add("side1")):7===this.options.itemShowCount?((n=t.querySelector("li:nth-child("+(e+3)+")")).classList.add("at"),t.querySelector("li:nth-child("+(e+2)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+1)+")").classList.add("side2"),t.querySelector("li:nth-child("+(e+4)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+5)+")").classList.add("side2")):9===this.options.itemShowCount&&((n=t.querySelector("li:nth-child("+(e+4)+")")).classList.add("at"),t.querySelector("li:nth-child("+(e+3)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+2)+")").classList.add("side2"),t.querySelector("li:nth-child("+(e+5)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+6)+")").classList.add("side2")),n},setBase:function(){if("rem"===this.options.cssUnit){var t=document.documentElement,e=window.getComputedStyle(t,null).fontSize;try{this.baseSize=/\d+(?:\.\d+)?/.exec(e)[0]}catch(t){this.baseSize=1}}else this.baseSize=1},toggleClassList:function(t){Array.prototype.slice.call(t.querySelectorAll("li")).forEach(function(t){t.classList.contains("at")?t.classList.remove("at"):t.classList.contains("side1")?t.classList.remove("side1"):t.classList.contains("side2")&&t.classList.remove("side2")})}},void 0!==t&&t.exports?t.exports=u:void 0===(r=function(){return u}.call(e,n,e,t))||(t.exports=r)}()},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},yEsh:function(t,e,n){"use strict";e.__esModule=!0;var r=o(n("Zx67")),i=o(n("K6ED"));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function t(e,n,o){null===e&&(e=Function.prototype);var a=(0,i.default)(e,n);if(void 0===a){var s=(0,r.default)(e);return null===s?void 0:t(s,n,o)}if("value"in a)return a.value;var c=a.get;return void 0!==c?c.call(o):void 0}},yJ2x:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.key,a=r.set;r.exp({defineMetadata:function(t,e,n,r){a(t,e,i(n),o(r))}})},yOtE:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.has,a=r.key;r.exp({hasOwnMetadata:function(t,e){return o(t,i(e),arguments.length<3?void 0:a(arguments[2]))}})},yYvK:function(t,e,n){var r=n("lDLk").f,i=n("WBcL"),o=n("kkCw")("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},ydD5:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},yuXV:function(t,e,n){var r=n("Ds5P"),i=n("OzIq").isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},yx1U:function(t,e,n){var r=n("Ds5P"),i=n("x9zv").f,o=n("DIVP");r(r.S,"Reflect",{deleteProperty:function(t,e){var n=i(o(t),e);return!(n&&!n.configurable)&&delete t[e]}})},z4hc:function(t,e,n){var r=n("aCM0"),i=n("Rh28"),o=n("UnEC"),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(t){return o(t)&&i(t.length)&&!!a[r(t)]}},zCYm:function(t,e,n){"use strict";var r=n("FryR"),i=n("zo/l"),o=n("BbyF");t.exports=function(t){for(var e=r(this),n=o(e.length),a=arguments.length,s=i(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,u=void 0===c?n:i(c,n);u>s;)e[s++]=t;return e}},zQR9:function(t,e,n){"use strict";var r=n("h65t")(!0);n("vIB/")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},zZHq:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.get,a=r.key;r.exp({getOwnMetadata:function(t,e){return o(t,i(e),arguments.length<3?void 0:a(arguments[2]))}})},zgIt:function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},zkX4:function(t,e,n){(function(e){!function(e){"use strict";var n,r=Object.prototype,i=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag",u="object"==typeof t,l=e.regeneratorRuntime;if(l)u&&(t.exports=l);else{(l=e.regeneratorRuntime=u?t.exports:{}).wrap=b;var f="suspendedStart",h="suspendedYield",p="executing",d="completed",v={},m={};m[a]=function(){return this};var y=Object.getPrototypeOf,g=y&&y(y(M([])));g&&g!==r&&i.call(g,a)&&(m=g);var _=k.prototype=x.prototype=Object.create(m);S.prototype=_.constructor=k,k.constructor=S,k[c]=S.displayName="GeneratorFunction",l.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===S||"GeneratorFunction"===(e.displayName||e.name))},l.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,k):(t.__proto__=k,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(_),t},l.awrap=function(t){return{__await:t}},C(T.prototype),T.prototype[s]=function(){return this},l.AsyncIterator=T,l.async=function(t,e,n,r){var i=new T(b(t,e,n,r));return l.isGeneratorFunction(e)?i:i.next().then(function(t){return t.done?t.value:i.next()})},C(_),_[c]="Generator",_[a]=function(){return this},_.toString=function(){return"[object Generator]"},l.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},l.values=M,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(A),!t)for(var e in this)"t"===e.charAt(0)&&i.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,i){return s.type="throw",s.arg=t,e.next=r,i&&(e.method="next",e.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;A(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:M(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function b(t,e,n,r){var i=e&&e.prototype instanceof x?e:x,o=Object.create(i.prototype),a=new P(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===d){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=w(t,e,n);if("normal"===c.type){if(r=n.done?d:h,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=d,n.method="throw",n.arg=c.arg)}}}(t,n,a),o}function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function x(){}function S(){}function k(){}function C(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function T(t){function n(e,r,o,a){var s=w(t[e],t,r);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&i.call(u,"__await")?Promise.resolve(u.__await).then(function(t){n("next",t,o,a)},function(t){n("throw",t,o,a)}):Promise.resolve(u).then(function(t){c.value=t,o(c)},a)}a(s.arg)}var r;"object"==typeof e.process&&e.process.domain&&(n=e.process.domain.bind(n)),this._invoke=function(t,e){function i(){return new Promise(function(r,i){n(t,e,r,i)})}return r=r?r.then(i,i):i()}}function E(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,E(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=w(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,v;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function M(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++rf;)void 0!==(n=c(r,e=u[f++]))&&s(l,e,n);return l}})},"zo/l":function(t,e,n){var r=n("oeih"),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},zpVT:function(t,e,n){var r=n("duB3"),i=n("POb3"),o=n("YeCl"),a=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,g=/^(?:body|html)$/i,y=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],w=l.createElement("table"),x=l.createElement("tr"),E={tr:l.createElement("tbody"),tbody:w,thead:w,tfoot:w,td:x,th:x,"*":l.createElement("div")},T=/complete|loaded|interactive/,S=/^[\w-]*$/,j={},C=j.toString,O={},P=l.createElement("div"),A={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},N=Array.isArray||function(t){return t instanceof Array};function M(t){return null==t?String(t):j[C.call(t)]||"object"}function k(t){return"function"==M(t)}function D(t){return null!=t&&t==t.window}function L(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function F(t){return"object"==M(t)}function $(t){return F(t)&&!D(t)&&Object.getPrototypeOf(t)==Object.prototype}function R(t){return"number"==typeof t.length}function _(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in h?h[t]:h[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function z(t,e){return"number"!=typeof e||p[_(t)]?e:e+"px"}function W(t){return"children"in t?u.call(t.children):n.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function I(t,e){var n,i=t?t.length:0;for(n=0;n")),i===t&&(i=d.test(e)&&RegExp.$1),i in E||(i="*"),(s=E[i]).innerHTML=""+e,o=n.each(u.call(s.childNodes),function(){s.removeChild(this)})),$(r)&&(a=n(o),n.each(r,function(t,e){b.indexOf(t)>-1?a[t](e):a.attr(t,e)})),o},O.Z=function(t,e){return new I(t,e)},O.isZ=function(t){return t instanceof O.Z},O.init=function(e,i){var r,o;if(!e)return O.Z();if("string"==typeof e)if("<"==(e=e.trim())[0]&&d.test(e))r=O.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=O.qsa(l,e)}else{if(k(e))return n(l).ready(e);if(O.isZ(e))return e;if(N(e))o=e,r=c.call(o,function(t){return null!=t});else if(F(e))r=[e],e=null;else if(d.test(e))r=O.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=O.qsa(l,e)}}return O.Z(r,e)},(n=function(t,e){return O.init(t,e)}).extend=function(n){var i,r=u.call(arguments,1);return"boolean"==typeof n&&(i=n,n=r.shift()),r.forEach(function(r){!function n(i,r,o){for(e in r)o&&($(r[e])||N(r[e]))?($(r[e])&&!$(i[e])&&(i[e]={}),N(r[e])&&!N(i[e])&&(i[e]=[]),n(i[e],r[e],o)):r[e]!==t&&(i[e]=r[e])}(n,r,i)}),n},O.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],o=i||r?e.slice(1):e,a=S.test(o);return t.getElementById&&a&&i?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:u.call(a&&!i&&t.getElementsByClassName?r?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=l.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},n.type=M,n.isFunction=k,n.isWindow=D,n.isArray=N,n.isPlainObject=$,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},n.camelCase=r,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.noop=function(){},n.map=function(t,e){var i,r,o,a,s=[];if(R(t))for(r=0;r0?n.fn.concat.apply([],a):a},n.each=function(t,e){var n,i;if(R(t)){for(n=0;n=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return a.every.call(this,function(e,n){return!1!==t.call(e,n,e)}),this},filter:function(t){return k(t)?this.not(this.not(t)):n(c.call(this,function(e){return O.matches(e,t)}))},add:function(t,e){return n(o(this.concat(n(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(e){var i=[];if(k(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):R(e)&&k(e.item)?u.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return F(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!F(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!F(t)?t:n(t)},find:function(t){var e=this;return t?"object"==typeof t?n(t).filter(function(){var t=this;return a.some.call(e,function(e){return n.contains(e,t)})}):1==this.length?n(O.qsa(this[0],t)):this.map(function(){return O.qsa(this,t)}):n()},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:O.matches(i,t));)i=i!==e&&!L(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){if((t=t.parentNode)&&!L(t)&&e.indexOf(t)<0)return e.push(t),t});return Z(e,t)},parent:function(t){return Z(o(this.pluck("parentNode")),t)},children:function(t){return Z(this.map(function(){return W(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||u.call(this.childNodes)})},siblings:function(t){return Z(this.map(function(t,e){return c.call(W(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){var t,e,n;"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=(t=this.nodeName,f[t]||(e=l.createElement(t),l.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),f[t]=n),f[t]))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=k(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){var e;for(n(this[0]).before(t=n(t));(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=k(t);return this.each(function(i){var r=n(this),o=r.contents(),a=e?t.call(this,i):t;o.length?o.wrapAll(a):r.append(a)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var i=this.innerHTML;n(this).empty().append(B(this,t,e,i))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=B(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this[0].textContent:null},attr:function(n,i){var r;return"string"!=typeof n||1 in arguments?this.each(function(t){if(1===this.nodeType)if(F(n))for(e in n)V(this,e,n[e]);else V(this,n,B(this,i,t,this.getAttribute(n)))}):this.length&&1===this[0].nodeType?!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:t},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){V(this,t)},this)})},prop:function(t,e){return t=A[t]||t,1 in arguments?this.each(function(n){this[t]=B(this,e,n,this[t])}):this[0]&&this[0][t]},data:function(e,n){var i="data-"+e.replace(y,"-$1").toLowerCase(),r=1 in arguments?this.attr(i,n):this.attr(i);return null!==r?U(r):t},val:function(t){return 0 in arguments?this.each(function(e){this.value=B(this,t,e,this.value)}):this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=B(this,t,e,i.offset()),o=i.offsetParent().offset(),a={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(a.position="relative"),i.css(a)});if(!this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var o,a=this[0];if(!a)return;if(o=getComputedStyle(a,""),"string"==typeof t)return a.style[r(t)]||o.getPropertyValue(t);if(N(t)){var s={};return n.each(t,function(t,e){s[e]=a.style[r(e)]||o.getPropertyValue(e)}),s}}var c="";if("string"==M(t))i||0===i?c=_(t)+":"+z(t,i):this.each(function(){this.style.removeProperty(_(t))});else for(e in t)t[e]||0===t[e]?c+=_(e)+":"+z(e,t[e])+";":this.each(function(){this.style.removeProperty(_(e))});return this.each(function(){this.style.cssText+=";"+c})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,function(t){return this.test(H(t))},q(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){i=[];var r=H(this);B(this,t,e,r).split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&H(this,r+(r?" ":"")+i.join(" "))}}):this},removeClass:function(e){return this.each(function(n){if("className"in this){if(e===t)return H(this,"");i=H(this),B(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),H(this,i.trim())}})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this);B(this,e,r,H(this)).split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=g.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||l.body;t&&!g.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,a=this[0];return r===t?D(a)?a["inner"+i]:L(a)?a.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){(a=n(this)).css(e,B(this,r,t,a[e]()))})}}),["after","prepend","before","append"].forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,r,o=n.map(arguments,function(e){return"object"==(t=M(e))||"array"==t||null==e?e:O.fragment(e)}),a=this.length>1;return o.length<1?this:this.each(function(t,s){r=i?s:s.parentNode,s=0==e?s.nextSibling:1==e?s.firstChild:2==e?s:null;var c=n.contains(l.documentElement,r);o.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!r)return n(t).remove();r.insertBefore(t,s),c&&function t(e,n){n(e);for(var i=0,r=e.childNodes.length;i)<[^<]*)*<\/script>/gi,a=/^(?:text|application)\/javascript/i,s=/^(?:text|application)\/xml/i,c="application/json",u="text/html",l=/^\s*$/,f=r.createElement("a");function h(e,n,i,o){if(e.global)return function(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}(n||r,i,o)}function p(t,e){var n=e.context;if(!1===e.beforeSend.call(n,t,e)||!1===h(e,n,"ajaxBeforeSend",[t,e]))return!1;h(e,n,"ajaxSend",[t,e])}function d(t,e,n,i){var r=n.context;n.success.call(r,t,"success",e),i&&i.resolveWith(r,[t,"success",e]),h(n,r,"ajaxSuccess",[e,n,t]),v("success",e,n)}function m(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),h(i,o,"ajaxError",[n,i,t||e]),v(e,n,i)}function v(e,n,i){var r=i.context;i.complete.call(r,n,e),h(i,r,"ajaxComplete",[n,i]),function(e){e.global&&!--t.active&&h(e,null,"ajaxStop")}(i)}function g(){}function y(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function b(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}f.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var o,a,s=e.jsonpCallback,c=(t.isFunction(s)?s():s)||"jsonp"+ ++i,u=r.createElement("script"),l=window[c],f=function(e){t(u).triggerHandler("error",e||"abort")},h={abort:f};return n&&n.promise(h),t(u).on("load error",function(i,r){clearTimeout(a),t(u).off().remove(),"error"!=i.type&&o?d(o[0],h,e,n):m(null,r||"error",h,e,n),window[c]=l,o&&t.isFunction(l)&&l(o[0]),l=o=void 0}),!1===p(h,e)?(f("abort"),h):(window[c]=function(){o=arguments},u.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),r.head.appendChild(u),e.timeout>0&&(a=setTimeout(function(){f("timeout")},e.timeout)),h)},t.ajaxSettings={type:"GET",beforeSend:g,success:g,error:g,complete:g,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:c,xml:"application/xml, text/xml",html:u,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(i){var o,v,b=t.extend({},i||{}),w=t.Deferred&&t.Deferred();for(e in t.ajaxSettings)void 0===b[e]&&(b[e]=t.ajaxSettings[e]);!function(e){e.global&&0==t.active++&&h(e,null,"ajaxStart")}(b),b.crossDomain||((o=r.createElement("a")).href=b.url,o.href=o.href,b.crossDomain=f.protocol+"//"+f.host!=o.protocol+"//"+o.host),b.url||(b.url=window.location.toString()),(v=b.url.indexOf("#"))>-1&&(b.url=b.url.slice(0,v)),function(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=y(e.url,e.data),e.data=void 0)}(b);var x=b.dataType,E=/\?.+=\?/.test(b.url);if(E&&(x="jsonp"),!1!==b.cache&&(i&&!0===i.cache||"script"!=x&&"jsonp"!=x)||(b.url=y(b.url,"_="+Date.now())),"jsonp"==x)return E||(b.url=y(b.url,b.jsonp?b.jsonp+"=?":!1===b.jsonp?"":"callback=?")),t.ajaxJSONP(b,w);var T,S=b.accepts[x],j={},C=function(t,e){j[t.toLowerCase()]=[t,e]},O=/^([\w-]+:)\/\//.test(b.url)?RegExp.$1:window.location.protocol,P=b.xhr(),A=P.setRequestHeader;if(w&&w.promise(P),b.crossDomain||C("X-Requested-With","XMLHttpRequest"),C("Accept",S||"*/*"),(S=b.mimeType||S)&&(S.indexOf(",")>-1&&(S=S.split(",",2)[0]),P.overrideMimeType&&P.overrideMimeType(S)),(b.contentType||!1!==b.contentType&&b.data&&"GET"!=b.type.toUpperCase())&&C("Content-Type",b.contentType||"application/x-www-form-urlencoded"),b.headers)for(n in b.headers)C(n,b.headers[n]);if(P.setRequestHeader=C,P.onreadystatechange=function(){if(4==P.readyState){P.onreadystatechange=g,clearTimeout(T);var e,n=!1;if(P.status>=200&&P.status<300||304==P.status||0==P.status&&"file:"==O){x=x||((i=b.mimeType||P.getResponseHeader("content-type"))&&(i=i.split(";",2)[0]),i&&(i==u?"html":i==c?"json":a.test(i)?"script":s.test(i)&&"xml")||"text"),e=P.responseText;try{"script"==x?(0,eval)(e):"xml"==x?e=P.responseXML:"json"==x&&(e=l.test(e)?null:t.parseJSON(e))}catch(t){n=t}n?m(n,"parsererror",P,b,w):d(e,P,b,w)}else m(P.statusText||null,P.status?"error":"abort",P,b,w)}var i},!1===p(P,b))return P.abort(),m(null,"abort",P,b,w),P;var N=!("async"in b)||b.async;if(P.open(b.type,b.url,N,b.username,b.password),b.xhrFields)for(n in b.xhrFields)P[n]=b.xhrFields[n];for(n in j)A.apply(P,j[n]);return b.timeout>0&&(T=setTimeout(function(){P.onreadystatechange=g,P.abort(),m(null,"timeout",P,b,w)},b.timeout)),P.send(b.data?b.data:null),P},t.get=function(){return t.ajax(b.apply(null,arguments))},t.post=function(){var e=b.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=b.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var r,a=this,s=e.split(/\s/),c=b(e,n,i),u=c.success;return s.length>1&&(c.url=s[0],r=s[1]),c.success=function(e){a.html(r?t("
    ").html(e.replace(o,"")).find(r):e),u&&u.apply(a,arguments)},t.ajax(c),this};var w=encodeURIComponent;t.param=function(e,n){var i=[];return i.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(w(e)+"="+w(n))},function e(n,i,r,o){var a,s=t.isArray(i),c=t.isPlainObject(i);t.each(i,function(i,u){a=t.type(u),o&&(i=r?o:o+"["+(c||"object"==a||"array"==a?i:"")+"]"),!o&&s?n.add(u.name,u.value):"array"==a||!r&&"object"==a?e(n,u,r,i):n.add(i,u)})}(i,e,n),i.join("&").replace(/%20/g,"+")}}(o),(n=o).fn.serializeArray=function(){var t,e,i=[],r=function(e){if(e.forEach)return e.forEach(r);i.push({name:t,value:e})};return this[0]&&n.each(this[0].elements,function(i,o){e=o.type,(t=o.name)&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=e&&"reset"!=e&&"button"!=e&&"file"!=e&&("radio"!=e&&"checkbox"!=e||o.checked)&&r(n(o).val())}),i},n.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},n.fn.submit=function(t){if(0 in arguments)this.bind("submit",t);else if(this.length){var e=n.Event("submit");this.eq(0).trigger(e),e.isDefaultPrevented()||this.get(0).submit()}return this},function(){try{getComputedStyle(void 0)}catch(e){var t=getComputedStyle;window.getComputedStyle=function(e){try{return t(e)}catch(t){return null}}}}(),function(t){function e(t,e){var n=this.os={},i=this.browser={},r=t.match(/Web[kK]it[\/]{0,1}([\d.]+)/),o=t.match(/(Android);?[\s\/]+([\d.]+)?/),a=!!t.match(/\(Macintosh\; Intel /),s=t.match(/(iPad).*OS\s([\d_]+)/),c=t.match(/(iPod)(.*OS\s([\d_]+))?/),u=!s&&t.match(/(iPhone\sOS)\s([\d_]+)/),l=t.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),f=/Win\d{2}|Windows/.test(e),h=t.match(/Windows Phone ([\d.]+)/),p=l&&t.match(/TouchPad/),d=t.match(/Kindle\/([\d.]+)/),m=t.match(/Silk\/([\d._]+)/),v=t.match(/(BlackBerry).*Version\/([\d.]+)/),g=t.match(/(BB10).*Version\/([\d.]+)/),y=t.match(/(RIM\sTablet\sOS)\s([\d.]+)/),b=t.match(/PlayBook/),w=t.match(/Chrome\/([\d.]+)/)||t.match(/CriOS\/([\d.]+)/),x=t.match(/Firefox\/([\d.]+)/),E=t.match(/\((?:Mobile|Tablet); rv:([\d.]+)\).*Firefox\/[\d.]+/),T=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/[\d](?=[^\?]+).*rv:([0-9.].)/),S=!w&&t.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),j=S||t.match(/Version\/([\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/);(i.webkit=!!r)&&(i.version=r[1]),o&&(n.android=!0,n.version=o[2]),u&&!c&&(n.ios=n.iphone=!0,n.version=u[2].replace(/_/g,".")),s&&(n.ios=n.ipad=!0,n.version=s[2].replace(/_/g,".")),c&&(n.ios=n.ipod=!0,n.version=c[3]?c[3].replace(/_/g,"."):null),h&&(n.wp=!0,n.version=h[1]),l&&(n.webos=!0,n.version=l[2]),p&&(n.touchpad=!0),v&&(n.blackberry=!0,n.version=v[2]),g&&(n.bb10=!0,n.version=g[2]),y&&(n.rimtabletos=!0,n.version=y[2]),b&&(i.playbook=!0),d&&(n.kindle=!0,n.version=d[1]),m&&(i.silk=!0,i.version=m[1]),!m&&n.android&&t.match(/Kindle Fire/)&&(i.silk=!0),w&&(i.chrome=!0,i.version=w[1]),x&&(i.firefox=!0,i.version=x[1]),E&&(n.firefoxos=!0,n.version=E[1]),T&&(i.ie=!0,i.version=T[1]),j&&(a||n.ios||f)&&(i.safari=!0,n.ios||(i.version=j[1])),S&&(i.webview=!0),n.tablet=!!(s||b||o&&!t.match(/Mobile/)||x&&t.match(/Tablet/)||T&&!t.match(/Phone/)&&t.match(/Touch/)),n.phone=!(n.tablet||n.ipod||!(o||u||l||v||g||w&&t.match(/Android/)||w&&t.match(/CriOS\/([\d.]+)/)||x&&t.match(/Mobile/)||T&&t.match(/Touch/)))}e.call(t,navigator.userAgent,navigator.platform),t.__detect=e}(o),function(t,e){var n,i,r,o,a,s,c,u,l,f,h="",p=document.createElement("div"),d=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,m={};function v(t){return n?n+t:t.toLowerCase()}t.each({Webkit:"webkit",Moz:"",O:"o"},function(t,e){if(void 0!==p.style[t+"TransitionProperty"])return h="-"+t.toLowerCase()+"-",n=e,!1}),i=h+"transform",m[r=h+"transition-property"]=m[o=h+"transition-duration"]=m[s=h+"transition-delay"]=m[a=h+"transition-timing-function"]=m[c=h+"animation-name"]=m[u=h+"animation-duration"]=m[f=h+"animation-delay"]=m[l=h+"animation-timing-function"]="",t.fx={off:void 0===n&&void 0===p.style.transitionProperty,speeds:{_default:400,fast:200,slow:600},cssPrefix:h,transitionEnd:v("TransitionEnd"),animationEnd:v("AnimationEnd")},t.fn.animate=function(e,n,i,r,o){return t.isFunction(n)&&(r=n,i=void 0,n=void 0),t.isFunction(i)&&(r=i,i=void 0),t.isPlainObject(n)&&(i=n.easing,r=n.complete,o=n.delay,n=n.duration),n&&(n=("number"==typeof n?n:t.fx.speeds[n]||t.fx.speeds._default)/1e3),o&&(o=parseFloat(o)/1e3),this.anim(e,n,i,r,o)},t.fn.anim=function(e,n,h,p,v){var g,y,b,w={},x="",E=this,T=t.fx.transitionEnd,S=!1;if(void 0===n&&(n=t.fx.speeds._default/1e3),void 0===v&&(v=0),t.fx.off&&(n=0),"string"==typeof e)w[c]=e,w[u]=n+"s",w[f]=v+"s",w[l]=h||"linear",T=t.fx.animationEnd;else{for(g in y=[],e)d.test(g)?x+=g+"("+e[g]+") ":(w[g]=e[g],y.push(g.replace(/([a-z])([A-Z])/,"$1-$2").toLowerCase()));x&&(w[i]=x,y.push(i)),n>0&&"object"==typeof e&&(w[r]=y.join(", "),w[o]=n+"s",w[s]=v+"s",w[a]=h||"linear")}return b=function(e){if(void 0!==e){if(e.target!==e.currentTarget)return;t(e.target).unbind(T,b)}else t(this).unbind(T,b);S=!0,t(this).css(m),p&&p.call(this)},n>0&&(this.bind(T,b),setTimeout(function(){S||b.call(E)},1e3*(n+v)+25)),this.size()&&this.get(0).clientLeft,this.css(w),n<=0&&setTimeout(function(){E.each(function(){b.call(this)})},0),this},p=null}(o),function(t,e){window.document.documentElement;var n=t.fn.show,i=t.fn.hide,r=t.fn.toggle;function o(n,i,r,o,a){"function"!=typeof i||a||(a=i,i=e);var s={opacity:r};return o&&(s.scale=o,n.css(t.fx.cssPrefix+"transform-origin","0 0")),n.animate(s,i,null,a)}function a(e,n,r,a){return o(e,n,0,r,function(){i.call(t(this)),a&&a.call(this)})}t.fn.show=function(t,i){return n.call(this),t===e?t=0:this.css("opacity",0),o(this,t,1,"1,1",i)},t.fn.hide=function(t,n){return t===e?i.call(this):a(this,t,"0,0",n)},t.fn.toggle=function(n,i){return n===e||"boolean"==typeof n?r.call(this,n):this.each(function(){var e=t(this);e["none"==e.css("display")?"show":"hide"](n,i)})},t.fn.fadeTo=function(t,e,n){return o(this,t,e,null,n)},t.fn.fadeIn=function(t,e){var i=this.css("opacity");return i>0?this.css("opacity",0):i=1,n.call(this).fadeTo(t,i,e)},t.fn.fadeOut=function(t,e){return a(this,t,null,e)},t.fn.fadeToggle=function(e,n){return this.each(function(){var i=t(this);i[0==i.css("opacity")||"none"==i.css("display")?"fadeIn":"fadeOut"](e,n)})}}(o),r=[],o.fn.remove=function(){return this.each(function(){this.parentNode&&("IMG"===this.tagName&&(r.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",i&&clearTimeout(i),i=setTimeout(function(){r=[]},6e4)),this.parentNode.removeChild(this))})},function(t){var e={},n=t.fn.data,i=t.camelCase,r=t.expando="Zepto"+ +new Date,o=[];function a(n,a,s){var c=n[r]||(n[r]=++t.uuid),u=e[c]||(e[c]=function(e){var n={};return t.each(e.attributes||o,function(e,r){0==r.name.indexOf("data-")&&(n[i(r.name.replace("data-",""))]=t.zepto.deserializeValue(r.value))}),n}(n));return void 0!==a&&(u[i(a)]=s),u}t.fn.data=function(o,s){return void 0===s?t.isPlainObject(o)?this.each(function(e,n){t.each(o,function(t,e){a(n,t,e)})}):0 in this?function(o,s){var c=o[r],u=c&&e[c];if(void 0===s)return u||a(o);if(u){if(s in u)return u[s];var l=i(s);if(l in u)return u[l]}return n.call(t(o),s)}(this[0],o):void 0:this.each(function(){a(this,o,s)})},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each(function(){var o=this[r],a=o&&e[o];a&&t.each(n||a,function(t){delete a[n?i(this):t]})})},["remove","empty"].forEach(function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}})}(o),function(t){t.Callbacks=function(e){var n,i,r,o,a,s,c=[],u=!(e=t.extend({},e)).once&&[],l=function(t){for(n=e.memory&&t,i=!0,s=o||0,o=0,a=c.length,r=!0;c&&s-1;)c.splice(i,1),r&&(i<=a&&--a,i<=s&&--s)}),this},has:function(e){return!(!c||!(e?t.inArray(e,c)>-1:c.length))},empty:function(){return a=c.length=0,this},disable:function(){return c=u=n=void 0,this},disabled:function(){return!c},lock:function(){return u=void 0,n||f.disable(),this},locked:function(){return!u},fireWith:function(t,e){return!c||i&&!u||(e=[t,(e=e||[]).slice?e.slice():e],r?u.push(e):l(e)),this},fire:function(){return f.fireWith(this,arguments)},fired:function(){return!!i}};return f}}(o),function(t){var e=Array.prototype.slice;function n(e){var i=[["resolve","done",t.Callbacks({once:1,memory:1}),"resolved"],["reject","fail",t.Callbacks({once:1,memory:1}),"rejected"],["notify","progress",t.Callbacks({memory:1})]],r="pending",o={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var e=arguments;return n(function(n){t.each(i,function(i,r){var s=t.isFunction(e[i])&&e[i];a[r[1]](function(){var e=s&&s.apply(this,arguments);if(e&&t.isFunction(e.promise))e.promise().done(n.resolve).fail(n.reject).progress(n.notify);else{var i=this===o?n.promise():this,a=s?[e]:arguments;n[r[0]+"With"](i,a)}})}),e=null}).promise()},promise:function(e){return null!=e?t.extend(e,o):o}},a={};return t.each(i,function(t,e){var n=e[2],s=e[3];o[e[1]]=n.add,s&&n.add(function(){r=s},i[1^t][2].disable,i[2][2].lock),a[e[0]]=function(){return a[e[0]+"With"](this===a?o:this,arguments),this},a[e[0]+"With"]=n.fireWith}),o.promise(a),e&&e.call(a,a),a}t.when=function(i){var r,o,a,s=e.call(arguments),c=s.length,u=0,l=1!==c||i&&t.isFunction(i.promise)?c:0,f=1===l?i:n(),h=function(t,n,i){return function(o){n[t]=this,i[t]=arguments.length>1?e.call(arguments):o,i===r?f.notifyWith(n,i):--l||f.resolveWith(n,i)}};if(c>1)for(r=new Array(c),o=new Array(c),a=new Array(c);u-1)return this},has:function(t,n,i){if(e.qsa(this,i).length)return this}},a=new RegExp("(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*"),s=/^\s*>/,c="Zepto"+ +new Date;function u(t,e){t=t.replace(/=#\]/g,'="#"]');var n,i,r=a.exec(t);if(r&&r[2]in o&&(n=o[r[2]],i=r[3],t=r[1],i)){var s=Number(i);i=isNaN(s)?i.replace(/^["']|["']$/g,""):s}return e(t,n,i)}e.qsa=function(i,r){return u(r,function(r,o,a){try{var u;!r&&o?r="*":s.test(r)&&(u=t(i).addClass(c),r="."+c+" "+r);var l=n(i,r)}catch(t){throw t}finally{u&&u.removeClass(c)}return o?e.uniq(t.map(l,function(t,e){return o.call(t,e,l,a)})):l})},e.matches=function(t,e){return u(e,function(e,n,r){return(!e||i(t,e))&&(!n||n.call(t,null,r)===t)})}}(o),function(t){var e,n,i,r,o,a={};function s(){r=null,a.last&&(a.el&&a.el.trigger("longTap"),a={})}function c(){r&&clearTimeout(r),r=null}function u(){e&&clearTimeout(e),n&&clearTimeout(n),i&&clearTimeout(i),r&&clearTimeout(r),e=n=i=r=null,a={}}function l(t){return("touch"==t.pointerType||t.pointerType==t.MSPOINTER_TYPE_TOUCH)&&t.isPrimary}function f(t,e){return t.type=="pointer"+e||t.type.toLowerCase()=="mspointer"+e}t(document).ready(function(){var h,p,d,m,v=0,g=0;"MSGesture"in window&&((o=new MSGesture).target=document.body),t(document).bind("MSGestureEnd",function(t){var e=t.velocityX>1?"Right":t.velocityX<-1?"Left":t.velocityY>1?"Down":t.velocityY<-1?"Up":null;e&&(a.el&&a.el.trigger("swipe"),a.el&&a.el.trigger("swipe"+e))}).on("touchstart MSPointerDown pointerdown",function(n){(m=f(n,"down"))&&!l(n)||(d=m?n:n.touches[0],n.touches&&1===n.touches.length&&a.x2&&(a.x2=void 0,a.y2=void 0),h=Date.now(),p=h-(a.last||h),a.el=t("tagName"in d.target?d.target:d.target.parentNode),e&&clearTimeout(e),a.x1=d.pageX,a.y1=d.pageY,p>0&&p<=250&&(a.isDoubleTap=!0),a.last=h,r=setTimeout(s,750),o&&m&&o.addPointer(n.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){(m=f(t,"move"))&&!l(t)||(d=m?t:t.touches[0],c(),a.x2=d.pageX,a.y2=d.pageY,v+=Math.abs(a.x1-a.x2),g+=Math.abs(a.y1-a.y2))}).on("touchend MSPointerUp pointerup",function(r){(m=f(r,"up"))&&!l(r)||(c(),a.x2&&Math.abs(a.x1-a.x2)>30||a.y2&&Math.abs(a.y1-a.y2)>30?i=setTimeout(function(){var t,e,n,i;a.el&&a.el.trigger("swipe"),a.el&&a.el.trigger("swipe"+(t=a.x1,e=a.x2,n=a.y1,i=a.y2,Math.abs(t-e)>=Math.abs(n-i)?t-e>0?"Left":"Right":n-i>0?"Up":"Down")),a={}},0):"last"in a&&(v<30&&g<30?n=setTimeout(function(){var n=t.Event("tap");n.cancelTouch=u,a.el&&a.el.trigger(n),a.isDoubleTap?(a.el&&a.el.trigger("doubleTap"),a={}):e=setTimeout(function(){e=null,a.el&&a.el.trigger("singleTap"),a={}},250)},0):a={}),v=g=0)}).on("touchcancel MSPointerCancel pointercancel",u),t(window).on("scroll",u)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(e){t.fn[e]=function(t){return this.on(e,t)}})}(o),function(t){t.fn.end=function(){return this.prevObject||t()},t.fn.andSelf=function(){return this.add(this.prevObject||t())},"filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings".split(",").forEach(function(e){var n=t.fn[e];t.fn[e]=function(){var t=n.apply(this,arguments);return t.prevObject=this,t}})}(o)}}); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/10290.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/10290.webp" new file mode 100644 index 0000000000000000000000000000000000000000..76f004053758d7e86e26a594d2d30d6c1406a60d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/10290.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/11835.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/11835.webp" new file mode 100644 index 0000000000000000000000000000000000000000..bf64c0db8c6fb7a7f3bf0335a9edb08d9db1e942 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/11835.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/12452.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/12452.webp" new file mode 100644 index 0000000000000000000000000000000000000000..6a58c11ebf05a7b2cde30fcbfe30d9d360b961c6 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/12452.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/55163.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/55163.webp" new file mode 100644 index 0000000000000000000000000000000000000000..5d279c92cb57a5b58209b21eb9524f930e4981da Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/55163.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/95287.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/95287.webp" new file mode 100644 index 0000000000000000000000000000000000000000..c20f9b808636c394045bade1eee183239698b9e2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2051/95287.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/112899.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/112899.webp" new file mode 100644 index 0000000000000000000000000000000000000000..9fd2a750b736d2cd1637462f7ee8324fc6e11387 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/112899.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/136881.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/136881.webp" new file mode 100644 index 0000000000000000000000000000000000000000..66f655fc1a19546c5a49eea3b4cdd3dd9253d408 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/136881.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/170034.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/170034.webp" new file mode 100644 index 0000000000000000000000000000000000000000..cc4437ed770d8d21c85f0041f7d12d8698c62c64 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/170034.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/175126.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/175126.webp" new file mode 100644 index 0000000000000000000000000000000000000000..6a0d6982b916c114efadbbd6ae9cb30953f97dc9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/175126.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/197390.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/197390.webp" new file mode 100644 index 0000000000000000000000000000000000000000..9dca24ac4f5701b366c9632bc71ccfcd15912e56 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\345\245\263\350\243\2052/197390.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/0bb9aa.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/0bb9aa.webp" new file mode 100644 index 0000000000000000000000000000000000000000..4b3fb42e98675424c7630e49996710970a4df4e9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/0bb9aa.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/105293.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/105293.webp" new file mode 100644 index 0000000000000000000000000000000000000000..d2f1e31f0dd65ce986e02ab3b4aababe70b3bc36 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/105293.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/141038.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/141038.webp" new file mode 100644 index 0000000000000000000000000000000000000000..09f6f55515746e627d31ba10107c04e940201975 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/141038.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/195403.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/195403.webp" new file mode 100644 index 0000000000000000000000000000000000000000..59d6b93359086e7a51fece46013b7e9fad7e27c5 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/195403.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/46004.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/46004.webp" new file mode 100644 index 0000000000000000000000000000000000000000..f8afafb65c88330b689f8479caca9982f55b2344 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/46004.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/5751ae.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/5751ae.webp" new file mode 100644 index 0000000000000000000000000000000000000000..65ba9ce90fed9b2fa0709b4723da5ff056b65fde Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\224\267\350\243\205/5751ae.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/$74`O7E9HMU%MY}TO5GH]KR.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/$74`O7E9HMU%MY}TO5GH]KR.png" new file mode 100644 index 0000000000000000000000000000000000000000..5da4a4a8157d3bf09e8dfe5f086d031b159eb934 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/$74`O7E9HMU%MY}TO5GH]KR.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/0737e.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/0737e.webp" new file mode 100644 index 0000000000000000000000000000000000000000..46f8ac7a8813c4f7a3d3bb35b100d68d8638d3cc Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/0737e.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/15770.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/15770.webp" new file mode 100644 index 0000000000000000000000000000000000000000..86abf234fd089b7ebfc2c2d7c09b0061c450cc7c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/15770.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/15978.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/15978.webp" new file mode 100644 index 0000000000000000000000000000000000000000..07be186aecef491a9231445e0f1d236a3d911383 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/15978.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/16249.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/16249.webp" new file mode 100644 index 0000000000000000000000000000000000000000..6d6f145caf799a2800704b0a393f8c8713cc4e1a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/16249.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/195890.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/195890.webp" new file mode 100644 index 0000000000000000000000000000000000000000..e7d446c4933d65f37b5781f1774032c767d9067b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/195890.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/3bc76.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/3bc76.webp" new file mode 100644 index 0000000000000000000000000000000000000000..10525b5fd30a250a323664a8a79092d01c09c8ef Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/3bc76.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/FD%(}{Z734O11R1}_[`@CIF.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/FD%(}{Z734O11R1}_[`@CIF.png" new file mode 100644 index 0000000000000000000000000000000000000000..152d2b95c3cda1588efac509f4072c18d4632160 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/FD%(}{Z734O11R1}_[`@CIF.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/HI2`5[SB0RB]EKMT9KOU~F1.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/HI2`5[SB0RB]EKMT9KOU~F1.png" new file mode 100644 index 0000000000000000000000000000000000000000..118f46193859b7fe006fd77c13756f9fb11a5d9a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/HI2`5[SB0RB]EKMT9KOU~F1.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/d8211.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/d8211.webp" new file mode 100644 index 0000000000000000000000000000000000000000..953cb7d54331d26d92fa0a44c829599ef3f4e971 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/d8211.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/edfbaa.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/edfbaa.webp" new file mode 100644 index 0000000000000000000000000000000000000000..66f133278cf893f5560896eb793a40dc02d0f6e1 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/edfbaa.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/gougou.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/gougou.png" new file mode 100644 index 0000000000000000000000000000000000000000..66fcb00cee6b664c0f506bb76d738dd82816553c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/gougou.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/\344\270\213\350\275\275.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/\344\270\213\350\275\275.png" new file mode 100644 index 0000000000000000000000000000000000000000..03b74b36bd6036bc749b76c43273f3ae6e6dd70e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\347\253\245\350\243\205/\344\270\213\350\275\275.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\350\264\255\347\211\251\350\275\246/\345\256\242\346\234\215.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\350\264\255\347\211\251\350\275\246/\345\256\242\346\234\215.png" new file mode 100644 index 0000000000000000000000000000000000000000..c60dc3879d275220bbb30cbac9916e360b848381 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\350\264\255\347\211\251\350\275\246/\345\256\242\346\234\215.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\350\264\255\347\211\251\350\275\246/\350\264\255\347\211\251\350\275\246.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\350\264\255\347\211\251\350\275\246/\350\264\255\347\211\251\350\275\246.png" new file mode 100644 index 0000000000000000000000000000000000000000..cda1f989096369f05926eb91ee1a612365962092 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/assets/assets/\350\264\255\347\211\251\350\275\246/\350\264\255\347\211\251\350\275\246.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/favicon.ico" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/favicon.ico" new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/favicon.ico" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/index.html" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..ce91b4c0587db7da983aa787a465b9f6fb36e6fa --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/public/index.html" @@ -0,0 +1,23 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + +
    + + + diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/App.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/App.vue" new file mode 100644 index 0000000000000000000000000000000000000000..f8f6625d528be3a3cac0dc0196e10d43774ad9f4 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/App.vue" @@ -0,0 +1,28 @@ + + + + + diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1640673429341_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1640673429341_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e1abc7cf0d1afe0824456df62229ad0f21cf9e72 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1640673429341_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1640674650632_90x30_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1640674650632_90x30_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..68a53f1f4e38283818007d22f7831592495f2cd8 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1640674650632_90x30_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1649816502812_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1649816502812_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fc02bff35f3f60d895668caaf7048ccb8b228032 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1649816502812_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1649938103407_750x17_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1649938103407_750x17_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..53e15ee28b83f5f7aa95685a1677f25a207af49d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1649938103407_750x17_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650281323695_375x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650281323695_375x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..3776d44b8d1366d2281f49d2509b9b6739ddec39 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650281323695_375x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650281509438_375x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650281509438_375x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..9d691db370e59a32d0a2a822ea8e783e9c41d999 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650281509438_375x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650352051919_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650352051919_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fcdd414a51b9500d9952e195d892c4064153542f Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650352051919_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650357324182_750x126_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650357324182_750x126_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..baa4194d556c4387e6a47251d78a90819b4396e2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650357324182_750x126_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650362183349_750x328_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650362183349_750x328_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..56ce64a4a883725536124d66de21b53d9ee5b50b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650362183349_750x328_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650372195853_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650372195853_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..91543652eeb1694f9b0c6ac943bd879f77066afb Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650372195853_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650460074012_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650460074012_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d7b5df8c0e556ffb10ac3b288ca3ba09ee81482a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650460074012_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650467634734_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650467634734_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e9cb9dec9c0e97c1d016b010d4f2b20dba7d96e9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650467634734_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650469169913_750x438_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650469169913_750x438_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..87f8291708aa5a879f576e55362d2966f8fc07b9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650469169913_750x438_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650469203822_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650469203822_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..440fd481acd5343fb5621309c8c42cfb96140886 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/1650469203822_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/aaa.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/aaa.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f1543c5316f7c2cb7a64718e04850a5dbfe311d2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/aaa.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/bbb.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/bbb.png" new file mode 100644 index 0000000000000000000000000000000000000000..3934eefa3f0bf45107a18f4388f634e53dc40491 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/bbb.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ccc.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ccc.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..057a1e06617f1097bb334f12ec7dabbef6e0caa9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ccc.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/d6511a21-628e-4c15-ad71-b0de6da03f4c_164x164_90.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/d6511a21-628e-4c15-ad71-b0de6da03f4c_164x164_90.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..b4f65fa1f06a296a914da375d5ed3d39bd30cefc Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/d6511a21-628e-4c15-ad71-b0de6da03f4c_164x164_90.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ddd.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ddd.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..09c190e51decd7aac63766f5a711c3c080121d8b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ddd.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/eee.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/eee.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f6989f9c08fdea4146a1e92b93b7bb66da07f60d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/eee.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_299f2b4556309cf4fa4e1d491f2dbe8b_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_299f2b4556309cf4fa4e1d491f2dbe8b_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..7a2d33faff0e08e0b406c0ccebb4a888669f8454 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_299f2b4556309cf4fa4e1d491f2dbe8b_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_4c64743a8569c0a410be11695efe2d75_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_4c64743a8569c0a410be11695efe2d75_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..df6756de6779d7139f95f5c563a3a45f5ede77f8 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_4c64743a8569c0a410be11695efe2d75_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_5fe78f7048ba284ed942369d348bec81_150x150_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_5fe78f7048ba284ed942369d348bec81_150x150_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e80dc16eaad0920423ba3c8d53129011158ce739 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_5fe78f7048ba284ed942369d348bec81_150x150_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_6a7f07d7637cc3e3a4bcc41934a02c39_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_6a7f07d7637cc3e3a4bcc41934a02c39_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..063d55d4a9adfe9a63bc2bddadd5bfcf0a7c8587 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_6a7f07d7637cc3e3a4bcc41934a02c39_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_79267dc19f7ab86ed62c4c80106a3f04_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_79267dc19f7ab86ed62c4c80106a3f04_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..ee67350c76af269bae5fd28661654d2b6d450234 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_79267dc19f7ab86ed62c4c80106a3f04_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_7eb4937630ea4a3c01220f4205a1a791_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_7eb4937630ea4a3c01220f4205a1a791_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..7d0df474a3b63d344407afd07203373e19767f99 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_7eb4937630ea4a3c01220f4205a1a791_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_d3c22b5467a5a1c6a4e8050e84953fa3_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_d3c22b5467a5a1c6a4e8050e84953fa3_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..df75cfa4d5c7bb407b5f576eb8d0ca474c0cee2c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_d3c22b5467a5a1c6a4e8050e84953fa3_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_d877b9044487ee47552a33524476ce38_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_d877b9044487ee47552a33524476ce38_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..252b8f92ef80d8f31317d691040326d02349435d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_d877b9044487ee47552a33524476ce38_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d954558979bef4e93a8d9ddbc63ef08c7c6a97be Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_f3d33a58987c2f06d018a84365529bbb_150x150_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_f3d33a58987c2f06d018a84365529bbb_150x150_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..b168069b7f5c3277da84472c43855e3581fdcdfa Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/ias_f3d33a58987c2f06d018a84365529bbb_150x150_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/primary_96x48_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/primary_96x48_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fbbc981000f086ebbadba1041cde19b39b5b07bd Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/primary_96x48_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/primary_96x48_902.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/primary_96x48_902.png" new file mode 100644 index 0000000000000000000000000000000000000000..8f8f277ae866ca1d29b09106a09875bc31acaf02 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/primary_96x48_902.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\344\270\213\350\275\275.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\344\270\213\350\275\275.png" new file mode 100644 index 0000000000000000000000000000000000000000..69676bace4834991bae8217981bd340ac40f17ee Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\344\270\213\350\275\275.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1531301431219.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1531301431219.png" new file mode 100644 index 0000000000000000000000000000000000000000..323a5b2b813fe47be65ef9f6b336efc5477be77a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1531301431219.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673429341_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673429341_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..e1abc7cf0d1afe0824456df62229ad0f21cf9e72 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673429341_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673491466_84x28_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673491466_84x28_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..6d7cae032b24860e3758e10ab03eff3d397132fe Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640673491466_84x28_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640674650632_90x30_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640674650632_90x30_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..68a53f1f4e38283818007d22f7831592495f2cd8 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1640674650632_90x30_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715432533_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715432533_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..faf4c916d9c1883715a38b6cdf04fd44da67779c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715432533_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715512775_134x134_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715512775_134x134_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..faf4c916d9c1883715a38b6cdf04fd44da67779c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1648715512775_134x134_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816502812_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816502812_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fc02bff35f3f60d895668caaf7048ccb8b228032 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816502812_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816506443_152x52_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816506443_152x52_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..fc02bff35f3f60d895668caaf7048ccb8b228032 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649816506443_152x52_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649938103407_750x17_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649938103407_750x17_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..53e15ee28b83f5f7aa95685a1677f25a207af49d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1649938103407_750x17_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650361981762_750x328_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650361981762_750x328_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..060404857d05872f71f6672b0ae38b96e0777eac Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650361981762_750x328_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650363097863_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650363097863_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..0e1ed6ca19b93fdbb0d508ea1fd6d7a793288f64 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650363097863_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650372160397_375x186_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650372160397_375x186_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..bb88e859b4373159162ab97636602edbaa7a1a64 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650372160397_375x186_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378156404_375x284_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378156404_375x284_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..19c4f1cf3882bb45ba88ff1bd0edd53fc0740cbe Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378156404_375x284_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378161157_375x284_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378161157_375x284_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..86f2885b84b6d35a63508fbeb304650a1584dd98 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650378161157_375x284_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650439988509_750x126_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650439988509_750x126_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..f04078f3c23b5d2af345c8ed230d31b354da1e35 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650439988509_750x126_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527090378_750x438_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527090378_750x438_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..011ebb010ec51ae6771eb8b6735d0fd9d5a11d45 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527090378_750x438_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527333782_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527333782_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d51572b867f7636445c060405627bf3bfe3ace3b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650527333782_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650528353654_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650528353654_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..a08874756ec4f236ce86490398a210a26d69af0e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650528353654_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650535301674_229x274_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650535301674_229x274_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..6854ebdffa42d35e86d354c33d40876684d151db Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/1650535301674_229x274_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/cps.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/cps.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..4083eac543c48512b93f617fe6915b01948f469a --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/cps.js.\344\270\213\350\275\275" @@ -0,0 +1,314 @@ +(function(){ + var BASE64_MAPPING = [ + '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','0','1','2','3', + '4','5','6','7','8','9','+','/' + ]; + + /** + *ascii convert to binary + */ + var _toBinary = function(ascii){ + var binary = new Array(); + while(ascii > 0){ + var b = ascii%2; + ascii = Math.floor(ascii/2); + binary.push(b); + } + /* + var len = binary.length; + if(6-len > 0){ + for(var i = 6-len ; i > 0 ; --i){ + binary.push(0); + } + }*/ + binary.reverse(); + return binary; + }; + + /** + *binary convert to decimal + */ + var _toDecimal = function(binary){ + var dec = 0; + var p = 0; + for(var i = binary.length-1 ; i >= 0 ; --i){ + var b = binary[i]; + if(b == 1){ + dec += Math.pow(2 , p); + } + ++p; + } + return dec; + }; + + /** + *unicode convert to utf-8 + */ + var _toUTF8Binary = function(c , binaryArray){ + var mustLen = (8-(c+1)) + ((c-1)*6); + var fatLen = binaryArray.length; + var diff = mustLen - fatLen; + while(--diff >= 0){ + binaryArray.unshift(0); + } + var binary = []; + var _c = c; + while(--_c >= 0){ + binary.push(1); + } + binary.push(0); + var i = 0 , len = 8 - (c+1); + for(; i < len ; ++i){ + binary.push(binaryArray[i]); + } + + for(var j = 0 ; j < c-1 ; ++j){ + binary.push(1); + binary.push(0); + var sum = 6; + while(--sum >= 0){ + binary.push(binaryArray[i++]); + } + } + return binary; + }; + + var __BASE64 = { + /** + *BASE64 Encode + */ + encoder:function(str){ + var base64_Index = []; + var binaryArray = []; + for(var i = 0 , len = str.length ; i < len ; ++i){ + var unicode = str.charCodeAt(i); + var _tmpBinary = _toBinary(unicode); + if(unicode < 0x80){ + var _tmpdiff = 8 - _tmpBinary.length; + while(--_tmpdiff >= 0){ + _tmpBinary.unshift(0); + } + binaryArray = binaryArray.concat(_tmpBinary); + }else if(unicode >= 0x80 && unicode <= 0x7FF){ + binaryArray = binaryArray.concat(_toUTF8Binary(2 , _tmpBinary)); + }else if(unicode >= 0x800 && unicode <= 0xFFFF){//UTF-8 3byte + binaryArray = binaryArray.concat(_toUTF8Binary(3 , _tmpBinary)); + }else if(unicode >= 0x10000 && unicode <= 0x1FFFFF){//UTF-8 4byte + binaryArray = binaryArray.concat(_toUTF8Binary(4 , _tmpBinary)); + }else if(unicode >= 0x200000 && unicode <= 0x3FFFFFF){//UTF-8 5byte + binaryArray = binaryArray.concat(_toUTF8Binary(5 , _tmpBinary)); + }else if(unicode >= 4000000 && unicode <= 0x7FFFFFFF){//UTF-8 6byte + binaryArray = binaryArray.concat(_toUTF8Binary(6 , _tmpBinary)); + } + } + + var extra_Zero_Count = 0; + for(var i = 0 , len = binaryArray.length ; i < len ; i+=6){ + var diff = (i+6)-len; + if(diff == 2){ + extra_Zero_Count = 2; + }else if(diff == 4){ + extra_Zero_Count = 4; + } + //if(extra_Zero_Count > 0){ + // len += extra_Zero_Count+1; + //} + var _tmpExtra_Zero_Count = extra_Zero_Count; + while(--_tmpExtra_Zero_Count >= 0){ + binaryArray.push(0); + } + base64_Index.push(_toDecimal(binaryArray.slice(i , i+6))); + } + + var base64 = ''; + for(var i = 0 , len = base64_Index.length ; i < len ; ++i){ + base64 += BASE64_MAPPING[base64_Index[i]]; + } + + for(var i = 0 , len = extra_Zero_Count/2 ; i < len ; ++i){ + base64 += '='; + } + return base64; + }, + /** + *BASE64 Decode for UTF-8 + */ + decoder : function(_base64Str){ + var _len = _base64Str.length; + var extra_Zero_Count = 0; + /** + * 璁$畻鍦ㄨ繘琛孊ASE64缂栫爜鐨勬椂鍊欙紝琛ヤ簡鍑犱釜0 + */ + if(_base64Str.charAt(_len-1) == '='){ + //alert(_base64Str.charAt(_len-1)); + //alert(_base64Str.charAt(_len-2)); + if(_base64Str.charAt(_len-2) == '='){//涓や釜绛夊彿璇存槑琛ヤ簡4涓0 + extra_Zero_Count = 4; + _base64Str = _base64Str.substring(0 , _len-2); + }else{//涓涓瓑鍙疯鏄庤ˉ浜2涓0 + extra_Zero_Count = 2; + _base64Str = _base64Str.substring(0 , _len - 1); + } + } + + var binaryArray = []; + for(var i = 0 , len = _base64Str.length; i < len ; ++i){ + var c = _base64Str.charAt(i); + for(var j = 0 , size = BASE64_MAPPING.length ; j < size ; ++j){ + if(c == BASE64_MAPPING[j]){ + var _tmp = _toBinary(j); + /*涓嶈冻6浣嶇殑琛0*/ + var _tmpLen = _tmp.length; + if(6-_tmpLen > 0){ + for(var k = 6-_tmpLen ; k > 0 ; --k){ + _tmp.unshift(0); + } + } + binaryArray = binaryArray.concat(_tmp); + break; + } + } + } + + if(extra_Zero_Count > 0){ + binaryArray = binaryArray.slice(0 , binaryArray.length - extra_Zero_Count); + } + + var unicode = []; + var unicodeBinary = []; + for(var i = 0 , len = binaryArray.length ; i < len ; ){ + if(binaryArray[i] == 0){ + unicode=unicode.concat(_toDecimal(binaryArray.slice(i,i+8))); + i += 8; + }else{ + var sum = 0; + while(i < len){ + if(binaryArray[i] == 1){ + ++sum; + }else{ + break; + } + ++i; + } + unicodeBinary = unicodeBinary.concat(binaryArray.slice(i+1 , i+8-sum)); + i += 8 - sum; + while(sum > 1){ + unicodeBinary = unicodeBinary.concat(binaryArray.slice(i+2 , i+8)); + i += 8; + --sum; + } + unicode = unicode.concat(_toDecimal(unicodeBinary)); + unicodeBinary = []; + } + } + return unicode; + } + }; + window.BASE64 = __BASE64; +}) +(); + +function getCookie(c_name) +{ + if (document.cookie.length>0){ + c_start=document.cookie.indexOf(c_name + "=") + if (c_start!=-1){ + c_start=c_start + c_name.length+1 + c_end=document.cookie.indexOf(";",c_start) + if (c_end==-1) c_end=document.cookie.length + return unescape(decodeURI(document.cookie.substring(c_start,c_end),"UTF-8")) + } + } + return "" +} + +function encodeCpsLink(link){ + var cps_link = ""; + var json_str = ""; + var landingUrl = link || document.location.href; + var cps_cookie = getCookie("cps").split(":"); + if(cps_cookie.length >= 8) { + if("adp" == cps_cookie[0]) { + json_str = {"schemecode": cps_cookie[6], "ucode": cps_cookie[1], "desturl": landingUrl}; + } else { + json_str = {"schemecode": cps_cookie[1], "ucode": cps_cookie[2], "desturl": landingUrl}; + } + } else if(cps_cookie.length > 1) { + json_str = {"schemecode": cps_cookie[3], "monitorSpotCode": cps_cookie[1], "desturl": landingUrl}; + } + if("" != json_str) { + var dest_url = JSON.stringify(json_str); + cps_link = "http://click.union.vip.com/redirect.php?url=" + BASE64.encoder(dest_url); + } + + var share = getPageInfo(); + var cps = {}; + if (null != share) { + cps["cps_title"] = share.hasOwnProperty("title") ? share["title"] : ""; + cps["cps_letter"] = share.hasOwnProperty("desc") ? share["desc"] : ""; + cps["cps_picture"] = share.hasOwnProperty("picture") ? share["picture"] : ""; + } + cps["cps_link"] = cps_link; + return JSON.stringify(cps); +} + +function shareSuccsss(type){ + var cps_cookie=getCookie('cps').split(":"); + var scheme_code="" + if(cps_cookie.length > 1) { + if("adp" == cps_cookie[0]) { + scheme_code = cps_cookie[6]; + } else { + scheme_code = cps_cookie[1]; + } + } + var url=document.location.href + $.ajax({ + dataType:"jsonp", + url:"http://weixin-api.vip.com/v1/shareLog/addShareLog?aid=light_app_xhh&type="+type+"&sign="+scheme_code+"&url="+url, + jsonp : 'jsonp', + success:function(data){ + } + }) +} + +function getPageInfo() { + var pageInfo = {}; + var title = document.title; + var picture = getPageFirstImg(); + var desc = getPageDesc(); + pageInfo["title"] = title; + pageInfo["desc"] = desc; + pageInfo["picture"] = picture; + return pageInfo; +} + +function getPageFirstImg() { + if($("img").length <= 0 ) { + return ""; + } + var isLazyLoad = $("img:first").attr("data-original") != undefined && + $("img:first").attr("data-original") != $("img:first").attr("src"); + if(isLazyLoad) { + return $("img:first").attr("data-original"); + } else { + return $("img:first").attr("src"); + } + +} + +function getPageDesc() { + var metas = document.getElementsByTagName("meta"); + for(var i = 0; i < metas.length; ++i) { + if(typeof metas[i].name != "undefined" && metas[i].name.toLowerCase() == "description") { + return metas[i].content; + } + } + return ""; +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_089f19fc81f833d29a8a9b59b9984710_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_089f19fc81f833d29a8a9b59b9984710_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..2252d62f29d9307e953971deb71240fcc6c88fda Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_089f19fc81f833d29a8a9b59b9984710_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_1554fb9e04fd0fbbb91179795c056bbe_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_1554fb9e04fd0fbbb91179795c056bbe_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..5d4d99afe8424ad5727e1523186bcc3651b19f41 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_1554fb9e04fd0fbbb91179795c056bbe_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_21caa10fd024f0cda22bd8e44ed6a749_134x134_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_21caa10fd024f0cda22bd8e44ed6a749_134x134_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..469be501b8650900772dbf7305b13335c44a6da2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_21caa10fd024f0cda22bd8e44ed6a749_134x134_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_289146812272c45c6465b68d483ff539_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_289146812272c45c6465b68d483ff539_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..56f5e983d4a417f3d7dc4035980e8e12ff7a4a42 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_289146812272c45c6465b68d483ff539_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_31eec1f3936b0e0a2cb4848e3af63f33_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_31eec1f3936b0e0a2cb4848e3af63f33_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..9e43c57810e3c9ed4b589b5a3344b6623b200267 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_31eec1f3936b0e0a2cb4848e3af63f33_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4af97580e099d5a9eadb362df20ed05c_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4af97580e099d5a9eadb362df20ed05c_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..23117c148d93385de52db2571e5f60ecf034aa94 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4af97580e099d5a9eadb362df20ed05c_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4f78149608081f0b2fa928666747ee6e_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4f78149608081f0b2fa928666747ee6e_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4ccb1b93dc6a960eeb268d7a325dcf9f775d25b7 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_4f78149608081f0b2fa928666747ee6e_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5105ba5477174d1a54c0f5643c024caa_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5105ba5477174d1a54c0f5643c024caa_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a4f37e26a4dc40f1eeb82ef556bd3304c51485af Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5105ba5477174d1a54c0f5643c024caa_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_51f4750de99a595c83147ebdb8f4b2e4_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_51f4750de99a595c83147ebdb8f4b2e4_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..10dfd6061af1d4ef2e52a2ef84688d7d6ea1829a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_51f4750de99a595c83147ebdb8f4b2e4_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5d7e9f9432eaffc79ff2ac65253dcfe2_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5d7e9f9432eaffc79ff2ac65253dcfe2_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..42450799093eba5b550e59c3b288064949f4018d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_5d7e9f9432eaffc79ff2ac65253dcfe2_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_63ddd4725f44d9a6b4d2e754508c7a7c_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_63ddd4725f44d9a6b4d2e754508c7a7c_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..6c38459a82b17d6b926d040f7e9636900bb21519 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_63ddd4725f44d9a6b4d2e754508c7a7c_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_6d91ba99e5921e1cd22f1e4f3f9b26c1_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_6d91ba99e5921e1cd22f1e4f3f9b26c1_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..00ecb24b2afc63d629c55189d9e2e9ed2a55731c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_6d91ba99e5921e1cd22f1e4f3f9b26c1_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_705ad856819f6a0f59fd2f2f23890dee_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_705ad856819f6a0f59fd2f2f23890dee_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..52c15e28c214ddfe9eccc18959da25fb2f3c37b0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_705ad856819f6a0f59fd2f2f23890dee_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_73a6d6049f1a6ec54f256ab58696a4ce_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_73a6d6049f1a6ec54f256ab58696a4ce_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..d3b56fed55b91fd77dc11b1afceef1a61d84a977 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_73a6d6049f1a6ec54f256ab58696a4ce_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_772dc63af592f81e0d84dc2693227b0b_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_772dc63af592f81e0d84dc2693227b0b_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..d73c59758a90d38f7195c936ddf398b56be4bda0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_772dc63af592f81e0d84dc2693227b0b_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_94a473959a275329f222e1e77bed2873_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_94a473959a275329f222e1e77bed2873_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a5dc9a5cad3e888537bcbe0251ad38cfb3cb0ac1 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_94a473959a275329f222e1e77bed2873_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_9ec86c80a8eeed6d7f6876d5f8197fdc_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_9ec86c80a8eeed6d7f6876d5f8197fdc_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4ec183d7698bdc2158643f3d20b157cf43bc476d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_9ec86c80a8eeed6d7f6876d5f8197fdc_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a39a13495fbe61d91d32ffbee8e6a512_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a39a13495fbe61d91d32ffbee8e6a512_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..c9a907d7773505009c6142ea2c16219340f730a0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a39a13495fbe61d91d32ffbee8e6a512_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a3b370c99fc32b5d6bf23c6707dcf230_134x134_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a3b370c99fc32b5d6bf23c6707dcf230_134x134_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..a14a285338655c9e425c0a9859b3bd56a70b8dc4 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_a3b370c99fc32b5d6bf23c6707dcf230_134x134_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b192d496458d948df1db80d65aabd5f2_164x164_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b192d496458d948df1db80d65aabd5f2_164x164_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..bc6c1975fc0ca13ae3286678aa983b8073de80ea Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b192d496458d948df1db80d65aabd5f2_164x164_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b7c0360755cca4192d4ee9069d56d2d2_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b7c0360755cca4192d4ee9069d56d2d2_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..d93373ea23c6a1811b7cf4e4411cf943be232fea Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_b7c0360755cca4192d4ee9069d56d2d2_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_bd6d558ff1c51d32280415e842814fba_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_bd6d558ff1c51d32280415e842814fba_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..91533e7bec6205570612ad0afa5eaa423a29cec0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_bd6d558ff1c51d32280415e842814fba_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c145a12de1baee857029ac3bd89170fd_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c145a12de1baee857029ac3bd89170fd_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..1ef33d3af2dd4c7e02e156e27dcd3a4f4f4e7403 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c145a12de1baee857029ac3bd89170fd_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c777de64e78672f8bcc95577113bd79d_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c777de64e78672f8bcc95577113bd79d_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..8a01165cfa76f4ea60d48d4bcbe2f140c339c234 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_c777de64e78672f8bcc95577113bd79d_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_ccd3818b68761c9c5be094a139fdb4e4_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_ccd3818b68761c9c5be094a139fdb4e4_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f6989f9c08fdea4146a1e92b93b7bb66da07f60d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_ccd3818b68761c9c5be094a139fdb4e4_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d022e20bea0181ee9ad494ec63e7cfd6_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d022e20bea0181ee9ad494ec63e7cfd6_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..606dfd1546dd9be439e95293e888e6eb91533151 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d022e20bea0181ee9ad494ec63e7cfd6_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d4dca24caa3c73262f8011bf500c02c7_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d4dca24caa3c73262f8011bf500c02c7_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..7d1739d1378923756a23bfae1d97f5c63f45627e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_d4dca24caa3c73262f8011bf500c02c7_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2a1922f02c5a05b1bdd7c549f9aeba3_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2a1922f02c5a05b1bdd7c549f9aeba3_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4872643e0012f8d826b38c856b8b062d29c0a3a0 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2a1922f02c5a05b1bdd7c549f9aeba3_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2b51bc8ad1a32791c57fb7a946225be_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2b51bc8ad1a32791c57fb7a946225be_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..8495ece6d6e50072b8ce5eb7844f83c8c3eb500e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e2b51bc8ad1a32791c57fb7a946225be_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e4f2181f3f71ce8c073b5de237509523_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e4f2181f3f71ce8c073b5de237509523_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..e0d3999b2b4b50c20f7c8ae190a5904e2467c30f Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e4f2181f3f71ce8c073b5de237509523_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..d954558979bef4e93a8d9ddbc63ef08c7c6a97be Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e6c7fb318d538cd59d5a72b93643429a_148x148_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e9543f59d0cc7d3fc92d3d09ccbe7184_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e9543f59d0cc7d3fc92d3d09ccbe7184_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..16494c6686c227483a6463635c9c96a44e4f81e4 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e9543f59d0cc7d3fc92d3d09ccbe7184_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e97d1721ed2ab5a88b9697d43a1eee78_1135x545_85.jpg" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e97d1721ed2ab5a88b9697d43a1eee78_1135x545_85.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..5d0cf45ad537465ddc6e431ce9eaa6812206a45c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_e97d1721ed2ab5a88b9697d43a1eee78_1135x545_85.jpg" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_f08cc28cfe39b11fd9e73aabcc706f64_152x152_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_f08cc28cfe39b11fd9e73aabcc706f64_152x152_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..7a24d704295742494a9b5908bfac54836b4f7cc7 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/ias_f08cc28cfe39b11fd9e73aabcc706f64_152x152_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.088c39b0a9237b023c7c.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.088c39b0a9237b023c7c.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..69f576849dea0d9be670273f3a5d63c466bf1f43 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.088c39b0a9237b023c7c.js.\344\270\213\350\275\275" @@ -0,0 +1,12 @@ +webpackJsonp([14],{"+vOg":function(e,t,n){"use strict";t.d=function(){return Object(i.a)({url:"vips-mobile/rest/operation/menu/v1",retries:1,method:"get",params:{mvip:!0}})},t.a=function(){return o.a.cacheRequest(s,"cache_draw_menu")},t.b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/get_simple_cart",method:"get",params:e})},t.c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.a)({url:"https://mst.vip.com/cmstopic/api.php",method:"get",params:a()({service:"push"},e)})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD"),o=n("/nwW");function s(){return Object(i.a)({url:"vips-mobile/rest/operation/draw-menu/v5",method:"get",params:{mvip:!0}})}},"/4lS":function(e,t,n){"use strict";var r=n("YOyO"),a=n("FA0W"),i=n("1M/o"),o=n("vNF5"),s=n("zhOP"),c=n("PEP6"),u=n("Lg6z"),l=n("8hGu"),p=n("ArKR"),d=n("wkJ7"),h=0,f=document.body,m=document.documentElement,v={name:"index-header",data:function(){return{open:!1,showLeftButton:!1,showRightButton:!1,barFixedStyle:{},isLogin:!1,isAndroidMiniApp:d.a.isAndroidMiniApp()}},mounted:function(){this.$header=this.$refs.header,this.$wapper=this.$refs.wapper,this.isLogin=s.a.isLogin(),this.bindEvent(),this.$root.$emit("get-hot-words"),this.$root.$on("focus",this.openSearch),this.$root.$on("on-back",this.closeSearch),1==p.a.getQuery("search_open")&&this.openSearch()},methods:{login:function(){s.a.go({usePop:!0,needReg:!1,onWinLogin:function(e){e.success&&c.a.reload(!0)}})},openSearch:function(){h=window.scrollY,window.scrollTo(0,0),this.open=!0,this.showLeftButton=!0,this.showRightButton=!0,Object(o.a)(f,"open-search"),Object(o.a)(m,"open-search"),Object(u.c)({value:"home_search"}),i.a.seed("input","click","index_search_btn"),this.$emit("openSearch")},closeSearch:function(){this.open=!1,this.showLeftButton=!1,this.showRightButton=!1,this.$root.$emit("clear-search"),Object(o.k)(f,"open-search"),Object(o.k)(m,"open-search"),window.scrollTo(0,h),this.$emit("closeSearch")},clickCategory:function(){Object(u.c)({value:"home_category"}),location.href="//mst.vip.com/WtfF5VAFpmzT5NlWGkSDkQ.php?wapid=mst_100013210&_src=mst&extra_banner=0&nova=1&nova_platform=1&mst_page_type=guide&hierarchy_id=107&wq=1"},bindEvent:function(){var e=this;l.a.on("loginModules","chageState",function(t){e.isLogin=t})}},components:{search:r.a,vipIcon:a.a},props:{pageType:{type:String,default:"index"}}},g={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"index-header-container",class:[{sticky:e.open},"header-"+e.pageType]},[r("div",{staticClass:"search",style:e.barFixedStyle},[r("div",{ref:"wrapper",staticClass:"search-page-container",class:{close:!e.open,"is-android-mini-app":e.isAndroidMiniApp}},[r("div",{ref:"header",staticClass:"header index-header hack-fixed",class:{open:e.open}},[e.isAndroidMiniApp?e._e():r("div",{staticClass:"top-logo",style:{display:e.open?"none":""}},[r("img",{attrs:{src:n("G2sm"),alt:""}}),r("i"),r("span",[e._v("鍝佺墝鐗瑰崠路100%姝e搧")])]),e.isAndroidMiniApp?e._e():r("div",{staticClass:"header-right"},[e._t("right",[r("a",{staticClass:"header-right-button",attrs:{href:"javascript:;",mars_sead:"index_category_btn"},on:{click:function(t){return t.preventDefault(),e.clickCategory(t)}}},[r("vip-icon",{attrs:{name:"classify"}})],1)])],2),e.isAndroidMiniApp?e._e():r("div",{staticClass:"header-left"},[e._t("left",[e.isLogin?r("a",{key:"is-login",staticClass:"header-left-button",attrs:{href:"//m.vip.com/user.html"}},[r("vip-icon",{attrs:{name:"member"}})],1):r("a",{key:"is-login-out",staticClass:"header-left-button text",attrs:{href:"javascript:;"},on:{click:function(t){return t.preventDefault(),e.login(t)}}},[e._v("\n 鐧诲綍\n ")])])],2),r("div",{staticClass:"header-title"},[r("search",{attrs:{open:e.open,"show-left-button":e.showLeftButton,"show-right-button":e.showRightButton},on:{"update:open":function(t){e.open=t}}})],1)])])])])},staticRenderFns:[]};var w=n("VU/8")(v,g,!1,function(e){n("4pLF")},null,null);t.a=w.exports},"/AfA":function(e,t,n){"use strict";var r={name:"vip-button",props:{icon:String,disabled:Boolean,plain:Boolean,radius:{type:String,default:"default"},type:{type:String,default:"default"},size:{type:String,default:"normal-a"},customStyle:[String,Object]},data:function(){return{}}},a={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("button",{staticClass:"vip-button",class:["vip-button-"+e.type,"vip-button-"+e.size,{"is-plain":e.plain},"vip-button--radius-"+e.radius],style:e.customStyle,attrs:{disabled:e.disabled}},[n("div",{staticClass:"icon"},[e._t("icon")],2),n("div",{staticClass:"text-box"},[e._t("default")],2)])},staticRenderFns:[]};var i=n("VU/8")(r,a,!1,function(e){n("4AWz")},null,null);t.a=i.exports},"/nwW":function(e,t,n){"use strict";var r=n("//Fk"),a=n.n(r),i=n("mvHQ"),o=n.n(i),s=n("pFYg"),c=n.n(s),u=n("7fY6"),l=null,p={isStorageSupported:function(){if(null!==l)return l;try{var e=window.sessionStorage,t=window.localStorage;return e.setItem("test","1"),t.setItem("test","1"),e.removeItem("test"),t.removeItem("test"),l=!!window.localStorage&&!!window.sessionStorage}catch(e){return l=!1,u.a.report({action:"localstorage_full"}),!1}},getLocalStorage:function(e){var t=null,n=null;if(this.isStorageSupported()){try{t=n=window.localStorage.getItem(e)}catch(t){u.a.report({action:"localstorage_get_error_"+e})}if(null===t||void 0===t)return t="";try{t=JSON.parse(t)}catch(e){}if("object"!==(void 0===t?"undefined":c()(t))||!t.e)return n;var r=t.e;if(r&&/^\d{13,}$/.test(r))if(r<=(new Date).getTime())return p.removeLocalStorage(e),"";var a=null;if("object"===t.t)try{a=JSON.parse(t.v)}catch(t){u.a.report({action:"localstorage_parse_error_"+e})}else a=t.v;return a}return null},setLocalStorage:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5;if(this.isStorageSupported()){var r=null,a={};if(n){var i=(new Date).getTime();a.e=i+60*n*1e3}"object"===(void 0===t?"undefined":c()(t))?(a.t="object",t=o()(t)):a.t="string",a.v=t;try{r=window.localStorage.setItem(e,o()(a))}catch(t){p.removeLocalStorage(e),u.a.report({action:"localstorage_set_error_"+e})}return r}return null},removeLocalStorage:function(e){return this.isStorageSupported()?window.localStorage.removeItem(e):null},checkExpired:function(e){var t=(new Date).getTime(),n=!1,r=window.localStorage.getItem(e);try{r=JSON.parse(r)}catch(e){}if(Object.prototype.toString.call(r).toLowerCase().indexOf("object")>0){var a=r.e;a&&/^\d{13,}$/.test(a)&&a<=t&&(n=!0)}return n},cacheRequest:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=p.getLocalStorage(t);return r?p.checkExpired(t)?(e().then(function(e){e&&1===e.code&&p.setLocalStorage(t,e,n)}),a.a.resolve(r)):a.a.resolve(r):e().then(function(e){return e&&1===e.code&&p.setLocalStorage(t,e,n),e})}};t.a=p},"0bC0":function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("/5sW"),c=n("+vOg"),u=n("5jd4"),l=n("Qims"),p=n("wkJ7");s.a.component(u.a.name,u.a);var d={name:"cart-cmp",data:function(){return{aliveTime:0,goodsNum:0,cartInfo:{},cartVer:1,showCartCmp:!p.a.isAndroidMiniApp()}},mounted:function(){this.showCartCmp&&this.getSimpleCartInfo()},methods:{goToCart:function(){"4"==this.cartVer?location.href="//mcheckout.vip.com/cart.html":location.href="https://mcheckout.vip.com/checkout.html"},getSimpleCartInfo:function(){var e=this;return o()(a.a.mark(function t(){var n,r,i,o,s;return a.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.a.getCartVer();case 2:return n=t.sent,t.next=5,Object(c.b)({cart_ver:n});case 5:r=t.sent,i=r.data,o=r.code,e.cartVer=n,1==o&&i&&(s=i.cartInfo)&&("4"==e.cartVer?e.goodsNum=s.skuCount:e.goodsNum=s.skuTotalNum,e.aliveTime=s.aliveTime&&1e3*s.aliveTime);case 10:case"end":return t.stop()}},t,e)}))()},countdownEndHandle:function(){this.goodsNum=0}}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.showCartCmp?n("div",{ref:"shopbag",staticClass:"u-shopbag",class:{"show-cart":e.goodsNum&&e.aliveTime}},[n("a",{attrs:{mars_sead:"floating-cart_btn"},on:{click:function(t){return t.stopPropagation(),e.goToCart(t)}}},[n("span",{staticClass:"icon-cart i-flow-carticon"}),n("span",{staticClass:"u-flow-cartnum"},[e._v(e._s(e.goodsNum))]),n("countdown",{staticClass:"u-flow-carttime",attrs:{time:e.aliveTime,interval:1e3},on:{end:e.countdownEndHandle},scopedSlots:e._u([{key:"default",fn:function(t){return[n("span",[e._v(e._s(t.minutes>=10?t.minutes:"0"+t.minutes))]),n("span",[e._v(":")]),n("span",[e._v(e._s(t.seconds>=10?t.seconds:"0"+t.seconds))])]}}])})],1)]):e._e()},staticRenderFns:[]};var f=n("VU/8")(d,h,!1,function(e){n("qGxY")},"data-v-3f94e833",null);t.a=f.exports},"1M/o":function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("HnKq"),c=n("7fY6"),u=n("pD4m"),l=[],p=function(){function e(){a()(this,e)}return o()(e,[{key:"init",value:function(){var e=this;location.href.indexOf("vipglobal.hk")>-1?this.isOpenHkMarsSend().then(function(t){1===t&&e.__init()}):this.__init()}},{key:"__init",value:function(){var t=this;this.__loadMarJs()&&(e.isLoading=!0,n.e(0).then(n.bind(null,"72Rr")).then(function(e){Object(s.c)("https://h2.vipstatic.com/3rd.vipstatic.com/mars_wap/mars_wap.js").then(function(){t.__sendMarsAsync()}).catch(function(e){c.a.report({message:"mars_wap.js鍔犺浇澶辫触",action:"mars_js_load_error"})})}))}},{key:"isOpenHkMarsSend",value:function(){return u.a.getConfig({type:"switch",code:"1482"})}},{key:"seed",value:function(){window.Mar&&window.Mar.Seed&&window.Mar.Seed.request?window.Mar.Seed.request.apply(window.Mar.Seed,arguments):l.push(arguments)}},{key:"__loadMarJs",value:function(){return!e.isLoading}},{key:"__sendMarsAsync",value:function(){if(window.Mar&&window.Mar.Seed&&"function"==typeof window.Mar.Seed.request)for(;l.length>0;)window.Mar.Seed.request.apply(window.Mar.Seed,l.pop())}}]),e}();p.isLoading=!1,t.a=new p},"1j56":function(e,t,n){"use strict";n.d(t,"a",function(){return L}),n.d(t,"b",function(){return P}),n.d(t,"d",function(){return M}),n.d(t,"c",function(){return D});var r,a,i,o,s,c,u=n("Xxa5"),l=n.n(u),p=n("d7EF"),d=n.n(p),h=n("exGp"),f=n.n(h),m=n("Dd8w"),v=n.n(m),g=n("6TJt"),w=n("Ad8Q"),b=n("GKmE"),_=n("M9SS"),y=n("ArKR"),k=this,x=location.pathname,C=null,S=null,T=null,I=/product-(\d+)-(\d+)/.test(x),O=/store-index.html/.test(x),A=I||O,j=function(){var e,t=document.location.pathname,n="",r=/([0-9]+)-([0-9]+)-([a-z]+)/,a=/([0-9]+)-([0-9]+)/,i=/([0-9]+)/;return r.test(t)?n=t.match(r)[0]:a.test(t)?n=t.match(a)[0]:i.test(t)&&(n=t.match(i)[0]),{brandId:(e=n.split("-"))[0]||0,productId:e[1]||n,act:e[3]||"intro"}},L=(r=f()(l.a.mark(function e(){var t,n,r,a,i,o,s;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!C){e.next=2;break}return e.abrupt("return",[null,C]);case 2:return e.next=4,Object(b.x)((void 0,void 0,c=j(),u=v()({},c,{price_fields:"vipshopPrice,saleSavePrice,specialPrice,salePriceTips,vipDiscount,priceIconURL,priceIconMsg,min_vipshop_price, max_vipshop_price,max_market_price, min_market_price ,promotion_price_type,promotion_price,promotion_price_suff,promotion_price_tips",haitao_description_fields:"descri_image,beauty_descri_image,text,mobile_descri_image,mobile_prompt_image",is_multicolor:"1",is_get_TUV:"1",kfVersion:"1",device:3,priceScene:"normal",functions:"panelView,product_comment,sku_price,active_price,brand_store_info,luxury_info,newBrandLogo,reduced_point_desc,wh_transfer,hideOnlySize,showReputation,atmospherePicture,haitaoFinanceVip,banInfo,extraDetailImages,vendorQa",is_get_pms_tips:"1",highlightBgImgVer:1,commitmentVer:"2",propsVer:"1",supportSquare:1,longTitleVer:2}),Object(g.g)(u)));case 4:return t=e.sent,n=d()(t,2),r=n[0],a=n[1],o=(i=void 0===a?{}:a).data||{},s=o.product,!r&&s&&(C=i),e.abrupt("return",[r,i]);case 12:case"end":return e.stop()}var c,u},e,k)})),function(){return r.apply(this,arguments)}),P=(a=f()(l.a.mark(function e(){var t,n,r,a,i,o,s,c;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!S){e.next=2;break}return e.abrupt("return",[null,S]);case 2:return e.next=4,Object(b.x)((void 0,void 0,void 0,u=["priceView:13","promotionTips:6","svipPriceMode:1","promotionTags:3","foldTips:3","formula:1","panelView:3"].join(";"),l=j(),p=v()({},l,{channel:"1",scene:"detail",userContext:window.sessionStorage&&window.sessionStorage.getItem("productDetailUserContext")||"",opts:u}),Object(g.h)(p)));case 4:return t=e.sent,n=d()(t,2),r=n[0],a=n[1],o=(i=void 0===a?{}:a).data||{},s=o.product,c=o.userContext,!r&&s&&(S=i),!r&&c&&window.sessionStorage&&window.sessionStorage.setItem("productDetailUserContext",c),e.abrupt("return",[r,i]);case 13:case"end":return e.stop()}var u,l,p},e,k)})),function(){return a.apply(this,arguments)}),E=(i=f()(l.a.mark(function e(){var t,n,r,a,i,o,s;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,e.next=3,L();case 3:if(n=e.sent,r=d()(n,2),a=r[0],i=r[1],o=i.data||{},s=o.product,a||!s){e.next=18;break}if(1!=s.isHaiTao){e.next=15;break}return e.next=12,_.a.jumpToGlobalHk();case 12:t=e.sent,e.next=18;break;case 15:return e.next=17,_.a.jumpToMhost();case 17:t=e.sent;case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}},e,k)})),function(){return i.apply(this,arguments)}),U=(o=f()(l.a.mark(function e(){var t,n,r,a,i,o,s;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,e.next=3,D();case 3:if(n=e.sent,r=d()(n,2),a=r[0],i=r[1],o=i.data||{},s=o.storeInfo,a||!s){e.next=18;break}if(!s||!s.storeMainFlag||"1-OVERSEA"!=s.storeMainFlag){e.next=15;break}return e.next=12,_.a.jumpToGlobalHk();case 12:t=e.sent,e.next=18;break;case 15:return e.next=17,_.a.jumpToMhost();case 17:t=e.sent;case 18:return e.abrupt("return",t);case 19:case"end":return e.stop()}},e,k)})),function(){return o.apply(this,arguments)}),M=(s=f()(l.a.mark(function e(){return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(A){e.next=2;break}return e.abrupt("return",!1);case 2:if(!I){e.next=6;break}return e.abrupt("return",E());case 6:if(!O){e.next=8;break}return e.abrupt("return",U());case 8:case"end":return e.stop()}},e,k)})),function(){return s.apply(this,arguments)}),D=(c=f()(l.a.mark(function e(){var t,n,r,a,i,o,s,c,u;return l.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!T){e.next=2;break}return e.abrupt("return",[null,T]);case 2:return t=y.a.getQuery("storeId"),n={functions:"storeInfo,tabs,noProducts,wxBgImg",salePlatform:"2",storeId:t,fromIndex:0},e.next=6,Object(b.x)(Object(w.D)(n));case 6:return r=e.sent,a=d()(r,2),i=a[0],o=a[1],c=(s=void 0===o?{}:o).data||{},u=c.storeInfo,!i&&u&&(T=s),e.abrupt("return",[i,s]);case 14:case"end":return e.stop()}},e,k)})),function(){return c.apply(this,arguments)})},"2Pub":function(e,t){},"3+cY":function(e,t,n){"use strict";var r={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"mint-swipe-item"},[this._t("default")],2)},staticRenderFns:[]},a=n("VU/8")({name:"mt-swipe-item",mounted:function(){this.$parent&&this.$parent.swipeItemCreated(this)},destroyed:function(){this.$parent&&this.$parent.swipeItemDestroyed(this)}},r,!1,null,null,null).exports,i=n("vNF5"),o={name:"mt-swipe",created:function(){this.dragState={}},data:function(){return{ready:!1,dragging:!1,userScrolling:!1,animating:!1,index:0,pages:[],timer:null,reInitTimer:null,noDrag:!1,isDone:!1}},props:{speed:{type:Number,default:300},defaultIndex:{type:Number,default:0},auto:{type:Number,default:3e3},continuous:{type:Boolean,default:!0},showIndicators:{type:Boolean,default:!0},noDragWhenSingle:{type:Boolean,default:!0},prevent:{type:Boolean,default:!1},stopPropagation:{type:Boolean,default:!1}},watch:{index:function(e){this.$emit("change",e)}},methods:{swipeItemCreated:function(){var e=this;this.ready&&(clearTimeout(this.reInitTimer),this.reInitTimer=setTimeout(function(){e.reInitPages()},100))},swipeItemDestroyed:function(){var e=this;this.ready&&(clearTimeout(this.reInitTimer),this.reInitTimer=setTimeout(function(){e.reInitPages()},100))},rafTranslate:function(e,t,n,r,a){if(e){var i=.88;this.animating=!0;var o=t,s=0;(function t(){if(Math.abs(o-n)<.5)return this.animating=!1,o=n,e.style.webkitTransform="",a&&(a.style.webkitTransform=""),cancelAnimationFrame(s),void(r&&r());o=i*o+(1-i)*n,e.style.webkitTransform="translate3d("+o+"px, 0, 0)",a&&(a.style.webkitTransform="translate3d("+(o-n)+"px, 0, 0)"),s=requestAnimationFrame(t.bind(this))}).call(this)}},translate:function(e,t,n,r){var a=this,o=arguments;if(n){this.animating=!0,e.style.webkitTransition="-webkit-transform "+n+"ms ease-in-out",setTimeout(function(){e.style.webkitTransform="translate3d("+t+"px, 0, 0)"},50);var s=!1,c=function(){s||(s=!0,a.animating=!1,e.style.webkitTransition="",e.style.webkitTransform="",r&&r.apply(a,o))};Object(i.i)(e,"webkitTransitionEnd",c),setTimeout(c,n+100)}else e.style.webkitTransition="",e.style.webkitTransform="translate3d("+t+"px, 0, 0)"},reInitPages:function(){var e=this.$children;this.noDrag=1===e.length&&this.noDragWhenSingle;var t=[],n=Math.floor(this.defaultIndex),r=n>=0&&n1&&(r||(r=h[h.length-1]),a||(a=h[0])),r&&(r.style.display="block",this.translate(r,-s)),a&&(a.style.display="block",this.translate(a,s)));var m=this.$children[d].$el;"prev"===e?(d>0&&(l=d-1),this.continuous&&0===d&&(l=f-1)):"next"===e&&(d0&&n.translate(r,-1*s,p),a&&c<0&&n.translate(a,s,p)):(r&&n.translate(r,-1*s,p),a&&n.translate(a,s,p)))},10)}},next:function(){this.doAnimate("next")},prev:function(){this.doAnimate("prev")},before:function(){this.$emit("before",this.index)},end:function(){this.$emit("end",this.index)},doOnTouchStart:function(e){if(!this.noDrag){var t=this.$el,n=this.dragState,r=e.touches[0];n.startTime=new Date,n.startLeft=r.pageX,n.startTop=r.pageY,n.startTopAbsolute=r.clientY,n.pageWidth=t.offsetWidth,n.pageHeight=t.offsetHeight;var a=this.$children[this.index-1],i=this.$children[this.index],o=this.$children[this.index+1];this.continuous&&this.pages.length>1&&(a||(a=this.$children[this.$children.length-1]),o||(o=this.$children[0])),n.prevPage=a?a.$el:null,n.dragPage=i?i.$el:null,n.nextPage=o?o.$el:null,n.prevPage&&(n.prevPage.style.display="block"),n.nextPage&&(n.nextPage.style.display="block")}},doOnTouchMove:function(e){if(!this.noDrag){var t=this.dragState,n=e.touches[0];t.speedX=n.pageX-t.currentLeft,t.currentLeft=n.pageX,t.currentTop=n.pageY,t.currentTopAbsolute=n.clientY;var r=t.currentLeft-t.startLeft,a=t.currentTopAbsolute-t.startTopAbsolute,i=Math.abs(r),o=Math.abs(a);if(i<5||i>=5&&o>=1.73*i)this.userScrolling=!0;else{this.userScrolling=!1,e.preventDefault();var s=(r=Math.min(Math.max(1-t.pageWidth,r),t.pageWidth-1))<0?"next":"prev";t.prevPage&&"prev"===s&&this.translate(t.prevPage,r-t.pageWidth),t.dragPage&&this.translate(t.dragPage,r),t.nextPage&&"next"===s&&this.translate(t.nextPage,r+t.pageWidth)}}},doOnTouchEnd:function(){if(!this.noDrag){var e=this.dragState,t=new Date-e.startTime,n=null,r=e.currentLeft-e.startLeft,a=e.currentTop-e.startTop,i=e.pageWidth,o=this.index,s=this.pages.length;if(t<300){var c=Math.abs(r)<5&&Math.abs(a)<5;(isNaN(r)||isNaN(a))&&(c=!0),c&&this.$children[this.index].$emit("tap")}t<300&&void 0===e.currentLeft||((t<300||Math.abs(r)>i/2)&&(n=r<0?"next":"prev"),this.continuous||(0===o&&"prev"===n||o===s-1&&"next"===n)&&(n=null),this.$children.length<2&&(n=null),this.doAnimate(n,{offsetLeft:r,pageWidth:e.pageWidth,prevPage:e.prevPage,currentPage:e.dragPage,nextPage:e.nextPage,speedX:e.speedX}),this.dragState={})}},initTimer:function(){var e=this;this.auto>0&&!this.timer&&(this.timer=setInterval(function(){if(!e.continuous&&e.index>=e.pages.length-1)return e.clearTimer();e.dragging||e.animating||e.next()},this.auto))},clearTimer:function(){clearInterval(this.timer),this.timer=null}},destroyed:function(){this.timer&&this.clearTimer(),this.reInitTimer&&(clearTimeout(this.reInitTimer),this.reInitTimer=null)},mounted:function(){var e=this;this.ready=!0,this.initTimer(),this.reInitPages();var t=this.$el;t.addEventListener("touchstart",function(t){e.prevent&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),e.animating||(e.dragging=!0,e.userScrolling=!1,e.doOnTouchStart(t))}),t.addEventListener("touchmove",function(t){e.dragging&&(e.timer&&e.clearTimer(),e.doOnTouchMove(t))}),t.addEventListener("touchend",function(t){if(e.userScrolling)return e.dragging=!1,void(e.dragState={});e.dragging&&(e.initTimer(),e.doOnTouchEnd(t),e.dragging=!1)})}},s={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"mint-swipe"},[n("div",{ref:"wrap",staticClass:"mint-swipe-items-wrap"},[e._t("default")],2),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showIndicators&&!e.noDrag,expression:"showIndicators && !noDrag"}],staticClass:"mint-swipe-indicators"},e._l(e.pages,function(t,r){return n("div",{key:r,staticClass:"mint-swipe-indicator",class:{"is-active":r===e.index}})}),0)])},staticRenderFns:[]};var c=n("VU/8")(o,s,!1,function(e){n("G3mK")},null,null).exports;n.d(t,"a",function(){return c}),n.d(t,"b",function(){return a})},"3USl":function(e,t,n){"use strict";var r=n("wkJ7"),a=n("nRfd"),i=n.n(a);function o(){return i.a.isCheckout()?location.origin:r.a.isWechat()?"https://wxcheckout.vip.com":"https://mcheckout.vip.com"}t.a={ajaxTimeout:1e4,ajaxCache:!1,host:"https://m.vip.com",checkoutHost:o(),traceHost:"//m.vip.com/_trace.php",mloginHost:"https://mlogin.vip.com",captchaHost:"https://captcha.vip.com",globalHost:"https://m.vipglobal.hk",wxAPIHost:"//weixin-api.vip.com",wxMallHost:"//weixin-mall.vip.com",wxActHost:"//weixin-act-api.vip.com",wxHost:"//weixin.vip.com",pf:"pf",fs:"f",cookiesDomain:"https://m.vipglobal.hk"===location.origin?".vipglobal.hk":".vip.com",rpcApi:"/server.html?rpc",mcheckoutRpcApi:"/jsonrpc.html?rpc",shoppingCartApi:o()+"/server.html?rpc",vtmJs:"//h2.vipstatic.com/ms.vipstatic.com/vtm/vtm_config_res/prod/vtm_m.js",rpcVer:"2.0",cacheChannel:{},cacheVersion:"201604211742",ak:["o4zGFchCuo3FKqsWrXppTrorclwyZSVP","nIC1UWqQWy8qxpiLzgWGVsrKos3dp7KI"],getMcp:"//mcp.vip.com/share/get_app_share",downloadUrl:"//m.vip.com/service-download.html",tabBarDownloadUrl:"https://m.vip.com/service-download.html?download=1",api:{dmpAppPackage:"//dmp-data.vip.com/channel/downloadapp",cpsAppPackage:"https://api.union.vip.com/vsp/appPro/getAppDownloadUrl4Wap",address:"//gensvr-n.vip.com/address/address",baiduLbsIp:"//api.map.baidu.com/location/ip",getUserInfo:"//weixin-api.vip.com/user/getUserInfo?type=1",rankApi:"//rank.vip.com/rank/findRankList"},regxIdentify:/^\d{17}[0-9xX]{1}$/,regexPwd:/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/,regexPhone:/^1(3|4|5|6|7|8|9)\d{9}$/,regexEMail:/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/}},"3jGs":function(e,t){},"3v/c":function(e,t){},"4AWz":function(e,t){},"4pLF":function(e,t){},"5JYG":function(e,t){},"5K0O":function(e,t){},"5ioc":function(e,t,n){"use strict";t.a=function(){var e=window,t=e.scrollX,n=e.scrollY;window.scroll(t,n+1),window.scroll(t,n)},t.b=function(e){if(!e||window.document.title===e)return;document.title=e};n("wkJ7");var r=n("vNF5"),a=r.g&&window;r.g?a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame:r.h,r.g?a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.mozCancelAnimationFrame||a.oCancelAnimationFrame:r.h},"5jd4":function(e,t,n){"use strict";t.a={name:"countdown",data:function(){return{counting:!1,endTime:0,totalMilliseconds:0}},props:{autoStart:{type:Boolean,default:!0},emitEvents:{type:Boolean,default:!0},interval:{type:Number,default:1e3,validator:function(e){return e>=0}},now:{type:Function,default:function(){return Date.now()}},tag:{type:String,default:"span"},time:{type:Number,default:0,validator:function(e){return e>=0}},transform:{type:Function,default:function(e){return e}}},computed:{days:function(){return Math.floor(this.totalMilliseconds/864e5)},hours:function(){return Math.floor(this.totalMilliseconds%864e5/36e5)},minutes:function(){return Math.floor(this.totalMilliseconds%36e5/6e4)},seconds:function(){return Math.floor(this.totalMilliseconds%6e4/1e3)},milliseconds:function(){return Math.floor(this.totalMilliseconds%1e3/100)},totalDays:function(){return this.days},totalHours:function(){return Math.floor(this.totalMilliseconds/36e5)},totalMinutes:function(){return Math.floor(this.totalMilliseconds/6e4)},totalSeconds:function(){return Math.floor(this.totalMilliseconds/1e3)}},render:function(e){return e(this.tag,this.$scopedSlots.default?[this.$scopedSlots.default(this.transform({days:this.days,hours:this.hours,minutes:this.minutes,seconds:this.seconds,milliseconds:this.milliseconds,totalDays:this.totalDays,totalHours:this.totalHours,totalMinutes:this.totalMinutes,totalSeconds:this.totalSeconds,totalMilliseconds:this.totalMilliseconds}))]:this.$slots.default)},watch:{$props:{deep:!0,immediate:!0,handler:function(){this.totalMilliseconds=this.time,this.endTime=this.now()+this.time,this.autoStart&&this.start()}}},methods:{start:function(){this.counting||(this.counting=!0,this.emitEvents&&this.$emit("start"),this.continue())},continue:function(){var e=this;if(this.counting){var t=Math.min(this.totalMilliseconds,this.interval);t>0?this.timeout=setTimeout(function(){e.progress()},t):this.end()}},pause:function(){clearTimeout(this.timeout)},progress:function(){this.counting&&(this.totalMilliseconds-=this.interval,this.emitEvents&&this.totalMilliseconds>0&&this.$emit("progress",{days:this.days,hours:this.hours,minutes:this.minutes,seconds:this.seconds,totalDays:this.totalDays,totalHours:this.totalHours,totalMinutes:this.totalMinutes,totalSeconds:this.totalSeconds}),this.continue())},abort:function(){this.counting&&(this.pause(),this.counting=!1,this.emitEvents&&this.$emit("abort"))},end:function(){this.counting&&(this.pause(),this.totalMilliseconds=0,this.counting=!1,this.emitEvents&&this.$emit("end"))},update:function(){this.counting&&(this.totalMilliseconds=Math.max(0,this.endTime-this.now()))},handleVisibilityChange:function(){switch(document.visibilityState){case"visible":this.update(),this.continue();break;case"hidden":this.pause()}}},mounted:function(){document.addEventListener("visibilitychange",this.handleVisibilityChange)},beforeDestroy:function(){document.removeEventListener("visibilitychange",this.handleVisibilityChange),this.pause()}}},"6TJt":function(e,t,n){"use strict";t.g=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap/product/detail/v5",method:"get",retries:1,params:e})},t.h=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap/detail/main/v6",method:"POST",retries:1,data:a()({},e)})},t.k=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap2/vendorSkuList/v4",backupUrl:"vips-mobile/rest/shop/goods/vendorSkuList/v4",Authorization:!0,method:"GET",retries:1,params:a()({},e)})},t.l=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/goods/stock/singleSpu/get",retries:1,method:"get",params:a()({},e,{mvip:!0})})},t.j=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/goods/size_table/v2",method:"get",params:a()({},e,{mvip:!0})})},t.d=function(e){return Object(i.a)({url:"vips-mobile/rest/user/address/area/get",method:"get",params:a()({},e,{mvip:!0})})},t.e=function(e){return Object(i.a)({url:"vips-mobile/rest/stock/delivery/skus/v1",method:"get",params:a()({},e,{mvip:!0})})},t.i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/get_simple_cart",method:"get",params:e})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/merge_cart",method:"get",params:e})},t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/add_cart/enablecors",method:"get",params:e})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/add_cart/v3",method:"get",params:e})},t.n=function(e){return Object(i.a)({url:"vips-mobile/rest/support/verify/get_captcha",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.f=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/goods/detail/more/v1",method:"get",retries:1,params:a()({},e,{mvip:!0})})},t.m=function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wxapp/detail/vendorqa/v1",method:"get",params:a()({},e,{mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},"6vcI":function(e,t){},"7fY6":function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("Zrlr"),o=n.n(i),s=n("wxAW"),c=n.n(s),u=n("oyG6"),l=n("7w1O"),p=n.n(l),d=n("GKmE");var h=function(){function e(){o()(this,e)}return c()(e,[{key:"listenJsError",value:function(e){return p.a.wrap(e)}},{key:"report",value:function(e){var t=e.mode,n=void 0===t?"":t,r=e.message,a=void 0===r?"":r,i=e.action,o=void 0===i?"mgray_error_report":i,s=e.pageUrl,c=void 0===s?location.href:s,l=e.name,p=void 0===l?"":l,d=e.vm,h=void 0===d?"":d,f=e.stack,m=(void 0===f?[]:f)[0]||{},v=m.column,g=m.line,w=m.url;this.request({mode:n,message:a,name:p,action:/windows|compatible|symbianos/i.test(window.navigator&&navigator.userAgent||"")?"mgray_spider_error":o,stackUrl:encodeURIComponent(w),column:v,line:g,vm:function(e){if(!e||!e.$options||"[object Object]"!==Object.prototype.toString.call(e))return"";if(e.$root===e)return"root instance";var t=e._isVue?e.$options.name||e.$options._componentTag:e.name;return(t?"component <"+t+">":"anonymous component")+(e._isVue&&e.$options.__file?" at "+e.$options.__file:"")}(h),pageUrl:encodeURIComponent(c),marsCid:u.a.get("mars_cid")})}},{key:"request",value:function(e){var t=Object(d.v)(a()({},e,{pageUrl:encodeURIComponent(location.href),marsCid:u.a.get("mars_cid"),domain:location.host})),n="//stat.vipstatic.com/h5front/report?_t="+(new Date).getTime()+"&"+t.substring(0,1500),r=new XMLHttpRequest;r.open("GET",n,!0),r.send()}},{key:"isIgnoreCode",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:0)in{221:"娓犻亾涓嶅瓨鍦ㄦ垨鏈惎鐢ㄦ垨鍒欏凡鐧诲綍",14212:"鍟嗗搧搴撳瓨涓嶈冻",14215:"鎶辨瓑锛屾暟閲忔湁闄愶紝鎮ㄦ渶澶氬彧鑳借喘涔2浠讹紒",222:"鍒涘缓澶辫触",52161:"failed to get product sku list,salesNoSize",52160:"ailed to get product sku list,salesNoSize",14214:"鏀惧叆璐墿琚嬩笉鎴愬姛锛岃喘鐗╄溅鏈澶氬彧鑳芥斁15娆惧晢鍝侊紝缁撶畻鍚庡彲缁х画璐拱",14200:"鏈櫥褰曚笉鑳借喘涔伴檺璐晢鍝"}}}]),e}();t.a=new h},"7j+Z":function(e,t){},"7u9P":function(e,t){},"7w1O":function(e,t,n){(function(n){var r,a,i; +/** + * https://github.com/csnover/TraceKit + * @license MIT + * @namespace TraceKit + */ +/** + * https://github.com/csnover/TraceKit + * @license MIT + * @namespace TraceKit + */ +!function(n,o){if(n){var s={},c=n.TraceKit,u=[].slice,l="?",p=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;s.noConflict=function(){return n.TraceKit=c,s},s.wrap=function(e){return function(){try{return e.apply(this,arguments)}catch(e){throw s.report(e),e}}},s.report=function(){var e,t,r,a,i=[],o=null,c=null;function u(e,t,n){var r=null;if(!t||s.collectWindowErrors){for(var a in i)if(d(i,a))try{i[a](e,t,n)}catch(e){r=e}if(r)throw r}}function l(t,n,r,a,i){if(c)s.computeStackTrace.augmentStackTraceWithInitialElement(c,n,r,t),f();else if(i)u(s.computeStackTrace(i),!0,i);else{var o,l={url:n,line:r,column:a},d=t;if("[object String]"==={}.toString.call(t)){var h=t.match(p);h&&(o=h[1],d=h[2])}l.func=s.computeStackTrace.guessFunctionName(l.url,l.line),l.context=s.computeStackTrace.gatherContext(l.url,l.line),u({name:o,message:d,mode:"onerror",stack:[l]},!0,null)}return!!e&&e.apply(this,arguments)}function h(e){u(s.computeStackTrace(e.reason),!0,e.reason)}function f(){var e=c,t=o;c=null,o=null,u(e,!1,t)}function m(e){if(c){if(o===e)return;f()}var t=s.computeStackTrace(e);throw c=t,o=e,setTimeout(function(){o===e&&f()},t.incomplete?2e3:0),e}return m.subscribe=function(o){!0!==t&&(e=n.onerror,n.onerror=l,t=!0),!0!==a&&(r=n.onunhandledrejection,n.onunhandledrejection=h,a=!0),i.push(o)},m.unsubscribe=function(o){for(var s=i.length-1;s>=0;--s)i[s]===o&&i.splice(s,1);0===i.length&&(t&&(n.onerror=e,t=!1),a&&(n.onunhandledrejection=r,a=!1))},m}(),s.computeStackTrace=function(){var e=!1,t={};function r(e){if("string"!=typeof e)return[];if(!d(t,e)){var r="",a="";try{a=n.document.domain}catch(e){}var i=/(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(e);i&&i[2]===a&&(r=function(e){if(!s.remoteFetching)return"";try{var t=function(){try{return new n.XMLHttpRequest}catch(e){return new n.ActiveXObject("Microsoft.XMLHTTP")}}();return t.open("GET",e,!1),t.send(""),t.responseText}catch(e){return""}}(e)),t[e]=r?r.split("\n"):[]}return t[e]}function a(e,t){var n,a=/function ([^(]*)\(([^)]*)\)/,i=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,o="",s=r(e);if(!s.length)return l;for(var c=0;c<10;++c)if(!h(o=s[t-c]+o)){if(n=i.exec(o))return n[1];if(n=a.exec(o))return n[1]}return l}function i(e,t){var n=r(e);if(!n.length)return null;var a=[],i=Math.floor(s.linesOfContext/2),o=i+s.linesOfContext%2,c=Math.max(0,t-i-1),u=Math.min(n.length,t+o-1);t-=1;for(var l=c;l0?a:null}function o(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function c(e){return o(e).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function u(e,t){for(var n,a,i=0,o=t.length;in&&(a=s.exec(i[n]))?a.index:null}function f(e){if(!h(n&&n.document)){for(var t,r,a,i,s=[n.location.href],l=n.document.getElementsByTagName("script"),p=""+e,d=0;d|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,s=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,c=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,u=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,d=/\((\S*)(?::(\d+))(?::(\d+))\)/,f=e.stack.split("\n"),m=[],v=/^(.*) is undefined$/.exec(e.message),g=0,w=f.length;g eval")>-1&&(t=u.exec(n[3]))?(n[3]=t[1],n[4]=t[2],n[5]=null):0!==g||n[5]||h(e.columnNumber)||(m[0].column=e.columnNumber+1),r={url:n[3],func:n[1]||l,args:n[2]?n[2].split(","):[],line:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}!r.func&&r.line&&(r.func=a(r.url,r.line)),r.context=r.line?i(r.url,r.line):null,m.push(r)}return m.length?(m[0]&&m[0].line&&!m[0].column&&v&&(m[0].column=p(v[1],m[0].url,m[0].line)),{mode:"stack",name:e.name,message:e.message,stack:m}):null}function v(e,t,n,r){var o={url:t,line:n};if(o.url&&o.line){e.incomplete=!1,o.func||(o.func=a(o.url,o.line)),o.context||(o.context=i(o.url,o.line));var s=/ '([^']+)' /.exec(r);if(s&&(o.column=p(s[1],o.url,o.line)),e.stack.length>0&&e.stack[0].url===o.url){if(e.stack[0].line===o.line)return!1;if(!e.stack[0].line&&e.stack[0].func===o.func)return e.stack[0].line=o.line,e.stack[0].context=o.context,!1}return e.stack.unshift(o),e.partial=!0,!0}return e.incomplete=!0,!1}function g(e,t){for(var n,r,i,o=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,c=[],u={},d=!1,h=g.caller;h&&!d;h=h.caller)if(h!==w&&h!==s.report){if(r={url:null,func:l,args:[],line:null,column:null},h.name?r.func=h.name:(n=o.exec(h.toString()))&&(r.func=n[1]),void 0===r.func)try{r.func=n.input.substring(0,n.input.indexOf("{"))}catch(e){}if(i=f(h)){r.url=i.url,r.line=i.line,r.func===l&&(r.func=a(r.url,r.line));var m=/ '([^']+)' /.exec(e.message||e.description);m&&(r.column=p(m[1],i.url,i.line))}u[""+h]?d=!0:u[""+h]=!0,c.push(r)}t&&c.splice(0,t);var b={mode:"callers",name:e.name,message:e.message,stack:c};return v(b,e.sourceURL||e.fileName,e.line||e.lineNumber,e.message||e.description),b}function w(t,o){var s=null;o=null==o?0:+o;try{if(s=function(e){var t=e.stacktrace;if(t){for(var n,r=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,o=/ line (\d+), column (\d+)\s*(?:in (?:]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,s=t.split("\n"),c=[],u=0;u=0&&(w.line=b+y.substring(0,k).split("\n").length)}}}else if(o=p.exec(t[g])){var x=n.location.href.replace(/#.*$/,""),C=u(new RegExp(c(t[g+1])),[x]);w={url:x,func:"",args:[],line:C?C.line:o[1],column:null}}if(w){w.func||(w.func=a(w.url,w.line));var S=i(w.url,w.line),T=S?S[Math.floor(S.length/2)]:null;S&&T.replace(/^\s*/,"")===t[g+1].replace(/^\s*/,"")?w.context=S:w.context=[t[g+1]],h.push(w)}}return h.length?{mode:"multiline",name:e.name,message:t[0],stack:h}:null}(t))return s}catch(t){if(e)throw t}try{if(s=g(t,o+1))return s}catch(t){if(e)throw t}return{name:t.name,message:t.message,mode:"failed"}}return w.augmentStackTraceWithInitialElement=v,w.computeStackTraceFromStackProp=m,w.guessFunctionName=a,w.gatherContext=i,w.ofCaller=function(e){e=1+(null==e?0:+e);try{throw new Error}catch(t){return w(t,e+1)}},w.getSource=r,w}(),s.extendToAsynchronousCallbacks=function(){var e=function(e){var t=n[e];n[e]=function(){var e=u.call(arguments),n=e[0];return"function"==typeof n&&(e[0]=s.wrap(n)),t.apply?t.apply(this,e):t(e[0],e[1])}};e("setTimeout"),e("setInterval")},s.remoteFetching||(s.remoteFetching=!0),s.collectWindowErrors||(s.collectWindowErrors=!0),(!s.linesOfContext||s.linesOfContext<1)&&(s.linesOfContext=11),a=[],void 0===(i="function"==typeof(r=s)?r.apply(t,a):r)||(e.exports=i)}function d(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function h(e){return void 0===e}}("undefined"!=typeof window?window:n)}).call(t,n("DuR2"))},"83Tv":function(e,t,n){"use strict";var r=n("hlbY");n.d(t,"a",function(){return r.a})},"8hGu":function(e,t,n){"use strict";var r={isDevelopment:!1,EventBus:new(n("/5sW").a),off:function(e,t){this.EventBus.$off(e+":"+t)},emit:function(e,t,n){this.EventBus.$emit(e+":"+t,n),this.isDevelopment&&window.console&&window.console.log({name:e+":"+t,type:"emit",data:n})},on:function(e,t,n){n&&"function"==typeof n&&this.EventBus.$on(e+":"+t,function(e){n(e)})},one:function(e,t,n){n&&"function"==typeof n&&this.eventDom.$once(e+":"+t,function(e,t){n(t)})}};t.a=r},"92UP":function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("+6Bu"),o=n.n(i),s=n("mvHQ"),c=(n.n(s),n("Zrlr")),u=n.n(c),l=n("wxAW"),p=n.n(l),d=n("ArKR"),h=n("wkJ7"),f=n("oyG6"),m=n("M9SS"),v=n("uWio"),g=n("GKmE"),w=n("ExBf"),b=n("1M/o");var _=function(){function e(){u()(this,e),this.url="",this.canWakeup=h.a.isIOS()&&h.a.isSafari()&&h.a.isOverIOS9(),this.initMap()}return p()(e,[{key:"go",value:function(e){var t=this._jumpActionParseUrl(e);return this[t.protocol]&&this[t.protocol](t)}},{key:"viprouter",value:function(e){var t=this,n=e.path,r=e.params;return{"/productlist/brand":function(){return t.getUrl({type:"showBrandProducts",brandId:r.brand_id},r)},"/productlist/store":function(){return t.getUrl({type:"showStoreProducts",storeId:r.store_id,curStoreTab:r.tab,filter_category_id:r.filter_category_id},r)},"/main/main_page":function(){return t.getUrl({type:"showHomePage"},r)},"/main/channel":function(){return t.getUrl({type:"showChannel",tag:r.wapUrl||r.tag},r)},"/main/beauty_main":function(){return t.getUrl({type:"showNewbeauty"},r)},"/productlist/brand_landing_list":function(){return t.getUrl({type:"showBrand",brandStoreSn:r.brand_store_sn},r)},"/productdetail/main":function(){return t.getUrl({type:"showGoodsDetail",productId:r.product_id,brandId:r.brand_id},r)},"/productdetail/special_product_list":function(){return t.getUrl({type:"showGoodsDetail",productId:r.product_id},r)},"/userfav/my_favor":function(){return t.getUrl({type:"showMyFavor",initType:r.init_type},r)},"/webview/specialpage":function(){return t.getUrl({type:"showWebview",url:r.url},r)},"/user/center":function(){return t.getUrl({type:"showUserCenter"},r)},"/user/vip_coin":function(){return t.getUrl({type:"showVipCoin"},r)},"/user/coupon":function(){return t.getUrl({type:"showCoupon"},r)},"/userorder/all_deal":function(){return t.getUrl({type:"showAllDeal"},r)},"/userorder/detail":function(){return t.getUrl({type:"showOrder",orderSn:r.order_sn},r)},"/userorder/prepaylist":function(){return t.getUrl({type:"showUnpayOrder"},r)},"/userorder/pre_receive_list":function(){return t.getUrl({type:"showReceiveOrder"},r)},"/userorder/over_view":function(){return t.getUrl({type:"showLogistics",orderSn:r.order_sn},r)},"/userorder/after_sale":function(){return t.getUrl({type:"showAfterSales",orderSn:r.order_sn},r)}}[n]()}},{key:"mojumper",value:function(e){var t=e.params||e,n=t.targetAction,r=t.targetParam||t.targetParams;if("string"==typeof r)try{r=JSON.parse(decodeURIComponent(r))}catch(e){}switch(Number(n)){case 1:case 2:case 11:case 21:case 28:var a=d.a.setQuery({url:r&&r.url,name:"wq",value:1});return this.getUrl({type:"showWebview",url:a},r);case 4:return this.getUrl({type:"showGoodsDetail",productId:r.product_id,brandId:r.brand_id||0},r);case 7:case 22:return this.getUrl({type:"showBrandProducts",brandId:r.brand_id},r);case 8:return this.getUrl({type:"showNewbeauty"},r);case 15:case 19:return this.getUrl({type:"showChannel",tag:r.wapUrl||r.tag},r);case 18:case 48:return this.getUrl({type:"showClassifyList",classifyId:r.classify_id,title:r.title||""},r);case 26:return this.getUrl({type:"showCoupon"},r);case 39:case 40:return this.getUrl({type:"showSearch",params:r},r);case 60:return this.getUrl({type:"showAutoList",ruleId:r.rule_id,title:r.title,productId:r.product_id},r);case 103:return this.getUrl({type:"showBrand",brandStoreSn:r.brand_sn},r);default:return{appUrl:"",wapUrl:"javascript:;"}}}},{key:"wrapCommonParams",value:function(e,t){return Object(g.z)(e,t)}},{key:"_jumpActionParseUrl",value:function(t){var n=document.createElement("a"),r=t.match(/(.*)\/\//)[1]||"",a=t.replace(new RegExp("(viprouter|mojumper)://"),e.VIRTUAL_HOST);return n.href=a,{source:t,protocol:(r||n.protocol).replace(":",""),host:n.hostname,port:n.port,query:n.search,params:function(){for(var e,t={},r=n.search.replace(/^\?/,"").split("&"),a=r.length,i=0;i-1)return"//h2.appsimg.com"+t.replace(/(http|https):\/\//,"/");return t.replace(/(http|https):\/\/(.*).vpimg(.*).com/,"//h2.appsimg.com/a.appsimg.com")},t.getPriceDecimal=function(e){var t=String(e||"");return String(t).split(".")[1]?"."+t.split(".")[1]:""},t.getPriceMain=function(e){return String(e||"").split(".")[0]||""},t.maxFontNum=function(e,t){"string"!=typeof e&&(e=String(e));return e?e.slice(0,t):""},t.transformImageUrl=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments[2];return r.a.transformImageUrl(e,t,n)},t.formatMoney=function(e){if(Number(e)<0)return"-¥"+e.substring(1);return"¥"+e},t.formatNumberTo=function(e,t){return parseFloat(e).toFixed(t)};var r=n("Igsb")},"9aD2":function(e,t,n){"use strict";var r=n("pFYg"),a=n.n(r),i=n("woOf"),o=n.n(i),s=n("//Fk"),c=n.n(s),u=n("/5sW"),l=function(){},p={name:"message-box",data:function(){return{}},props:{message:String,dialogId:{type:String,default:""},title:{type:String,default:""},className:{type:String,default:""},btns:{type:Array,default:function(){return[]}},updated:{type:Function,defalut:l},callback:{type:Function,defalut:l},visible:Boolean,freeze:Boolean},methods:{close:function(e){this.visible=!1},btnClickHandle:function(e){this.callback&&this.callback(e)}},updated:function(){this.$nextTick(function(){this.updated&&this.updated()})}},d={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"fade"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"dialog-wrapper"},[n("div",{staticClass:"dialog",class:e.className,attrs:{id:e.dialogId}},[n("h3",{directives:[{name:"show",rawName:"v-show",value:e.title,expression:"title"}],staticClass:"dialog-title"},[e._v("\n "+e._s(e.title)+"\n ")]),n("section",{staticClass:"dialog-body",domProps:{innerHTML:e._s(e.message)}}),n("section",{directives:[{name:"show",rawName:"v-show",value:e.btns,expression:"btns"}],staticClass:"dialog-foot border-t"},e._l(e.btns,function(t,r){return n("button",{key:r,attrs:{"data-index":r},on:{click:function(t){return t.stopPropagation(),e.btnClickHandle(r)}}},[e._v(e._s(t))])}),0)]),n("div",{staticClass:"mask",attrs:{id:"mask"},on:{click:function(t){return t.stopPropagation(),e.close(t)}}})])])},staticRenderFns:[]};var h=n("VU/8")(p,d,!1,function(e){n("dj9H")},null,null).exports,f=u.a.extend(h),m={title:"",message:"",dialogId:"",visible:!1,className:"",lockScroll:!1,freeze:!1,btns:[]},v=void 0,g=void 0,w=[],b=function(e){if(v){var t=v.callback;"function"==typeof t&&t(e),v.resolve&&v.resolve(e),g.close()}},_=function(){if(g||((g=new f({el:document.createElement("div")})).callback=b),!g.visible){if(w.length>0){var e=(v=w.shift()).options;for(var t in e)e.hasOwnProperty(t)&&(g[t]=e[t]);void 0===e.callback&&(g.callback=b)}document.body.appendChild(g.$el),u.a.nextTick(function(){g.visible=!0})}},y=function(e,t){return"string"==typeof e?(e={message:e},"string"==typeof arguments[1]&&(e.title=arguments[1])):e.callback&&!t&&(t=e.callback),new c.a(function(n,r){w.push({options:o()({},m,e),callback:t,resolve:n,reject:r}),_()})};y.alert=function(e,t,n){return"object"===(void 0===t?"undefined":a()(t))?(n=t,t=""):void 0===t&&(t=""),y(o()({title:t,message:e,$type:"alert"},n))},y.close=function(){g.doClose(),g.visible=!1,w=[],v=null};t.a=y},"9bvu":function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("ExBf"),c=n("wkJ7"),u=n("83Tv"),l=null,p=function(){function e(){a()(this,e)}return o()(e,[{key:"delayOpenUpgradePop",value:function(){var e=this;l&&clearTimeout(l),l=setTimeout(function(){e.openUpgradePop()},1e3)}},{key:"openUpgradePop",value:function(e,t){c.a.isAndroidMiniApp()&&s.a.base.emitEvent({event:"base.lite.upgrade",data:{result:""}},function(t){e&&e(t)},function(e){var n;n="缃戠粶寮傚父锛岃鍒锋柊鍚庨噸璇",Object(u.a)({message:n}),t&&t(e)})}},{key:"handleNativeFloatCmp",value:function(){if(c.a.isAndroidMiniApp()){var e=location.pathname;["(preheating-)?product-\\d+-\\d+\\.html","cart\\.html","pay-page\\.html","user-order-aftersales\\.html","refund-progress\\.html","refund-preview\\.html","order-progress-track\\.html","user-order-logistics\\.html"].find(function(t){return new RegExp(t).test(e)})?this.hideFloatCmp():this.showFloatCmp()}}},{key:"hideFloatCmp",value:function(){s.a.base.emitEvent({event:"cart.lite.hideFloat",data:{result:"1"}})}},{key:"showFloatCmp",value:function(){s.a.base.emitEvent({event:"cart.lite.showFloat",data:{result:"1"}})}}]),e}();t.a=new p},A11p:function(e,t){},Ad8Q:function(e,t,n){"use strict";t.j=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/brand/brandStore/info",method:"get",params:s()({},e,{mvip:!0})})},t.k=function(e){return Object(c.a)({url:"vips-mobile/rest/product/brandstore/product/rank",method:"get",retries:1,params:s()({},e,{mvip:!0})})},t.c=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/brand_store/get_category",method:"get",params:s()({},e,{mvip:!0})})},t.E=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/brandstore/get_total_goods",method:"get",params:s()({},e,{mvip:!0})})},t.i=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/brandstore/category_props",method:"get",params:s()({},e,{mvip:!0})})},t.b=function(e){if(!e.mtmsRuleId||""===e.mtmsRuleId)return a.a.resolve({});return Object(c.a)({url:"vips-mobile/rest/shopping/rule/product/filters/v1",method:"get",params:s()({},e,{mvip:!0})})},t.q=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/postfree/active/product/panel/filters/v1",method:"get",params:s()({},e,{mvip:!0})})},t.A=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/search/category_tree/get",method:"get",params:s()({},e,{mvip:!0})})},t.n=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/get_category/v2",method:"get",params:s()({},e,{mvip:!0})})},t.B=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/search/category_props/get",method:"get",params:s()({},e,{mvip:!0})})},t.p=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/category_props/v2",method:"get",params:s()({},e,{mvip:!0})})},t.z=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/search/brand_store/get/v3",method:"get",params:s()({},e,{mvip:!0})})},t.m=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/getBrandStoreSnByCategory/v2",method:"get",params:s()({},e,{mvip:!0})})},t.e=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/wap/screening/brandstore/get",method:"get",params:s()({},e,{mvip:!0})})},t.F=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/brand/product/guide/modules/v1",method:"get",params:s()({},e,{mvip:!0})})},t.h=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/product/wap/screening/size_property/get",method:"get",params:s()({},e,{mvip:!0})})},t.f=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/product/wap/screening/category/get",method:"get",params:s()({},e,{mvip:!0})})},t.s=function(e){if(!e.mtmsRuleId||""===e.mtmsRuleId)return a.a.resolve({});return Object(c.a)({url:"vips-mobile/rest/product/list/count/rule/v1",method:"get",params:s()({},e,{mvip:!0})})},t.r=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/postfree/active/product/count/v1",method:"get",params:s()({},e,{mvip:!0})})},t.g=function(e){return Object(c.a)({url:"vips-mobile/rest/product/list/rank/count/wap/v1",method:"get",params:s()({},e,{mvip:!0})})},t.o=function(e){return Object(c.a)({url:"vips-mobile/rest/shop/goods/category/get_total_goods",method:"get",params:s()({},e,{mvip:!0})})},t.t=function(e){if(!e.mtmsRuleId||""===e.mtmsRuleId)return a.a.resolve({});return Object(c.a)({url:"vips-mobile/rest/shopping/product/list/rank/rule/v2",method:"get",params:s()({},e,{mvip:!0})})},t.w=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/postfree/active/product/rank/v1",method:"get",params:s()({},e,{mvip:!0})})},t.d=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/brand/product/hot/category/filter/v1",method:"get",params:s()({},e,{mvip:!0})})},t.x=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/search/product/rank",method:"get",params:s()({},e,{mvip:!0})})},t.C=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/search/recommend/label/v2",method:"get",params:s()({},e,{mvip:!0})})},t.u=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/wap/product/list/rank/v2",method:"get",params:s()({},e,{mvip:!0})})},t.v=function(e){return Object(c.a)({url:"vips-mobile/rest/product/wap/category/product/rank",method:"get",params:s()({},e,{mvip:!0})})},t.y=function(e){return Object(c.a)({url:"vips-mobile/rest/shopping/wap2/product/module/list/v2",backupUrl:"vips-mobile/rest/shopping/wxapp/product/module/list/v2",Authorization:!0,method:"get",params:s()({},e)})},t.D=function(e){return Object(c.a)({url:"/vips-mobile/rest/shopping/app/store/product/rank/v1",method:"get",params:s()({},e,{mvip:!0})})},t.l=function(e){return Object(c.a)({url:"/vips-mobile/rest/cart/get_cart_history",method:"get",params:s()({},e,{mvip:!0,needLogin:!0})})},t.a=function(e){return Object(c.a)({url:"vips-mobile/router.do?",method:"get",params:s()({},e,{needLogin:!0,service:"vipshop.shop.cart.apiDeleteHistory",mvip:!0})})};var r=n("//Fk"),a=n.n(r),i=n("mvHQ"),o=(n.n(i),n("Dd8w")),s=n.n(o),c=n("vLgD")},ArKR:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("BO1k"),o=n.n(i),s=n("pFYg"),c=n.n(s);t.a={getQuery:function(e){var t="",n="",r=!1;"string"==typeof e?t=e:"object"===(void 0===e?"undefined":c()(e))&&(t=e.name,n=e.url,r=e.isHash);var a=new RegExp("(^|&|\\?)"+t+"=([^&#]*)(&|#|$)"),i=null;return null!=(i=n?r?(n=n.substring(n.indexOf("#")+1)).match(a):(n=n.substring(n.indexOf("?")+1)).match(a):r?window.location.hash.substr(1).match(a):window.location.search.substr(1).match(a))?decodeURIComponent(i[2]):""},getHash:function(e){return this.getQuery({name:e,isHash:!0})},setQuery:function(e){var t,n,r=e.name,a=e.value,i=e.isHash,o=(e.url||location.href).split("#"),s=new RegExp("(^|\\?|&|#)("+r+"=[^&#\\?]*)");return n=(t=(n=i?o[1]||"":o[0]).match(s))?n.split(t[2]).join(r+"="+a):n.match(/\?/)?n.replace("?","?"+r+"="+a+"&").replace("&&","&"):n+"?"+r+"="+a,i?o[1]=n:o[0]=n,o.join("#")},setHash:function(e){var t=function(){for(var e=(location.hash||"").replace("#","").split("&"),t={},n=0;n1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=document.createElement("a"),a="";return t||(a=e.match(/(.*)\/\//)[1]||"",e=e.replace(new RegExp(n),"https://m.vip.com/")),r.href=e,{source:e,protocol:(a||r.protocol).replace(":",""),host:r.hostname,port:r.port,query:r.search,params:function(){for(var e,t={},n=r.search.replace(/^\?/,"").split("&"),a=n.length,i=0;i0?e+"&"+r:e+"?"+r:e}}},BjXC:function(e,t){},CQJe:function(e,t){},ChiH:function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("wkJ7"),c=n("Rjba"),u=function(){function e(){a()(this,e),this.isWechat=s.a.isWechat()}return o()(e,[{key:"wakeup",value:function(e){this.isWechat?this.wxWakeup(e):this.normalWakeup()}},{key:"normalWakeup",value:function(){}},{key:"wxWakeup",value:function(e){var t=this;c.a.initSdk(function(){t.isNewWechat(navigator.userAgent)&&(window.WeixinJSBridge?t.invokeLaunchApp(e):document.addEventListener("WeixinJSBridgeReady",function(){t.invokeLaunchApp(e)}))})}},{key:"invokeLaunchApp",value:function(e){setTimeout(function(){var t={appID:"wx9201f56e975e8fb6",schemeUrl:e.schemeUrl};WeixinJSBridge&&WeixinJSBridge.invoke&&WeixinJSBridge.invoke("launchApplication",t,e.onLaunch)},0)}},{key:"isNewWechat",value:function(e){var t=e.match(/micromessenger\/([\d.]+)/i),n=Array.isArray(t)?t[1].split("."):null;return null!==n&&(parseInt(n[0],10)>6||!(parseInt(n[0],10)<6)&&(parseInt(n[1],10)>5||!(parseInt(n[1],10)<5)&&(parseInt(n[2],10)>=16||(parseInt(n[2],10),!1))))}}]),e}();t.a=new u},DKKv:function(e,t,n){"use strict";t.e=function(e){return Object(c.a)({url:"vips-mobile/rest/wxoperation/switch/v1",method:"get",params:o()({},e,{mvip:!0})})},t.b=function(e){return Object(c.a)({url:"vips-mobile/rest/operation/document/v1",method:"get",params:o()({},e,{mvip:!0})})},t.c=function(e){return Object(c.a)({url:"vips-mobile/rest/operation/dynamic-config/v1",method:"get",params:o()({},e,{mvip:!0})})},t.f=function(e){return Object(c.a)({url:"https://mshop-api.vip.com/canal/v1",method:"get",params:e})},t.a=function(e){return new a.a(function(t,n){Object(s.a)("https://mcp.vip.com/share/get_app_share",{params:e,jsonp:"callback",timeout:3e3},function(e,r){e?n(e):t(r)})})},t.d=function(e){return Object(c.a)({url:"vips-mobile/rest/operation/startup/v3",method:"get",params:o()({},e,{mvip:!0})})};var r=n("//Fk"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("swYn"),c=n("vLgD")},"Es//":function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("mvHQ"),c=n.n(s),u=n("pD4m"),l=n("oyG6"),p=n("wkJ7"),d=n("ArKR"),h=n("1M/o"),f=n("p6Um"),m=n("ExBf"),v=n("uWio"),g=n("fZjL"),w=n.n(g);function b(e){var t=w()(e).map(function(t){return t+"="+e[t]}).join("&");return e&&w()(e).length?"?"+t:t}function _(e,t,n){var r=e.match(t),a={};return r&&r.length===n.length+1&&n.forEach(function(e,t){return a[e]=r[t+1]}),a}function y(e){var t=document.createElement("a");t.href=window.location.href;var n=t.href.replace(t.origin,"").slice(1),r="";for(var a in e)if(new RegExp(a).test(n)){r={pathName:n,cb:e[a]};break}return r}var k=n("lfdE"),x=n("LM2N"),C=n("d7EF"),S=n.n(C),T=n("92UP"),I=n("VKKs"),O=n.n(I),A="//vipma.net/quickapp.html",j=new f.a;function L(e){O.a.setSessionStorage("wq","1"),setTimeout(function(){location.href=e},200)}function P(){var e=y(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{});var t=e?e.cb(e.pathName):function(){var e=document.querySelector(".menu_nav_current")&&document.querySelector(".menu_nav_current").getAttribute("data-channel-code");if(!e)return"";var t=T.a.getQuickAppUrl("showChannel",{tag:e}),n=d.a.setQuery({name:"wq",value:"1"});return A+"?hap_url="+encodeURIComponent(t)+"&dest_url="+encodeURIComponent(n)}();return!!t&&(p.a.isWechat()?(h.a.seed("button","click","wx_show_wakeup_quickapp"),j.open({className:"wx-quickapp-wakeup-pop",content:"鍗冲皢绂诲紑寰俊锛屾墦寮鈥滃敮鍝佷細鈥",onBtnClick:function(e,n){j.close(),0==n?(h.a.seed("button","click","wx_cancel_wakeup_quickapp"),O.a.setSessionStorage("has_popup_quickapp_dialog","true")):(h.a.seed("button","click","wx_confirm_wakeup_quickapp"),L(t))},btns:["鍙栨秷","纭"],freeze:!1})):L(t),!0)}n.d(t,"b",function(){return H}),t.a=function(){u.a.getConfig({type:"wapCanal"}).then(function(e){var t=e.customSetting||{},n=t.blockQuickAppWakeup,r=t.blockAppWakeup,a=t.IndexPopupWakeup,i=t.allowCpsWakeup;E.isBlockQuick=1==n,E.isBlockAPP=1==r,E.isPopupWakeup=1==a,E.allowCpsWakeup=1==i,function(){if(m.a&&m.a.utils&&m.a.utils.platform&&m.a.utils.platform.isWXLite){var e=y({"product-":function(e){return{path:"/pages/productDetail/productDetail"+b(_(e,/(\w+).html/,["goodsId"])),navType:"2"}},"brand-":function(e){return{path:"/pages/brand/brand"+b(_(e,/brand-(\d+)/,["brandId"])),navType:"2"}},"recommend-brand-":function(){return{path:"/pages/index/index",navType:"3"}},"^$|^(index|newbeauty|jiadian|jiaju|lifemarket|lux|yiyao|leftlife|jiajujiazhuang|dajiadian|jiajujiafang|nb.*).html$":function(e){var t=document.querySelector(".menu_nav_current")&&document.querySelector(".menu_nav_current").getAttribute("data-channel-code");return t?{path:"/pages/index/index?channelCode="+t,navType:"3"}:""},"classify-list-":function(e){return{path:"/pages/classifyList/classifyList"+b(_(e,/classify-list-(\d+)/,["categoryId"])),navType:"2"}}});if(e){var t=e.cb(e.pathName);t&&window.setTimeout(function(){m.a.base._routeToPage({url:t.path,navType:t.navType})},1e3)}return!1}u.a.getConfig({type:"switch",code:1032}).then(function(e){var t=!E.allowCpsWakeup&&l.a.get("cps");d.a.getQuery("wq")&&O.a.setSessionStorage("wq",W),D=e,p.a.isWechat()||W||(t||d.a.getQuery("tra_from")||E.isBlockAPP||0!=e&&2!=e?2!=D&&H(R):E.isPopupWakeup?(U.open({className:"pop",content:"鎵撳紑鍞搧浼歛pp锛屾洿澶氭儕鍠滅瓑浣犳潵",btns:["鍙栨秷","鎵撳紑"],onBtnClick:function(e,t){U.close(),1===t?(R(),h.a.seed("button","click","WAP_wake_up_app_pop_up_appear_agree_click")):h.a.seed("button","click","WAP_wake_up_app_pop_up_appear_Disagree_click")}}),h.a.seed("button","click","WAP_wake_up_app_pop_up_appear")):R())})}()})};var E={},U=new f.a,M=l.a.get("wap_consumer")||"A1",D=0,W=O.a.getSessionStorage("wq")||d.a.getQuery("wq");function R(){if(!(!E.allowCpsWakeup&&l.a.get("cps"))&&!d.a.getQuery("tra_from")&&!E.isBlockAPP){var e=Object(k.a)();if(!e||/recommend-brand-(\d+).html/.test(location.pathname))return;e=e+(e.indexOf("?")>-1?"&":"?")+Object(v.a)(),Object(x.a)({url:e,type:1},function(){h.a.seed("button","click","WAP_wake_up_app_start")},function(){h.a.seed("button","click","WAP_wake_up_app_fail"),2!=D&&H()})}}function $(e){h.a.seed("a","load","wap_call_up",c()(e))}var F,H=(F=o()(a.a.mark(function e(t){var n,r,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.a.getConfig({type:"switch",code:852});case 2:return n=e.sent,e.next=5,u.a.getConfig({type:"config",code:"quickapp_flow_from_m"});case 5:if(r=e.sent,!N(n,r,i)||E.isBlockQuick){e.next=13;break}if(!P({"product-":function(e){var t=e.match(/product-(\d+)-(\d+).html/),n=S()(t,3),r=(n[0],n[1]),a=n[2],i=d.a.setQuery({name:"wq",value:"1"}),o=T.a.getQuickAppUrl("showGoodsDetail",{productId:a,brandId:r});return A+"?hap_url="+encodeURIComponent(o)+"&dest_url="+encodeURIComponent(i)},"classify-list-":function(e){var t=e.match(/classify-list-(\d+)-.*\.html/),n=S()(t,2),r=(n[0],n[1]),a=d.a.getQuery("title"),i=d.a.setQuery({name:"wq",value:"1"}),o=T.a.getQuickAppUrl("showClassifyList",{categoryId:r,categoryName:a});return A+"?hap_url="+encodeURIComponent(o)+"&dest_url="+encodeURIComponent(i)}})){e.next=10;break}return $({call_quickapp:0,consumer:M}),e.abrupt("return",!0);case 10:return $({call_quickapp:1,failtype:2,consumer:M,fail_data:4}),t&&t(),e.abrupt("return",!1);case 13:t&&t();case 14:case"end":return e.stop()}},e,this)})),function(e){return F.apply(this,arguments)});function N(e,t,n){var r=[],a=p.a.isIOS(),i=O.a.getSessionStorage("has_popup_quickapp_dialog");if((n||!W)&&!i){try{r=(t||[]).filter(function(e){return new RegExp(e.mobile,"i").test(window.navigator&&navigator.userAgent)})}catch(e){r=[]}return r.length?E.isBlockQuick||!e?$({call_quickapp:1,failtype:2,consumer:M,from:l.a.get("WAP[from]"),enable:0,fail_data:e?3:2}):a&&$({call_quickapp:1,failtype:2,consumer:M,from:l.a.get("WAP[from]"),enable:0,fail_data:1}):$({call_quickapp:1,failtype:1,fail_data:0,consumer:M}),!a&&1==e&&r.length>0}return!1}},FA0W:function(e,t,n){"use strict";var r=n("Xj+z");n.d(t,"a",function(){return r.a})},FABM:function(e,t){},G2sm:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOQAAAA8CAMAAABB5Ob9AAAAh1BMVEUAAADfPZffPpbfPZffPZffPZfkQJvePpffP5jfPpfiQZnfPZffPpffPpffPZbgP5b/SrbgP5jhP5jePZffPZffQZffPpfoRZnjR5vfPpjfPZfgPZbhP5jgPpbgQJbfPpbzTKvfPZbfPpffPpfePZffPpfqSKLhP5jjPpjhQZnfPZffPpjePZZ5hFqyAAAALHRSTlMAuaHB9uEb2k+QIsVegdR6BGpG+pYn5xYRdKuTMms4tAfyzKbrVgs+NS2+b5zP9kQAAAPlSURBVGje7ZrpsqIwEEYbZBVQBAXccd/y/s83G7HjEEPYZuKte/6JBZUTpPtLEIRYe0I55PATp/g0AREhaUIGstxMPGsXQTtWeLEAQBnJaEcY4gm0wXlezDiBOpLrmLzihlBBzGUGAHNCSa6gjGQ4JSW2ZxBDuMwg1AllZEEzSXssw6iOZKYRiu3hCIeNJLM7oZhO9CQoji0jBuud5BZkWNSQHI4IZZDleB+OmwaSjk3k8f+Z5OZIKHoIAGOCVUNC0g5+49FziIqSPg5rXjw+eCSoltTgNy49RUXJAJujw+lyh/zzJfMFVokVN694aXPJxQqhbSVYMWT/QjJFmb0FDGdG/tZYcgpQ0UL6l2ST3CKv/BnLSy4VknR2ogLjYwZ61JLcOUN1JB/YKvyK1jIN5SXNGygjGU6Zpl8ZErRMVnKfgjKSmcbEN5m4N5SUnIEykkNbcJOQcIm3+/JpkpcjVsIQREye5Sf2lZOkj1MOHHwc+brGYjpQTHJNS504yZFEq8RmEsxZHclwo2Pm4CW5xuytWpLeHNHpRM0Zbu8kDbuCJMYGOORto7XAXElJtgjotYl93jZaK3aOYpKJI0pyZi2YRadCkvF+Xa6sc8GiX8wqYbYP+pMEXZqp+4jOwiSXXEGM6FkeZJKSeor4xbFxypBD12R3tkrKwV9i2rM2LaRXJi4lOEMTHniBvHPJ1BLxa8CZJSKF7ulc0iYi1phh3uDBb74lvyU/TNLRW7PuVfLov+ByJAP/hbgkOSatWfQqacILDkdyAy8Y35JfVnJusDxzrlGDg7zkaIlsaSZcMlw7lKx61zPsp7pW4/cumR+fw/y6kj4pOH1hSbp2SsK+JI0Eoav1XcJw6lvySgoClRJPx5K6ZNm5DgounyeZ0gZyBzFhQhukQBLnzFJJcixZdvDisSWQzM3ikQOFJEOTvsjJoYKhxGuC8Ll3rJLkiRS4UImG88GR9K5XZ/xcKEUqSQ7wv3CVnPg7iITDARSSvBFu2amIRvsqyW3eseQJz3onGReZGEpMa6UdF2+7SDKZhNCpJI7TeSt5wd/QX2QGPmYSRFTj8V7S1E9ngI4lNzE2Jr7keY9vL/5iLld2cLZ40xUhl1sGSFeS2WOHGzhcyTAa0f5WjjSmRNlBZh4pGIAEKGlqCJ3xkcYQlSQNjXIfxYRyYSU9vCbzrwCg4KxS/5EER3ZXoJpWqxA+Y0BJPt6Z0/gaMvkfkrsJVEkeyo6zpo5e+O8lTTcFsaSx3UCZZTPFeJpDPclkUEEETw6lL+/awl0zRcMvn69t9fGFO6pQ894weIu2cP0UZMHq+oVJD3/w4dP5AdK4gHoiM+nWAAAAAElFTkSuQmCC"},G3mK:function(e,t){},GJWF:function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("/5sW"),c={name:"loading",model:{prop:"show",event:"change"},props:{show:Boolean,text:{type:String,default:"鍔犺浇涓"},position:String,transition:{type:String,default:"vui-mask"}},watch:{show:function(e){this.$emit("update:show",e)}}},u={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"vui-loading-container",class:e.text?"":"vui-loading-no-text"},[n("div",{staticClass:"vui-mask"}),n("div",{staticClass:"vui-toast",style:{position:e.position}},[n("i",{staticClass:"vui-loading"}),e.text?n("p",{staticClass:"vui-toast-content"},[e._v(e._s(e.text))]):e._e()])])},staticRenderFns:[]};var l=n("VU/8")(c,u,!1,function(e){n("SPhU")},"data-v-d94f9d8a",null).exports,p=s.a.extend(l),d=function(){function e(){a()(this,e),this.instance=new p({el:document.createElement("div")}),document.body.appendChild(this.instance.$el)}return o()(e,[{key:"hide",value:function(){this.instance.show=!1}},{key:"show",value:function(){this.instance.show=!0}}]),e}();t.a=new d},GKmE:function(e,t,n){"use strict";t.p=function(){var e=document.referrer;"bocmobile"==p.a.getQuery({url:e,name:"f"})&&e.indexOf("nova=1")>-1&&h.a.setLocalStorage("boc_ref_sign",e)},t.s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};window.location.replace(k(e,l()({l:"__replace"},t)))},t.q=function(e){return w(e,"string")},t.v=function(e){var t="object"===(void 0===e?"undefined":c()(e))&&"Object"===Object.prototype.toString.call(e).slice(-7,-1);if(!e||!t)return"";var n="";o()(e).forEach(function(t){e[t]=encodeURIComponent(decodeURIComponent(e[t])),n+=t+"="+e[t]+"&"}),n.length&&(n=n.slice(0,-1));return n},t.c=function(e){return{isWranupOrBanStatus:(1&e)>>0==1,isMultiColor:(16&e)>>4==1,isUseSquareImage:(4&e)>>2==1,favStatus:(8&e)>>3==1}},t.b=function(e,t){var n=t.toString(),r=e;return Array.prototype.ftoogle=function(e){var t=this.indexOf(e);return t>-1?this.splice(t,1):this.push(e),this},r.ftoogle(n)},t.r=function(e){return e/37.5+"rem"},t.t=function(e){return window.flexible&&window.flexible.rem2px?window.flexible.rem2px(e):e.replace(/rem$/,"")},t.d=function(e){var t=new Date;if(e-t.getTime()/1e3<0)return"";var n=new Date(t.toDateString()).getTime()/1e3;return e-(n+259200)>0?{dayText:Object(f.a)(e,"{MM}鏈坽DD}鏃"),time:Object(f.a)(e,"{HH}:{mm}")}:e-(n+172800)>0?{dayText:"鍚庡ぉ",time:Object(f.a)(e,"{HH}:{mm}")}:e-(n+86400)>0?{dayText:"鏄庡ぉ",time:Object(f.a)(e,"{HH}:{mm}")}:{dayText:"浠婂ぉ",time:Object(f.a)(e,"{HH}:{mm}")}},t.j=function(){var e=v.a.get()||{},t=e.warehouse,n=void 0===t?m.a.warehouse:t,r=e.fdc_area_id,i=void 0===r?m.a.city_id:r,o=e.m_vip_province,s=void 0===o?m.a.warehouse:o,c=e.mars_cid,u=void 0===c?"1543974942000_277ef12d2242b89db2c8c08a7cffffff":c,l=e.cps,p=void 0===l?"":l,d=e.g_id,h=void 0===d?"":d,f="mobiles-"+(p||h)+"||",g=v.a.get("WAP[from]")||"nature",w="mobiles-"+(p||h||"nature")+"||";return a()(b,{warehouse:n,fdc_area_id:i,province_id:s,mars_cid:u,mobile_channel:f,standby_id:g,union_mark:w})},t.l=function(e,t){return window.sign&&"function"==typeof window.sign.getSign?window.sign.getSign(e,t):""},t.f=function(e,t){var n,r=!1;(t=t||{}).debug||!1;try{var a="rtl"==document.documentElement.getAttribute("dir");(n=document.createElement("textarea")).style.fontSize="12pt",n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[a?"right":"left"]="-9999px";var i=window.pageYOffset||document.documentElement.scrollTop;n.style.top=i+"px",n.setAttribute("readonly",""),n.value=e,document.body.appendChild(n),function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),a=document.createRange();a.selectNodeContents(e),r.removeAllRanges(),r.addRange(a),t=r.toString()}}(n);var o=document.execCommand("copy");if(!o)throw new Error("copy command was unsuccessful");r=!0}catch(t){try{window.clipboardData.setData("text",e),r=!0}catch(e){}}finally{n&&document.body.removeChild(n)}return r},t.x=function(e,t){return e.then(function(e){return[null,e]}).catch(function(e){return t&&a()(e,t),[e]})},t.i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t="",n="";try{t=e.replace(_,""),n=e.replace(y,"").replace(/\s/g,"")}catch(e){}return[t.length!==e.length,t,n]},t.w=function(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return t[n]})},t.m=function(e,t,n){if(!e)return"";n||(n={});if(!t||0==t.length)return e;return e.replace(/{(\d+)}/g,function(e){var r=e.replace(/{|}/g,"");return''+t[r]+""})},t.o=function(e){return e&&e.replace(/^(?:https?:)?\/\//i,"https://")},t.g=function(e,t,n){var r="",a=0;if((e=e.filter(function(e){return a+=(e=e||"").length,e.length>0})).length>1){if(a>t){var i=a-t,o=Math.ceil((t-e.length+1)/e.length);for(var s in e){var c=e[s]||"";if(c.length>o){var u=c.length-i,l=o>u?o:u;e[s]=c.substring(0,l)+"..."}}}r=e.join(n)}else 1==e.length&&(a>t&&(e[0]=e[0].substring(0,t-1)+"..."),r=e[0]);return r},t.k=function(){return{warehouse:v.a.get("warehouse"),province:v.a.get("m_vip_province"),user_id:v.a.get("m_vipruid"),app_name:g.a.isWechat()?"shop_weixin_wap":"shop_wap",app_version:"4.0",cid:v.a.get("mars_cid")||"1543974942000_277ef12d2242b89db2c8c08a7cffffff",ua:navigator.userAgent||""}},t.y=function(e){return e&&e.replace(/^(?:https?:)?\/\//i,"https://")},t.n=function(e,t,n){if(!e)return"";n||(n={});if(!t||0==t.length)return e;return e.replace(/{(\d+)}/g,function(e){var r=e.replace(/{|}/g,"");return''+t[r]+""})},t.u=function(e,t){var n=t||2,r=Math.pow(10,n),a=parseFloat(e)*r/r,i=a.toString().split(".");if(1===i.length)return a=a.toString()+"."+"0".repeat(n);if(i.length>1)return i[1].lengthn&&(a=i[0]+"."+i[1].toString().slice(0,n)),a;return e},t.a=function(e){return Number(e)<0?"-¥"+e.toString().substr(1):"¥"+e},t.z=k,t.h=function(e){var t=p.a.parseURL(e);["width","height","area_id","fdc_area_id","oxo_province_id","net","vipruid","app_name","f","source","warehouse","app_version","client","mobile_platform","mobile_channel"].forEach(function(e){t.params&&t.params[e]&&delete t.params[e]});var n=[];return o()(t.params||{}).forEach(function(e){n.push(e+"="+t.params[e])}),"https://"+t.host+t.path+"?"+n.join("&")},t.e=function(e,t){e=e.split("."),t=t.split(".");var n=Math.max(e.length,t.length);for(;e.lengthi)return 1;if(a0?e+"&"+r:e+"?"+r:e}},Gyoi:function(e,t){},HMTI:function(e,t,n){"use strict";n.d(t,"a",function(){return g}),n.d(t,"b",function(){return w}),n.d(t,"e",function(){return b}),n.d(t,"d",function(){return _}),n.d(t,"c",function(){return y});var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("fZjL"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("ArKR"),d=n("vLgD"),h=n("iPXC"),f=n("wkJ7"),m=n("pD4m"),v=n("r7MF"),g=(n("GKmE"),{city_id:"104104101",province_id:"104104",warehouse:"VIP_NH"}),w=p.a.getQuery("msns")||p.a.getQuery("nmsns"),b={init:function(){var e=h.a.getAll(),t=e.warehouse,n=void 0===t?"":t,r=e.fdc_area_id,a=void 0===r?"":r,i=e.m_vip_province;if(a&&(!/\d+/.test(a)||a.length<=6)&&(a=""),!(n&&a&&i))return a?b.getArea(a).then(function(e){var t=e.data,n=void 0===t?{}:t,r=n.full_street_id,a=n.full_district_id,i=n.full_city_id,o=n.saleSite,s=n.full_province_id;if(i&&o){var c=r||a||i;h.a.changeWarehouse(o,s,c)}else b.setDefault()}).catch(function(){b.setDefault()}):b.query().then(function(e){var t=e.data,n=void 0===t?{}:t,r=n.cityCode,a=n.saleSite,i=n.provinceCode;r?h.a.changeWarehouse(a,i,r):b.setDefault()}).catch(function(){b.setDefault()})},query:function(){return Object(d.a)({url:"https://mapi-rp.vip.com/vips-mobile/rest/h5/salesite/locate",method:"get",timeout:1e3})},getArea:function(e){return Object(d.a)({url:"https://mapi-rp.vip.com/vips-mobile/rest/user/address/area/get?street="+e,method:"get",timeout:1e3})},setDefault:function(){h.a.changeWarehouse(g.warehouse,g.province_id,g.city_id)}},_={init:function(){var e=null;e=f.a.isAndroidMiniApp()?"xiaobao":p.a.getQuery("f");var t=h.a.getWapFrom(),n=!1;if(!e&&t&&(e=t,n=!0),h.a.getWapRevision()||h.a.setWapRevision(),!e&&f.a.isWechat()&&(e=w?"appshare":"other"),!e&&f.a.isBestpayApp()&&(e="dxyzf"),!e&&f.a.isWopayApp()&&(e="ltwzf"),!e&&f.a.isHebaoApp()&&(e="hbzf"),e||"www"!=p.a.getQuery("source")||(e="www"),e)return"nature"==(e=e.replace(/:[\w\W]*$/,"").replace(/[\W]/,""))?l.a.resolve("nature"):new l.a(function(r,a){m.a.getConfig({type:"wapCanal",f:e}).then(function(a){c()(a).length>0?n||h.a.setWapFrom(e,a&&a.cookieExpireSeconds):t&&h.a.delWapFrom(),r(a)}).catch(function(e){a(e)})})}},y={init:function(){var e=this;return o()(a.a.mark(function t(){return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,v.a.initUserType();case 2:return e.next=4,v.a.checkLogin();case 4:return e.abrupt("return",!0);case 5:case"end":return e.stop()}},t,e)}))()}}},Hjs2:function(e,t,n){"use strict";var r=n("d7EF"),a=n.n(r),i=n("fZjL"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("/5sW"),d={name:"eggs",data:function(){return{}},props:{showEggs:{type:Boolean,default:!1},copyBtnContent:{type:String,default:"澶嶅埗"},hasCopied:{type:Boolean,default:!1},userAgent:{type:String,default:""},cookie:{type:String,default:""},error:{type:String,default:""},sessionStorageString:{type:String,default:""},localStorageString:{type:String,default:""},copyMsg:{type:String,default:""}}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.showEggs,expression:"showEggs"}],staticClass:"wap-eggs"},[n("p",{staticClass:"wap-eggs-title"},[e._v("userAgent:")]),n("div",{staticClass:"wap-eggs-content"},[e._v(e._s(e.userAgent))]),n("p",{staticClass:"wap-eggs-title"},[e._v("cookie:")]),n("div",{staticClass:"wap-eggs-content",domProps:{innerHTML:e._s(e.cookie)}}),n("p",{staticClass:"wap-eggs-title"},[e._v("error:")]),n("div",{staticClass:"wap-eggs-content"},[e._v(e._s(e.error))]),n("p",{staticClass:"wap-eggs-title"},[e._v("sessionStorage:")]),n("div",{staticClass:"wap-eggs-content",domProps:{innerHTML:e._s(e.sessionStorageString)}}),n("p",{directives:[{name:"show",rawName:"v-show",value:e.sessionStorageString,expression:"sessionStorageString"}],staticClass:"wap-eggs-clear-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.clearSession(t)}}},[e._v("娓呴櫎sessionStorage")]),n("p",{staticClass:"wap-eggs-title"},[e._v("localStorage:")]),n("div",{staticClass:"wap-eggs-content",domProps:{innerHTML:e._s(e.localStorageString)}}),n("p",{directives:[{name:"show",rawName:"v-show",value:e.localStorageString,expression:"localStorageString"}],staticClass:"wap-eggs-clear-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.clearLocal(t)}}},[e._v("娓呴櫎localStorage")]),n("a",{staticClass:"wap-eggs-copy",attrs:{href:"javascript:;"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.copy(t)}}},[e._v(e._s(e.copyBtnContent))]),n("a",{staticClass:"wap-eggs-hide",attrs:{href:"javascript:;"},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.hide(t)}}},[e._v("鍏抽棴")]),n("textarea",{directives:[{name:"show",rawName:"v-show",value:e.hasCopied,expression:"hasCopied"},{name:"model",rawName:"v-model",value:e.copyMsg,expression:"copyMsg"}],ref:"textarea",attrs:{readonly:"readonly"},domProps:{value:e.copyMsg},on:{input:function(t){t.target.composing||(e.copyMsg=t.target.value)}}})])},staticRenderFns:[]};var f=n("VU/8")(d,h,!1,function(e){n("uOIQ")},"data-v-53053184",null).exports,m=n("VKKs"),v=n.n(m),g=n("GKmE"),w=p.a.extend(f),b=function(){function e(){c()(this,e),this.instance=new w({el:document.createElement("div")})}return l()(e,[{key:"init",value:function(){this.touchListener()}},{key:"_initData",value:function(){var e=this;this.copyBtnContent="澶嶅埗",this.userAgent=navigator.userAgent,this.cookie=document.cookie.replace(/;/g,";
    "),this.error=v.a.getLocalStorage("error")||"null",this.copyMsg="user-agent:\n"+navigator.userAgent+";\n\ncookie:\n"+this.handleSpecialChars(document.cookie).replace(/; /g,";\n");var t=window.sessionStorage||{},n=window.localStorage||{};this.sessionStorageString="",this.localStorageString="",o()(t).forEach(function(n){e.sessionStorageString+=n+"="+e.handleSpecialChars(t[n])+";
    "}),o()(n).forEach(function(t){/^cache/.test(t)||(e.localStorageString+=t+"="+e.handleSpecialChars(n[t])+";
    ")})}},{key:"_init",value:function(){this._initData(),this._initProps(),this._eventsListener()}},{key:"handleSpecialChars",value:function(e){if(!e)return"";var t=Object(g.i)(e),n=a()(t,3),r=(n[0],n[1]);n[2];return r}},{key:"_initProps",value:function(){this.instance.copyBtnContent=this.copyBtnContent,this.instance.hasCopied=!1,this.instance.cookie=this.cookie,this.instance.userAgent=this.userAgent,this.instance.error=this.error,this.instance.copyMsg=this.copyMsg,this.instance.localStorageString=this.localStorageString,this.instance.sessionStorageString=this.sessionStorageString}},{key:"touchListener",value:function(){var e=document.querySelector("body"),t=this,n=null;e.addEventListener("touchstart",function(e){4===e.touches.length&&(n=setTimeout(function(){t.showEggs()},4e3))}),e.addEventListener("touchend",function(e){n&&clearTimeout(n)})}},{key:"_eventsListener",value:function(){var e=this;w.prototype.copy=function(){e.copy()},w.prototype.hide=function(){e.hideEggs()},w.prototype.clearSession=function(){sessionStorage.clear(),e.instance.sessionStorageString=""},w.prototype.clearLocal=function(){localStorage.clear(),e.instance.localStorageString=""}}},{key:"copy",value:function(){var e=this;if(2==this.copyBtnContent.length)try{var t=this.instance.$refs.textarea;this.instance.hasCopied=!0,this.instance.$nextTick(function(){t.focus(),t.setSelectionRange(0,e.copyMsg.length),document.execCommand("copy",!0),e.instance.hasCopied=!1,e.copyBtnContent="澶嶅埗鎴愬姛",e.instance.copyBtnContent="澶嶅埗鎴愬姛"})}catch(e){window.console&&window.console.error("褰╄泲妯″潡澶嶅埗淇℃伅鍑洪敊锛",e)}}},{key:"showEggs",value:function(){this._init(),document.body.appendChild(this.instance.$el),this.instance.showEggs=!0}},{key:"hideEggs",value:function(){this.instance.showEggs=!1}}]),e}();t.a=new b},HnKq:function(e,t,n){"use strict";t.a=function(e){return new a.a(function(t,n){var r=document.querySelector("link[href='"+e+"']");if(r)t();else{var a=document.createElement("link"),i=e.slice(e.lastIndexOf("/")+1,e.lastIndexOf("."));a.rel="stylesheet",a.href=e,document.head.appendChild(a),a.onload=function(){t(i+".css鍔犺浇瀹屾垚")},a.onerror=function(){n(i+".css鍔犺浇澶辫触")}}})},t.c=function(e){return new a.a(function(t,n){var r=document.querySelector("script[src='"+e+"']");if(r)t();else{var a=document.createElement("script"),i=e.slice(e.lastIndexOf("/")+1,e.lastIndexOf("."));a.type="text/javascript",a.src=e,document.body.appendChild(a),a.onload=function(){t(i+".js鍔犺浇瀹屾垚")},a.onerror=function(){n(i+".js鍔犺浇澶辫触")}}})},t.b=function(e){return new a.a(function(t,n){var r=document.createElement("iframe");r.style.cssText="position:absolute;width:1px;height:1px;left:-9999px;",document.body.appendChild(r),window.addEventListener&&r.addEventListener("load",function(){t(r)},!1),r.src=e})};var r=n("//Fk"),a=n.n(r),i=n("Dd8w");n.n(i)},Igsb:function(e,t,n){"use strict";var r=n("vNF5"),a=n("wkJ7"),i=n("N2Ao"),o=/^(?:https?:)?\/\//i,s=/(\.[\w]+)$/i,c=/^\//,u=/_\d+x\d+_\d+\.(png|jpg|gif|bmp|webp)$/i,l=/\.webp$/i,p=["a.vpimg1.com","a.vpimg2.com","a.vpimg3.com","a.vpimg4.com","c.vpimg1.com","d.vpimg1.com","img1.vipshop.com","a1.vimage1.com","a2.vimage1.com","a3.vimage1.com","a4.vimage1.com","a.vimage1.com","a.vimage2.com","a.vimage3.com","a.vimage4.com","a.appsimg.com"],d=["https://a.vimage1.com","https://a1.vimage1.com","https://a2.vimage1.com","https://a3.vimage1.com","https://a4.vimage1.com"],h="90",f=["a.appsimg.com","b.appsimg.com"],m={default_rate:"_280x354_90",compress:function(e,t){if(!e)return"";var n=t||this.default_rate;if(-1!=e.indexOf(n))return e;var r=e.lastIndexOf(".");return e=e.substring(0,r).concat(n).concat(e.substring(r))},getHost:function(e){var t=parseInt(5*Math.random(),10);return d[t].concat(e)},__alreadyOpt:function(e){return u.test(e)||l.test(e)},transformImageUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments[2],a=arguments[3],i=arguments[4];if(!e||m.__alreadyOpt(e)||e.indexOf("weixin.vipstatic.com")>-1)return e;if(!o.test(e)){var u=Math.floor(5*Math.random());e=c.test(e)?d[u]+e:d[u]+"/"+e}var l="";t.length>0?l=t:a&&i&&(l=this.scaleSuffix(a,i)),l&&-1===e.indexOf(l)&&(e=e.replace(s,l+"$1"));var h=!1,v=e.replace(o,"https://").replace(/^https?:\/\/(.*?)\//gi,function(e,t){var n=t;return-1!==p.indexOf(t)&&(n="a.appsimg.com"),-1!==f.indexOf(n)?(h=!0,"https://h2a.appsimg.com/"+n+"/"):"https://"+t+"/"}),g=h&&Object(r.n)()?v+"!85.webp":v;return n&&m.adapter(g,n),g},adapter:function(e,t){var n=function(){r.onload=r.onerror=r.onabort=null,window[a]=null,r=null},r=new Image(1,1),a="_adapter_action_"+Math.random();window[a]=r,r.src=e,r.onload=function(){n(),t(!0)},r.onerror=function(){n(),t(!1)}},loadBakImg:function(e){var t=e.target||{},n=t.src;n&&(Object(r.f)(t,"retried")||(Object(r.a)(t,"retried"),t.src=i.genImageSrc(n)))},loadBakImgV2:function(e){var t=e.target||{},n=t.src;n&&(Object(r.f)(t,"retried")?e.target&&e.target.dataset&&e.target.dataset.fail&&!Object(r.f)(t,"re-try-fail")&&(Object(r.a)(t,"re-try-fail"),t.src=e.target.dataset.fail):(Object(r.a)(t,"retried"),t.src=i.genImageSrc(n)))},scaleSuffix:function(e,t){return isNaN(e)||isNaN(t)?"":"_"+this.__getSize(e,t)+"_"+this.__getQuality()},__getSize:function(e,t){return a.a.dpr>2?Math.round(3*e)+"x"+Math.round(3*t):2*e+"x"+2*t},__getQuality:function(){return h}};t.a=m},KRo9:function(e,t){},LM2N:function(e,t,n){"use strict";t.a=function(e,t,n){"[object Object]"!=Object.prototype.toString.call(e)&&(e={url:e});var i=e.url;switch(e.type){case 1:r.a.isUniversalLinkSupport()?o(i,t,n):s(i,t,n);break;case 2:r.a.isUniversalLinkSupport()?o(i=a.a.setQuery({name:"download",value:1,url:i}),t,n,2):s(i,t,n);break;default:r.a.isUniversalLinkSupport()?o(i,t,n):s(i,t,n)}};var r=n("wkJ7"),a=n("ArKR"),i=null;function o(e,t,n,r){t&&t(),e=e.replace("vipshop://","//weixin.vip.com/deeplink/"),2==r?location.href=e:location.replace(e)}function s(e,t,n){var r,a;r="hidden"in document?"hidden":"webkitHidden"in document?"webkitHidden":"mozHidden"in document?"mozHidden":null,a=r.replace(/hidden/i,"visibilitychange"),document.addEventListener(a,function(){document[r]&&i&&clearTimeout(i)});var o=document.createElement("iframe");o.setAttribute("src",e),o.setAttribute("style","display:none"),document.body.appendChild(o),t&&t();var s=Date.now();i=setTimeout(function(){Date.now()-s<1050&&n&&n()},1e3)}},Lg6z:function(e,t,n){"use strict";t.c=i,t.a=function(e){var t=e.href,n=e.type,r=t.match(/\/?(\S+)\.html/),a=r?r[1]:null;"-1"===n&&(a="special");a&&"index"!==a&&i({value:a})},t.b=function(e){i({value:e})};var r=n("oyG6"),a=n("wkJ7");function i(e){e.value&&!a.a.isWechat()&&r.a.set(e.name||"mar_ref",e.value,{expires:365,domain:"vip.com"})}},LmM6:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("GKmE"),o=n("83Tv"),s=function(){Object(o.a)({message:"澶嶅埗澶辫触"})},c={copy:{bind:function(e,t){var n,r;n=e,r=t.value,n&&n.addEventListener?n.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),Object(i.f)(r)?Object(o.a)({message:"澶嶅埗鎴愬姛"}):s()}):s()}}};t.a={install:function(e){a()(c).forEach(function(t){e.directive(t,c[t])})}}},LuWU:function(e,t){},M5XY:function(e,t){},M8tU:function(e,t,n){"use strict";t.q=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_shopping_cart/v2",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.p=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/mina_programs/select_goods/v2",retries:1,method:"POST",data:a()({},e,{needLogin:!0,mvip:!0})})},t.j=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_cart_additional_info?api_key=8cec5243ade04ed3a02c5972bcda0d3f",method:"POST","Content-Type":"application/json;charset=utf-8",data:a()({},e,{needLogin:!0,mvip:!0})})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/edit/v1",method:"POST",retries:1,data:a()({},e,{needLogin:!0,mvip:!0})})},t.d=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/edit/v2",method:"POST",data:a()({},e,{needLogin:!0,mvip:!0})})},t.k=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_coupon_list/v1",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.g=function(e){return Object(i.a)({url:"vips-mobile/rest/user/coupon/available/list",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.l=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/haitao/get_usable_coupons/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.s=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/get_usable_coupons/v1",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.n=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/get_message",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.r=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/amount/get_total/v2",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.e=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/change_state/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.o=function(e){return Object(i.a)({url:"vips-mobile/rest/checkout/get_payment_info",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.w=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/move_to_favourite/v1",method:"GET",retries:1,params:a()({},e,{needLogin:!0,mvip:!0})})},t.f=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/check_delete/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/delete/v1",retries:1,method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.m=function(e){return Object(i.a)({url:"vips-mobile/rest/user/idcard/info/list",method:"POST",data:a()({},e,{needLogin:!0,mvip:!0})})},t.h=function(e){return Object(i.a)({url:"vips-mobile/rest/captcha/prepare/v1",method:"POST",needLogin:!0,data:a()({},e,{mvip:!0,needLogin:!0})})},t.i=function(e){return Object(i.a)({url:"vips-mobile/rest/captcha/prepare/v1",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.u=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/verify_idcard_wap/v2",method:"POST",data:a()({},e,{mvip:!0})})},t.y=function(e){return Object(i.a)({url:"vips-mobile/rest/order/order_add/v4",method:"POST",data:a()({},e,{mvip:!0})})},t.x=function(e){return Object(i.a)({url:"vips-mobile/rest/order/check_effective_before_submit",method:"GET",params:a()({},e,{needLogin:!0,mvip:!0})})},t.t=function(e){return Object(i.a)({url:"https://mcheckout.vip.com/rest/pay/get_cashierurl",method:"GET",params:e})},t.a=function(e){return Object(i.a)({url:"https://mcheckout.vip.com/jsonrpc.html?rpc&_="+ +Date.now(),method:"POST",data:{id:+Date.now(),jsonrpc:"2.0",method:"Mapi.Vipcard.active",params:e}})},t.v=function(e){return Object(i.a)({url:"vips-mobile/rest/wallet/bind_status/get",method:"GET",params:a()({},e,{mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},M9SS:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("d7EF"),o=n.n(i),s=n("exGp"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("Zrlr"),d=n.n(p),h=n("wxAW"),f=n.n(h),m=n("pD4m"),v=n("3USl"),g=n("GKmE"),w=n("mvHQ"),b=n.n(w),_=n("HnKq"),y=new(function(){function e(){d()(this,e),this.origins={},this.paths={},this._iframes={},this._iframesReady={},this._queues={},this._requests={},this._id=0}return f()(e,[{key:"send",value:function(e){var t=this,n=e.name,r=e.origin,a=e.path,i=e.fn,o=e.sessionStorage,s=e.operation,c=e.key,u=e.value,l=e.cookie;this.origins[n]=r,this.paths[n]=a,this._queues[n]||(this._queues[n]=[]);var p=++this._id,d=setTimeout(function(){t._requests[p]&&(t._requests[p]=null,delete t._requests[p],i&&i({errNo:2}))},5e3),h={request:{key:c,id:p,op:s,value:u,timer:d,cc:l,ss:o},callback:i};this._queues[n].push(h),this._iframes[n]&&this._sendRequest(h,n),this._iframesReady[n]||this.init(n)}},{key:"init",value:function(e){var t=this;if(this._iframesReady[e]=!0,!this._iframes[e]){if(!(window.JSON&&window.localStorage&&window.postMessage&&"localStorage"in window&&null!==window.localStorage))return this._queues[e].every(function(e){e.request&&e.request.timer&&clearTimeout(e.request.timer),e.callback&&e.callback(null,null,{errNo:4})}),!(this._queues[e]=[]);var n=Object(g.z)("https://"+this.origins[e].replace(/^((https||http):?)\/\//,"")+this.paths[e],{https_jump:1,_refer:window.encodeURIComponent(location.href.split("#")[0])});Object(_.b)(n).then(function(n){t._iframes[e]=n,t._iframeLoaded(e),window.addEventListener("message",function(e){t._handleMessage(e)},!1)})}}},{key:"_iframeLoaded",value:function(e){var t=this;this._queues[e]&&this._queues[e].length&&(this._queues[e].forEach(function(n){t._sendRequest(n,e)}),this._queues[e]=[])}},{key:"_sendRequest",value:function(e,t){this._iframes[t]&&(this._requests[e.request.id]=e,this._iframes[t].contentWindow.postMessage(b()(e.request),location.protocol+"//"+this.origins[t].replace(/^((https||http):?)\/\//,"")))}},{key:"_handleMessage",value:function(e){for(var t in this.origins)if(e.origin.replace(/^((https||http):?)\/\//,"")==this.origins[t]){var n={};try{n=JSON.parse(e.data)}catch(e){}if(n.id&&this._requests[n.id]){if(n.timer&&clearTimeout(n.timer))return;this._requests[n.id].callback&&this._requests[n.id].callback(n.key,n.value,{errNo:0}),delete this._requests[n.id]}}}}]),e}()),k=n("VKKs"),x=n.n(k),C=n("iPXC"),S=n("oyG6"),T=n("ArKR"),I=n("wkJ7"),O=function(){function e(){d()(this,e),this.localStorage=[],this.sessionStorage=[]}return f()(e,[{key:"asyncSetAllLocalStorage",value:function(){var e=this;y.send({name:"storageBridge",origin:"m.vip.com",path:"/bridge.html",key:"getAll",sessionStorage:!1,operation:"M",fn:function(t,n,r){e.asyncSetLocalStorage(n)}})}},{key:"asyncSetLocalStorage",value:function(e){e&&e.forEach(function(e){x.a.setLocalStorage(e.key,e.obj)})}},{key:"asyncSetAllSessionStorage",value:function(){var e=this;y.send({name:"storageBridge",origin:"m.vip.com",path:"/bridge.html",key:"getAll",sessionStorage:!0,operation:"M",fn:function(t,n,r){e.asyncSetSessionStorage(n)}})}},{key:"asyncSetSessionStorage",value:function(e){e&&e.forEach(function(e){x.a.setSessionStorage(e.key,e.obj)})}},{key:"asyncSetCookies",value:function(){var e=T.a.getQuery("cps");e&&S.a.set("cps",encodeURIComponent(e),{domain:".vipglobal.hk",expires:1})}},{key:"asyncSetFrom",value:function(e){var t=T.a.getQuery("f");!e||t||C.a.getWapFrom()||C.a.setWapFrom(e)}},{key:"getGlobalHkHost",value:function(){return v.a.globalHost}},{key:"isGlobalHkHost",value:function(e){return(e||location.origin).indexOf("vipglobal.hk")>-1}},{key:"isMHost",value:function(e){return(e||location.origin).indexOf("vip.com")>-1}},{key:"jumpToGlobalHk",value:function(){if(this.isMHost()){var e=S.a.get("WAP[from]"),t=S.a.get("cps");return this.getSwitch().then(function(n){if(n&&!I.a.isAndroidMiniApp()){var r=v.a.globalHost+location.pathname+location.search;return r=t?T.a.setQuery({url:r,name:"cps",value:t}):r,r=e?T.a.setQuery({url:r,name:"f",value:e}):r,location.replace(T.a.setQuery({url:r,name:"set_cookie",value:1})),!0}return!1})}return l.a.resolve(!1)}},{key:"jumpToMhost",value:function(){return this.isGlobalHkHost()?(location.replace("https://m.vip.com"+location.pathname+location.search),l.a.resolve(!0)):l.a.resolve(!1)}},{key:"getSwitch",value:function(){var e=c()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.a.all([this.getHaiTaoCanalSwitch(),this.getHaiTaoSwitch()]);case 2:return t=e.sent,n=o()(t,2),r=n[0],i=n[1],e.abrupt("return",1!=r&&1==i);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getHaiTaoSwitch",value:function(){var e=c()(a.a.mark(function e(){var t,n,r;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(g.x)(m.a.getConfig({type:"switch",code:"1434"}));case 2:return t=e.sent,n=o()(t,2),n[0],r=n[1],e.abrupt("return",r);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getHaiTaoCanalSwitch",value:function(){var e=c()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(g.x)(m.a.getConfig({type:"wapCanal"}));case 2:return t=e.sent,n=o()(t,2),n[0],r=n[1],i=r.customSetting||{},e.abrupt("return",i.blockHaitaoJump);case 8:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()}]),e}();t.a=new O},Ma0c:function(e,t){},MlWt:function(e,t){},NY1z:function(e,t,n){"use strict";var r=n("83Tv");t.a={install:function(e){e.prototype.$toast=r.a}}},"O+bN":function(e,t){},O8eA:function(e,t){},OPOm:function(e,t,n){"use strict";var r=n("Igsb");t.a={install:function(e){e.prototype.$toHttps=function(e){return e&&e.replace(/^(?:https?:)?\/\//i,"https://")},e.prototype.$transformImageUrl=r.a.transformImageUrl}}},OrFG:function(e,t,n){"use strict";n("hTTh");var r=new(n("p6Um").a),a={init:function(){navigator.cookieEnabled||r.open({id:"J-support-cookie-win",className:"support-cookie-win",content:"娴忚鍣╟ookie琚鐢紝璇锋墦寮鍚庡埛鏂伴〉闈",btns:["纭畾"],onBtnClick:function(e,t){r.close()}})}},i=n("Es//"),o=n("M9SS"),s=n("wkJ7");t.a={mounted:function(){a.init();var e=location.pathname;s.a.isWxkApp()||o.a.isGlobalHkHost()||/^\/$/.test(e)||/^\/index\.html/.test(e)||Object(i.a)()}}},P6AR:function(e,t,n){"use strict";t.b=function(e){return Object(i.a)({url:"/vips-mobile/rest/layout/h5/channel/data",retries:1,params:e})},t.c=function(e){return Object(i.a)({url:"/vips-mobile/rest/layout/operations/page",retries:1,params:a()({},e,{mvip:!0})})},t.a=function(e){return Object(i.a)({url:"/vips-mobile/rest/shopping/brandstore/facade/v1",retries:1,params:a()({},e,{mvip:!0})})},t.d=function(e){return Object(i.a)({url:"/vips-mobile/rest/operation/lightart/h5/templateContent/v1",params:e})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},PEP6:function(e,t,n){"use strict";var r=n("wkJ7"),a=n("ArKR");t.a={reload:function(e){r.a.isAndroid()&&r.a.isWechat()?location.href=a.a.setQuery({name:"_ts",value:Date.now()}):location.reload(e)}}},PV6p:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("pFYg"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("oyG6"),d=n("M9SS"),h=n("mtWM"),f=n.n(h);var m=n("pD4m"),v=function(){function e(){c()(this,e),this.__initCommon(),this.checkNeed=!0}return l()(e,[{key:"reportJsError",value:function(e){var t=e.error,n=e.url,r=void 0===n?location.href:n,i=e.info,s=void 0===i?"":i,c=e.vm,u=void 0===c?"":c,l="";this.commonOptions.monitor_name="m_js_error",this.commonOptions.monitor_data=this.__encode({type:"wap-js-error",url:r,domain:d.a.isGlobalHkHost()?"m.vipglobal.hk":"m.vip.com",page_url:this.__getPageType(),page_name:this.__getPageType(),scene:"-99",message:t.message||t||"-99",sdk_version:"-99"});try{"object"===(void 0===(l=t&&t.stack?t.stack:t)?"undefined":o()(l))&&(l=a()(l))}catch(e){l=""}this.commonOptions.monitor_ext=this.__encode({vm:u,info:s,stack:l,userAgent:navigator.userAgent}),this.report(this.commonOptions)}},{key:"reportInterfaceError",value:function(e){var t=e.res,n=void 0===t?{}:t,r=e.responseUrl,a=void 0===r?"":r,i=e.apiName,o=void 0===i?"":i,s=e.timestamp,c=void 0===s?{}:s,u=e.status,l=void 0===u?200:u,p=e.retry_times,h=void 0===p?0:p;this.commonOptions.monitor_name="m_api",this.commonOptions.monitor_data=this.__encode({api_name:this.__getFrientApiName(o),request_time:c.request_time,response_time:c.response_time,status:l,service_ip:"-99",request_url:a,page_url:this.__getPageType(),page_name:this.__getPageType(),rpc_status:"-99",cpu_support:"-99",enable_routing:"-99",domain:d.a.isGlobalHkHost()?"m.vipglobal.hk":"m.vip.com",disable_domain:"-99",network_mark:200==l?0:1,service_code:n.code,original_code:n.originalCode||"-99",msg:n.msg,detail_msg:n.detailMsg||"-99",retry_times:h}),this.commonOptions.monitor_ext=this.__encode({url:location.href,userAgent:navigator.userAgent}),this.report(this.commonOptions)}},{key:"reportResourceError",value:function(e){this.commonOptions.monitor_name="m_resource_file",this.commonOptions.monitor_data=this.__encode({request_time:e.request_time,response_time:e.response_time||Date.now(),status:e.status||-1,cdn_ip:"-99",dns_ip:"-99",request_url:e.request_url||"",page_url:this.__getPageType(),page_name:this.__getPageType(),domain:d.a.isGlobalHkHost()?"m.vipglobal.hk":"m.vip.com",rpc_status:e.status||"-99",address:"-99",exception_info:"-99",data_length:"-99",reponse_start_time:e.request_time,response_end_time:e.response_time||Date.now(),retry_times:e.retry_times,retry_url:e.retry_url||"-99"}),this.commonOptions.monitor_ext=this.__encode({url:location.href,userAgent:navigator.userAgent}),this.report(this.commonOptions)}},{key:"reportInterfaceErrorByOneOf10",value:function(e){var t=this;m.a.getConfig({type:"switch",code:"444"}).then(function(n){if(1==n){var r=Math.floor(10*Math.random());t.reportInterfaceError(e[r])}})}},{key:"report",value:function(e){var t;this.checkNeed&&(t=this.commonOptions,f()({url:"//sc.appvipshop.com/vips-mobile-tracker/router.do?service=vip.monitor.logger",method:"POST",timeout:5e3,withCredentials:!1,xsrfCookieName:"",headers:{"Content-type":"text/plain; charset=UTF-8"},data:t}).catch(function(e){})).then(function(e){})}},{key:"setUrlQuery",value:function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n+"="+e[n]);return t.join("&")}},{key:"__isWebCrawler",value:function(){return/windows|compatible|symbianos/i.test(window.navigator&&navigator.userAgent||"")}},{key:"__initCommon",value:function(){var e,t,n=navigator.userAgent,r=function(){var e="-99";if(/Android/i.test(n)){var t=n.match(/\s([^;]+?)\sBuild/i);e=t&&t.length>1&&t[1]||"-99"}else/iPhone/i.test(n)?e=896==screen.height&&414==screen.width?"iPhoneXr/XsMax/11/11ProMax":812==screen.height&&375==screen.width?"iPhoneX/Xs/11Pro":736==screen.height&&414==screen.width?"iPhone6P/7P/8P":667==screen.height&&375==screen.width?"iPhone6/7/8":568==screen.height&&320==screen.width?"iPhone5/SE":"iPhone4":/iPad/i.test(n)?e="iPad":/MicroMessenger/i.test(n)?e="MicroMessenger'browser.":/Linux/i.test(n)?e="Linux'browser.":/Linux/i.test(navigator.platform)&&(e="Linux operating system..");return e},a=(e={os:"-99",version:"-99"},(t=n.match(/Android\s([0-9.]+?);/i))&&t.length>1&&(e.os="android",e.version="Android "+t[1]),(t=n.match(/iPhone OS ([0-9_]+?)\s/i))&&t.length>1&&(e.os="ios",e.version="iPhone "+t[1]),(t=n.match(/iPad.*?OS ([0-9_]+?)\s/i))&&t.length>1&&(e.os="ios",e.version="iPad "+t[1]),/windows/i.test(n)&&(e.os="windows",e.version="windows"),e);this.commonOptions={session_id:"-99",mars_cid:p.a.get("mars_cid"),user_id:p.a.get("m_vipuuid")||"-99",app_name:"shop_wap",app_type:"web",app_platform:"shop_wap",monitor_time:Math.floor(Date.now()/1e3),app_version:"4.0",network:"4g",latitude:"-99",longitude:"-99",userAgent:n,model:r(),browser_name:r(),os:a.os,os_version:a.version,rom:"-99",warehouse:p.a.get("warehouse")||"VIP_NH",monitor_name:"",monitor_data:"",monitor_ext:"{}"}}},{key:"__encode",value:function(e){var t="";try{t=encodeURIComponent(a()(e))}catch(e){t=""}return t}},{key:"__isIgnoreCode",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:0)in{221:"娓犻亾涓嶅瓨鍦ㄦ垨鏈惎鐢ㄦ垨鍒欏凡鐧诲綍",14212:"鍟嗗搧搴撳瓨涓嶈冻",14215:"鎶辨瓑锛屾暟閲忔湁闄愶紝鎮ㄦ渶澶氬彧鑳借喘涔2浠讹紒",222:"鍒涘缓澶辫触",52161:"failed to get product sku list,salesNoSize",52160:"ailed to get product sku list,salesNoSize",14214:"鏀惧叆璐墿琚嬩笉鎴愬姛锛岃喘鐗╄溅鏈澶氬彧鑳芥斁15娆惧晢鍝侊紝缁撶畻鍚庡彲缁х画璐拱",14200:"鏈櫥褰曚笉鑳借喘涔伴檺璐晢鍝"}}},{key:"__getPageType",value:function(){var e="";try{var t=new URL(location.href).pathname;if("/"==t)return"index";var n={"product-\\d+-\\d+.html":"productDetail","(newbeauty|jiadian|jiaju|lifemarket|lux|yiyao|leftlife|jiajujiazhuang|dajiadian|jiajujiafang|nb.*).html":"index","auto-list.html":"autoList","recommend-brand-\\d+.html":"recommendBrand","preheating-brand-(\\d+)|brand-(\\d+)":"brandList","searchlist.html":"searchList","classify-list-(\\d+)":"classifyList","user-order-logistics.html":"logistics","order-progress-track.html":"orderProgressTrack","user-fav-product.html":"favProduct"};for(var r in n)if(new RegExp(r,"i").test(t)){e=n[r];break}if(!e){var a=t.match(/\/(preheating-)?([a-zA-Z-]+)/i);e=a&&a.length>2?a[2]:"-99"}}catch(e){}return e}},{key:"__getFrientApiName",value:function(e){var t="",n=e,r=e.indexOf("?");if(r>=0&&(n=e.substr(0,r)),(r=n.indexOf("/rest"))>=0)t=n.substr(r+5);else if(n.indexOf("/router.do")>=0){var a=e.match(/service=(.+?)&/i);t=a&&a.length>1&&a[1]||n}else t=n.replace(/http:\/\/[^\/]+|https:\/\/[^\/]+/i,"");return t}}]),e}();t.a=new v},Q8Fd:function(e,t,n){"use strict";t.a={install:function(e){var t=new e({}),n={emit:function(e,n,r){t.$emit(e+":"+n,r)},on:function(e,n,r){r&&"function"==typeof r&&t.$on(e+":"+n,function(e){r(e)})},one:function(e,n,r){r&&"function"==typeof r&&t.$once(e+":"+n,function(e,t){r(t)})},off:function(e,n,r){t.$once(e+":"+n,function(e,t){r&&"function"==typeof r&&r(t)})}};e.$bus=n,e.mixin({created:function(){this.$bus||(this.$bus=n)}})}}},Qims:function(e,t,n){"use strict";var r=n("d7EF"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("Xxa5"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("r7MF"),w=n("iPXC"),b=n("GKmE"),_=n("6TJt"),y=n("pD4m"),k=function(){function e(){f()(this,e)}return v()(e,[{key:"getSimpleCart",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=g.a.isTempUser(),n=g.a.isLogin(),r=w.a.getTempUserToken(),e.next=5,this.getCartVer();case 5:if(a=e.sent,!n||!r){e.next=9;break}return e.next=9,Object(b.x)(this.doMergeCart({guest_token:r,cart_ver:a}));case 9:if(!t&&!n){e.next=15;break}return i={cart_ver:a},!n&&r&&(i.VIP_TANK=r),e.abrupt("return",Object(_.i)(i));case 15:return e.abrupt("return",l.a.resolve({code:0,data:null}));case 16:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"doMergeCart",value:function(){var e=d()(c.a.mark(function e(t){var n;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n={vip_channel:1,wap_consumer:w.a.getWapConsumer()||"A1"},e.next=3,Object(b.x)(Object(_.c)(o()({},n,t)));case 3:w.a.delTempUserToken();case 4:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"getCartVer",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.a.all([this.getCartWapSplitSwitch(),this.getCartModeBSwitch()]);case 2:if(t=e.sent,n=a()(t,2),r=n[0],i=n[1],1!==r||2!==i){e.next=10;break}return e.abrupt("return","4");case 10:if(1!==r||1!==i){e.next=14;break}return e.abrupt("return","2");case 14:return e.abrupt("return","1");case 15:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getCartWapSplitSwitch",value:function(){var e=d()(c.a.mark(function e(){var t,n,r;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(b.x)(y.a.getConfig({type:"switch",code:1270}));case 2:return t=e.sent,n=a()(t,2),n[0],r=n[1],e.abrupt("return",r);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getCartModeBSwitch",value:function(){var e=d()(c.a.mark(function e(){var t,n,r;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(b.x)(y.a.getConfig({type:"switch",code:1184}));case 2:return t=e.sent,n=a()(t,2),n[0],r=n[1],e.abrupt("return",r?2:1);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()}]),e}();t.a=new k},RfAy:function(e,t,n){"use strict";t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/fav/goods/add_by_mid_for_saturn",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.e=function(e){return Object(i.a)({url:"vips-mobile/rest/fav/goods/batch/delete_by_mid_v2_for_saturn",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.g=function(e){return Object(i.a)({url:"vips-mobile/rest/cart/move_to_favourite/v1",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.i=function(e){return Object(i.a)({url:"vips-mobile/rest/favourite/store/status",method:"get",params:a()({},e,{mvip:!0})})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/favourite/store/add",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.f=function(e){return Object(i.a)({url:"vips-mobile/rest/favourite/store/del",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.h=function(e){return Object(i.a)({url:"vips-mobile/router.do?",method:"get",params:a()({},e,{service:"vipshop.brand.favourite.isfavourite",mvip:!0})})},t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/shop/favbrand/add/v2",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.d=function(e){return Object(i.a)({url:"vips-mobile/router.do?",method:"get",params:a()({},e,{needLogin:!0,service:"vipshop.brand.favourite.delete",mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},Rjba:function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("Xxa5"),o=n.n(i),s=n("exGp"),c=n.n(s),u=n("Zrlr"),l=n.n(u),p=n("wxAW"),d=n.n(p),h=n("wkJ7"),f=n("6+Wl"),m=n("oyG6"),v=n("M9SS"),g=n("jnSk"),w=function(){function e(){l()(this,e),this.isWechat=h.a.isWechat()}return d()(e,[{key:"reConfig",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=arguments[1];this._onReady(e,t,!0)}},{key:"initSdk",value:function(e,t){this.isWechat&&!v.a.isGlobalHkHost()?this._onReady(e,t):e&&e()}},{key:"_onReady",value:function(){var t=c()(o.a.mark(function t(n,r,a){var i,s,c,u,l,p,d,h,f;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e.hasConfig&&!a||v.a.isGlobalHkHost())){t.next=3;break}return n&&n(),t.abrupt("return",!1);case 3:return this._setFs(r),i={fs:this.fs||"nature",url:encodeURIComponent(window.location.href.split("#")[0])},t.next=7,Object(g.b)(i);case 7:if(s=t.sent,c=s.code,u=s.data,p=(l=u||{}).signature,d=l.noncestr,h=l.timestamp,f=l.appid,!(0==c&&p&&d&&h&&f)){t.next=17;break}return this._wxConfig({signature:p,nonceStr:d,timestamp:h,appId:f}),e.hasConfig=!0,this._wxReady(n),this._wxError(),t.abrupt("return",!0);case 17:case"end":return t.stop()}},t,this)}));return function(e,n,r){return t.apply(this,arguments)}}()},{key:"_wxConfig",value:function(e){f.a.config(a()({},e,{debug:!1,beta:!0,jsApiList:["checkJsApi","onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareWeibo","hideMenuItems","showMenuItems","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","translateVoice","startRecord","stopRecord","onRecordEnd","playVoice","pauseVoice","stopVoice","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage","getNetworkType","openLocation","getLocation","hideOptionMenu","showOptionMenu","closeWindow","scanQRCode","chooseWXPay","openProductSpecificView","addCard","chooseCard","openCard","launchApplication"],openTagList:["wx-open-launch-weapp"]}))}},{key:"_wxReady",value:function(e){f.a.ready(function(){f.a.showOptionMenu(),e()})}},{key:"_wxError",value:function(e){f.a.error(function(e){})}},{key:"checkJsApi",value:function(e,t){this.initSdk(function(){f.a.checkJsApi({jsApiList:e,success:function(e){t(e)},fail:function(e){t(e)}})})}},{key:"_setFs",value:function(e){this.fs=e||m.a.get("WAP[from]")}}]),e}();w.hasConfig=!1,w.isGetting=!1,t.a=new w},RxC4:function(e,t,n){"use strict";t.a=function(e,t){if(!e||isNaN(e))return"";var n=new Date(1e3*parseInt(e)),r=n.getFullYear(),a=n.getMonth()+1,i=n.getDate(),o=n.getDay(),s=n.getHours(),c=n.getMinutes(),u=n.getSeconds(),l=t;l=(l=(l=(l=(l=(l=(l=(l=l.replace(/\{YYYY\}/g,r)).replace(/\{YY\}/g,r.toString().substr(2,2))).replace(/\{MM\}/g,a>9?a:"0"+a)).replace(/\{M\}/g,a)).replace(/\{DD\}/g,i>9?i:"0"+i)).replace(/\{D\}/g,i)).replace(/\{HH\}/g,s>9?s:"0"+s)).replace(/\{H\}/g,s),s>12&&(s-=12);return l=(l=(l=(l=(l=(l=(l=l.replace(/\{hh\}/g,s>9?s:"0"+s)).replace(/\{h\}/g,s)).replace(/\{mm\}/g,c>9?c:"0"+c)).replace(/\{m\}/g,c)).replace(/\{ss\}/g,u>9?u:"0"+u)).replace(/\{s\}/g,u)).replace(/\{W\}/g,{0:"鏃",1:"涓",2:"浜",3:"涓",4:"鍥",5:"浜",6:"鍏"}[o])}},SPhU:function(e,t){},T4j3:function(e,t,n){"use strict";var r=n("woOf"),a=n.n(r),i=n("Xxa5"),o=n.n(i),s=n("d7EF"),c=n.n(s),u=n("exGp"),l=n.n(u),p=n("//Fk"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("rb8b"),w=(n.n(g),n("HnKq")),b=n("3USl"),_=n("7fY6"),y=n("GKmE"),k=b.a.captchaHost+"/getbootstrap",x=function(){function e(){f()(this,e),this.loadingErrTimes=0,this.VipSecureCode=null,this.instance=null}return v()(e,[{key:"pop",value:function(e){var t=this;return new d.a(function(n,r){t.init({vscConfig:e.vscConfig,onPassed:function(e){n(e)},onError:function(e){r(e)},onFailed:function(t){e&&!e.cancelHandlerFailed&&n("onFailed")},onClose:function(e){n("onClose")}})})}},{key:"init",value:function(){var e=l()(o.a.mark(function e(){var t,n,r,a,i,s,u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(y.x)(this.loadScript());case 2:t=e.sent,n=c()(t,2),r=n[0],a=n[1],i=this,!r&&a?(s=u.vscConfig||{},this.initOptions(u),a.init().load({url:s.templateId,success:function(){i._loadDialogComponent()},error:function(){}})):this.loadScriptErr(r);case 8:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"retry",value:function(){this.init(this.options)}},{key:"loadScript",value:function(){var e=this;return this.VipSecureCode?d.a.resolve(this.VipSecureCode):Object(w.c)(k).then(function(t){return e.VipSecureCode=window.VipSecureCode,e.VipSecureCode})}},{key:"loadScriptErr",value:function(e){_.a.report({message:"getbootstrap鍔犺浇澶辫触",action:"getbootstrap_js_load_error",times:this.loadingErrTimes}),0==this.loadingErrTimes&&(this.loadingErrTimes++,this.retry())}},{key:"initOptions",value:function(e){var t=e.vscConfig;this.options=a()({params:t,id:"J-secure-code",exCls:"secure-code-wrapper",vscConfig:t,targetId:null,onPassed:function(){},onError:function(){},onFailed:function(){},onClose:function(){},onOk:function(){},onCancel:function(){},onShow:function(){},onCodeReload:function(){},onFocus:function(){},onBlur:function(){},onKeyUp:function(e,t){}},e)}},{key:"_loadDialogComponent",value:function(){var e=this.options,t=e.onOk,n=e.onCancel,r=e.onClose;this.options.onOk=function(){return t(),!1},this.options.onCancel=function(e){return n(e),!1},this.options.onClose=function(e){return r(e),!1},this._createInstance()}},{key:"_createInstance",value:function(){this.instance=this.VipSecureCode.createInstance(this.options),this.show()}},{key:"show",value:function(){this.instance&&this.instance.show()}},{key:"destroy",value:function(){this.instance&&this.instance.destroy()}}]),e}();t.a=new x},TU8s:function(e,t){},U67u:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("Dd8w"),a=n.n(r),i=n("Xxa5"),o=n.n(i),s=n("//Fk"),c=n.n(s),u=n("d7EF"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("oyG6"),f=n("y8js"),m=n("zWU1"),v=n("xU/8"),g=n("5ioc"),w=n("GKmE"),b=n("ArKR"),_=n("Es//"),y=n("/nwW"),k=n("VKKs"),x=n.n(k),C=n("pD4m"),S=n("wkJ7"),T=n("xhcK"),I={name:"boc-header",components:{commonHeader:T.a},props:{},data:function(){return{hideBockHeader:!0,backgroundColor:"#f9f9fa",titleContent:"鍞搧浼"}},computed:{},watch:{},methods:{back:function(){var e=x.a.getLocalStorage("boc_ref_sign");location.href=e||"//mst.vip.com/uoSkWVPYUynFP7z1-XLrsQ.php?wapid=mst_100006232&_src=mst&extra_banner=115006232&nova=1&nova_platform=1&mst_page_type=guide&f=bocmobile&from_msts=vB9uMf"},isHideBocNav:function(){var e=this,t=this;S.a.isBocapp()&&C.a.getConfig({type:"wapCanal"}).then(function(n){var r=n.customSetting||{};t.hideBockHeader=!r.showTopReturnNav,e.$forceUpdate()})}},created:function(){},mounted:function(){this.isHideBocNav()},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},O={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"boc-header"},[t("common-header",{attrs:{"hide-header":this.hideBockHeader,"title-content":this.titleContent,"background-color":this.backgroundColor,"show-right":!1,"native-back":!0},on:{back:this.back}})],1)},staticRenderFns:[]};var A=n("VU/8")(I,O,!1,function(e){n("rz3c")},"data-v-46c8a24d",null).exports,j=n("/4lS"),L=n("qDyg"),P=n("Lg6z"),E={name:"channel-list",data:function(){return{}},computed:{emptyMenusNumber:function(){return this.menus&&this.menus.length>0?4*Math.ceil(this.menus.length/4)-this.menus.length:0}},methods:{onClickMenu:function(e){this.currentIndex!=e&&this.$emit("on-click-menu",e)},onClickDrawMenu:function(e){var t=e;Object(P.a)({href:t.wap_url,type:t.type_id}),"-1"==t.type_id&&t.type_value?location.href=t.type_value:location.href="/"+t.wap_url}},props:{menus:{type:Array,default:function(){return[]}},drawMenus:{type:Array,default:function(){return[]}},currentIndex:Number}},U={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"channel-list"},[e.menus&&e.menus.length>0?n("div",{staticClass:"well-chosen-channel border-b"},[e._m(0),n("ul",{staticClass:"clearfix"},[e._l(e.menus,function(t,r){return[t.tag?n("li",{key:r,class:{current:e.currentIndex==r}},[n("a",{staticClass:"channel-item",attrs:{mars_sead:t.tracking},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.onClickMenu(r)}}},[n("div",[n("i",{style:{backgroundImage:"url("+t.default_icon+")"}}),n("span",[e._v(e._s(t.name))])])])]):e._e()]}),e._l(e.emptyMenusNumber,function(e,t){return n("li",{key:"emptyMenusNumber"+t})})],2)]):e._e(),e.drawMenus&&e.drawMenus.length>0?n("div",{staticClass:"more-channel border-b"},[e._m(1),n("ul",{staticClass:"clearfix"},[e._l(e.drawMenus,function(t,r){return[t.is_hidden?e._e():n("li",{key:r,on:{click:function(n){return n.stopPropagation(),n.preventDefault(),e.onClickDrawMenu(t)}}},[n("a",{staticClass:"channel-item",attrs:{"data-href":t.wap_url,mars_sead:t.tracking}},[n("span",[e._v(e._s(t.name))])])])]})],2)]):e._e()])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("h3",[t("p",[this._v("绮鹃夋帹鑽")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("h3",[t("p",[this._v("鏇村鎺ㄨ崘")])])}]};var M=n("VU/8")(E,U,!1,function(e){n("LuWU")},null,null).exports,D=document,W=document.documentElement.clientHeight;function R(e){e.preventDefault()}function $(e){e.stopPropagation(),e.preventDefault()}var F={name:"tab-bar",components:{tab:L.a,tabItem:L.b,channelList:M},props:{items:{type:Array,default:function(){return[]}},drawMenus:Array,currentIndex:{type:Number,default:0}},data:function(){return{showMoreBtn:!1,tabItemClass:"",height:2*W,padding:"0px",scrollThreshold:10,index:this.currentIndex,open:!1}},computed:{menusList:function(){return this.items.filter(function(e){return!e.is_hidden})}},watch:{currentIndex:function(e){this.index=e}},methods:{onReady:function(){var e=this,t=this.$refs.tab.$el,n=this.$refs.tabContainer.offsetWidth,r=this.$refs.tabItem,a=0;r.forEach(function(e){a+=e.$el.offsetWidth}),a+r.length0&&this.clearAllPopTimeout(),oe=setTimeout(function(){t.show=!0,t.startCloseTimeOut(e)},n,!1)},startCloseTimeOut:function(e){var t=this;if(e){var n=parseInt(e.closeAfterTime,10);n>0&&(se=setTimeout(function(){t.close()},1e3*n))}},changeFeild:function(e){var t=function(t){var n=e[t];if(!n)return null;var r={};return n.couponBgImage&&(r.couponBgImage=te.a.transformImageUrl(n.couponBgImage)),n.price&&(n.price.text&&(r.priceText=n.price.text),n.price.textColor&&(r.priceStyle="color: "+n.price.textColor)),n.title&&(n.title.text&&(r.titleText=n.title.text),n.title.textColor&&(r.titleStyle="color: "+n.title.textColor)),n.priceSuffix&&(n.priceSuffix.text&&(r.priceSuffixText=n.priceSuffix.text),n.priceSuffix.textColor&&(r.priceSuffixStyle="color: "+n.priceSuffix.textColor)),n.desc&&(n.desc.text&&(r.descText=n.desc.text),n.desc.textColor&&(r.descStyle="color: "+n.desc.textColor)),n.tips&&n.tips.length&&(r.tips=[],n.tips.forEach(function(e){r.tips.push({text:e.text,style:"color: "+e.textColor})})),n.buttons&&(r.buttons=n.buttons),n.wechatRemind&&(r.wechatRemind=n.wechatRemind),r};return 4==e.uiStyle?{beforePopupData:t("popWindowBefore"),afterPopupData:t("popWindowAfter")}:{}},clearAllPopTimeout:function(){oe&&clearTimeout(oe),se&&clearTimeout(se)},normalGo:function(){var e=this.needClickDialgInfo;if(5==e.uiStyle&&e.popWindowNormal.href){var t=ne.a.go(e.popWindowNormal.href).wapUrl;t&&(location.href=t)}this.close()},close:function(){this.show=!1,this.clearAllPopTimeout()}},created:function(){},mounted:function(){var e=this;setTimeout(function(){e.getAdvInfo()},200),this.isLogin=re.a.isLogin(),ae.a.on("loginModules","chageState",function(t){e.isLogin=t})},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},ue={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("vip-popup",{class:{"body-ll":e.show},attrs:{"background-color":"transparent",position:"center",appendToBody:!0},model:{value:e.show,callback:function(t){e.show=t},expression:"show"}},[3==e.needClickDialgInfo.uiStyle||4==e.needClickDialgInfo.uiStyle?n("div",{staticClass:"before-image",on:{click:function(t){return t.stopPropagation(),e.bindCoupon(t)}}},[3==e.needClickDialgInfo.uiStyle?n("img",{attrs:{src:e.needClickDialgInfo.imageUrl}}):4==e.needClickDialgInfo.uiStyle&&e.beforePopupData?[n("img",{attrs:{src:e.beforePopupData.couponBgImage}}),n("div",{staticClass:"before-title",style:e.beforePopupData.titleStyle},[e._v("\n "+e._s(e.beforePopupData.titleText)+"\n ")]),n("div",{staticClass:"before-money"},[n("span",{staticClass:"main-price",style:e.beforePopupData.priceStyle},[e._v(e._s(e.beforePopupData.priceText))]),n("span",{staticClass:"suffix",style:e.beforePopupData.priceSuffixStyle},[e._v(e._s(e.beforePopupData.priceSuffixText))])]),n("div",{staticClass:"before-desc",style:e.beforePopupData.descStyle},[e._v("\n "+e._s(e.beforePopupData.descText)+"\n ")])]:e._e()],2):5==e.needClickDialgInfo.uiStyle?n("div",{staticClass:"before-image expose-item",attrs:{"data-expose-row":"1","data-expose-col":"1","data-expose-data":e.needClickDialgInfo.buryPoint,"data-id":e.needClickDialgInfo.popupKey,"data-track-id":"cutNowClick","data-track-data":e.needClickDialgInfo.buryPoint},on:{click:function(t){return t.stopPropagation(),e.normalGo(t)}}},[n("img",{attrs:{src:e.needClickDialgInfo.popWindowNormal.image}})]):e._e(),n("div",{staticClass:"btn-close",on:{click:function(t){return t.stopPropagation(),e.close(t)}}})])],1)},staticRenderFns:[]};var le=n("VU/8")(ce,ue,!1,function(e){n("MlWt")},"data-v-1e6287ca",null).exports,pe=n("P6AR"),de=n("+vOg"),he=n("7fY6"),fe=location.pathname.substring(1),me=new v.a;var ve={name:"App",components:{bocHeader:A,indexHeader:j.a,commonHeader:T.a,downloadBar:B.a,sticky:K.a,vipIcon:J.a,tabBar:N,commonFooter:q.a,vipBacktop:V.a,cartCmp:z.a,errorRetry:G.a,advDialog:le},props:{},data:function(){return{showNetworkError:!1,errorCode:0,errorMsg:"",isTopFixed:!1,isLoading:!0,disabled:"undefined"!=typeof navigator&&/iphone/i.test(navigator.userAgent)&&/ucbrowser/i.test(navigator.userAgent),isTop:!0,actived:!1,navCurrent:{},currentIndex:0,dataParams:{},topMenus:[],drawMenus:[]}},computed:{},watch:{isTopFixed:function(e){this.$refs.downloadBar&&this.$refs.downloadBar.refresh(e)}},methods:{init:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,c.a.all([e.getTopMenu(),e.getDrawMenu()]);case 2:n=t.sent,r=l()(n,2),a=r[0],i=r[1],e.initNavCurrent({topMenus:a,drawMenus:i}),e.initLightart();case 8:case"end":return t.stop()}},t,e)}))()},reloadLightart:function(e){var t=this;return Q.a.show(),this.actived=!1,this.navCurrent=e,this.loadMoreToken="",this.showNetworkError=!1,new c.a(function(e){setTimeout(function(){e(t.initLightart())},300)})},loadMoreCallback:function(e){var t=this;return new c.a(function(n){t.loadMoreResolveQueue={resolve:n};var r=e.url.split("?");t.loadMoreToken=r[1]||"",t.getLightArtData().then(function(e){e&&e.load_more_token?t.loadMoreResolveQueue.resolve(e):me.noMore()}).catch(function(e){t.netWorkError()})})},renderLightart:function(){me.render({navCurrent:this.navCurrent,lightartTmpl:this.lightartTmpl,lightartData:this.lightartData,wrapper:this.$refs.wrapper,ajaxInterceptors:this.loadMoreCallback}),this.actived=!0,setTimeout(function(e){Object(g.a)()},200)},initLightart:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(e.navCurrent&&e.navCurrent.menu_code){t.next=3;break}return e.interfaceError({}),t.abrupt("return");case 3:return t.next=5,c.a.all([e.getLightArtData(),e.getLightArtTmpl()]).catch(function(t){t?e.interfaceError({code:t.code,msg:t.msg}):e.netWorkError(!0)});case 5:return n=t.sent,r=l()(n,2),a=r[0],(i=r[1])&&a?(e.lightartTmpl=i,e.lightartData=a,e.renderLightart()):e.interfaceError({}),f.a.hide(),Q.a.hide(),t.abrupt("return",!0);case 13:case"end":return t.stop()}},t,e)}))()},initNavCurrent:function(e){var t=this,n=e.topMenus,r=e.drawMenus;return d()(o.a.mark(function e(){var a,i;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=!1,n&&r&&(t.topMenus=n,t.drawMenus=r,(i=t.getNavCurrent({topMenus:n,drawMenus:r}))?(t.navCurrent=i,t.currentIndex=i.index,t.isTop=t.isTopFixed=i.isTop,t.isLoading=!1,t.$nextTick(function(){setTimeout(function(){Object(_.a)()})}),a=!0):he.a.report({action:"mgray_index_nav_current_empty"})),he.a.report({action:"mgray_index_menus_empty"}),e.abrupt("return",a);case 4:case"end":return e.stop()}},e,t)}))()},getNavCurrent:function(e){var t=e.topMenus,n=void 0===t?[]:t,r=e.drawMenus,a=[].concat(n,void 0===r?[]:r),i={},o=b.a.getHash("id");for(var s in a){var c=a[s];if(o&&c.id==o){i=a[s];break}if(!o&&(!fe&&"index.html"==c.wap_url||fe==c.wap_url)){i=a[s];break}}return i.name?i:null},getTopMenu:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i,s,c,u,p;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Object(w.x)(Object(de.d)());case 2:if(n=t.sent,r=l()(n,2),a=r[0],i=r[1],c=(s=void 0===i?{}:i).data,u=s.code,a||1!=u||!c){t.next=11;break}return p=c.top_menus||[],t.abrupt("return",p.filter(function(e,t){return e.isTop=!0,e.index=t,!e.is_hidden}));case 11:return e.netWorkError(!0),t.abrupt("return",null);case 13:case"end":return t.stop()}},t,e)}))()},getDrawMenu:function(){var e=this;return d()(o.a.mark(function t(){var n,r,a,i,s,c,u,p,d;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(w.x)(Object(de.a)());case 2:if(n=e.sent,r=l()(n,2),a=r[0],i=r[1],c=(s=void 0===i?{}:i).data,u=s.code,a||1!=u||!c){e.next=14;break}if(!(p=c.draw_menus)){e.next=14;break}return d=[],p.forEach(function(e){e.menus&&(d=d.concat(e.menus))}),e.abrupt("return",d.filter(function(e,t){return e.isTop=!1,e.index=t,!e.is_hidden}));case 14:return e.abrupt("return",null);case 15:case"end":return e.stop()}},t,e)}))()},getLightArtData:function(){var e=this;return d()(o.a.mark(function t(){var n,r,i,s,u;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n=a()({},e.commonParams,{width:"640",height:"460",net:"wifi",client:"wap",changeResolution:"2",menu_code:e.navCurrent.menu_code,channel_name:e.navCurrent.name}),e.loadMoreToken&&(n.load_more_token=e.loadMoreToken),t.next=4,Object(w.x)(Object(pe.b)(n));case 4:if(r=t.sent,i=l()(r,2),s=i[0],u=i[1],s||1!=u.code){t.next=10;break}return t.abrupt("return",u.data.data);case 10:return t.next=12,c.a.reject(u);case 12:case"end":return t.stop()}},t,e)}))()},getLightArtTmpl:function(){var e=this;return d()(o.a.mark(function t(){var n,r,i,s,u,p;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.lightartTmpl){t.next=2;break}return t.abrupt("return",e.lightartTmpl);case 2:return n=a()({},e.commonParams,{identifyCode:"57de10bfe905dd2015a9ac30a3a8bf84",laTpCode:"165418379279080908",client:"wap"}),r=e._getLightArtTmpl(n),t.next=6,Object(w.x)(y.a.cacheRequest(r,"cache_index_lightart_tmpl"));case 6:if(i=t.sent,s=l()(i,2),u=s[0],p=s[1],u||!p.data||!p.data.content){t.next=12;break}return t.abrupt("return",JSON.parse(p.data.content));case 12:return t.next=14,c.a.reject(p);case 14:case"end":return t.stop()}},t,e)}))()},_getLightArtTmpl:function(e){return function(){return Object(pe.d)(e)}},interfaceError:function(e){var t=e.code,n=void 0===t?0:t,r=e.msg,a=void 0===r?"":r;f.a.hide(),Q.a.hide(),this.actived?me.networkError({reloadCallback:this.clickShowMoreBtn,loadMoreText:"鏌ョ湅鏇村鍦ㄥ敭鍝佺墝"}):(this.showNetworkError=!0,this.errorCode=n,this.errorMsg=a)},netWorkError:function(e){f.a.hide(),Q.a.hide(),e?(this.showNetworkError=!0,this.errorMsg="鐜板湪鎶㈣喘鐨勫皬浼欎即澶浜嗭紝璇风◢鍚庨噸璇"):me.networkError({reloadCallback:this.clickShowMoreBtn,loadMoreText:"鏌ョ湅鏇村鍦ㄥ敭鍝佺墝"})},clickShowMoreBtn:function(){var e=this,t=this.loadMoreResolveQueue.resolve;this.getLightArtData().then(function(e){t(e)}).catch(function(t){e.netWorkError()})},retry:function(){location.reload()}},created:function(){m.a.init(),this.lightartTmpl=null,this.lightartData={},this.loadMoreToken="",this.commonParams={standby_id:"nature",wap_consumer:h.a.get("wap_consumer")||"A1",lightart_version:"1.3.0"},this.init()},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){},metaInfo:function(){var e=[];return e.push({name:"keywords",content:"鍞搧浼氭墜鏈鸿喘鐗╋紝姝e搧鍟嗗煄锛屽搧鐗岀壒鍗栦細"}),e.push({name:"description",content:"鍞搧浼氭墜鏈鸿喘鐗╃綉浠1-7鎶樿秴浣庢姌鎵e鍏ㄧ悆鍚勫ぇ鍝佺墝杩涜闄愭椂鐗瑰崠锛屽晢鍩庡唴姝e搧鍥婃嫭鏈嶈銆佸寲濡嗗搧銆佸灞呫佸ア渚堝搧绛夈100%姝e搧銆佹墜鏈鸿喘鐗╀笅鍗曘佽揣鍒颁粯娆俱7澶╂棤鏉′欢閫璐с"}),{title:"鍞搧浼氭墜鏈鸿喘鐗╂鍝佸晢鍩庯細鍝佺墝鐗瑰崠鎵嬫満鐗",meta:e}}},ge={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"index-container"},[n("downloadBar",{ref:"downloadBar",attrs:{"is-top-fixed":e.isTopFixed},scopedSlots:e._u([e.isTop&&!e.isLoading?{key:"down",fn:function(){return[n("boc-header"),n("index-header"),n("tab-bar",{attrs:{items:e.topMenus,"draw-menus":e.drawMenus,"current-index":e.currentIndex}})]},proxy:!0}:null],!0)}),e.isTop||e.isLoading?e._e():n("sticky",{attrs:{"check-sticky-support":!e.disabled,disabled:!1}},[n("common-header",{attrs:{"background-color":"#fbfbfa","title-content":e.navCurrent.name},scopedSlots:e._u([{key:"right",fn:function(){return[n("a",{staticClass:"header-right-button",attrs:{href:"//h5.vip.com/list/mobile-search.html"}},[n("vip-icon",{attrs:{name:"list"}})],1)]},proxy:!0}])})],1),e.showNetworkError?e._e():n("div",{ref:"wrapper",staticClass:"lightart-container",class:{actived:e.actived}}),e.showNetworkError?n("error-retry",{attrs:{"error-msg":e.errorMsg,"error-code":e.errorCode},on:{retry:e.retry}}):e._e(),n("vip-backtop",{attrs:{bottom:"22px"}}),n("cartCmp"),n("commonFooter"),n("input",{staticClass:"menu_nav_current",attrs:{type:"hidden",menu_tag:e.navCurrent.tag+"|"+(e.isTop?0:1),"data-channel-code":e.navCurrent.channel_code}}),n("adv-dialog",{attrs:{"zoon-id":"101"}})],1)},staticRenderFns:[]};var we=n("VU/8")(ve,ge,!1,function(e){n("O8eA"),n("Gyoi")},null,null).exports,be=n("fZjL"),_e=n.n(be),ye=(n("UoMW"),n("O+bN"),n("V0w3"),n("fujM"),n("j1ja"),n("/5sW")),ke=n("5K15"),xe=n.n(ke),Ce=n("OrFG"),Se=n("HMTI"),Te=n("Hjs2"),Ie=n("kH1M"),Oe=n("vNF5"),Ae=n("PV6p"),je=n("1M/o"),Le=n("M9SS"),Pe=n("9bvu"),Ee=n("1j56"),Ue=n("Z0rb"),Me=n("9GaH"),De=n("Q8Fd"),We=n("qb3Y"),Re=n("OPOm"),$e=n("NY1z"),Fe=n("atzx"),He=n("LmM6"),Ne=n("9aD2"),Be=n("cTzj"),qe=n.n(Be),Ve=n("N2Ao");_e()(Me).forEach(function(e){ye.a.filter(e,Me[e])});ye.a.config.ignoredElements=["wx-open-launch-weapp"],ye.a.use(qe.a,{filter:{progressive:function(e,t){var n=e.el,r=n.dataset.size||"",a=n.dataset.adaption||!1,i=parseInt(n.clientWidth),o=parseInt(n.clientHeight);void 0===e.src?e.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7":e.src=a?te.a.transformImageUrl(e.src,r):te.a.transformImageUrl(e.src,r,null,i,o)}},adapter:{error:function(e,t){try{var n=e.el,r=e.src;if(Object(Oe.f)(n,"processed")?e.processed=!0:(Object(Oe.a)(n,"processed"),e.src=r?Ve.genImageSrc(r):""),!Object(Oe.f)(n,"retried")){e.processed&&Object(Oe.a)(n,"retried");var a=e.performanceData||{};a.loadEnd<=0&&(a.loadEnd=Date.now());var i={request_time:a.loadStart,response_time:a.loadEnd,status:404,cdn_ip:"-99",dns_ip:"-99",request_url:r,rpc_status:"-99",address:"-99",exception_info:"-99",data_length:"",reponse_start_time:"",response_end_time:"",retry_times:e.processed?1:0,retry_url:e.processed?"-99":e.src};Ae.a.reportResourceError(i)}}catch(e){}}}}),ye.a.config.productionTip=!1,function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.use(Re.a),e.use(xe.a),e.use(De.a),e.use($e.a),e.use(Fe.a),e.prototype.$alert=Ne.a.alert,e.use(He.a)}(ye.a);var ze={run:function(e,t){var n=this;return d()(o.a.mark(function r(){var a,i;return o.a.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return n.toHttps(),Object(w.p)(),Le.a.isGlobalHkHost()&&Le.a.asyncSetCookies(),Pe.a.handleNativeFloatCmp(),r.next=6,Object(w.x)(ze.beforeInit());case 6:return a=r.sent,i=l()(a,1),i[0],r.next=11,Object(Ee.d)();case 11:if(!r.sent){r.next=14;break}return r.abrupt("return");case 14:return r.next=16,re.a.autoLogin();case 16:ze.init(e,t),ze.afterInit();case 19:case"end":return r.stop()}},r,n)}))()},init:function(e,t){ye.a.use(We.a),Object(Ue.a)(),new ye.a(a()({el:"#app",mixins:[Ce.a]},t||{},{render:function(t){return t(e)}}))},beforeInit:function(){return Ie.a.init(),c.a.all([Se.e.init(),Se.d.init(),Se.c.init()])},afterInit:function(){Te.a.init(),je.a.init()},toHttps:function(){if(!("https:"==document.location.protocol)){var e=document.location.href.replace("http://","https://");location.href=e}}};ze.run(we)},UnlV:function(e,t,n){"use strict";var r=n("vNF5"),a={components:{vipIcon:n("FA0W").a},props:{lockPage:{type:Boolean,default:!0},showMask:{type:Boolean,default:!0},raduis:{type:Boolean,default:!0},value:{type:Boolean,default:!1},position:{type:String,default:"bottom"},width:{type:String,default:"auto"},height:{type:String,default:"auto"},minHeight:{type:String,default:"auto"},maxHeight:{type:String,default:"auto"},closeOnMasker:{type:Boolean,default:!0},maskOpacity:{type:String,default:"0.7"},backgroundColor:{type:String,default:"#FFF"},appendToBody:{type:Boolean,default:!1},title:{type:String,default:""}},watch:{value:function(e){this.lockPage&&this.$nextTick(function(){e?r.j.lock():r.j.unlock()})}},computed:{classes:function(){return("center"===this.position?"popup-center ":"popup popup-"+this.position)+(this.value?" popup-show ":"")+(this.raduis?"":" pop-no-radius ")},styles:function(){return"left"===this.position||"right"===this.position?{width:this.width}:"bottom"===this.position?{width:"100%",height:this.height,"max-height":this.maxHeight,"min-height":this.minHeight}:{width:this.width,height:this.height}},contentStyles:function(){return{"background-color":this.backgroundColor}}},mounted:function(){this.appendToBody&&document.body.appendChild(this.$el)},destroyed:function(){Object(r.f)(document.body,"vip-prevent-scroll")&&Object(r.k)(document.body,"vip-prevent-scroll"),this.removeEl()},methods:{removeEl:function(){var e=this;this.appendToBody&&this.$el&&this.$el.parentNode&&setTimeout(function(){e.$el.parentNode.removeChild(e.$el)},500)},close:function(){this.closeOnMasker&&this.$emit("input",!1)},handleTabBack:function(){this.$emit("input",!1),this.$emit("onClose")}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"vip-popup"},[e.value&&e.showMask?n("div",{ref:"popMask",staticClass:"vip-mask",style:{opacity:e.maskOpacity},on:{click:e.close}}):e._e(),n("div",{class:e.classes,style:e.styles},[e.$slots.header||e.title?n("div",{staticClass:"popup-header",style:e.contentStyles},[e.$slots.header?e._t("header"):e.title?n("div",{staticClass:"popup-header__inner"},[n("div",{staticClass:"popup-title"},[e._v(e._s(e.title))]),n("vip-icon",{staticClass:"close-btn",attrs:{name:"vip-close"},nativeOn:{click:function(t){return e.handleTabBack(t)}}})],1):e._e()],2):e._e(),n("div",{staticClass:"popup-content",style:e.contentStyles},[e._t("default")],2),e.$slots.footer?n("div",{staticClass:"popup-footer",style:e.contentStyles},[e._t("footer")],2):e._e()])])},staticRenderFns:[]};var o=n("VU/8")(a,i,!1,function(e){n("uiMC"),n("BjXC")},"data-v-05192920",null).exports;n.d(t,"a",function(){return o})},UoMW:function(e,t){!function(e,t){function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n.bind(e))}window.flexible={},function(e,t){var r,a=e.document,i=a.documentElement,o=a.querySelector('meta[name="viewport"]'),s=a.querySelector('meta[name="flexible"]'),c=0,u=0,l=t;if(o){var p=o.getAttribute("content").match(/initial\-scale=([\d\.]+)/);p&&(u=parseFloat(p[1]),c=parseInt(1/u))}else if(s){var d=s.getAttribute("content");if(d){var h=d.match(/initial\-dpr=([\d\.]+)/),f=d.match(/maximum\-dpr=([\d\.]+)/);h&&(c=parseFloat(h[1]),u=parseFloat((1/c).toFixed(2))),f&&(c=parseFloat(f[1]),u=parseFloat((1/c).toFixed(2)))}}if(!c&&!u){e.navigator.appVersion.match(/android/gi);var m=e.navigator.appVersion.match(/iphone/gi),v=e.navigator.appVersion.match(/iPad/gi),g=e.devicePixelRatio;u=1/(c=m||v?g>=3&&(!c||c>=3)?3:g>=2&&(!c||c>=2)?2:1:1)}if(i.setAttribute("data-dpr",c),!o)if((o=a.createElement("meta")).setAttribute("name","viewport"),o.setAttribute("content","initial-scale="+u+", maximum-scale="+u+", minimum-scale="+u+", user-scalable=no"),i.firstElementChild)i.firstElementChild.appendChild(o);else{var w=a.createElement("div");w.appendChild(o),a.write(w.innerHTML)}function b(){var t=i.getBoundingClientRect().width;t/c>540&&(t=540*c);var n=t/10;i.style.fontSize=n+"px",l.rem=e.rem=n,function(e){if(!/(ipad|iphone|ipod)/i.test(window.navigator&&navigator.userAgent||"")){var t=document.createElement("div");t.style="font-size: 14px;",document.body.appendChild(t);var n=parseInt(window.getComputedStyle(t,null).getPropertyValue("font-size"));document.body.removeChild(t);var r=14/n;1!==r&&r<1&&(document.getElementsByTagName("html")[0].style.cssText="font-size: "+e*r+"px")}}(n)}n(e,"resize",function(){clearTimeout(r),r=setTimeout(b,300)}),n(e,"pageshow",function(e){e.persisted&&(clearTimeout(r),r=setTimeout(b,300))}),"complete"===a.readyState?a.body.style.fontSize=12*c+"px":n(a,"DOMContentLoaded",function(e){a.body.style.fontSize=12*c+"px"}),b(),l.dpr=e.dpr=c,l.refreshRem=b,l.rem2px=function(e){var t=parseFloat(e)*this.rem;return"string"==typeof e&&e.match(/rem$/)&&(t+="px"),t},l.px2rem=function(e){var t=parseFloat(e)/this.rem;return"string"==typeof e&&e.match(/px$/)&&(t+="rem"),t}}(window,window.flexible)}(document,window)},"V/t2":function(e,t){},V0w3:function(e,t){},VKKs:function(e,t,n){"use strict";var r=null;e.exports={isStorageSupported:function(){if(null!==r)return r;try{var e=window.sessionStorage,t=window.localStorage;return e.setItem("test","1"),t.setItem("test","1"),e.removeItem("test"),t.removeItem("test"),r=!!window.localStorage&&!!window.sessionStorage}catch(e){return r=!1,!1}},getLocalStorage:function(e){return this.isStorageSupported()?window.localStorage.getItem(e):null},setLocalStorage:function(e,t){if(this.isStorageSupported()){var n=null;try{n=window.localStorage.setItem(e,t)}catch(e){}return n}return null},removeLocalStorage:function(e){return this.isStorageSupported()?window.localStorage.removeItem(e):null},getSessionStorage:function(e){return this.isStorageSupported()?window.sessionStorage.getItem(e):null},setSessionStorage:function(e,t){if(this.isStorageSupported()){var n=null;try{n=window.sessionStorage.setItem(e,t)}catch(e){}return n}return null},removeSessionStorage:function(e){return this.isStorageSupported()?window.sessionStorage.removeItem(e):null},isSupportedCookie:function(){return navigator.cookieEnabled}}},VPOg:function(e,t,n){"use strict";var r=n("/5sW"),a=n("wkJ7"),i=n("Xxa5"),o=n.n(i),s=n("exGp"),c=n.n(s),u=n("oyG6"),l=n("1M/o"),p=n("pzeP"),d=n("pD4m"),h={name:"download-bar",components:{FontLabel:n("y1FO").a},props:{isTopFixed:{type:Boolean,default:!1}},data:function(){return{isShowDownloadApp:!0,downloadBarFixed:!1,needAnimation:!1,height:0,downloadText:{},downloadInfo:null}},mounted:function(){this.init()},methods:{init:function(){var e=this;return c()(o.a.mark(function t(){return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!a.a.isWechat()&&!a.a.isWxkApp()){t.next=4;break}e.isShowDownloadApp=!1,t.next=8;break;case 4:return t.next=6,e.getDownloadInfo();case 6:return t.next=8,e.getWapCanal();case 8:e.downloadBarFixed=e.isTopFixed,e.scrollListener(),e.getDownloadText(),e.sendExposeMar();case 12:case"end":return t.stop()}},t,e)}))()},refresh:function(e){this.downloadBarFixed=e,this.scrollListener()},initPlaceHolder:function(){var e=this;this.$nextTick(function(){setTimeout(function(){e.$refs.placeHolder.style.height=e.$refs.footer.clientHeight+"px"},200)})},wakeupApp:function(){l.a.seed("div","click","top_client_download_btn"),Object(p.a)()},closeDownloadBar:function(){this.isShowDownloadApp=!1,this.downloadBarFixed=this.isTopFixed,window.removeEventListener("scroll",this.throttleFun,!1),u.a.set("WAP[clientCloseSession]",!0),l.a.seed("span","click","close_download_page")},getWapCanal:function(){var e=this;return c()(o.a.mark(function t(){var n,r;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,d.a.getConfig({type:"wapCanal"});case 2:n=t.sent,((r=n.customSetting)&&1===Number(r.hideDownloadApp)||u.a.get("WAP[clientCloseSession]"))&&(e.isShowDownloadApp=!1);case 5:case"end":return t.stop()}},t,e)}))()},getDownloadText:function(){var e=this;d.a.getConfig({type:"config",code:"M_download_app_text"}).then(function(t){e.downloadText=(t||{}).top||{}})},getDownloadInfo:function(){var e=this;d.a.getConfig({type:"config",code:"wap_developers_information"}).then(function(t){e.downloadInfo=t})},scrollListener:function(){this.downloadBarFixed&&this.isShowDownloadApp?(this.height=this.$refs.downloadBar.clientHeight,this.prevScrollTop=0,window.addEventListener("scroll",this.throttleFun,!1)):this.downloadBarFixed&&window.addEventListener("scroll",this.footerThrottleFun,!1)},throttleFun:function(){var e=this.height,t=this.prevScrollTop,n=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;n<=0?(this.downloadBarFixed=!1,this.$refs.footer&&(this.$refs.footer.style.top="0px"),this.needAnimation=!1):n>t&&nt&&n>e?(this.downloadBarFixed=!0,this.$refs.footer&&(this.$refs.footer.style.top="0px"),this.needAnimation=!0):n0}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowDownloadApp,expression:"isShowDownloadApp"}],ref:"downloadBar",staticClass:"u-download-bar-wrap",class:{"download-fixed":e.downloadBarFixed}},[n("div",{staticClass:"u-download-bar",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[n("span",{staticClass:"download-close icon-close",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.closeDownloadBar(t)}}}),n("div",{staticClass:"download-text"},[n("p",{staticClass:"title"},[e._v(e._s(e.downloadText.text))]),n("font-label",{staticClass:"content",attrs:{align:"left",justify:"flex-start","font-size":10,text:e.downloadText.sub_text}})],1)]),e.downloadInfo&&Object.keys(e.downloadInfo).length>0?n("div",{style:{backgroundColor:"#fff"}},[n("p",{staticClass:"u-download-info"},[n("font-label",{attrs:{align:"left",justify:"flex-start","font-size":8}},[e.downloadInfo.developers?n("span",[e._v("寮鍙戣咃細"+e._s(e.downloadInfo.developers))]):e._e(),e.downloadInfo.version?n("span",[e._v("聽聽鐗堟湰鍙凤細"+e._s(e.downloadInfo.version))]):e._e()]),n("font-label",{staticClass:"u-download-info__href",attrs:{align:"left",justify:"flex-start","font-size":8}},[e.downloadInfo.authority?n("a",{attrs:{href:e.downloadInfo.authority}},[e._v("鏉冮檺")]):e._e(),e.downloadInfo.authority&&e.downloadInfo.privacy?[e._v("聽聽|聽聽")]:e._e(),e.downloadInfo.privacy?n("a",{attrs:{href:e.downloadInfo.privacy}},[e._v("闅愮")]):e._e()],2)],1)]):e._e()]),n("div",{directives:[{name:"show",rawName:"v-show",value:e.downloadBarFixed&&e.isShowDownloadApp,expression:"downloadBarFixed && isShowDownloadApp"}],staticClass:"download-bar-place-holder"}),n("div",{ref:"footer",staticClass:"download-footer",class:e.downloadFooterFixed},[e._t("down")],2),n("div",{directives:[{name:"show",rawName:"v-show",value:e.downloadBarFixed,expression:"downloadBarFixed"}],ref:"placeHolder",staticClass:"footer-place-holder"})])},staticRenderFns:[]};var m=n("VU/8")(h,f,!1,function(e){n("5JYG")},"data-v-453cdfc0",null).exports,v=n("mvHQ"),g=n.n(v),w=n("pFYg"),b=n.n(w),_=n("d7EF"),y=n.n(_),k=(n("83Tv"),n("92UP")),x=n("ChiH"),C=n("Rjba"),S=n("Es//"),T=n("M9SS"),I=n("p6Um"),O=n("GKmE"),A=n("7fY6"),j=n("HMTI"),L=n("iPXC"),P=n("VKKs"),E=n.n(P),U=n("ArKR"),M=location.pathname,D=new I.a,W={name:"downloadBarWx",components:{},props:{pathName:{type:String,default:""},placement:{type:String,default:""}},data:function(){return{isShowDownloadApp:!1}},computed:{wakeAppUrl:function(){var e=this.wakeAppParam,t=e.brandId,n=e.productId;return k.a.getAppUrl("showGoodsDetail",{productId:n,brandId:t})},wakeAppParam:function(){var e=(this.pathName||M).match(/product-(\d+)-(\d+).html/),t=y()(e,3);t[0];return{brandId:t[1],productId:t[2]}}},watch:{},methods:{hideWakeupBar:function(){this.isShowDownloadApp=!1},getSwitch:function(){var e=this;return c()(o.a.mark(function t(){return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",d.a.getConfig({type:"switch",code:"405"}));case 1:case"end":return e.stop()}},t,e)}))()},getWakeUpWxLiteSwitch:function(){var e=this;return c()(o.a.mark(function t(){return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",d.a.getConfig({type:"switch",code:"1472"}));case 1:case"end":return e.stop()}},t,e)}))()},canWakeUpWxLite:function(){var e=navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);return Object(O.e)(e[1],"7.0.14")>0},wakeupWxLite:function(e){l.a.seed("button","click","launch_weapp_expose"),A.a.report({action:"launch_weapp_expose"}),D.open({className:"launch-weapp",content:"鎮ㄦ湭瀹夎鍞搧浼欰PP锛屾槸鍚︽墦寮鈥滃敮鍝佷細鐗瑰崠鈥濆皬绋嬪簭",btns:["鍙栨秷",{html:this.renderTem()}],onOpen:function(){var t=document.getElementById("launch-btn");t.addEventListener("launch",function(e){l.a.seed("button","click","launch_weapp_btn_success"),A.a.report({action:"launch_weapp_btn_success"}),D.close()}),t.addEventListener("error",function(t){var n="";n="object"===b()(t.detail)?g()(t.detail):t.detail,A.a.report({action:"launch_weapp_btn_fail",message:n}),l.a.seed("button","click","launch_weapp_btn_fail",{message:n}),e&&e()})},onBtnClick:function(e,t){D.close(),l.a.seed("button","click","launch_weapp_btn_close"),A.a.report({action:"launch_weapp_btn_close"})}})},renderTem:function(){var e=this.wakeAppParam,t=e.brandId,n=e.productId,r=document.createElement("script");return r.type="text/wxtag-template",r.text='
    ','鎵撳紑\n \n '+r.outerHTML+"\n \n "},toDownloadPage:function(){D.open({content:"鎮ㄦ湭瀹夎鍞搧浼欰PP锛屽嵆灏嗚烦杞嚦涓嬭浇椤",btns:["鍙栨秷","鍏佽"],onBtnClick:function(e,t){1==t&&Object(p.b)(),D.close()}})},isFromAppShare:function(){return"appshare"===L.a.getWapFrom()||j.b},handleWakeup:function(){var e=this,t=this;this.getWakeUpWxLiteSwitch().then(function(n){1===n&&e.canWakeUpWxLite()&&e.isFromAppShare()?e.wakeupWxLite(function(){t.toDownloadPage()}):Object(S.b)(function(){t.toDownloadPage()},!0)})},wakeupApp:function(){l.a.seed("button","click","gd_click_wake_up");var e=this.wakeAppUrl,t=this,n=function(e){switch(e&&e.err_msg){case"launchApplication:ok":l.a.seed("button","click","gd_click_wake_up_success");break;default:l.a.seed("button","click","gd_click_wake_up_fail"),t.toDownloadPage()}};C.a.reConfig(function(){x.a.wakeup({parameter:e,extInfo:"vipshop://"+e,schemeUrl:"vipshop://"+e,onLaunch:n})})},canAutoWakeup:function(){var e=E.a.getLocalStorage("weixin_auto_wakeup_time");return e&&Date.now()-e>36e5?(E.a.setLocalStorage("weixin_auto_wakeup_time",Date.now()),!0):e?(Date.now(),!1):(E.a.setLocalStorage("weixin_auto_wakeup_time",Date.now()),!0)},autoWakeup:function(){1!=E.a.getSessionStorage("wq")&&this.canAutoWakeup()&&this.wakeupApp()},isFromAppShareV2:function(){return 0===(U.a.getQuery("nchl_param")||U.a.getQuery("chl_param")||"").indexOf("share")}},created:function(){},mounted:function(){var e=this;T.a.isGlobalHkHost()?this.isShowDownloadApp=!1:this.getSwitch().then(function(t){(e.isFromAppShareV2()||e.isFromAppShare())&&(e.isShowDownloadApp=Boolean(t))})},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},R={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowDownloadApp,expression:"isShowDownloadApp"}],staticClass:"wakeup-bar-container"},[n("div",{staticClass:"wakeup-bar-wrap"},[n("div",{staticClass:"left"},[n("div",{staticClass:"close-btn-wrap",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.hideWakeupBar(t)}}},[n("i",{staticClass:"icon-close"})]),e._m(0),e._m(1)]),n("div",{staticClass:"wakeup-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[e._v("绔嬪嵆鎵撳紑")])]),n("div",{staticClass:"wakeup-bar-wrap-placeholder"}),"right"===e.placement?n("div",{staticClass:"wakeup-fixed-right-btn",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[e._v("鎵撳紑APP")]):e._e()])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"new-logo-wrap"},[t("i",{staticClass:"icon-new-logo"})])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"description"},[t("p",[this._v("鍝佺墝鐗瑰崠锛屽氨鏄秴鍊")]),t("p",[this._v("鍓嶅線鍞搧浼欰PP璐拱")])])}]};var $=n("VU/8")(W,R,!1,function(e){n("Xi3k"),n("TU8s")},"data-v-8cea33a8",null).exports,F=/product-\d+-\d+.html/.test(location.pathname),H=a.a.isWechat()&&F?r.a.component("downloadBar",$):r.a.component("downloadBar",m);t.a=H},WFxe:function(e,t,n){"use strict";t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/api/adver/get",method:"get",params:a()({},e,{mvip:!0})})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/wx/advertisement/get",method:"get",params:a()({},e)})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},WI6B:function(e,t){},WX3G:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("xhcK"),o=n("iPXC"),s=n("1M/o"),c={name:"error-retry",components:{commonHeader:i.a},props:{errorCode:{type:[Number,String],default:""},errorMsg:{type:String,default:"鐜板湪鎶㈣喘鐨勫皬浼欎即澶浜"},showReturnHeader:{type:Boolean,default:!1}},data:function(){return{}},computed:{shortMarscid:function(){var e=o.a.getMarsCid();return!e||e.length<=6?"nomid":e.substr(-6,6)}},watch:{},methods:{goRetry:function(){this.$emit("retry")},goBack:function(){history.back()}},created:function(){s.a.seed("button","created","wap_error_retry",a()({code:this.errorCode,msg:this.errorMsg,mid:this.shortMarscid}))},mounted:function(){}},u={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"error-retry-container"},[e.showReturnHeader?r("common-header",{attrs:{"font-color":"#585c64","background-color":"transparent"}}):e._e(),r("img",{attrs:{src:n("aCUy"),alt:""}}),r("p",{staticClass:"error-text"},[e._v(e._s(e.errorMsg))]),r("div",{staticClass:"button"},[r("button",{attrs:{type:"primary"},on:{click:e.goRetry}},[e._v("閲嶈瘯")])]),r("p",{staticClass:"error-code"},[[e._v("閿欒浠g爜:("+e._s(e.shortMarscid)+"|"+e._s(e.errorCode)+")")]],2)],1)},staticRenderFns:[]};var l=n("VU/8")(c,u,!1,function(e){n("w89H")},"data-v-eae38f38",null);t.a=l.exports},Xi3k:function(e,t){},"Xj+z":function(e,t,n){"use strict";var r={name:"vip-icon",props:{name:String}},a={render:function(){var e=this.$createElement;return(this._self._c||e)("i",{staticClass:"vip-icon",class:"icon-"+this.name},[this._t("default")],2)},staticRenderFns:[]};var i=n("VU/8")(r,a,!1,function(e){n("WI6B")},null,null);t.a=i.exports},Y0WH:function(e,t){},YOyO:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("O4Lo"),o=n.n(i),s=n("rNkk"),c=n("ArKR"),u=n("1M/o"),l=n("hlbY"),p={name:"search-list",props:{list:Array,searchContent:String},computed:{showList:function(){return this.list.length>0}},methods:{onclick:function(e){var t=a()({kw:this.searchContent,sugkw:e});this.$root.$emit("add-history",e),this.$root.$emit("jump-to-search-list",e),u.a.seed("link","click","suggest_result_click",t)}},mounted:function(){}},d={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"search-list"},[e.showList?n("div",{staticClass:"list"},[n("ul",[e._l(e.list,function(t,r){return[n("li",{key:r,staticClass:"list-item"},[n("a",{staticClass:"item-content",on:{click:function(n){return n.stopPropagation(),n.preventDefault(),e.onclick(t.word)}}},[n("div",{staticClass:"item-inner"},[n("p",{staticClass:"item-title"},[e._v("\n "+e._s(t.word)+"\n ")])])])])]})],2)]):e._e()])},staticRenderFns:[]};var h=n("VU/8")(p,d,!1,function(e){n("wdix")},null,null).exports,f=n("5ioc"),m={name:"product-atmosphere",props:{atmosphereList:{default:function(){return[]},type:Array},time:{default:3e3,type:Number}},data:function(){return{curIdx:0,num:3,scrollList:[],isShowAtmosphere:!0}},computed:{},watch:{scrollList:function(){var e=this;this.$nextTick(function(){setInterval(function(){e.curIdx==e.scrollList.length+1?e.curIdx=e.num-1:e.curIdx++},3e3)})},atmosphereList:function(e){var t=e.slice(0);if(0==e.length){var n=e[0];e.push(n,n)}t.push(e[0],e[1],e[3]),this.scrollList=t}},beforeCreate:function(){},created:function(){},mounted:function(){},methods:{closeHandle:function(){this.isShowAtmosphere=!1}}},v={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.scrollList&&e.scrollList.length>0&&e.isShowAtmosphere?n("div",{staticClass:"atmosphere-box"},[n("ul",{staticClass:"scorll-list"},e._l(e.scrollList,function(t,r){return n("li",{key:r,ref:"atmosphere",refInFor:!0,class:{step1:e.curIdx==r||0==r&&e.curIdx==e.scrollList.length||1==r&&e.curIdx==e.scrollList.length+1,step2:e.curIdx-1==r||0==r&&e.curIdx==e.scrollList.length+1,step3:e.curIdx-2==r}},[n("img",{attrs:{src:(t.avatars||[])[0]||"",alt:""}}),n("span",[e._v(e._s(t.view))])])}),0)]):e._e()},staticRenderFns:[]};var g={name:"v-search",components:{bubble:n("VU/8")(m,v,!1,function(e){n("Ma0c")},"data-v-1c46ae7d",null).exports},data:function(){return{showPlaceholder:!0,index:0,showIconDelete:!1}},props:{value:String,autofocus:Boolean,open:Boolean,entryWordsList:{type:Array,default:function(){return[]}},searchText:{default:"鎼滅储"},showLeftButton:Boolean,showRightButton:Boolean,isPlaceholderCenter:Boolean},computed:{showSearchList:function(){return""!==this.value},curEntryWord:function(){return this.entryWordsList[this.index]||{}},placeholder:function(){var e;return(e=this.curEntryWord.showWord)?e||"鎼滅储":this.channelName?"鎼滅储"+this.channelName+"鏈夊叧鐨勫搧鐗屽拰鍒嗙被":"鎼滅储鍝佺墝鎴栧晢鍝"}},watch:{value:function(){this.togglePlaceholder()},entryWordsList:function(){this.interval&&clearInterval(this.interval),this.getCurEntryWord()},open:function(e){e?this.clearEntryInterval():(this.clearEntryInterval(),this.getCurEntryWord())}},methods:{clearEntryInterval:function(){clearInterval(this.interval)},getCurEntryWord:function(){var e=this;this.open||(this.interval=setInterval(function(){e.index++,e.index>=e.entryWordsList.length&&(e.index=0)},3e3))},fixElementsOffsetAfterKeyboardHideDelay:function(){setTimeout(function(){Object(f.a)()},200)},togglePlaceholder:function(){""===this.value?this.showPlaceholder=!0:this.showPlaceholder=!1},onblur:function(){var e=this;this.togglePlaceholder(),this.fixElementsOffsetAfterKeyboardHideDelay(),setTimeout(function(){e.showIconDelete=!1},100)},onclick:function(){this.togglePlaceholder()},onfocus:function(){this.showIconDelete=!!this.value,this.$root.$emit("focus"),this.togglePlaceholder(),this.fixElementsOffsetAfterKeyboardHideDelay()},oninput:function(e){var t=e.target.value;this.showIconDelete=!!t,this.$root.$emit("input",t),this.$emit("update:value",t),this.togglePlaceholder()},focus:function(){this.$refs.input.focus()},keypressSearch:function(e){e&&13===e.keyCode&&this.search()},search:function(){this.$root.$emit("on-search",this.value)},back:function(){this.$root.$emit("on-back")},blurSearchIpt:function(){this.$refs.input.blur()},clearIpt:function(){this.$emit("update:value",""),this.$refs.input.focus()}},mounted:function(){this.autofocus&&this.$refs.input.focus()}},w={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"v-search"},[n("div",{staticClass:"search-header"},[n("form",{staticClass:"searchbar",class:{"border-b":e.open},attrs:{action:""},on:{submit:function(e){e.preventDefault()}}},[n("a",{directives:[{name:"show",rawName:"v-show",value:e.showLeftButton,expression:"showLeftButton"}],staticClass:"searchbar-back",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.back(t)}}},[n("i",{staticClass:"icon-back"})]),n("div",{class:[e.isPlaceholderCenter?"center":"",e.open?"searchbar-inner":"searchbar-inner-close"],on:{click:e.focus}},[n("input",{ref:"input",staticClass:"searchbar-core",attrs:{type:"search",maxlength:"20",autocomplete:"off"},domProps:{value:e.value},on:{blur:e.onblur,input:e.oninput,click:e.onclick,focus:e.onfocus,keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.keypressSearch(t)}}}),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showPlaceholder,expression:"showPlaceholder"}],staticClass:"placeholder"},[e._v(e._s(e.placeholder))]),n("a",{directives:[{name:"show",rawName:"v-show",value:e.showIconDelete,expression:"showIconDelete"}],staticClass:"icon icon-close-round2",on:{click:e.clearIpt}})]),e.showRightButton?[e.open?n("a",{staticClass:"searchbar-btn",domProps:{textContent:e._s(e.searchText)},on:{click:e.search}}):n("a",{staticClass:"searchbar-btn home",attrs:{href:"index.html"}},[n("i",{staticClass:"icon-home"})])]:e._e()],2)]),n("div",{staticClass:"search-body",on:{touchstart:e.blurSearchIpt}},[e._t("search-list"),e._t("search-expand")],2)])},staticRenderFns:[]};var b=n("VU/8")(g,w,!1,function(e){n("FABM")},null,null).exports,_=n("coau"),y=n("da9H"),k=function(){};k.prototype.open=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯";Object(l.a)({message:e})};new k;var x=function(e,t){var n={content:e,haveresult:t};u.a.seed("link","click","keyword_result",a()(n))},C=function(e){return c.a.getQuery({name:e,url:location.href})},S={name:"search",data:function(){return{value:"",channelId:"",channelName:"",suggestList:[],debounce:200,showHotwords:!1,entryWordsList:[],everReqHotWords:!1,showSuggest:!1,showHistory:!1}},props:{open:Boolean,autofocus:Boolean,showLeftButton:{type:Boolean,default:!0},showRightButton:{type:Boolean,default:!0},isPlaceholderCenter:Boolean,placeholderPrefix:{type:String,default:"澶у姝e湪鎼滅储锛"}},components:{hotSearch:_.a,searchHistory:y.a,searchList:h,vsearch:b},watch:{value:function(){""===this.value?(!this.everReqHotWords&&this.getHotWords(),this.showSuggest=!1):this.showSuggest=!0},open:function(){this.$emit("update:autofocus",!0),this.everReqHotWords||""!==this.value||this.getHotWords(),this.suggestList&&0===this.suggestList.length&&""!==this.value&&this.open&&this.getSuggestInfo()}},methods:{getSearchTip:function(){var e=this,t=function(){};s.a.getSearchTip({gPlatform:"WAP",channelId:"1"}).then(function(t){var n=t.data,r=t.code;n&&1==r&&(e.entryWordsList=n.list)},t).catch(t)},getHotWords:function(){this.showHotwords=!0,this.everReqHotWords=!0},getSuggestInfo:function(){var e=this;if(this.open&&""!==this.value.trim()){var t={keyword:this.value.trim(),channelId:"1"},n=function(){x(e.value,0)};s.a.getSuggestInfo(t).then(function(t){e.showSearchList=!0;var n=t.data,r=t.code;n&&1==r&&0==n.type&&n.promptWords?e.suggestList=n.promptWords:e.suggestList=[],0===e.suggestList.length?x(e.value,0):x(e.value,1)},n).catch(n)}else this.suggestList=[]},jump:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.$refs.vsearch.curEntryWord;if(2!=t.type||!t.typeValue||e){var n="q="+encodeURIComponent(e)+"&channel_id=";location.href="/searchlist.html?"+n}else location.href=t.typeValue},search:function(e){if(!e){var t=this.$refs.vsearch.curEntryWord;e=this.channelName?this.channelName:1==t.type&&t.typeValue?t.typeValue:2==t.type&&t.typeValue?"":t.showWord}e&&this.$root.$emit("add-history",e),this.jump(e)},clearSearch:function(){this.value=""}},mounted:function(){var e=this;this.value=C("q"),this.channelName=C("channel_name").trim(),this.getSearchTip(),!this.everReqHotWords&&""===this.value&&this.open&&this.getHotWords();var t=o()(this.getSuggestInfo,this.debounce);this.$root.$on("jump-to-search-list",this.jump),this.$root.$on("input",t),this.$root.$on("on-search",this.search),this.$root.$on("clear-search",this.clearSearch),this.$root.$on("show-history",function(){e.showHistory=!0}),this.$root.$on("hide-history",function(){e.showHistory=!1}),this.$root.$on("focus",function(){u.a.seed("button","click","search_entrance_click"),e.$emit("update:open",!0)}),this.$root.$on("get-hot-words",this.getHotWords)}},T={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("vsearch",{ref:"vsearch",attrs:{autofocus:e.autofocus,open:e.open,value:e.value,"show-left-button":e.showLeftButton,"show-right-button":e.showRightButton,"entry-words-list":e.entryWordsList,"is-placeholder-center":e.isPlaceholderCenter},on:{"update:value":function(t){e.value=t}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.open&&e.showSuggest,expression:"open && showSuggest"}],staticClass:"search-list-wrapper",attrs:{slot:"search-list",id:"search-list"},slot:"search-list"},[n("search-list",{attrs:{searchContent:e.value,list:e.suggestList}})],1),n("div",{directives:[{name:"show",rawName:"v-show",value:e.open&&!e.showSuggest,expression:"open && !showSuggest"}],attrs:{slot:"search-expand",id:"search-expand"},slot:"search-expand"},[n("search-history",{directives:[{name:"show",rawName:"v-show",value:e.showHistory,expression:"showHistory"}]}),n("hot-search",{directives:[{name:"show",rawName:"v-show",value:e.showHotwords,expression:"showHotwords"}]})],1)])},staticRenderFns:[]},I=n("VU/8")(S,T,!1,null,null,null);t.a=I.exports},Z0rb:function(e,t,n){"use strict";t.a=function(){a.a.report.subscribe(function(e){i.a.reportJsError({error:e})})};var r=n("7w1O"),a=n.n(r),i=(n("7fY6"),n("PV6p"))},Z2RT:function(e,t,n){"use strict";var r=n("GKmE");var a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.scrollBox||window,a=t.offset||0,i=!0===t.checkStickySupport||!1;if("string"!=typeof n||(n=document.getElementById(n))){var o=e.parentNode.offsetTop-a;n.removeEventListener("scroll",n.e);var s,c=function(){return n===window?document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop:n.scrollTop},u=function(){c()>o?(e.style.top=Object(r.r)(a),e.classList.add("fixed")):(e.classList.remove("fixed"),e.style.top=0)};if(i&&((s=window.navigator.userAgent.match(/(iPad|iPhone|iPod)\s+OS\s([\d_.]+)/))&&s[2]&&parseInt(s[2].replace(/_/g,"."),10)>=6||function(){for(var e=["","-webkit-","-ms-","-moz-","-o-"],t="",n=0;n0&&this.bindSticky(),this.initTimes++},mounted:function(){var e=this;this.$nextTick(function(){e.bindSticky()})},beforeDestroy:function(){this.$bus&&this.$bus.off("sticky","after-view-enter",this.bindSticky)},methods:{bindSticky:function(){var e=this;this.disabled?"bottom"===this.type&&this.setStickyFillHeight():(this.$nextTick(function(){a(e.$refs.stickyBox,{scrollBox:e.scrollBox,offset:e.offset,checkStickySupport:void 0===e.checkStickySupport||e.checkStickySupport})}),this.setStickyFillHeight())},setStickyFillHeight:function(){var e=this;setTimeout(function(){e.$nextTick(function(){e.height=e.$refs.stickyBox.clientHeight})},20)}},props:["scrollBox","offset","checkStickySupport","disabled","type"]},o={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"sticky-box-container"},[t("div",{ref:"stickyBox",staticClass:"sticky-box",class:["sticky-box-type__"+(this.type||"top"),"fixed__"+this.type]},[this._t("default")],2),t("div",{staticClass:"sticky-fill",style:{height:this.height+"px"}})])},staticRenderFns:[]};var s=n("VU/8")(i,o,!1,function(e){n("3v/c")},null,null);t.a=s.exports},aCUy:function(e,t,n){e.exports=n.p+"static_v2/img/icon-networkcongestion-empty.df504c3.png"},atzx:function(e,t,n){"use strict";var r=n("y8js");t.a={install:function(e){e.prototype.$pageLoading=r.a}}},coau:function(e,t,n){"use strict";var r=n("1M/o"),a=n("fSFE"),i=n("rNkk"),o={name:"hot-search",data:function(){return{list:[]}},props:{},components:{vipButton:a.a},methods:{onclick:function(e){if(e.url)location.href=e.url;else{var t=e.typeValue||e.word;this.$root.$emit("add-history",t),r.a.seed("button","click","search_recommend_click"),this.$root.$emit("jump-to-search-list",t)}},getHotWords:function(){var e=this,t=function(){};i.a.getHotWords({channelId:1,gPlatform:"WAP"}).then(function(t){var n=t.data,r=t.code;e.list=n&&1==r?n.list:[]},t).catch(t)}},mounted:function(){this.getHotWords()}},s={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"hot-search"},[e._m(0),n("div",{staticClass:"hot-list clearfix"},[e._l(e.list,function(t,r){return[t.word?n("vip-button",{key:r,staticClass:"search-list-button",attrs:{type:t.word&&""===t.url?"info":"danger",size:"flex-small",plain:!(!t.word||!t.url)},nativeOn:{click:function(n){return e.onclick(t)}}},[e._v(e._s(t.word))]):e._e()]})],2)])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"hotbar"},[t("h3",[this._v("鐑棬鎼滅储")])])}]};var c=n("VU/8")(o,s,!1,function(e){n("r9B6")},"data-v-da12f782",null);t.a=c.exports},dQCR:function(e,t,n){"use strict";n("fujM");var r=n("pzeP"),a=n("pD4m"),i=n("1M/o"),o={name:"download-footer",data:function(){return{isShowDownloadApp:!0}},mounted:function(){this.getWapCanal()},methods:{wakeupApp:function(){i.a.seed("div","click","footer_download"),Object(r.a)()},getWapCanal:function(){var e=this;a.a.getConfig({type:"wapCanal"}).then(function(t){t.customSetting&&1===Number(t.customSetting.hideDownloadApp)&&(e.isShowDownloadApp=!1)})}}},s={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.isShowDownloadApp,expression:"isShowDownloadApp"}],staticClass:"u-download-footer",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.wakeupApp(t)}}},[e._m(0),n("span",{staticClass:"download-text"},[e._v("鍞搧浼氬鎴风锛岀壒鍗栨姠涓嶅仠")]),n("span",{staticClass:"download-btn"},[e._v("涓嬭浇")])])},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"download-logo"},[t("i",{staticClass:"icon-logo"},[this._v("鍞搧浼")])])}]};var c=n("VU/8")(o,s,!1,function(e){n("peqG")},"data-v-5f9185c8",null).exports,u=n("zhOP"),l=n("PEP6"),p=n("wkJ7"),d={name:"common-footer",components:{downloadFooter:c},data:function(){return{isLogin:!1,showFooter:!p.a.isAndroidMiniApp()}},props:{},methods:{login:function(){u.a.go({usePop:!0,needReg:!1,onWinLogin:function(e){e.success&&l.a.reload(!0)}})}},created:function(){this.isLogin=u.a.isLogin()}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.showFooter?n("div",{staticClass:"m-common-footer"},[n("downloadFooter"),n("div",{staticClass:"footer-nav"},[e._m(0),n("p",{staticClass:"f-right"},[e.isLogin?n("a",{attrs:{href:"//m.vip.com/user.html",mars_sead:"footer-users_btn"}},[e._v("涓汉涓績")]):n("span",[n("a",{staticClass:"J-footer-login",attrs:{href:"javascript:;",mars_sead:"footer-mlogin_btn"},on:{click:function(t){return t.preventDefault(),e.login(t)}}},[e._v("鐧诲綍")]),n("a",{staticClass:"J-footer-register",attrs:{href:"javascript:;",mars_sead:"footer-mregister_btn"},on:{click:function(t){return t.preventDefault(),e.login(t)}}},[e._v("娉ㄥ唽")])])])]),n("p",{staticClass:"copyright"},[e._v("Copyright 漏 2008-2019 m.vip.com, All Rights Reserved 绮CP澶08114786鍙")]),e._m(1)],1):e._e()},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("p",{staticClass:"f-left"},[t("a",{attrs:{href:"//m.vip.com/index.html"}},[this._v("鍞搧浼氶椤")]),t("a",{attrs:{href:"//mst.vip.com/s/91d36r"}},[this._v("鍏充簬鎴戜滑")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("p",{staticClass:"psb"},[t("a",{attrs:{target:"_blank",href:"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44010302000068"}},[t("i",{staticClass:"psb-sign"}),t("span",[this._v("绮ゅ叕缃戝畨澶 44010302000068鍙")])])])}]};var f=n("VU/8")(d,h,!1,function(e){n("CQJe")},"data-v-94ea3856",null);t.a=f.exports},da9H:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("fSFE"),o=n("WIDu"),s=n.n(o),c=n("VKKs"),u=n.n(c),l=n("1M/o"),p={name:"search-history",data:function(){return{clearText:"娓呯┖",storeName:"search-history",searchHistory:[]}},components:{vipButton:i.a},watch:{searchHistory:function(){this.searchHistory.length>0?this.$root.$emit("show-history"):this.$root.$emit("hide-history")}},methods:{clearHistory:function(){this.searchHistory=[],u.a.removeLocalStorage(this.storeName)},getHistory:function(){var e=u.a.getLocalStorage(this.storeName);return e?JSON.parse(e):[]},addHistory:function(e){e&&(this.searchHistory.unshift(e),this.searchHistory=s()(this.searchHistory),this.searchHistory.length>8&&this.searchHistory.pop(),u.a.setLocalStorage(this.storeName,a()(this.searchHistory)))},onclick:function(e){this.addHistory(e),l.a.seed("button","click","search_history_click"),this.$root.$emit("jump-to-search-list",e)}},mounted:function(){this.searchHistory=this.getHistory(),this.$root.$on("add-history",this.addHistory)}},d={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"search-history"},[n("div",{staticClass:"historybar"},[n("h3",[e._v("鏈杩戞悳绱")]),n("a",{staticClass:"historybar-clear",domProps:{textContent:e._s(e.clearText)},on:{click:function(t){return t.preventDefault(),e.clearHistory(t)}}})]),n("div",{staticClass:"history-list clearfix border-b"},e._l(e.searchHistory,function(t,r){return n("vip-button",{key:r,staticClass:"history-list-button",attrs:{type:"info",size:"flex-small"},nativeOn:{click:function(n){return e.onclick(t)}}},[e._v(e._s(t))])}),1)])},staticRenderFns:[]};var h=n("VU/8")(p,d,!1,function(e){n("w7uU")},"data-v-8b35437c",null);t.a=h.exports},dj9H:function(e,t){},eP86:function(e,t,n){"use strict";t.d=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/coupon/product_coupon/bind_web",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.a=function(e){return Object(i.a)({url:"vips-mobile/rest/user/brand_coupon/bind_web",method:"get",params:a()({},e,{needLogin:!0,mvip:!0})})},t.b=function(e){return Object(i.a)({url:"vips-mobile/rest/activity/wap/api/gift/list/batch/get",method:"get",params:a()({},e)})},t.c=function(e){return Object(i.a)({url:"vips-mobile/rest/user/coupon/bind",method:"post",data:a()({},e,{mvip:!0})})};var r=n("Dd8w"),a=n.n(r),i=n("vLgD")},fSFE:function(e,t,n){"use strict";var r=n("/AfA");n.d(t,"a",function(){return r.a})},fujM:function(e,t){},g4kF:function(e,t){},gFLC:function(e,t){},hTTh:function(e,t){},hlbY:function(e,t,n){"use strict";var r=n("/5sW"),a={props:{message:String,position:{type:String,default:"meddile"},iconClass:String},data:function(){return{visiable:!1}},computed:{customClass:function(){switch(this.position){case"top":return"is-postop";case"bottom":return"is-posbottom";default:return"is-posmiddle"}}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"vip-toast-pop"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visiable,expression:"visiable"}],staticClass:"vip-toast",class:e.customClass,style:{padding:""===e.iconClass?"10px":"20px"}},[e.iconClass?n("i",{staticClass:"vip-toast-icon",class:"icon-"+e.iconClass}):e._e(),n("span",{staticClass:"vip-toast-text",style:{"padding-top":""===e.iconClass?"0":"10px"}},[e._v("\n "+e._s(e.message)+"\n ")])])])},staticRenderFns:[]};var o=n("VU/8")(a,i,!1,function(e){n("M5XY")},null,null).exports,s=r.a.extend(o),c=[];function u(e){e.target.parentNode&&e.target.parentNode.removeChild(e.target)}s.prototype.close=function(){var e;this.visiable=!1,this.$el.addEventListener("transitionend",u),this.closed=!0,e&&c.push(e)};t.a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.message,n=e.iconClass,a=e.position,i=e.duration;i=i||3e3;var o=function(){if(c.length>0){var e=c[0];return c.shift(),e}return new s({el:document.createElement("div")})}();return o.itmer&&clearTimeout(o.timer),o.message=t||"",o.position=a||"",o.iconClass=n||"",document.body.appendChild(o.$el),r.a.nextTick(function(){o.visiable=!0,i&&(o.timer=setTimeout(function(){o.$el.removeEventListener("transitionend",u),o.closed||o.close()},i))}),o}},iPXC:function(e,t,n){"use strict";var r=n("oyG6"),a=n("3USl").a.cookiesDomain;t.a={getAll:function(){return r.a.get()||{}},setTempUserToken:function(e){if(!a.indexOf("vipglobal.hk")){var t=new Date;t.setSeconds(t.getSeconds()+28800),r.a.set("TEMP_VIP_TANK",e,{domain:a,expires:t})}},getTempUserToken:function(){if(!a.indexOf("vipglobal.hk"))return r.a.get("TEMP_VIP_TANK")},delTempUserToken:function(){r.a.remove("TEMP_VIP_TANK",{domain:a})},getWapConsumer:function(){return r.a.get("wap_consumer")},setWapConsumer:function(e){r.a.set("wap_consumer",e,{domain:a})},delWapConsumer:function(){r.a.remove("wap_consumer",{domain:a})},getWapFrom:function(){return r.a.get("WAP[from]")},setWapFrom:function(e,t){var n=365;t&&t>0&&(n=new Date).setSeconds(n.getSeconds()+t),r.a.set("WAP[from]",e,{expires:n,domain:a})},delWapFrom:function(){r.a.remove("WAP[from]",{domain:a})},getCps:function(){return r.a.get("cps")},setWakeupMinaCpsABT:function(){r.a.set("cps","adp%3Aufmum94l%3A%3A%3A%3A",{domain:a,expires:1})},changeWarehouse:function(e,t,n,i){r.a.set("warehouse",e,{domain:a}),r.a.set("WAP[p_wh]",e,{domain:a}),r.a.set("fdc_area_id",n,{domain:a,expires:365}),r.a.set("m_vip_province",t,{domain:a}),i&&r.a.set("WAP[address_id]",i,{domain:a,expires:365})},getWapRevision:function(){return r.a.get("WAP[revision]")},setWapRevision:function(){var e=new Date;e.setSeconds(e.getSeconds()+30),r.a.set("WAP[revision]","default",{expires:e})},getMarsCid:function(){return r.a.get("mars_cid")},getWarehouse:function(){return r.a.get("warehouse")},getVipRuid:function(){return r.a.get("m_vipruid")},setUid:function(e){e&&(r.a.set("m_vipruid",e,{domain:a,expires:1095}),r.a.set("m_vipuuid",e,{domain:a}))},getProvinceId:function(){return r.a.get("m_vip_province")}}},j8ZI:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("d7EF"),c=n.n(s),u=n("mvHQ"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("VKKs"),f=n.n(h),m=n("ArKR"),v=n("83Tv"),g=n("p6Um"),w=n("GJWF"),b=n("zhOP"),_=n("vNF5"),y=n("1M/o"),k=n("GKmE"),x=n("T4j3"),C=n("eP86"),S=n("M8tU"),T=!1,I=!0,O=new g.a;function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Object(v.a)({message:e,duration:3e3})}var j={getCaptchaInfo:function(e){var t=this;return d()(a.a.mark(function n(){var r,i,s,u,p,d,h,f,m,v,g,w,b,_,y,C,T,I;return a.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return r={scene:"ACTIVITY_BIND_COUPON_APP",scene_data:l()({coupon_id:e}),data:l()(Object(k.k)())},i=!1,s="",n.next=5,Object(k.x)(Object(S.h)(r));case 5:if(u=n.sent,p=c()(u,2),d=p[0],h=p[1],d||!h||!h.data||1!==h.code){n.next=23;break}if(f=h.data||{},m=f.captchaType,f.sid,v=f.templateId,g=f.captchaId,w=f.sceneInfo,b=void 0===w?{}:w,t.captchaInfo=h.data||{},"0"!==m){n.next=14;break}return n.abrupt("return",!0);case 14:return _={captchaId:g,captchaType:m,templateId:v,data:o()({},Object(k.k)(),{contact_phone:b.phone||""})},n.next=17,Object(k.x)(x.a.pop({vscConfig:_}));case 17:y=n.sent,C=c()(y,2),T=C[0],I=C[1],!T&&I&&I.data&&(t.captchaInfo.ticket=I.data.ticket,i=!0),s=I;case 23:return i||"onClose"===s||"onFailed"===s||A("缃戠粶寮傚父锛岃绋嶅悗鍐嶈瘯"),n.abrupt("return",i);case 25:case"end":return n.stop()}},n,t)}))()},getCoupon:function(e){var t=this;return d()(a.a.mark(function n(){var r,i,o,s,c,u;return a.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t,!T){n.next=3;break}return n.abrupt("return");case 3:return n.next=5,t.getCaptchaInfo(e.coupon_info);case 5:if(n.sent){n.next=8;break}return n.abrupt("return");case 8:return w.a.show(),T=!0,i=t.captchaInfo||{},o=i.sid,s=i.captchaId,c=i.ticket,n.next=14,Object(C.c)({c_bind_info:e.coupon_info,sid:o,captcha_id:s||"",ticket:c||"",data:l()(Object(k.k)())}).catch(function(e){r.showCouponError(e)});case 14:u=n.sent,T=!1,u&&r.onCouponSuccess(u,e);case 17:case"end":return n.stop()}},n,t)}))()},onCouponSuccess:function(e,t){w.a.hide();if(e&&e.code){var n=e.msg,r=[t.mid_button||"鐭ラ亾浜"];switch(Number(e.code)){case 1:this.showTips(n,r,t),t.$parent&&Object(_.a)(t.$parent,"got-coupon");break;case 111:case 11003:this.goToLogin(t);break;case 100:this.showTips(n,r,t);break;case 10001:case 13330:this.showTips(n,r,t);break;case 13331:t.target_param&&t.left_button&&t.right_button&&(r=[t.left_button,t.right_button]),this.showTips(n,r,t);break;case 13332:this.showTips(n,r,t),t.$parent&&Object(_.a)(t.$parent,"no-coupon");break;case 12e3:this.showTips(n,r,t);break;default:A("鐜板湪棰嗗埜浜烘暟澶鍟
    鍏堜紤鎭竴浼氬効鍚э紒")}}},showTips:function(e,t,n){O.open({className:"operate-coupon-pop",content:e,onBtnClick:function(e,r){var a=t.length;O.close(),1==a&&y.a.seed("button","click","mid_button",n.mid_button),1==r?(y.a.seed("button","click","right_button",l()({right_button:n.right_button,target_param:n.target_param})),n.target_param&&(location.href=n.target_param)):2==a&&y.a.seed("button","click","left_button",n.left_button)},btns:t,updated:this.imgLoadError})},showCouponError:function(){T=!1,w.a.hide(),A("缃戠粶寮傚父锛屾殏鏈兘棰嗗彇璇ュ埜")},goToLogin:function(e){var t=this;b.a.go({usePop:!0,onWinLogin:function(n){n.success&&t.getCoupon(e)},onBeforeJumpLogin:function(){f.a.setSessionStorage("isGetOperateCouponLogin",1),f.a.setSessionStorage("autoGetCouponData",l()(e))}})},imgLoadError:function(){var e=document.querySelector(".J-get-coupon-image");e&&e.addEventListener("error",function(){I&&(this.src="//mtest.vip.com:3000/base/img/loading-failure.png"),I=!1})},init:function(){if("1"===f.a.getSessionStorage("isGetOperateCouponLogin")&&"1"===m.a.getQuery("islogin")){var e=f.a.getSessionStorage("autoGetCouponData");this.getCoupon(JSON.parse(e))}f.a.removeSessionStorage("isGetOperateCouponLogin"),f.a.removeSessionStorage("autoGetCouponData")}};t.a=j},j8aJ:function(e,t,n){"use strict";var r={props:{bottom:String,right:String},data:function(){return{show:!1}},mounted:function(){window.addEventListener("scroll",this.scrollHandler),window.addEventListener("resize",this.scrollHandler)},beforeDestroy:function(){this.scrollView&&(this.scrollView.removeEventListener("scroll",this.throttledCheck,!1),this.scrollView.removeEventListener("resize",this.scrollHandler,!1))},methods:{backtop:function(){var e=0;e=document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop,function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:500,a=arguments[4];window.requestAnimationFrame||(window.requestAnimationFrame=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)});var i=Math.abs(t-n),o=Math.ceil(i/r*50);!function t(n,r,i){if(n===r)return void("function"==typeof a&&a());var o=n+i>r?r:n+i;n>r&&(o=n-i0}}};var a={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{directives:[{name:"show",rawName:"v-show",value:this.show,expression:"show"}],staticClass:"vip-backtop",style:{bottom:this.bottom,right:this.right},on:{click:this.backtop}},[t("i",{staticClass:"icon-up"})])},staticRenderFns:[]};var i=n("VU/8")(r,a,!1,function(e){n("g4kF")},"data-v-9e47b6c0",null).exports;n.d(t,"a",function(){return i})},jnSk:function(e,t,n){"use strict";t.b=function(e){return new o.a(function(t,n){Object(c.a)(l.GET_SIGNATURE,{jsonpName:"jsonp",jsonpCallback:"jsonp1",params:e},function(e,r){e?n(e):t(r)})})},t.a=function(e){return Object(u.a)({url:l.GENERATE_URL_SCHEME,method:"POST",data:a()({},e)})};var r=n("Dd8w"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("3USl"),c=n("swYn"),u=n("vLgD"),l={GET_SIGNATURE:s.a.wxAPIHost+"/v2/jsSdk/getSignature",ADD_SHARE_LOG:s.a.wxAPIHost+"/v1/shareLog/addShareLog",GENERATE_URL_SCHEME:s.a.wxAPIHost+"/scheme/generateUrlScheme"}},kH1M:function(e,t,n){"use strict";var r=n("j71A"),a=n("oyG6"),i=n("3USl");t.a={init:function(){var e=a.a.get("mars_cid");if(!e&&r.a.creat){e=r.a.creat();a.a.set("mars_cid",e,{expires:730,domain:i.a.cookiesDomain})}}}},lfdE:function(e,t,n){"use strict";t.a=function(){return function(e){var t=document.createElement("a");t.href=window.location.href;var n=t.href.replace(t.origin,"").slice(1),r=h()+"goHome",a=!1;o()(e).forEach(function(t){new RegExp(t).test(n)&&(r=e[t](n),a=!0)}),a||(i=document.querySelector(".menu_nav_current")&&document.querySelector(".menu_nav_current").getAttribute("menu_tag").split("|"),r=i&&"undefined"!=i[0]?h()+"showChannel?channelID="+encodeURIComponent(i[0])+"&channelMenu="+i[1]:"");var i;return r}(m)};var r=n("d7EF"),a=n.n(r),i=n("fZjL"),o=n.n(i),s=n("ArKR"),c=n("uWio"),u=n("wkJ7"),l="//weixin.vip.com/deeplink/",p="vipshop://",d=location.pathname;function h(){return u.a.isUniversalLinkSupport()?l:p}function f(){var e=location.href;return e.indexOf("tra_from=")<0&&(e+=(e.indexOf("?")>=0?"&":"?")+"tra_from="+Object(c.b)()),e}var m={"^(preheating-)?brand-(\\d+).*\\.html":function(e){return h()+"showBrandProducts?brandId="+(d.match(/brand-(\d+)(.*)/),RegExp.$1)},"^(preheating-)?product-":function(e){var t=e.match(/product-(\d+)-(\d+)/),n=a()(t,3),r=(n[0],n[1]),i=n[2],o=s.a.getQuery("mz")||0,c="pricecut"==s.a.getQuery("f"),u=s.a.getQuery("src"),l=s.a.getQuery("size_id"),p="showGoodsDetail?goodsId="+i+"&brandId="+r+"&goodsType="+o,d=!c||"fav"!=u&&"cart"!=u?0:1;if(d){var m=h();switch(!0){case"fav"==u:m+="routeTo?url="+encodeURIComponent("productdetail/main?saletips_mode="+d+"&product_id="+i+"&saletips_channel=message")+"&refer="+encodeURIComponent(f());break;case"cart"==u&&""!=l:m+="routeTo?url="+encodeURIComponent("checkout/cart_page?saletips_mode="+d+"&product_id="+i+"&size_id="+l+"&saletips_channel=message&request_login=true")+"&refer="+encodeURIComponent(f());break;default:m+=p+"&refer="+encodeURIComponent(f())}return m}return h()+p+"&refer="+encodeURIComponent(f())},"^recommend-brand-(\\d+).*\\.html":function(e){return h()+"showBrand?brand_sn="+(e.match(/recommend-brand-(\d+)/),RegExp.$1)},"^(auto-list|autoList)\\.html":function(e){var t=s.a.getQuery("rule_id")||0,n=s.a.getQuery("title")||"鍞搧浼",r=location.href;return r.indexOf("tra_from=")<0&&(r+=(r.indexOf("?")>=0?"&":"?")+"tra_from="+Object(c.b)()),h()+"routeTo?url="+encodeURIComponent("search/auto_product_list?rule_id="+t+"&title="+encodeURIComponent(n))+"&refer="+encodeURIComponent(r)},"(^((?!special)\\w)+.(html|php))(.*)m=special":function(e){var t;return h()+"showWebview?url="+(t="https://"+(s.a.getQuery("h")||"mst.vip.com")+"/uploadfiles/exclusive_subject"+s.a.getQuery("p")+"?"+["wapid="+s.a.getQuery("wapid"),"_src="+s.a.getQuery("_src"),"extra_banner="+s.a.getQuery("extra_banner"),"extra_type="+s.a.getQuery("extra_type"),"page_msg=VIP_NH-all-all","mst_cdi=1","mst_page_type=guide"].join("&"),encodeURIComponent(t))},"^store-index\\.html":function(e){var t=s.a.getQuery("storeId")||0,n=location.href;return n.indexOf("tra_from=")<0&&(n+=(n.indexOf("?")>=0?"&":"?")+"tra_from="+Object(c.b)()),h()+"routeTo?url="+encodeURIComponent("productlist/store?store_id="+t)+"&refer="+encodeURIComponent(n)}}},nRfd:function(e,t){e.exports={isCheckout:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;return!!/^(https?:)?\/\/(m|wx)checkout\.vip\.com/.test(e)},isM:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;return!!/^(https?:)?\/\/m\.vip\.com/.test(e)}}},p6Um:function(e,t,n){"use strict";var r=n("woOf"),a=n.n(r),i=n("fZjL"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("/5sW"),d=function(){},h={data:function(){return{}},props:{content:String,dialogId:{type:String,default:""},onBtnClick:Function,onContentClick:Function,title:{type:String,default:""},className:{type:String,default:""},btns:{type:Array,default:function(){return[]}},updated:{type:Function,defalut:d},btnClickHandle:{type:Function,defalut:d},ContentClickHandle:{type:Function,default:function(){}},showDialog:Boolean,freeze:Boolean},methods:{close:function(e){if(!this.freeze){var t=e.currentTarget;t.parentNode&&t.parentNode.parentNode&&t.parentNode.parentNode.removeChild(t.parentNode)}}},updated:function(){this.$nextTick(function(){this.updated&&this.updated()})}},f={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"fade"}},[e.showDialog?n("div",{staticClass:"dialog-wrapper"},[n("div",{staticClass:"dialog",class:e.className,attrs:{id:e.dialogId}},[n("h3",{directives:[{name:"show",rawName:"v-show",value:e.title,expression:"title"}],staticClass:"dialog-title"},[e._v("\n "+e._s(e.title)+"\n ")]),n("section",{staticClass:"dialog-body",domProps:{innerHTML:e._s(e.content)},on:{click:function(t){return e.ContentClickHandle(t)}}}),n("section",{directives:[{name:"show",rawName:"v-show",value:e.btns,expression:"btns"}],staticClass:"dialog-foot border-t"},e._l(e.btns,function(t,r){return n("button",{key:r,attrs:{"data-index":r},on:{click:function(t){return t.stopPropagation(),e.btnClickHandle(t,r)}}},[t.html?n("div",{domProps:{innerHTML:e._s(t.html)}}):n("span",[e._v(e._s(t))])])}),0)]),n("div",{staticClass:"mask",attrs:{id:"mask"},on:{click:function(t){return t.stopPropagation(),e.close(t)}}})]):e._e()])},staticRenderFns:[]};var m,v,g=n("VU/8")(h,f,!1,function(e){n("7u9P")},null,null).exports,w=p.a.extend(g),b=(m=function(e){e.preventDefault(),e.stopPropagation()},v=!1,{lock:function(e){v||(v=!0,(e||document).addEventListener("touchmove",m))},unlock:function(e){v=!1,(e||document).removeEventListener("touchmove",m)}}),_=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c()(this,e),this.instance=new w({el:document.createElement("div")}),this.options={showDialog:!1},this._initOptions(t),this._initInstance(t),this._eventHandle()}return l()(e,[{key:"_initInstance",value:function(e){var t=this;o()(e).forEach(function(n){t.instance[n]=e[n]})}},{key:"_initOptions",value:function(e){this.options=a()({},this.options,e)}},{key:"conf",value:function(e){return this._initOptions(e),this._initInstance(e),this}},{key:"open",value:function(e){e&&(this._initOptions(e),this._initInstance(e));var t=this.options;t.lock&&b.lock(),t.btns?this.instance.btns="string"==typeof t.btns?[t.btns]:t.btns:this.instance.freeze=!0,document.body.appendChild(this.instance.$el),this.instance.showDialog=!0,"function"==typeof t.onOpen&&this.instance.$nextTick(function(){setTimeout(function(){t.onOpen()},20)})}},{key:"close",value:function(){this.instance.showDialog=!1}},{key:"_eventHandle",value:function(){var e=this;this.instance.btnClickHandle=function(e,t){var n=e.currentTarget;b.unlock(),"function"==typeof this.onBtnClick&&this.onBtnClick(n,t)},this.instance.ContentClickHandle=function(t){"function"==typeof e.onContentClick&&this.onContentClick(t)}}},{key:"_removeDom",value:function(e){e.parentNode&&e.parentNode.removeChild(e)}}]),e}();t.a=_},pD4m:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("oyG6"),d=n("3USl"),h={get:function(){return p.a.get("WAP[from]")||""},set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";"nature"!=(e=e.replace(/:[\w\W]*$/,"").replace(/[\W]/,""))&&p.a.set("WAP[from]",e,{expires:365,domain:d.a.cookiesDomain})}},f=n("DKKv"),m=n("/nwW");n.d(t,"a",function(){return g});var v=function(){function e(){return c()(this,e),e.instance||(e.instance=this),e.instance}return l()(e,[{key:"getConfig",value:function(t){var n=t.type,r=void 0===n?"":n,a=t.code,i=void 0===a?"":a,s=t.f,c=void 0===s?"":s,u=e.config[r];return u?new o.a(function(e){e("wapCanal"==r||"startup"==r?u:u[i])}):this.queryConfig(r,i,c)}},{key:"queryConfig",value:function(t,n){var r=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return new o.a(function(i,o){if(e.loading[t])e.resolveQueue[t].push({resolve:i,code:n});else switch(e.loading[t]=!0,t){case"switch":r.getSwitchInternal(t).then(function(r){i(r[n]),(e.resolveQueue[t]||[]).map(function(e){e.resolve(r[e.code])})}).catch(function(n){e.loading[t]=!1,i(0),(e.resolveQueue[t]||[]).map(function(e){e.resolve(0)})});break;case"document":r.getDocument(t).then(function(r){i(r[n]||{}),(e.resolveQueue[t]||[]).map(function(e){e.resolve(r[e.code])})}).catch(function(n){e.loading[t]=!1,i({}),(e.resolveQueue[t]||[]).map(function(e){e.resolve({})})});break;case"config":r.getDynamicConfigInternal(t).then(function(r){i(r[n]||{}),(e.resolveQueue[t]||[]).map(function(e){e.resolve(r[e.code])})}).catch(function(n){e.loading[t]=!1,o(n),(e.resolveQueue[t]||[]).map(function(e){e.resolve(null)})});break;case"wapCanal":r.getWapCanal(t,a).then(function(n){i(n),(e.resolveQueue[t]||[]).map(function(e){e.resolve(n)})}).catch(function(n){e.loading[t]=!1,i({}),(e.resolveQueue[t]||[]).map(function(e){e.resolve({})})});break;case"startup":r.getStartup(t).then(function(n){i(n),(e.resolveQueue[t]||[]).map(function(e){e.resolve(n)})}).catch(function(n){e.loading[t]=!1,i({}),(e.resolveQueue[t]||[]).map(function(e){e.resolve({})})})}})}},{key:"getSwitchInternal",value:function(t){var n={tag:p.a.get("wap_consumer")||"A1",switch_id:a()({5:"IS_SHOW_GOODS_RETURN",136:"Brand_delivery",138:"exchange_switch",139:"return_freight",207:"PRODUCT_DETAIL_ISH5SIZETABLE",267:"WAP_wake_up_app_switch",405:"WX_GOODSDETAIL_WAKEUP",596:"mlogin_new_union_switch",601:"detail_deliver",785:"wap_commodity_detail_weipinghua",850:"xcx_cart_pms_refine_switch",852:"quickapp_m_flow_switch",925:"detail_nakedprice_switch",950:"xcx_cart_freight_jump_switch",1017:"switch_apirequest_monitor_sample",1022:"exchangegoods_succss2",1032:"msite_quickapp_app_switch",1038:"m_temp_cart_gray_switch",1184:"cart_mode_b_switch",1125:"venderSkuListOldSwitch",1270:"cart_wap_split_switch",1122:"cart_store_jump_switch",1117:"favorite_store_switch",1142:"wap_restrict_switch",444:"frontend_sample_switch",984:"If_fav_brand_show_number",1126:"favorite_brand_jjcxtab_switch",1099:"pagedetail_vendor_qa_switch",1136:"buy_button_with_price",269:"reco_coupon_cart",1384:"coupon_overlie_switch",1434:"haitaoyumingqiehuan",1472:"evoke_switch",1482:"guojihaitaomaidian",1600:"wap_detailprice_v6",1546:"aftersale_detail_QAlist"}).join(",")},r=this._querySwitch(n,t);return m.a.cacheRequest(r,"cache_operation_switch").then(function(n){var r=(n||{}).data,a=void 0===r?[]:r;return e.config[t]={},a.map(function(n){var r=n.switchId,a=n.status;e.config[t][r]=a}),e.config[t]})}},{key:"_querySwitch",value:function(e,t){return function(){return Object(f.e)(e)}}},{key:"getDocument",value:function(t){var n={wap_consumer:p.a.get("wap_consumer")||"A1",document_code:["aftersale_tip","exchange_tips","return_tips","size_table_url","PRODUCT_DETAIL_VENDORINFO","PRODUCT_DETAIL_ABOUTPRICE","svip98_price_explaination","compensation_for_slow_delivery","app_xuangou_gift_notice"].join(",")},r=this._queryDocument(n,t);return m.a.cacheRequest(r,"cache_operation_document").then(function(n){var r=n.data,a=void 0===r?[]:r;return e.config[t]={},a&&a.map(function(n){var r=n.code;n.content;e.config[t][r]=n}),e.config[t]})}},{key:"_queryDocument",value:function(e,t){return function(){return Object(f.b)(e)}}},{key:"getDynamicConfigInternal",value:function(t){var n={tag:p.a.get("wap_consumer")||"A1",code:["service_intro","quickapp_flow_from_m","M_download_app_text","cart_checkout_top_area_style","coupon_item_style","checkout_selling_points","Iconlist_productdetail","frequency_to_log_in","wap_developers_information","vre_close_book","adv_close_book","adv_close_pop_windows","vre_close_pop_windows"].join(",")},r=this._queryDynamicConfig(n,t);return m.a.cacheRequest(r,"cache_operation_dynamic_config").then(function(n){var r=n.data,a=void 0===r?[]:r;return e.config[t]={},a&&a.map(function(n){var r=n.code,a=n.config;e.config[t][r]=a}),e.config[t]})}},{key:"_queryDynamicConfig",value:function(e,t){return function(){return Object(f.c)(e)}}},{key:"getStartup",value:function(t){return Object(f.d)({}).then(function(n){return e.config[t]=n&&n.data||{},e.config[t]})}},{key:"getWapCanal",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p.a.get("WAP[from]");return n?Object(f.f)({f:n}).then(function(n){var r=n.data,a=void 0===r?{}:r;return e.config[t]=a,e.config[t]}):(e.config[t]={},o.a.resolve({}))}},{key:"getSwitch",value:function(e){var t=h.get();return this.getConfig({type:"switch",code:e,f:t})}},{key:"getDynamicConfig",value:function(e){return this.getConfig({type:"config",code:e})}}]),e}();v.instance=null,v.config={},v.loading={},v.resolveQueue={switch:[],document:[],config:[],wapCanal:[],startup:[]};var g=new v},pSTL:function(e,t,n){"use strict";var r=n("d7EF"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("Xxa5"),c=n.n(s),u=n("//Fk"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("zhOP"),w=n("83Tv"),b=n("GKmE"),_=n("Qims"),y=n("RfAy"),k=function(){function e(){f()(this,e),this.isLoading=!1}return v()(e,[{key:"toggleFav",value:function(){var e=d()(c.a.mark(function e(){var t,n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this,e.abrupt("return",new l.a(function(e){var a=r.type,i=void 0===a?"":a,o=r.isFav,s=void 0!==o&&o;if(n.isFav=s,g.a.isLogin()){if(n.isLoading)return Object(w.a)({message:"鍓嶉潰浜哄北浜烘捣锛岃绋嶅悗閲嶈瘯"}),!1;e(n[i](r))}else g.a.go({onWinLogin:function(n){n.success&&e(t[i](r))}})}));case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"moveToFav",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,i,s,u,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_.a.getCartVer();case 2:return t=e.sent,n=o()({cart_ver:t},l),e.next=6,Object(b.x)(Object(y.g)(n));case 6:if(r=e.sent,i=a()(r,2),s=i[0],u=i[1],s||!u){e.next=14;break}return e.abrupt("return",this._handleFav(u||{}));case 14:return e.abrupt("return",!1);case 15:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"toggleFavBrand",value:function(){var e=d()(c.a.mark(function e(t){var n,r,a,i,o=this,s=t.brandStoreSn,u=void 0===s?"":s;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.isLoading=!0,n=this.isFav?"deleteBrandFav":"addBrandFav",e.next=4,this[n](u).catch(function(){o.isLoading=!1});case 4:return r=e.sent,a=r.code,i=r.msg,e.abrupt("return",this._handleFav({code:a,msg:i}));case 8:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"deleteBrandFav",value:function(e){var t={brand_sn:e,source:2,iapi_ver:"1.1.0",api_source:"shop_wap"};return Object(y.d)(t)}},{key:"addBrandFav",value:function(e){var t={brand_store_sn:e,source:2,brand_fav_type:0};return Object(y.a)(t)}},{key:"toggleFavProduct",value:function(){var e=d()(c.a.mark(function e(t){var n,r,a,i,o=this,s=t.mid,u=void 0===s?"":s,l=t.sizeId,p=void 0===l?"":l,d=t.brandId,h=void 0===d?"":d;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(u){e.next=2;break}return e.abrupt("return",!1);case 2:return this.isLoading=!0,n=this.isFav?"deleteProductFav":"addProductFav",e.next=6,this[n](u,p,h).catch(function(){o.isLoading=!1});case 6:return r=e.sent,a=r.code,i=r.msg,e.abrupt("return",this._handleFav({code:a,msg:i}));case 11:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"addProductFav",value:function(e,t,n){var r={channel:"WAP",mid:e,brandId:n};return t&&(r.sizeId=t),Object(y.b)(r)}},{key:"deleteProductFav",value:function(e){var t={mids:e};return Object(y.e)(t)}},{key:"_handleFav",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.code,n=e.msg;this.isLoading=!1;var r=this.isFav?"宸插彇娑堟敹钘":"宸叉坊鍔犳敹钘",a=this.isFav?"鍙栨秷":"娣诲姞";return 1==t?(Object(w.a)({message:r}),!0):(Object(w.a)({message:n||a+"鏀惰棌澶辫触锛岃绋嶅悗閲嶈瘯"}),!1)}}]),e}();t.a=k},peqG:function(e,t){},pzeP:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("d7EF"),c=n.n(s),u=n("wkJ7"),l=n("vLgD");var p=n("oyG6"),d=n("3USl"),h=n("LM2N"),f=n("ArKR"),m=n("uWio"),v=n("lfdE"),g=n("Es//"),w=n("//Fk"),b=n.n(w),_=n("swYn"),y=n("iPXC"),k=n("j71A"),x={ABT:"//pcapi.vip.com/abtest/index.php"};function C(e){var t={pages:e,mars_cid:y.a.getMarsCid()?y.a.getMarsCid():k.a.creat()};return y.a.getVipRuid()&&(t.userid=y.a.getVipRuid()),new b.a(function(n,r){Object(_.a)(x.ABT,{jsonp:"callback",jsonpCallback:"pcapi_abt_"+Date.now(),params:t},function(t,a){t?r(t):200===a.code&&a.data&&a.data[e]&&a.data[e].page_rs&&a.data[e].page_rs[0]&&a.data[e].page_rs[0].abt?n(a.data[e].page_rs[0].abt):r(a)})})}var S,T=n("GKmE"),I=n("jnSk"),O=null,A=null,j=(S=o()(a.a.mark(function e(t,n){var r,i,o,s;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!O){e.next=6;break}window.location.href=O,A&&clearTimeout(A),A=setTimeout(function(){n&&n()},3e3),e.next=14;break;case 6:return e.next=8,Object(T.x)(Object(I.a)(t));case 8:r=e.sent,i=c()(r,2),o=i[0],s=i[1],o&&n&&n(),!o&&s&&0===s.errcode?(O=s.openlink,window.location.href=s.openlink,A&&clearTimeout(A),A=setTimeout(function(){n&&n()},3e3)):n&&n();case 14:case"end":return e.stop()}},e,this)})),function(e,t){return S.apply(this,arguments)});t.b=M,t.a=function(){!function(){var e=Object(m.a)();var t=Object(v.a)();t.indexOf("?")>-1?t+="&"+e:t+="?"+e;t=function(e){var t=e;!f.a.hasQuery("refer")&&u.a.isUniversalLinkSupport()&&(t+="&refer="+encodeURIComponent(d.a.tabBarDownloadUrl));return t}(t),Object(h.a)({url:t,type:2},function(){},function(){var e;u.a.isAndroid()?(e=U,Object(g.b)(e,!0)):L()})}()};var L=function(){var e=o()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!/product-\d+-\d+.html/.test(location.pathname)){e.next=20;break}return e.next=3,Object(T.x)(C(2158));case 3:if(t=e.sent,n=c()(t,2),r=n[0],i=n[1],r&&M(),r||!i){e.next=18;break}e.t0=i.name,e.next="A"===e.t0?12:"B"===e.t0?15:17;break;case 12:return y.a.setWakeupMinaCpsABT(),M(),e.abrupt("break",18);case 15:return void 0,void 0,void 0,void 0,void 0,void 0,void 0,a=window.location.pathname.match(/product-(\d+)-(\d+).html/),o=c()(a,3),o[0],s=o[1],u=o[2],l=encodeURIComponent("adp:zk7c3a3n::::"),p=encodeURIComponent("vipshop/productDetail/pages/productDetail/productDetail?brandId="+s+"&goodsId="+u),j({hash:"ptx26",path:"/pages/index/index",query:"$route="+p+"&tra_from="+l+"&f=shop_wap",expireTime:Math.round((new Date).getTime()/1e3)+3600},function(){M()}),e.abrupt("break",18);case 17:M();case 18:e.next=21;break;case 20:M();case 21:case"end":return e.stop()}var a,o,s,u,l,p},e,this)}));return function(){return e.apply(this,arguments)}}();function P(){return p.a.get("cps")}function E(){var e,t={appName:"shop_android",appVersion:"6.32.4",cpsCookie:P()};function n(){M()}(e=t,Object(l.a)({url:"https://api.union.vip.com/vsp/appPro/getAppDownloadUrl4Wap",params:e})).then(function(e){1===parseInt(e.code,10)&&e.data&&"string"==typeof e.data.downloadUrl?document.location.href=e.data.downloadUrl:n()},n).catch(n)}function U(){var e;P()?(e=P())&&"::::"===e.substr(-4)?M():E():L()}function M(){document.location.href=d.a.downloadUrl}},qDyg:function(e,t,n){"use strict";var r={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"tab-container"},[this._t("default")],2)},staticRenderFns:[]},a=n("VU/8")({name:"vip-tab-container",props:["value"]},r,!1,null,null,null).exports,i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{directives:[{name:"show",rawName:"v-show",value:this.id==this.$parent.value,expression:"id == $parent.value"}],staticClass:"tab-container-item"},[this._t("default")],2)},staticRenderFns:[]},o=n("VU/8")({name:"vip-tab-container-item",props:["id"]},i,!1,null,null,null).exports,s={mounted:function(){this.value>=0&&(this.currentIndex=this.value),this.updateIndex()},methods:{updateIndex:function(){if(this.$children&&this.$children.length){this.number=this.$children.length;for(var e=this.$children,t=0;t-1&&this.$children[t]&&(this.$children[t].currentSelected=!1),e>-1&&this.$children[e]&&(this.$children[e].currentSelected=!0),this.$emit("input",e),this.$emit("on-index-change",e,t)},index:function(e){this.currentIndex=e},value:function(e){this.index=e}},data:function(){return{index:-1,currentIndex:this.index,number:this.$children.length}}},c={props:{selected:{type:Boolean,default:!1}},mounted:function(){this.$parent.updateIndex()},beforeDestroy:function(){var e=this.$parent;this.$nextTick(function(){e.updateIndex()})},methods:{onItemClick:function(e){var t=this;this.$parent.preventDefault?this.$parent.$emit("on-before-index-change",this.currentIndex):void 0!==this.disabled&&!1!==this.disabled||(this.currentSelected=!0,this.$parent.currentIndex=this.currentIndex,this.$nextTick(function(){t.$emit("on-item-click",t.currentIndex)}))}},watch:{currentSelected:function(e){e&&(this.$parent.index=this.currentIndex)},selected:function(e){this.currentSelected=e}},data:function(){return{currentIndex:-1,currentSelected:this.selected}}},u={name:"tab",mixins:[s],mounted:function(){var e=this;this.$nextTick(function(){setTimeout(function(){e.$emit("on-ready"),e.hasReady=!0,e.scrollToActiveTab()},20)})},props:{border:{type:Boolean,default:!0},lineWidth:{type:Number,default:3},inkbarWidth:{type:String,default:""},activeColor:String,barActiveColor:String,defaultColor:String,disabledColor:String,animate:{type:Boolean,default:!0},preventDefault:Boolean,scrollThreshold:{type:Number,default:4},barPosition:{type:String,default:"bottom",validator:function(e){return-1!==["bottom","top"].indexOf(e)}}},computed:{barLeft:function(){if(this.hasReady){var e=this.$children[this.currentIndex||0].$el;return(this.scrollable?e.offsetLeft+e.offsetWidth/2:this.number)+"px"}},innerInkbarWidth:function(){if(this.hasReady){var e=0;if(this.inkbarWidth)return this.inkbarWidth;var t=this.$children[this.currentIndex||0].$el;return t&&(e=this.scrollable?t.offsetWidth:0),e+"px"}},barStyle:function(){return{left:this.barLeft,display:"block",height:this.lineWidth+"px",transition:this.hasReady?null:"none"}},barClass:function(){return this.animate?{"vui-tab-ink-bar-transition-forward-v2":"forward"===this.direction,"vui-tab-ink-bar-transition-backward-v2":"backward"===this.direction}:{}},scrollable:function(){return this.number>this.scrollThreshold}},watch:{currentIndex:function(e,t){this.hasReady&&(this.direction=e>t?"forward":"backward"),this.$emit("on-index-change",e,t),this.hasReady&&this.scrollToActiveTab()}},data:function(){return{direction:"none",hasReady:!1}},methods:{scrollToActiveTab:function(){var e=this;if(this.scrollable&&this.$children&&this.$children.length){var t=this.$children[this.currentIndex].$el,n=0;window.requestAnimationFrame(function r(){var a=e.$refs.nav;a.scrollLeft+=(t.offsetLeft-(a.offsetWidth-t.offsetWidth)/2-a.scrollLeft)/15,++n<15&&window.requestAnimationFrame(r)})}}}},l={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"vui-tab-wrap",class:"top"===e.barPosition?"vui-tab-bar-top":""},[n("div",{ref:"nav",staticClass:"vui-tab-container",class:{scrollable:e.scrollable}},[n("div",{staticClass:"vui-tab"},[e._t("default"),n("div"),n("div",{staticClass:"vui-tab-ink-bar",class:e.barClass,style:e.barStyle},[n("span",{staticClass:"vui-tab-bar-inner",style:{background:e.barActiveColor||e.activeColor,width:e.innerInkbarWidth}})])],2)])])},staticRenderFns:[]};var p=n("VU/8")(u,l,!1,function(e){n("7j+Z")},null,null).exports,d={name:"tab-item",mixins:[c],props:{activeClass:String,disabled:Boolean,badgeBackground:{type:String,default:"#f74c31"},badgeColor:{type:String,default:"#fff"},badgeLabel:String},computed:{style:function(){return{borderWidth:this.$parent.lineWidth+"px",borderColor:this.$parent.activeColor,color:this.currentSelected?this.$parent.activeColor:this.disabled?this.$parent.disabledColor:this.$parent.defaultColor,border:this.$parent.animate?"none":"auto"}},border:function(){return this.$parent.border}}},h={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"vui-tab-item",class:[e.currentSelected?e.activeClass:"",{"vui-tab-selected":e.currentSelected,"vui-tab-disabled":e.disabled,"tab-item-border":e.border}],style:e.style,on:{click:e.onItemClick}},[e._t("default"),void 0!==e.badgeLabel&&""!==e.badgeLabel?n("span",{staticClass:"vui-tab-item-badge",style:{background:e.badgeBackground,color:e.badgeColor}},[e._v("\n "+e._s(e.badgeLabel))]):e._e()],2)},staticRenderFns:[]},f=n("VU/8")(d,h,!1,null,null,null).exports;n.d(t,!1,function(){return a}),n.d(t,!1,function(){return o}),n.d(t,"a",function(){return p}),n.d(t,"b",function(){return f})},qGxY:function(e,t){},qb3Y:function(e,t,n){"use strict";var r=n("PV6p");t.a={install:function(e){e.config.errorHandler=function(e,t,n){var a=function(e){if(!e||!e.$options||"[object Object]"!==Object.prototype.toString.call(e))return"";if(e.$root===e)return"root instance";var t=e._isVue?e.$options.name||e.$options._componentTag:e.name;return(t?"component <"+t+">":"anonymous component")+(e._isVue&&e.$options.__file?" at "+e.$options.__file:"")}(t);r.a.reportJsError({error:e,vm:a,info:n})}}}},r7MF:function(e,t,n){"use strict";var r=n("Xxa5"),a=n.n(r),i=n("exGp"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("iPXC"),d=n("ye8Q"),h=n("7fY6"),f=function(){function e(){c()(this,e),this._userType=null,this._isLogin=!1,this._isTempUser=!1,this._checkLoginOk=!1,this._guestRealWapConsumer=null,this._upateCookie=function(e){var t=p.a.getWapConsumer();t&&t==e||p.a.setWapConsumer(e)}}return l()(e,[{key:"initUserType",value:function(){var e=o()(a.a.mark(function e(){var t,n,r;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Object(d.i)();case 3:t=e.sent,n=t.data,(r=void 0===n?{}:n).user_type?(this._userType=r.user_type,this._upateCookie(this._userType)):(this._userType="A1",this._upateCookie(this._userType)),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(0),this._userType="A1",this._upateCookie(this._userType);case 13:return e.abrupt("return",!0);case 14:case"end":return e.stop()}},e,this,[[0,9]])}));return function(){return e.apply(this,arguments)}}()},{key:"checkLogin",value:function(){var e=this;return Object(d.c)().then(function(t){var n=t.data,r=void 0===n?{}:n;e._updateLoginStatus(r)}).catch(function(){e._checkLoginFallback()})}},{key:"refreshLoginStatus",value:function(){var e=o()(a.a.mark(function e(t){var n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=5;break}t.hasOwnProperty("isTempUser")&&(this._isTempUser=t.isTempUser),t.hasOwnProperty("isLogin")&&(this._isLogin=t.isLogin),e.next=11;break;case 5:return e.next=7,Object(d.c)();case 7:n=e.sent,r=n.data,i=void 0===r?{}:r,this._updateLoginStatus(i);case 11:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_checkLoginFallback",value:function(){var e=/^A.+$/.test(this._userType);this._isLogin=!e;var t=p.a.getTempUserToken();!this._isLogin&&t&&(this._isTempUser=!0)}},{key:"_updateLoginStatus",value:function(e){if(e&&e.hasOwnProperty("userId")){if(this._checkLoginOk=!0,this._isTempUser=e.isTempUser,!e.isTempUser&&e.userId>0&&(this._isLogin=!0),!this._isLogin&&!this._isTempUser){var t=p.a.getTempUserToken();this._isTempUser=!!t}}else this._checkLoginFallback()}},{key:"getUserType",value:function(){return this._userType||h.a.report({message:"[usertype_not_init]userType鏈垵濮嬪寲瀹屽墠琚皟鐢"}),this._userType||"A1"}},{key:"isLogin",value:function(){return this._isLogin}},{key:"isTempUser",value:function(){return this._isTempUser}},{key:"getGuestRealWapConsumer",value:function(){var e=o()(a.a.mark(function e(){var t,n,r,i;return a.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isLogin()){e.next=2;break}return e.abrupt("return",null);case 2:if(!this._guestRealWapConsumer){e.next=4;break}return e.abrupt("return",this._guestRealWapConsumer);case 4:if(e.prev=4,!(t=p.a.getVipRuid())||""==t){e.next=15;break}return e.next=9,Object(d.i)({user_id:t});case 9:if(n=e.sent,r=n.data,!(i=void 0===r?{}:r).user_type){e.next=15;break}return this._guestRealWapConsumer=i.user_type,e.abrupt("return",i.user_type);case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(4);case 20:return e.abrupt("return",null);case 21:case"end":return e.stop()}},e,this,[[4,17]])}));return function(){return e.apply(this,arguments)}}()}]),e}();t.a=new f},r9B6:function(e,t){},rNkk:function(e,t,n){"use strict";var r=n("Dd8w"),a=n.n(r),i=n("vLgD"),o={getSearchTip:function(e){return Object(i.a)({url:"vips-mobile/rest/shopping/wap/search/entryword/list/v1",params:a()({},e,{mvip:!0}),method:"get"})},getSuggestInfo:function(e){return Object(i.a)({url:"vips-mobile/rest/shop/search/suggest",params:a()({},e,{mvip:!0}),method:"get"})},getHotWords:function(e){return Object(i.a)({url:"vips-mobile/rest/shop/search/hotwordsByGos",params:a()({},e,{mvip:!0}),method:"get"})},getBrandStoreList:function(e){},getCategoryTree:function(e){},getSearchList:function(e){},getCategoryProps:function(e){}};t.a=o},rb8b:function(e,t){},rz3c:function(e,t){},swYn:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=0;function o(){}t.a=function(e,t,n){"function"==typeof t&&(n=t,t={}),t||(t={});var r,s,c=t.prefix||"jsonp",u=t.jsonpCallback||c+i++,l=t.jsonp||"jsonp",p=null!=t.timeout?t.timeout:1e4,d=encodeURIComponent,h=document.getElementsByTagName("script")[0]||document.head,f=t.params||{},m=[];function v(){r.parentNode&&r.parentNode.removeChild(r),window[u]=o,s&&clearTimeout(s)}return a()(f).forEach(function(e){m.push(e+"="+f[e])}),p&&(s=setTimeout(function(){v(),n&&n(new Error("瓒呮椂"))},p)),window[u]=function(e){v(),n&&n(null,e)},e=(e+=(~e.indexOf("?")?"&":"?")+l+"="+d(u)+"&"+m.join("&")).replace("?&","?"),(r=document.createElement("script")).src=e,h.parentNode.insertBefore(r,h),function(){window[u]&&v()}}},uOIQ:function(e,t){},uWio:function(e,t,n){"use strict";t.a=s,t.b=function(){var e=s().match(/tra_from=(.+?)&/i);return e&&e[1]};var r=n("Dd8w"),a=(n.n(r),n("woOf")),i=(n.n(a),n("oyG6")),o=n("wkJ7");function s(){var e=i.a.get("cps")||"";e=e.replace("adp:","tra:");var t=o.a.isWechat()?"wx":"m",n=o.a.isIOS()?"i":"a",r=i.a.get("mars_cid")||"",a=i.a.get("mar_ref")||"",s=i.a.get("WAP[from]")||"nature",c=s+":"+(e?"1":"0")+":"+(a?a.substr(0,10):"");return["tra_from="+encodeURIComponent(e||t+":"+n+":"+r+":c:"+s+":wxclick:"+a),"from="+encodeURIComponent(t),"device="+encodeURIComponent(n),"cid="+encodeURIComponent(r),"f="+encodeURIComponent(c),"other="+encodeURIComponent("wxclick"),"mref="+encodeURIComponent(a)].join("&")}},uiMC:function(e,t){},vLgD:function(e,t,n){"use strict";var r=n("//Fk"),a=n.n(r),i=n("mvHQ"),o=n.n(i),s=n("Dd8w"),c=n.n(s),u=n("mtWM"),l=n.n(u),p=n("mw3O"),d=n.n(p),h=n("zhOP"),f=n("PV6p"),m=n("GKmE"),v=n("ArKR"),g=n("8hGu"),w=n("kvU2"),b=n.n(w),_=[];g.a.on("reportInterfaceError","oneOfTen",function(e){f.a.reportInterfaceErrorByOneOf10(e)});var y=l.a.create({baseURL:"https://mapi.vip.com",timeout:1e4,transformResponse:[function(e){return e=e.replace(/(":\s*)(\d{15,})(\s*[,\n\}\]])/g,function(e,t,n,r){return t+'"'+n+'"'+r})}],paramsSerializer:function(e){return d.a.stringify(e,{arrayFormat:"brackets"})},withCredentials:!0,xsrfCookieName:"",customTimestamp:{request_time:0,response_time:0}});y.interceptors.request.use(function(e){var t=e.method,n=e.params,r=e.data,a=e.url;e.customTimestamp.request_time=Date.now();var i=a.match(/[http:|https:]?\/\/(.+?)[\/|$]/i),s=i&&i.length>1&&i[1];if(s&&"mst.vip.com"!=s&&"mapi.vip.com"!=s&&"mapi-rp.vip.com"!=s&&"mshop-api.vip.com"!=s&&"wx-push.vip.com"!=s&&"www.vipglobal.hk"!=s)return e;(n||r||{}).mvip&&(e.baseURL="https://mapi-rp.vip.com",delete(n||r||{}).mvip);var u=Object(m.j)();switch(t=t.toLocaleUpperCase()){case"GET":e.params=c()({},u,n,{_:Math.floor(Date.now()/1e3)});break;case"POST":e["Content-Type"]?e.data=c()({},u,r):(e.headers["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",e.data=d.a.stringify(c()({},u,r),{arrayFormat:"brackets"}))}if(e.isEncrypt&&window.vipParamsEncrypt){var l="GET"===t?e.params:e.data,p={mina_eversion:0,skey:"9cf2380318f54f31acfb1d6e274f5555",mina_edata:window.vipParamsEncrypt.encrypt("9cf2380318f54f31acfb1d6e274f5555",l),api_key:"8cec5243ade04ed3a02c5972bcda0d3f",timestamp:Date.now()};"GET"===t?e.params=p:Object(m.q)(e.data)?e.data=d.a.stringify(p):e.data=p}if(e.Authorization){var h,f=null;f="POST"===t?Object(m.q)(e.data)?d.a.parse(e.data):e.data:e.params,(h=Object(m.l)("/"+e.url,f))&&(e.headers.Authorization=h,e.backupUrl&&!e.headers.Authorization&&(e.url=e.backupUrl,e.baseURL="https://mapi-rp.vip.com"))}if(location.host.indexOf("vipglobal.hk")>-1&&(!e.retry_times||0==e.retry_times)){var g={};/http(s)?:\/\//.test(e.url)&&(g=v.a.parseURL(e.url));var w=(g.host||e.baseURL).replace(/http(s)?:\/\//,"");e.data&&"string"==typeof e.data?(e.data=d.a.parse(e.data),e.data.api_key="adf779847ac641dd9590ccc5674e25d2",e.data=d.a.stringify({path:(g.path||e.url).replace(/^\/?(.*)/,"/$1"),param:o()(e.data),method:e.method,host:w,auth:e.headers.Authorization?1:0},{arrayFormat:"brackets"})):((e.params||e.data).api_key="adf779847ac641dd9590ccc5674e25d2",e.params=e.data={path:(g.path||e.url).replace(/^\/?(.*)/,"/$1"),param:o()(e.params),method:e.method,host:w,auth:e.headers.Authorization?1:0}),e.baseURL="https://www.vipglobal.hk/gw/api",e.url=""}return e},function(e){a.a.reject(e)}),y.interceptors.response.use(function(e){var t={};e.config.customTimestamp.response_time=Date.now();try{t=JSON.parse(e.data)}catch(n){t={code:"-1",data:e.data,msg:e.msg||"鎺ュ彛璇锋眰閿欒锛宺equest.js鐨刾arse瑙f瀽澶辫触"}}e.config.url.indexOf("api/adver/get")>-1&&(t={code:1,advArr:t,msg:"success"});var n=t,r=n.code,a=n.result;if(location.host.indexOf("vipglobal.hk")>-1&&e.config&&e.config.params)try{e.config.params=JSON.parse(e.config.params.param)}catch(e){}if(!(e.config&&e.config.params&&e.config.params.needLogin||e.config.needLogin)||11003!=r&&11002!=r&&11001!=r&&11e3!=r&&14201!=r){if(1==a&&e.config.url.indexOf("vip.monitor.logger")>-1)return t;1!=r&&11003!=r&&11002!=r&&11001!=r&&11e3!=r&&14201!=r&&19e3!=r?f.a.reportInterfaceError({res:t,responseUrl:e.request.responseURL,apiName:e.config.url,timestamp:e.config.customTimestamp,status:e.status}):(_.push({res:t,responseUrl:e.request.responseURL,apiName:e.config.url,timestamp:e.config.customTimestamp,status:e.status}),_.length>0&&_.length%10==0&&(g.a.emit("reportInterfaceError","oneOfTen",b()(_)),_=[]))}else h.a.go();return t},function(e){var t=e.config||{};if(e&&e.response){switch(e.response.status){case 400:e.message="璇锋眰閿欒";break;case 401:e.message="鏈巿鏉冿紝璇风櫥褰";break;case 403:e.message="鎷掔粷璁块棶";break;case 404:e.message="璇锋眰鍦板潃鍑洪敊: "+e.response.config.url;break;case 408:e.message="璇锋眰瓒呮椂";break;case 500:e.message="鏈嶅姟鍣ㄥ唴閮ㄩ敊璇";break;case 501:e.message="鏈嶅姟鏈疄鐜";break;case 502:e.message="缃戝叧閿欒";break;case 503:e.message="鏈嶅姟涓嶅彲鐢";break;case 504:e.message="缃戝叧瓒呮椂";break;case 505:e.message="HTTP鐗堟湰涓嶅彈鏀寔"}f.a.reportInterfaceError({res:{code:e.response.status,msg:e.message},responseUrl:e.request.responseURL||t.url,apiName:t.url,timestamp:t.customTimestamp,status:e.response.status,retry_times:t.retry_times||0})}else f.a.reportInterfaceError({res:{code:"-1",msg:e.message},responseUrl:e.request.responseURL||t.url,apiName:t.url,timestamp:t.customTimestamp,status:600,retry_times:t.retry_times||0});return t.retry_times=t.retry_times||0,t.retry_times-1}function w(e,t){if(e){for(var n=e.className,r=(t||"").split(" "),a=0,i=r.length;a=9},isUniversalLinkSupport:function(){return this.isIOS()&&(!this.isMQQ()||!this.isQQ())&&this.isOverIOS9()},isSamsungBrowser:i(/SamsungBrowser/i),isWxLite:r.a.utils.liteAppType.isWx&&r.a.utils.platform.isWXLite,isApp:function(){return r.a.utils.platform.isApp},isBocapp:i(/bocapp/i),isAndroidMiniApp:function(){var e=r.a.utils.getAppVersion();return e&&/^0\.(\w+)\.(\w+)/.test(e)},isWxkApp:function(){return r.a.utils.platform.isWXKe||r.a.utils.platform.isApp&&i(/VipUnion/i)&&["weixiangke_iphone","weixiangke_android"].includes(a.a.getQuery("app_name"))}}},"xU/8":function(e,t,n){"use strict";var r=n("//Fk"),a=n.n(r),i=n("Zrlr"),o=n.n(i),s=n("wxAW"),c=n.n(s),u=n("/5sW"),l=n("92UP"),p=n("woOf"),d=n.n(p),h=n("mvHQ"),f=n.n(h),m=n("1M/o"),v=n("Lg6z"),g=n("VKKs"),w=n.n(g),b=0;function _(e){var t=e,n=t.value.brandId;t.business.type.indexOf("mst")>-1&&t.business.special_id&&(n=t.business.special_id);var r=t.statPath.replace(":","_"),a=t.business.type+"_"+n+"_"+r;Object(v.c)({value:a}),w.a.setLocalStorage("cartAttribution",f()({s:1,oi:a,chi:b,ot:3}))}function y(e){var t=e;if(t.business.type)switch(t.business.type){case"brand_main":!function(e){var t=e,n=t.business.special_id,r=n?"special":"brand",a=d()({},t.value);"brand"===r?a.brand_rank=t.statPath:a.special_id=n,m.a.seed("link","click",{brand:"index_click_brand",special:"index_click_special"}[r],f()(a))}(t),_(t);break;case"mst_main":_(t);break;case"pcmp":!function(e){var t=e.statPath.split(":"),n={marRef:"oper_pcmp_"+e.value.obj_id+t[0]+"_"+t[1],absolutePosition:t[0],unid:e.value.obj_id};Object(v.c)({value:n.marRef}),w.a.setLocalStorage("cartAttribution",f()({s:1,oi:n.absolutePosition,opz_unid:n.unid,chi:b,ot:2}))}(t),function(e){var t=e,n=d()({},t.value);m.a.seed("button","click","last_sale_title_click_m",f()(n))}(t)}}var k=n("5jd4");u.a.component(k.a.name,k.a);var x={name:"operate-countdown",data:function(){return{maxTime:8553686399,style:"",showCountdown:!0,unitFormat:{day:!0,hour:!0,min:!0,sec:!0,msec:!1},timeStamp:{day:":",hour:":",min:":",sec:""},doubleBlock:!0,interval:1e3,remainingTime:0}},mounted:function(){this.remainingTime=this.calculateTime(this.timer.endTime),this.showCountdown=!!this.remainingTime},methods:{calculateTime:function(e){var t=1e3*parseInt(e-Date.now()/1e3,10);return t>0?t:0},_getPositionClass:function(e,t){return"center"==(t=t.toLowerCase())&&(t="vertical-center")," countdown-"+e.toLowerCase()+" countdown-"+t},getStyleClass:function(){this.style=this.timer.style;var e="",t=this.wapsize,n=this.timer.style;if(!t||t<40)e="";else if(t<65)e="countdown-normal";else switch(n){case"NORMAL":e="countdown-normal";break;case"WHITE":case"WHITE_HOUR":e="countdown-custom countdown-white";break;case"BLACK":case"BLACK_HOUR":e="countdown-custom countdown-black";break;default:e="countdown-default"}return e.indexOf("countdown-normal")>-1&&(e+=this._getPositionClass(this.timer.col,this.timer.row)),e},countdownEndHandle:function(){this.showCountdown="VISIBLE"==this.timer.eventAfter}},watch:{style:function(e){"WHITE"==e||"BLACK"==e?(this.unitFormat.msec=!0,this.timeStamp={day:"澶",hour:"鏃",min:"鍒",sec:"绉"},this.milliSec=!0,this.interval=100,this.doubleBlock=!0):"NORMAL"!=e?(this.unitFormat.msec=!0,this.unitFormat.day=!1,this.timeStamp={hour:"鏃",min:"鍒",sec:"绉"},this.milliSec=!0,this.interval=100,this.doubleBlock=!0):(this.unitFormat.day=!1,this.doubleBlock=!1)}},components:{countdown:k.a},props:{timer:{type:Object,default:function(){return{}}},wapsize:{type:Number,default:100}}},C={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.showCountdown?n("div",{class:e.getStyleClass()},[n("countdown",{staticClass:"countdown-inner",attrs:{time:e.remainingTime,interval:e.interval,tag:"div"},on:{end:e.countdownEndHandle},scopedSlots:e._u([{key:"default",fn:function(t){return[e.unitFormat.day&&t.days?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.days/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.days%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.days/10))+e._s(parseInt(t.days%10)))])],e.timeStamp.day?n("span",[e._v(e._s(e.timeStamp.day))]):e._e()]:e._e(),e.unitFormat.hour?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.hours/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.hours%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.hours/10))+e._s(parseInt(t.hours%10)))])],e.timeStamp.hour?n("span",[e._v(e._s(e.timeStamp.hour))]):e._e()]:e._e(),e.unitFormat.min?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.minutes/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.minutes%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.minutes/10))+e._s(parseInt(t.minutes%10)))])],e.timeStamp.min?n("span",[e._v(e._s(e.timeStamp.min))]):e._e()]:e._e(),e.unitFormat.sec?[e.doubleBlock?[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.seconds/10)))]),n("span",{staticClass:"numbers"},[e._v(e._s(t.seconds%10))])]:[n("span",{staticClass:"numbers"},[e._v(e._s(parseInt(t.seconds/10))+e._s(parseInt(t.seconds%10)))])],e.timeStamp.sec?n("span",[e._v(e._s(e.timeStamp.sec))]):e._e()]:e._e(),e.unitFormat.msec?[n("span",{staticClass:"millisecond"},[e._v(e._s(t.milliseconds))])]:e._e()]}}])})],1):e._e()},staticRenderFns:[]};var S=n("VU/8")(x,C,!1,function(e){n("V/t2")},"data-v-683b666f",null).exports,T=n("j8ZI"),I=n("oyG6"),O={name:"native-operate-comp",data:function(){return{}},mounted:function(){T.a.init()},methods:{getCoupon:function(e,t){var n=t,r=e.currentTarget,a={coupon_info:n.extra_data.coupon_info,left_button:n.extra_data.button.left_button,mid_button:n.extra_data.button.mid_button,right_button:n.extra_data.button.right_button,coupon_image:n.extra_data.coupon_image,target_param:n.extra_data&&n.extra_data.button&&n.extra_data.button.right_button&&n.targetParam,$parent:r.parentNode};T.a.getCoupon(a)},jumpAction:function(e,t){var n=e,r=n.jumper;this.sendOperation(n),m.a.seed("a","click","wap_oper_expose"),Object(v.b)("oper_special_"+(this.sort+1)+"_"+(t+1)),w.a.setLocalStorage("cartAttribution",f()({s:1,adid:n.buryPoint.adsBannerId,oi:this.code,opz_unid:n.opz_unid,chi:this.navCurrent.id,ot:2}));var a,i=l.a.mojumper(r);location.href=i.appUrl||i.wapUrl,i.appUrl&&(a=i.appUrl,I.a.set("hasSuccessWakeUp",1,{expires:1}),setTimeout(function(){I.a.get("hasSuccessWakeUp")&&(location.href=a)},3e3))},sendOperation:function(e){var t={chi:this.navCurrent.id,oi:this.code,adid:e.buryPoint.adsBannerId,opz_unid:e.opz_unid};m.a.seed("link","click","index_click_operation",f()(t))}},props:{item:{type:Object,default:function(){return{}}},code:{type:String,default:""},sort:{type:Number,default:0},absolutePosition:{type:Number,default:0},navCurrent:{type:Object,default:function(){return{}}}},components:{operateCountdown:S}},A={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"operate"},[e.item.block&&e.item.block.length>0?n("div",{staticClass:"operate-inner clearfix"},[e.item.backgroundPic?n("div",{staticClass:"operate-bg"},[n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:e.item.backgroundPic,expression:"item.backgroundPic"}]})]):e._e(),e._l(e.item.block,function(t,r){return n("div",{key:r+"operate-inner",staticClass:"operate-inner-common",style:{width:t.width,height:t.height}},e._l(t.child,function(r,a){return n("div",{key:a+"block-child",staticClass:"operate-inner-common"},[n("a",{staticClass:"operate-inner-item",attrs:{href:"javascript:;",mars_exposure_module:"wap|operates|"+e.navCurrent.name+"|"+e.navCurrent.id+"|浠婃棩涓婄嚎|1|"+r.data.opz_unid+"|special_"+(e.sort+1)+"_"+(a+1)},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.jumpAction(r.data,a)}}},[r.data.extra_data&&r.data.extra_data.coupon_info?n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:r.data.imageUrl,expression:"v.data.imageUrl"}],style:{width:t.width||r.width,height:t.height||r.height},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.getCoupon(t,r.data)}}}):n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:r.data.imageUrl,expression:"v.data.imageUrl"}],style:{width:t.width||r.width,height:t.height||r.height}}),r.timer.endTime?n("operate-countdown",{attrs:{timer:r.timer,wapsize:r.wapsize}}):e._e(),n("div",{staticClass:"coupon-signet"})],1)])}),0)})],2):e._e()])},staticRenderFns:[]};var j=n("VU/8")(O,A,!1,function(e){n("5K0O")},"data-v-4bae17a0",null).exports,L=n("wkJ7"),P=n("ArKR"),E=n("3+cY"),U={name:"native-adv-slider-comp",data:function(){return{loop:!0,bounce:!1}},mounted:function(){},methods:{sendAdvClickMar:function(e){var t={chi:"20170217:1",oi:e.zone_id,adid:e.bannerid,opz_unid:e.ad_unid};m.a.seed("link","click","index_click_banner",f()(t))},addSalesAttribution:function(e){e.value&&!L.a.isWechat()&&I.a.set(e.name||"mar_ref",e.value,{expires:365,domain:"vip.com"})},jumpAction:function(e,t){var n=e,r=n.url;this.sendAdvClickMar(n);encodeURIComponent(""),encodeURIComponent("浠婃棩涓婄嚎");if(this.addSalesAttribution({value:"adv"}),window.localStorage.setItem("cartAttribution",f()({s:1,adid:n.bannerid,oi:n.zone_id,opz_unid:n.ad_unid,ot:1})),L.a.isWechat()){if(!P.a.hasQuery({name:"ad_from",url:r}))return void(document.location=r);var a=P.a.getQuery({name:"ad_from",url:r});I.a.set("WAP[ad_from]",a,{expires:1,path:"/",domain:"vip.com"}),document.location=r||"javascript:;"}else location.href=r||"javascript:;"}},components:{mtSwipe:E.a,mtSwipeItem:E.b},props:{ads:{type:Object,default:function(){return{}}},navCurrent:{type:Object,default:function(){return{}}}}},M={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"adv-slider"},[n("mt-swipe",e._l(e.ads.ad_list,function(t,r){return n("mt-swipe-item",{key:t.ad_unid},[n("a",{staticClass:"adv-item",style:{height:t.sliderHeight},attrs:{href:t.url,mars_exposure_sead:"wap_adv_expose",mars_exposure_module:"wap|adverts|"+e.navCurrent.name+"|"+e.navCurrent.id+"|鍏ㄩ儴|0|"+t.ad_unid},on:{click:function(n){return n.preventDefault(),e.jumpAction(t,r)}}},[n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:t.imgFullPath,expression:"ad.imgFullPath"}]})])])}),1)],1)},staticRenderFns:[]};var D=n("VU/8")(U,M,!1,function(e){n("3jGs")},null,null).exports,W={name:"native-scroll-comp",data:function(){return{sliderCls:""}},mounted:function(){this.init()},methods:{init:function(){var e=null;switch(this.item.template){case"medium":case"medium_lower":e="medium";break;case"three":e="three";break;case"small":e="small";break;case"none":e="brand-wall";break;case"swap":e="swap"}this.sliderCls=e},bindEvent:function(e,t,n,r){var a=e;Object(v.c)({value:"oper_special_"+(this.sort+1)+"_"+(t+1)}),window.localStorage.setItem("cartAttribution",f()({s:1,oi:n,opz_unid:a.opzUnid,chi:this.navCurrent.id,ot:2}));var i=l.a.mojumper(r);location.href=i.appUrl||i.wapUrl}},watch:{item:function(){var e=this;this.$nextTick(function(){e.init()})}},props:{item:{type:Object,default:function(){return{}}},sort:{type:Number,default:0},absolutePosition:{type:Number,default:0},navCurrent:{type:Object,default:function(){return{}}}},components:{}},R={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e.item.contents&&e.item.contents.length>0?["picture"==e.item.sliderType?["swap"!=e.sliderCls?n("div",{staticClass:"operate-slider picture",class:e.sliderCls,attrs:{"data-type":"picture","data-id":e.item.sliderCode}},["medium-lower"!=e.sliderCls&&e.item.sliderTitle?n("h2",[e._v(e._s(e.item.sliderTitle))]):e._e(),n("div",{staticClass:"operate-container"},[n("ul",{ref:"singleSlideGroup",staticClass:"operate-single-ul"},e._l(e.item.contents,function(t,r){return n("li",{key:r,ref:"operateSlideItem",refInFor:!0,class:{more:r==e.item.contents.length-1}},[n("a",{staticClass:"href",attrs:{href:t.targetParam,mars_sead:"index_slideop_"+t.targetMethod+"_"+t.oldTargetParam+"_btn","data-show-mars":"index_slideop_"+t.targetMethod+"_"+t.oldTargetParam+"_show","data-mar-ref-position":"oper_special_"+e.sort+"_"+(r+1),"data-rawurl":t.raw_url,"data-id":"{$v.data.id}","data-unid":"{$v.data.opz_unid}"},on:{click:function(n){return n.stopPropagation(),n.preventDefault(),e.bindEvent(t,r,0,t.jumper)}}},[n("img",{directives:[{name:"lazy",rawName:"v-lazy",value:t.pic,expression:"content.pic"}],attrs:{alt:t.productName}})])])}),0)]),"medium-lower"==e.sliderCls&&e.item.sliderTitle?n("h2",[e._v(e._s(e.item.sliderTitle))]):e._e()]):e._e()]:e._e()]:e._e()],2)},staticRenderFns:[]};var $=n("VU/8")(W,R,!1,function(e){n("6vcI")},"data-v-7c746661",null).exports,F=u.a.extend(D),H=u.a.extend(j),N=u.a.extend($),B=new(function(){function e(t){o()(this,e),this.sort=0,this.absolutePosition=0,this.navCurrent={}}return c()(e,[{key:"setNavCurrent",value:function(e){this.navCurrent=e||{}}},{key:"render",value:function(e,t,n){switch(e){case"vs_ads_scroller":this.advSliderHandler(t,n);break;case"vs_mo_normal_view":this.normalViewHandler(t,n);break;case"vs_mo_scroll_view":this.scrollViewHandler(t,n);break;case"vs_mo_group_view":this.moGroupViewHandler(t,n)}}},{key:"advSliderHandler",value:function(e,t){var n=e;n.ad_list.forEach(function(e){e.url=l.a.mojumper(e.jumper).wapUrl||"javascript:;",e.sliderHeight=(e.height||300)/(e.width||750)+"rem"});var r=new F({el:t});r.ads=n,r.navCurrent=this.navCurrent}},{key:"normalViewHandler",value:function(e,t){var n,r=e;n=r.data.block.length*r.data.block[0].child.length;var a=new H({el:t});a.item=this._normalViewDataProcess(r.data),a.code=r.code,a.navCurrent=this.navCurrent,a.sort=this.sort,a.absolutePosition=this.absolutePosition,this.absolutePosition+=n,this.sort++}},{key:"calculatePlaceholder",value:function(e){return e/100*10+"rem"}},{key:"_normalViewDataProcess",value:function(e){var t=e,n=0;if(t.block&&t.block.length>0)for(;n1&&void 0!==arguments[1])||arguments[1];this._renderLoadMoreDom({noMore:!1,background:!1,btnText:e.btnText||"鐐瑰嚮",loadMoreText:e.loadMoreText,reloadCallback:this.reloadCallbackHandler(e.reloadCallback,t),customLoadMoreClassName:e.customLoadMoreClassName||""})}},{key:"reloadCallbackHandler",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=e,r=this;return n&&(e=function(){t&&(r.loadingDomInstance.btnText="",r.loadingDomInstance.background=!0),n.call(this)}),e}},{key:"noMore",value:function(){this._renderLoadMoreDom({text:"鏃10鏅8锛屾洿澶氱壒鍗栵紝鏁鏈熷緟锛",noMore:!0,background:!1})}},{key:"hasMore",value:function(){this.loadingDomInstance.noMore=!0,this.loadingDomInstance.background=!0,this.loadingDomInstance.text="100% 姝e搧淇濊瘉"}},{key:"_onNativeCompRender",value:function(e,t,n){B.render(e,t,n),"vs_load_more"==e&&(this.loadingDomInstance=new Y({el:n}))}},{key:"_renderLoadMoreDom",value:function(e){var t=e.noMore,n=e.text,r=e.background,a=void 0===r||r,i=e.loadMoreText,o=e.btnText,s=void 0===o?"鐐瑰嚮":o,c=e.customLoadMoreClassName,u=e.reloadCallback,l=void 0===u?function(){}:u;this.loadingDomInstance.noMore=t,this.loadingDomInstance.text=n,this.loadingDomInstance.btnText=s,this.loadingDomInstance.background=a,this.loadingDomInstance.loadMoreText=i||"鏌ョ湅鏇村鍚屽搧鐗岀殑鍟嗗搧",this.loadingDomInstance.className=c||"",Y.prototype.reload=l}},{key:"_onHref",value:function(){this.instance&&this.instance.onHref(function(e){var t,n=l.a.go(e.url),r=n.appUrl,a=n.wapUrl;location.href=r||a,r&&(t=a,I.a.set("hasSuccessWakeUp",1,{expires:1}),setTimeout(function(){I.a.get("hasSuccessWakeUp")&&(location.href=t)},3e3))})}},{key:"_onStatClick",value:function(e){this.instance&&this.instance.onStatClick(function(e){y(e)})}},{key:"_onStatExpose",value:function(){this.instance.onStatExpose(function(e){e.forEach(function(e){})})}},{key:"MarsExposure",value:function(e){}},{key:"getVersion",value:function(){return this.instance&&this.instance.getVersion()}},{key:"onLightartImageError",value:function(){setTimeout(function(){var e=document.querySelectorAll(".ltart-lzloading:not(.ltart-lzreport)");e&&e.length>0&&e.forEach(function(e){var t=e.dataset.lzsrc;G.a.adapter(t,function(n){if(!n){var r=(new Date).getTime(),a={request_time:r,response_time:r,status:-1,request_url:t,data_length:0,retry_times:""};V.a.reportResourceError(a)}Object(z.a)(e,"ltart-lzreport")})})},2e3)}}]),e}();te.version="1.4.24";t.a=te},xhcK:function(e,t,n){"use strict";var r=n("pD4m"),a=n("ExBf"),i=n("1M/o"),o=n("wkJ7"),s={name:"common-header",components:{vipIcon:n("Xj+z").a},props:{checkCanal:{type:Boolean,default:!0},borderPosition:{type:String,default:"bottom"},hideHeader:{type:Boolean,default:!1},titleContent:{type:String,default:""},showLeft:{type:Boolean,default:!0},showRight:{type:Boolean,default:!0},backgroundColor:{type:String,default:"#fff"},fontColor:{type:String,default:"#555"},nativeBack:{type:Boolean,default:!1}},watch:{hideHeader:function(e){this.hide=e},hide:function(e){this.$emit("header-change",e)}},methods:{back:function(){this.nativeBack?this.$emit("back"):document.referrer?history.go(-1):location.href="https://m.vip.com/index.html"},backHome:function(){i.a.seed("a","click","nav_home_btn"),location.href="https://m.vip.com/index.html"},isHideTopNav:function(){var e=this;this.hideHeader?this.hide=!0:this.checkCanal&&(a.a.utils.platform.isWXLite||a.a.utils.platform.isQuickApp?this.hide=!0:o.a.isWxkApp()?this.hide=!0:r.a.getConfig({type:"wapCanal"}).then(function(t){var n=t.customSetting||{};e.hide=!!n.hideTopNav}))}},data:function(){return{hide:!1}},mounted:function(){this.isHideTopNav()}},c={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.hide?e._e():n("header",{staticClass:"header-container",class:["border-"+e.borderPosition],style:{backgroundColor:e.backgroundColor,color:e.fontColor}},[n("div",{staticClass:"header-left"},[e._t("left",[n("a",{directives:[{name:"show",rawName:"v-show",value:e.showLeft,expression:"showLeft"}],staticClass:"header-left-button",style:{color:e.fontColor},attrs:{href:"javascript:;"},on:{click:e.back}},[n("vip-icon",{attrs:{name:"back"}})],1)])],2),n("div",{staticClass:"header-title"},[e._t("title",[n("h1",[e._v(e._s(e.titleContent))])])],2),n("div",{staticClass:"header-right"},[e._t("right",[n("a",{directives:[{name:"show",rawName:"v-show",value:e.showRight,expression:"showRight"}],staticClass:"header-right-button",style:{color:e.fontColor},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.backHome(t)}}},[n("vip-icon",{attrs:{name:"home"}})],1)])],2)])},staticRenderFns:[]};var u=n("VU/8")(s,c,!1,function(e){n("2Pub")},"data-v-fbdac0e6",null);t.a=u.exports},y1FO:function(e,t,n){"use strict";var r=n("vNF5"),a=n("GKmE"),i={name:"font-label",components:{},props:{align:{type:String,default:"center"},justify:{type:String,default:"center"},lineClamp:{type:String,default:"0"},text:[String,Number],ellipsis:{type:Boolean,default:!1},fontSize:{type:Number,default:12}},data:function(){return{smallFontSupport:r.m,androidSmallFontTransform:r.b}},computed:{labelClass:function(){return"label-smfont-"+this.align+(this.ellipsis?" ellipsis":"")},scale:function(){return this.getScaleFontPercent(this.fontSize)},scaleObject:function(){return this.getScaleFontPercent(this.fontSize)},styleObject:function(){return{textAlign:this.align,fontSize:Object(a.r)(this.fontSize)}}},watch:{},methods:{getScaleFontPercent:function(e){var t=parseFloat(e,10),n={};return!r.m&&t<12&&!/(px|%)$/i.test(e)&&(n[r.c?r.c+"Transform":"transform"]="scale("+String(t/12).substr(0,5)+")"),n}},created:function(){},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},o={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"font-label-container",class:["justify-"+e.justify],style:e.styleObject},[e.$slots.default?n("span",{staticClass:"font-label-text",class:[e.labelClass,e.androidSmallFontTransform,"line-clamp"+e.lineClamp],style:e.scaleObject},[e._t("default")],2):n("span",{staticClass:"font-label-text",class:[e.labelClass,e.androidSmallFontTransform,"line-clamp"+e.lineClamp],style:e.scaleObject},[e._v(e._s(e.text))])])},staticRenderFns:[]};var s=n("VU/8")(i,o,!1,function(e){n("gFLC")},"data-v-f573761e",null);t.a=s.exports},y8js:function(e,t,n){"use strict";var r=n("Zrlr"),a=n.n(r),i=n("wxAW"),o=n.n(i),s=n("/5sW"),c={name:"page-loading",props:{show:{type:Boolean,default:!1}}},u={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{directives:[{name:"show",rawName:"v-show",value:this.show,expression:"show"}],staticClass:"page-loading"},[t("svg",{staticClass:"page-loading page-loading-curve",attrs:{width:"1.5rem",height:"1.5rem",viewBox:"0 0 50 50"}},[t("circle",{attrs:{r:"24",cx:"25",cy:"25",fill:"none",stroke:"#f0f0f0","stroke-width":"2"}}),t("circle",{staticClass:"page-loading-progress",attrs:{r:"24",cx:"25",cy:"25",fill:"none",stroke:"#e4007f","stroke-width":"2"}}),t("text",{staticClass:"page-loading-text",staticStyle:{"font-size":"21px"},attrs:{x:"25",y:"25",dy:".27em",fill:"#dedede"}},[this._v("vip")])])])},staticRenderFns:[]};var l=n("VU/8")(c,u,!1,function(e){n("A11p")},"data-v-e35befe6",null).exports,p=s.a.extend(l),d=function(){function e(){a()(this,e),this.getDom()}return o()(e,[{key:"getDom",value:function(){this.el=document.querySelector(".page-loading")}},{key:"show",value:function(){this.el||(this.appendPageLoadingDom(),this.getDom()),this.el&&(this.el.style.display="block")}},{key:"hide",value:function(){this.el&&(this.el.style.display="none")}},{key:"appendPageLoadingDom",value:function(){this.instance=new p({el:document.createElement("div")}),document.body.appendChild(this.instance.$el)}}]),e}();t.a=new d},ye8Q:function(e,t,n){"use strict";t.i=function(e){return Object(c.a)({url:"vips-mobile/rest/user/userType/get",retries:1,params:o()({},e,{mvip:!0}),method:"get"})},t.q=function(e){return new a.a(function(t,n){Object(s.a)("//weixin-api.vip.com/user/getUserInfo",{params:e},function(e,r){e?n(e):t(r)})})},t.p=function(e){return Object(c.a)({url:"vips-mobile/rest/user/info/get_web",method:"get",params:o()({},e,{mvip:!0})})},t.d=function(e){return Object(c.a)({url:"vips-mobile/rest/user/create_temp_token",method:"get",params:o()({},e,{mvip:!0})})},t.n=function(e){return Object(c.a)({url:"vips-mobile/rest/fav/goods/list/v7",method:"get",retries:1,params:o()({},e,{mvip:!0,needLogin:!0})})},t.m=function(e){return Object(c.a)({url:"vips-mobile/rest/fav/brand/list/v4",method:"get",retries:1,params:o()({},e,{mvip:!0,needLogin:!0})})},t.c=function(){return Object(c.a)({url:"https://mshop-api.vip.com/user/check",method:"get"})},t.o=function(e){return Object(c.a)({url:"vips-mobile/rest/fav/browse/history/list/rank/v1",method:"get",retries:1,params:o()({},e,{needLogin:!0,client:"wap",mvip:!0,count:"60"})})},t.e=function(e){return Object(c.a)({url:"vips-mobile/rest/favourite/browsing/history/delete",method:"get",retries:1,params:o()({},e,{mvip:!0})})},t.h=function(){return Object(c.a)({url:"//mlogin-api.vip.com/ajaxapi-user.html?act=getUserInfo",method:"get"})},t.f=function(e){return Object(c.a)({url:"vips-mobile/rest/user/address/list",method:"get",retries:1,params:o()({},e,{needLogin:!0,mvip:!0})})},t.b=function(e){return Object(c.a)({url:"vips-mobile/rest/order/check_address/v1",method:"get",retries:1,params:o()({},e,{needLogin:!0,mvip:!0})})},t.g=function(e){return Object(c.a)({url:"vips-mobile/rest/activity/coupon/user/list",method:"get",params:o()({},e,{mvip:!0,needLogin:!0})})},t.a=function(e){return Object(c.a)({url:"vips-mobile/router.do",method:"get",params:o()({},e,{service:"user.coupon.combine.activate",mvip:!0})})},t.r=function(e){return Object(c.a)({url:"vips-mobile/rest/user/wap/setswitch/v1",method:"post",needLogin:!0,data:o()({},e,{mvip:!0})})},t.l=function(e){return Object(c.a)({url:"vips-mobile/rest/user/wap/getswitch/v1",method:"post",needLogin:!0,data:o()({},e,{mvip:!0})})},t.j=function(){return Object(c.a)({url:"vips-mobile/rest/point/integral_total/v1",method:"get",needLogin:!0,params:{mvip:!0}})},t.k=function(e){return Object(c.a)({url:"vips-mobile/rest/point/integral_list/v1",method:"post",needLogin:!0,data:o()({},e,{mvip:!0})})};var r=n("//Fk"),a=n.n(r),i=n("Dd8w"),o=n.n(i),s=n("swYn"),c=n("vLgD")},zWU1:function(e,t,n){"use strict";var r=n("fZjL"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("Zrlr"),c=n.n(s),u=n("wxAW"),l=n.n(u),p=n("6+Wl"),d=n("Rjba"),h=n("ArKR"),f=n("oyG6"),m=n("HnKq"),v=function(){function e(){c()(this,e),this.isWechat=!0,this.shareConf={width:"310",title:"鍞搧浼氳秴鍊肩壒鍗",desc:"鍞搧浼氳秴鍊肩儹鍗栵紝鏃╁崄鏅氬叓涓婃柊锛屽浗鍐呭姝e搧鎶樻墸锛屽崈涓囧ぇ鐗屾姠涓嶅仠",link:"",imgUrl:"https://h2.vipstatic.com/ms2-m.vipstatic.com/static/base/img/default-wx-share-3f25d20336.png"}}return l()(e,[{key:"init",value:function(e){var t=this;this.initOpt(e).then(function(){d.a.initSdk(function(){p.a.onMenuShareAppMessage(t.shareConf),p.a.onMenuShareTimeline(t.shareConf),p.a.onMenuShareWeibo(t.shareConf),p.a.onMenuShareQQ(t.shareConf)})})}},{key:"initOpt",value:function(e){var t=this;return new o.a(function(n,r){e&&a()(e).forEach(function(n){t.shareConf[n]=e[n]}),t.getLink(),n()})}},{key:"setLink",value:function(e){this.shareConf.link=e}},{key:"getLink",value:function(){var e=this,t=h.a.setQuery({name:"from",value:"wechat"}),n=null;this.isCps()&&Object(m.c)("//ms.vipstatic.com/union/cps.js").then(function(){if(void 0!==(n=JSON.parse(encodeCpsLink())).cps_link&&""!==n.cps_link){var r=n.cps_link;r=h.a.setQuery({url:r,name:"desturl",value:encodeURIComponent(t)}),e.setLink(r)}}).catch(function(n){e.setLink(t)}),this.setLink(t)}},{key:"isCps",value:function(){var e=f.a.get("cps_share"),t=f.a.get("cps");return e&&decodeURIComponent(t).indexOf("::::")<0}}]),e}();t.a=new v},zhOP:function(e,t,n){"use strict";var r=n("mvHQ"),a=n.n(r),i=n("//Fk"),o=n.n(i),s=n("Xxa5"),c=n.n(s),u=n("Dd8w"),l=n.n(u),p=n("exGp"),d=n.n(p),h=n("Zrlr"),f=n.n(h),m=n("wxAW"),v=n.n(m),g=n("3USl"),w=n("wkJ7"),b=n("oyG6"),_=n("HnKq"),y=n("pD4m"),k=n("ye8Q"),x=n("r7MF"),C=n("HMTI"),S=n("VKKs"),T=n.n(S),I=n("ExBf"),O=n("83Tv"),A=n("ArKR"),j=n("PEP6"),L=n("8hGu"),P=new(n("p6Um").a);var E=function(){function e(){f()(this,e),this.isWechat=w.a.isWechat()}return v()(e,[{key:"go",value:function(){var t=d()(c.a.mark(function t(){var n,r,a,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return c.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!w.a.isAndroidMiniApp()){t.next=3;break}return this.nativeLogin(),t.abrupt("return");case 3:return n=this,t.next=6,y.a.getConfig({type:"switch",code:596});case 6:if(1!=t.sent){t.next=10;break}return this.goPageMlogin(),t.abrupt("return");case 10:if(r={needReg:!1,isviva:!1,isChangeWeixinBind:!1,onWinLogin:function(e){e.success&&(window.location.href=A.a.setQuery({name:"hack_time",value:Date.now()}))}},i.backUrl&&(i.backUrl=(o=i.backUrl,void 0,void 0,s=location.protocol,c=location.origin,/^http(s)?:/.test(o)?o:/(^\/\/)/.test(o)?s+o:/(^\/)/.test(o)?c+o:c+"/"+o)),(a=i.onWinLogin)&&(i.onWinLogin=function(t){return t.success?(C.c.init(),e.hasLogin=!0,n.emitEvents()):(e.hasLogin=!1,n.emitEvents()),a.call(this,t)}),i=l()({},r,i),!(location.href.indexOf("vipglobal.hk")>-1)){t.next=18;break}return P.open({content:"鎮ㄥ皻鏈櫥褰曪紝璇风櫥褰曞悗鍐嶈瘯",btns:["鍐嶉涢","鍘荤櫥褰"],onBtnClick:function(e,t){P.close(),1===t&&n.vipglobalLogin()}}),t.abrupt("return");case 18:e.hasLoginComponent?this.isWechat?this.getWxUserInfo().then(function(e){var t=e.code,n=e.data,r=void 0===n?{}:n;i=l()({},i,r),0==t&&window.loginDeal.go(i),-33==t&&(window.location.href=r.redirectUrl+"?fs="+r.fs+"&type="+r.type+"&src="+encodeURIComponent(location.href))}).catch(function(){window.loginDeal.go(i)}):window.loginDeal.go(i):this.goPageMlogin();case 19:case"end":return t.stop()}var o,s,c},t,this)}));return function(){return t.apply(this,arguments)}}()},{key:"nativeLogin",value:function(){I.a.user.login(null,function(){},function(e){var t;t="鐧诲綍澶辫触锛岃绋嶅悗閲嶈瘯",Object(O.a)({message:t})})}},{key:"autoLogin",value:function(){var e=d()(c.a.mark(function e(){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.getLoginCondition()){e.next=6;break}return e.next=3,this.loadLoginComponent();case 3:return e.next=5,this.handleAutoLogin();case 5:case 6:return e.abrupt("return",!0);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"isLogin",value:function(){return e.hasLogin}},{key:"getLoginCondition",value:function(){return x.a.isLogin()?(e.hasLogin=!0,!0):(e.hasLogin=!1,!1)}},{key:"vipglobalLogin",value:function(t){var n=encodeURIComponent("https://www.vipglobal.hk/gw/login?platform=wap&targe_url="+encodeURIComponent(t||location.href));location.href=e.globalLoginUrl+n}},{key:"handleAutoLogin",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,a,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isWechat||A.a.getQuery("has_reload")){e.next=13;break}if(!(location.href.indexOf("vipglobal.hk")>-1)){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,this.getWxUserInfo().catch(function(e){});case 5:if(t=e.sent,r=(n=t||{}).data,0!==(a=n.code)){e.next=12;break}return e.next=10,this.automaticLoginWx(r);case 10:e.next=13;break;case 12:-33===a&&(i="fs="+r.fs+"&type="+r.type+"&src="+encodeURIComponent(location.href),location.href=r.redirectUrl+"?"+i);case 13:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"automaticLoginWx",value:function(e){var t=this;return new o.a(function(n){try{window.loginDeal.automaticLogin(e,function(e){e.success?A.a.getQuery("back_act")?location.href=A.a.getQuery("back_act"):location.href=A.a.setQuery({name:"has_reload",value:"true"}):location.pathname.indexOf("checkout.html")>-1&&t.go(),n()})}catch(e){n(),window.console&&window.console.error("寰俊闈欓粯鐧婚檰澶辫触锛",e)}})}},{key:"loadLoginComponent",value:function(){return window.loginDeal?o.a.resolve():this.loadLoginJsCss()}},{key:"loadLoginJsCss",value:function(){return o.a.all([Object(_.a)(g.a.mloginHost+"/asserts/css/login.css?v=1.0.0"),Object(_.c)(g.a.mloginHost+"/asserts/js/login-deal.min.js?v=1.0.0")]).then(function(){e.hasLoginComponent=!0}).catch(function(){e.hasLoginComponent=!1})}},{key:"goPageMlogin",value:function(){var e=g.a.mloginHost+"/asserts/login/login.html",t=document.location.href,n=b.a.get("WAP[from]")?b.a.get("WAP[from]"):"";e+="?f="+encodeURIComponent(n),e+="&callback="+encodeURIComponent(t),window.location.href=e+"&hack_time="+(new Date).getTime()}},{key:"getWxUserInfo",value:function(){var e=JSON.parse(window.sessionStorage.getItem("wxUserInfo")||"{}"),t=e.timestamp,n=e.openid,r=e.unionid,i=e.nickname,s=e.headimgurl;return n&&r&&i&&s&&t&&(new Date).valueOf()/1e3-t<32400?o.a.resolve({code:0,data:{openid:n,unionid:r,nickname:i,headimgurl:s}}):(window.sessionStorage.removeItem("wxUserInfo"),Object(k.q)({type:3}).then(function(e){var t=e.code,n=e.data,r=void 0===n?{}:n;if(0==t){var i=(new Date).valueOf()/1e3;r.timestamp=i,window.sessionStorage.setItem("wxUserInfo",a()(r))}return{code:t,data:r}}))}},{key:"getUserInfo",value:function(){var e=d()(c.a.mark(function e(){var t,n,r,i;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=JSON.parse(window.sessionStorage.getItem("userInfo")||"{}"),n=32400,r=t.timestamp,!(t.user_id&&r&&(new Date).valueOf()/1e3-r=o)?15:t.t0===("detail"==n&&u.frequency_for_detail>=s)?15:t.t0===("detail"==n)?18:t.t0===("list"==n)?21:24;break;case 13:return T.a.setLocalStorage("frequency_to_log_in",a()({frequency_for_list:1,frequency_for_detail:1})),t.abrupt("break",25);case 15:return this.go({usePop:!0,needReg:!1,onWinLogin:function(e){e.success&&j.a.reload(!0)}}),T.a.setLocalStorage("frequency_to_log_in",a()({frequency_for_list:1,frequency_for_detail:1})),t.abrupt("break",25);case 18:return u.frequency_for_detail++,T.a.setLocalStorage("frequency_to_log_in",a()(u)),t.abrupt("break",25);case 21:return u.frequency_for_list++,T.a.setLocalStorage("frequency_to_log_in",a()(u)),t.abrupt("break",25);case 24:return t.abrupt("break",25);case 25:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}()},{key:"emitEvents",value:function(){L.a.emit("loginModules","chageState",e.hasLogin)}}]),e}();E.hasLoginComponent=null,E.hasLogin=!1,E.globalLoginUrl="https://mlogin.vip.com/asserts/login/login.html?f=vipglobal&callback=",t.a=new E}},["U67u"]); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.fa89f7db7d2f1f3f247918942fe24d5c.css" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.fa89f7db7d2f1f3f247918942fe24d5c.css" new file mode 100644 index 0000000000000000000000000000000000000000..f5b0a711a758de018c200f32d6d22b8a5be2c88a --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/index.fa89f7db7d2f1f3f247918942fe24d5c.css" @@ -0,0 +1,6 @@ +.vip-toast{-webkit-box-sizing:border-box;box-sizing:border-box;position:fixed;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:#fff;text-align:center;z-index:10000;border-radius:.13333rem;-webkit-transition:opacity .3s linear;transition:opacity .3s linear;background-color:rgba(0,0,0,.8)}.vip-toast-icon{font-size:.85333rem}.vip-toast-text{text-align:left;font-size:.37333rem;font-family:PingFangSC-Regular;line-height:.45333rem}.vip-toast.is-postop{top:1.33333rem}.vip-toast.is-posbottom,.vip-toast.is-postop{left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.vip-toast.is-posbottom{bottom:1.33333rem}.vip-toast.is-posmiddle{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.vip-toast-pop-enter,.vip-toast-pop-leave-active{opacity:0}.header-container[data-v-fbdac0e6]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:1.17333rem;line-height:1.17333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.header-container.border-bottom[data-v-fbdac0e6]{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.header-container .header-left[data-v-fbdac0e6],.header-container .header-right[data-v-fbdac0e6],.header-container .header-title[data-v-fbdac0e6]{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:.58667rem;width:1.57333rem;z-index:2;display:block;height:100%;font-size:.42667rem}.header-container .header-left[data-v-fbdac0e6],.header-container .header-right[data-v-fbdac0e6]{width:1.49333rem;padding:0 .4rem}.header-container .header-title[data-v-fbdac0e6]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;z-index:1;font-size:.48rem}.header-container .header-title h1[data-v-fbdac0e6]{width:100%;height:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;text-align:center;font-weight:400}.header-container .header-right[data-v-fbdac0e6]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.header-container .header-left-button[data-v-fbdac0e6],.header-container .header-right-button[data-v-fbdac0e6]{color:#555}.header-container .header-left-button[data-v-fbdac0e6]:active,.header-container .header-right-button[data-v-fbdac0e6]:active{opacity:.3}.header-container .header-left-button .icon-back[data-v-fbdac0e6],.header-container .header-right-button .icon-back[data-v-fbdac0e6]{font-size:.69333rem}.header-container .header-left-button .icon-home[data-v-fbdac0e6],.header-container .header-right-button .icon-home[data-v-fbdac0e6]{font-size:.53333rem}.header-container .header-left-button[data-v-fbdac0e6]{display:block}.vip-icon{position:relative}@font-face{font-family:icomoon;src:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.cbe0bc0.eot#iefix);src:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/icomoon.827a2ec.svg#icomoon) format("svg"),url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.cbe0bc0.eot#iefix) format("eot"),url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.09b4ab6.ttf) format("truetype"),url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/fonts/icomoon.1cb4643.woff) format("woff")}[class*=" icon-"],[class^=icon-]{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;text-transform:none}.icon-addcollect:before{content:"\E001"}.icon-arrow-down-left:before{content:"\E002"}.icon-arrow-down:before{content:"\E003"}.icon-arrow-left:before{content:"\E004"}.icon-arrow-right:before{content:"\E005"}.icon-arrow-up:before{content:"\E006"}.icon-back:before{content:"\E007"}.icon-bag:before{content:"\E008"}.icon-beautiful:before{content:"\E009"}.icon-big-circle:before{content:"\E00A"}.icon-bookmark:before{content:"\E00B"}.icon-browse-history:before{content:"\E00C"}.icon-cart-rmb:before{content:"\E00D"}.icon-cart:before{content:"\E00E"}.icon-circle-selected:before{content:"\E00F"}.icon-circle:before{content:"\E010"}.icon-clean:before{content:"\E011"}.icon-clock:before{content:"\E012"}.icon-close-round:before{content:"\E013"}.icon-close-round2:before{content:"\E014"}.icon-close:before{content:"\E015"}.icon-cross:before{content:"\E016"}.icon-deliver:before{content:"\E017"}.icon-dress:before{content:"\E018"}.icon-filter-brand:before{content:"\E019"}.icon-filter-checked:before{content:"\E01A"}.icon-filter:before{content:"\E01B"}.icon-function-home:before{content:"\E01C"}.icon-global:before{content:"\E01D"}.icon-gps:before{content:"\E01E"}.icon-heart-ed:before{content:"\E01F"}.icon-heart-empty:before{content:"\E020"}.icon-home:before{content:"\E021"}.icon-icon-screen:before{content:"\E022"}.icon-life:before{content:"\E023"}.icon-list:before{content:"\E024"}.icon-location:before{content:"\E025"}.icon-man:before{content:"\E026"}.icon-maternal:before{content:"\E027"}.icon-member:before{content:"\E028"}.icon-message:before{content:"\E029"}.icon-minus:before{content:"\E02A"}.icon-more:before{content:"\E02B"}.icon-multiple-choice-normal:before{content:"\E02C"}.icon-multiple-choice-selected:before{content:"\E02D"}.icon-new-logo:before{content:"\E02E"}.icon-notification:before{content:"\E02F"}.icon-online-service:before{content:"\E030"}.icon-orders:before{content:"\E031"}.icon-outdoor:before{content:"\E032"}.icon-pay:before{content:"\E033"}.icon-phone:before{content:"\E034"}.icon-plus:before{content:"\E035"}.icon-punctuation:before{content:"\E036"}.icon-quality:before{content:"\E037"}.icon-question-mark:before{content:"\E038"}.icon-refresh:before{content:"\E039"}.icon-right-circle:before{content:"\E03A"}.icon-right:before{content:"\E03B"}.icon-rmb:before{content:"\E03C"}.icon-rmb2:before{content:"\E03D"}.icon-safe:before{content:"\E03E"}.icon-search:before{content:"\E03F"}.icon-service:before{content:"\E040"}.icon-share-link:before{content:"\E041"}.icon-share-pengyou:before{content:"\E042"}.icon-share-qq:before{content:"\E043"}.icon-share-qzone:before{content:"\E044"}.icon-share-sina:before{content:"\E045"}.icon-share-weixin:before{content:"\E046"}.icon-share:before{content:"\E047"}.icon-spot:before{content:"\E048"}.icon-star-checked:before{content:"\E049"}.icon-star-normal:before{content:"\E04A"}.icon-success:before{content:"\E04B"}.icon-time:before{content:"\E04C"}.icon-tuan:before{content:"\E04D"}.icon-up:before{content:"\E04E"}.icon-vip-close:before{content:"\E04F"}.icon-vip-v:before{content:"\E050"}.icon-warning:before{content:"\E051"}.vip-1px,.vip-1px-b,.vip-1px-golden,.vip-1px-haitao,.vip-1px-l,.vip-1px-r,.vip-1px-red,.vip-1px-t{position:relative}.vip-1px:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #e7e7e7;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100}.vip-1px-t:before{top:0;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.vip-1px-b:after,.vip-1px-t:before{content:"";position:absolute;left:0;width:100%;height:1px;background-color:#e7e7e7;z-index:100}.vip-1px-b:after{bottom:0;-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.vip-1px-l:before{left:0;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.vip-1px-l:before,.vip-1px-r:after{content:"";position:absolute;top:0;height:100%;width:1px;background-color:#e7e7e7;z-index:100}.vip-1px-r:after{right:0;-webkit-transform-origin:right top;transform-origin:right top;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.vip-1px-haitao{border-radius:100px}.vip-1px-haitao:after{border-radius:inherit;border:1px solid #6c5eab}.vip-1px-golden:before,.vip-1px-haitao:after{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;left:0;top:0;width:200%;height:198%;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100}.vip-1px-golden:before{border-radius:inherit;border:1px solid #f79200}.vip-1px-red:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #de3d96;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;font-weight:400;vertical-align:middle}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}button,html,input,select,textarea{font-family:PingFangSC-Regula,Helvetica Neue,Helvetica,microsoft yahei,sans-serif}body,html{background-color:#fff}body{-webkit-text-size-adjust:none!important;font-size:12px;margin:0 auto;font-family:PingFangSC-Regula,Helvetica Neue,Helvetica,microsoft yahei,sans-serif}a{color:#555;text-decoration:none}.f-left{float:left}.f-right{float:right}.clearfix{zoom:1;clear:both}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.p-relative{position:relative}.p-absolute{position:absolute}.hide,.none{display:none}.show{display:block}img{vertical-align:middle}img:not([src]),img[src=""]{opacity:0}.vip-red{color:#e80080}a,button,div,em,i,input,li,p,section,span,ul{-webkit-tap-highlight-color:rgba(255,0,0,0)}.container-fluid{max-width:10rem;margin:0 auto}.indicator{line-height:40px;font-size:12px;color:#98989f;text-align:center}.page-footer__btn-wrap,.popup-footer__btn-wrap{background-color:#fff;padding:10px 15px;border-top:1px solid #e7e7e7}.page-footer__btn-wrap{margin-top:20px}.border-t{border-top:1px solid #ccc}.border-b,.border-tb{border-bottom:1px solid #ccc}.border-tb{border-top:1px solid #ccc;background-image:none}.border-l{border-left:1px solid #ccc}.border-r{border-right:1px solid #ccc}.border,.border-radius{border:1px solid #ccc}.border-radius{border-radius:2px}@media screen and (-webkit-min-device-pixel-ratio:2){.border-radius{position:relative;border:0}.border-radius:before{content:"";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid #ccc;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;pointer-events:none}}@media screen and (-webkit-min-device-pixel-ratio:2){.border-b,.border-l,.border-r,.border-t,.border-tb{border:0}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-t{background-position:0 0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-b,.border-t{border:0;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px}.border-b{background-position:0 100%;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-tb{border:0;background-position:top,bottom;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l{background-position:0 0;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(270deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l,.border-r{border:0;background-repeat:repeat-y;-webkit-background-size:1px 100%;background-size:1px 100%}.border-r{background-position:100% 0;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(90deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border{position:relative;border:0}.border:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;-webkit-background-size:100% 1px,1px 100%,100% 1px,1px 100%;background-size:100% 1px,1px 100%,100% 1px,1px 100%;background-repeat:no-repeat;background-position:top,100%,bottom,0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0),linear-gradient(270deg,transparent 50%,#ccc 0),linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(90deg,transparent 50%,#ccc 0)}}.page-loading{width:50px;height:50px;background-color:#fff;border-radius:25px;text-align:center;font-size:0;margin-left:-25px;margin-top:-25px;left:50%;z-index:1550;top:43%;position:fixed;vertical-align:middle}.page-loading:after{content:"";display:inline-block;height:100%;width:0;overflow-y:hidden;vertical-align:middle}.page-loading-progress{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:10 150.796;-webkit-animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite;animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite}.page-loading-text{text-anchor:middle;font:21px/1 Helvetica}.page-loading-curve .page-loading-progress{-webkit-animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite;animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite}@-webkit-keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}body.vip-prevent-scroll{position:fixed;overflow:hidden;left:0;right:0}.vip-mask[data-v-05192920]{top:0;left:0;right:0;bottom:0;background-color:#000;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .5s ease-in;transition:opacity .5s ease-in;z-index:1450}.popup[data-v-05192920],.vip-mask[data-v-05192920]{position:fixed;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;opacity:0}.popup[data-v-05192920]{border-radius:.48rem .48rem 0 0;overflow:hidden;background-color:transparent;-webkit-transition:all .5s;transition:all .5s;pointer-events:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;z-index:1470}.popup-header[data-v-05192920]{border-radius:.48rem .48rem 0 0;position:relative}.popup-header__inner[data-v-05192920]{border-bottom:.02667rem solid #e7e7e7;height:1.54667rem;line-height:1.54667rem;font-size:.48rem}.popup-title[data-v-05192920]{color:#222;text-align:center}.popup .close-btn[data-v-05192920]{position:absolute;top:0;right:.4rem}.popup-content[data-v-05192920]{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative;overflow-y:auto;overflow-x:hidden;height:100%;-webkit-overflow-scrolling:touch}.popup-left[data-v-05192920]{-webkit-transform:translate(-100%);transform:translate(-100%);left:0;top:0;height:100%}.popup-right[data-v-05192920]{-webkit-transform:translate(100%);transform:translate(100%);right:0;top:0;height:100%}.popup-bottom[data-v-05192920]{-webkit-transform:translateY(100%);transform:translateY(100%);right:0;bottom:0}.popup-show[data-v-05192920]{pointer-events:auto;-webkit-transform:translate(0);transform:translate(0);opacity:1}.popup-center[data-v-05192920]{z-index:1480;position:fixed;top:50%;left:50%;opacity:0;-webkit-transform:translate(-50%,-50%) scale(.95);transform:translate(-50%,-50%) scale(.95);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:-webkit-transform .1s;transition:-webkit-transform .1s;transition:transform .1s;transition:transform .1s,-webkit-transform .1s;pointer-events:none}.popup-center [data-v-05192920]{pointer-events:none}.popup-center.popup-show[data-v-05192920]{opacity:1;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);pointer-events:auto}.popup-center.popup-show [data-v-05192920]{pointer-events:auto}.pop-no-radius[data-v-05192920]{border-radius:0}.vip-button{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;font-size:0;outline:0;padding:0;margin:0;line-height:1}.vip-button .text-box{font-size:.37333rem;text-align:left}.vip-button .icon,.vip-button .text-box{display:inline-block;vertical-align:middle}.vip-button--radius-default{border-radius:.58667rem}.vip-button--radius-small{border-radius:.16rem}.vip-button--radius-mini{border-radius:.08rem}.vip-button.is-plain{background-color:#fff}.vip-button-default{background-color:#caccd2}.vip-button-default.is-plain{color:#585c64}.vip-button-default.is-plain:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #585c64;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100;border-radius:.58667rem}.vip-button-info{background-color:#f3f4f5;color:#222}.vip-button-primary{background-color:#f03867}.vip-button-primary.is-plain{color:#f03867}.vip-button-primary.is-plain:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #f03867;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100;border-radius:.58667rem}.vip-button-dark-primary{background-color:#ce2d56}.vip-button-danger{background-color:#f03867}.vip-button-danger.is-plain{background-color:#fff0f7;color:#d73f83}.vip-button-normal-a{height:.8rem;width:1.92rem}.vip-button-normal-b{width:2.53333rem;height:.96rem}.vip-button-small{width:1.70667rem;height:.64rem;font-size:.32rem}.vip-button-small .text-box{font-size:.32rem}.vip-button-mini{height:.4rem;padding:0 .10667rem}.vip-button-mini,.vip-button-mini .text-box{font-size:.26667rem}.vip-button-large{width:2.77333rem;height:1.12rem;font-size:.42667rem}.vip-button-large-full{width:9.2rem;height:1.12rem;font-size:.42667rem;border-radius:.16rem}.vip-button-flex-small{padding:.16rem .32rem;font-size:.32rem}.vip-button-flex-small .text-box{font-size:.32rem}.vip-button-flex-normal{margin:0 .10667rem;width:100%;height:1.17333rem;font-size:.42667rem}.vip-button-flex-normal .text-box{font-size:.42667rem}.vip-button:disabled{background-color:#caccd2;opacity:.6}.vip-button:disabled.is-plain{color:#caccd2;background-color:#fff}.vip-button:disabled.is-plain:before{content:"";-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:inherit;position:absolute;left:0;top:0;width:200%;height:198%;border:1px solid #caccd2;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(.5);transform:scale(.5);z-index:100;border-radius:.58667rem}.font-label-container[data-v-f573761e]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.font-label-container.justify-center[data-v-f573761e]{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.font-label-container.justify-start[data-v-f573761e]{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.font-label-container.justify-end[data-v-f573761e]{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.font-label-container span[data-v-f573761e]{text-decoration:inherit;text-overflow:ellipsis}.font-label-container span.ellipsis[data-v-f573761e]{overflow:hidden}.font-label-container span.line-clamp1[data-v-f573761e]{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.font-label-container span.line-clamp2[data-v-f573761e]{width:100%;word-break:break-all;text-overflow:ellipsis;white-space:normal;display:-webkit-box; + /*! autoprefixer: off */-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.label-android-smfont-center[data-v-f573761e]:before{content:"";display:block;vertical-align:middle;width:0;height:100%;margin-top:.05333rem}.label-smfont-center[data-v-f573761e],.label-smfont-left[data-v-f573761e],.label-smfont-right[data-v-f573761e]{display:inline-block;white-space:nowrap;overflow:visible;-webkit-box-sizing:border-box;box-sizing:border-box}.label-smfont-left[data-v-f573761e]{-webkit-transform-origin:0 50%;transform-origin:0 50%}.label-smfont-center[data-v-f573761e]{-webkit-transform-origin:50% 60%;transform-origin:50% 60%}.label-smfont-right[data-v-f573761e]{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.support-cookie-win .dialog-body{line-height:1.5}.wap-eggs[data-v-53053184]{position:fixed;z-index:2010;left:0;top:0;right:0;bottom:0;background:#fff;padding:.26667rem;font-size:.32rem;line-height:1.5em;overflow-x:hidden;overflow-y:scroll;-webkit-box-sizing:border-box;box-sizing:border-box;padding-bottom:1.6rem;word-wrap:break-word;-webkit-overflow-scrolling:touch;will-change:scroll-position}.wap-eggs .wap-eggs-title[data-v-53053184]{font-weight:700}.wap-eggs .wap-eggs-clear-btn[data-v-53053184]{display:inline-block;color:#fff;border:.02667rem solid #efefef;border-radius:.05333rem;background:rgba(0,0,0,.5);padding:.05333rem .10667rem}.wap-eggs .wap-eggs-content[data-v-53053184]{padding-bottom:.26667rem}.wap-eggs .wap-eggs-copy[data-v-53053184],.wap-eggs .wap-eggs-hide[data-v-53053184]{color:#fff;border:.02667rem solid #efefef;border-radius:.13333rem;margin:.26667rem;background:rgba(0,0,0,.5);position:fixed;bottom:0;padding:.26667rem .53333rem}.wap-eggs .wap-eggs-copy[data-v-53053184]{left:0}.wap-eggs .wap-eggs-hide[data-v-53053184]{right:0}.page-loading[data-v-e35befe6]{width:1.33333rem;height:1.33333rem;background-color:#fff;border-radius:.66667rem;text-align:center;font-size:0;margin-left:-.66667rem;margin-top:-.66667rem;left:50%;z-index:1450;top:43%;position:fixed;vertical-align:middle}.page-loading[data-v-e35befe6]:after{content:"";display:inline-block;height:100%;width:0;overflow-y:hidden;vertical-align:middle}.page-loading-progress[data-v-e35befe6]{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:10 150.796;-webkit-animation:loadingLinearLine-data-v-e35befe6 linear 2s infinite,loadingLinearSpin-data-v-e35befe6 linear 2s infinite;animation:loadingLinearLine-data-v-e35befe6 linear 2s infinite,loadingLinearSpin-data-v-e35befe6 linear 2s infinite}.page-loading-text[data-v-e35befe6]{text-anchor:middle;font:.56rem/1 Helvetica}.page-loading-curve .page-loading-progress[data-v-e35befe6]{-webkit-animation:loadingCurveLine-data-v-e35befe6 linear 2s infinite,loadingCurveSpin-data-v-e35befe6 linear 2s infinite;animation:loadingCurveLine-data-v-e35befe6 linear 2s infinite,loadingCurveSpin-data-v-e35befe6 linear 2s infinite}@-webkit-keyframes loadingLinearLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine-data-v-e35befe6{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin-data-v-e35befe6{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .5s;transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0}.dialog-wrapper{position:relative;width:100%;height:0;z-index:1510}.dialog-wrapper .dialog{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:7.2rem;z-index:1510;font-size:.37333rem;text-align:center;border-radius:.08rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:fixed;left:50%;top:50%;overflow:hidden;background-color:#fff;-webkit-box-shadow:0 0 .13333rem .02667rem rgba(0,0,0,.3);box-shadow:0 0 .13333rem .02667rem rgba(0,0,0,.3);min-width:1.92rem;min-height:.48rem;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box}.dialog-wrapper .dialog .border-t{border-top:.02667rem solid #ccc}@media screen and (-webkit-min-device-pixel-ratio:2){.dialog-wrapper .dialog .border-t{border:0;background-position:0 0;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}.dialog-wrapper .dialog img{width:100%;vertical-align:middle}.dialog-wrapper .dialog.popup{padding:0}.dialog-wrapper .dialog .dialog-title{padding:.53333rem .4rem 0;line-height:.42667rem;font-size:.42667rem;font-weight:700;color:#000;text-align:center}.dialog-wrapper .dialog .dialog-body{padding:.4rem;font-size:.42667rem;white-space:pre-line}.dialog-wrapper .dialog .dialog-body.left{text-align:left}.dialog-wrapper .dialog .dialog-foot{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.dialog-wrapper .dialog .dialog-foot:empty{border:none}.dialog-wrapper .dialog .dialog-foot button{display:block;color:#1b81fb;background-color:transparent;border:none;outline:0;font-size:.42667rem;padding:.32rem 0;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dialog-wrapper .dialog .dialog-foot button:nth-child(2){background-position:0 0;background-repeat:repeat-y;-webkit-background-size:.02667rem 100%;background-size:.02667rem 100%;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(270deg,transparent 50%,#dbdbdb 0)}.dialog-wrapper .dialog .dialog-foot button:active{background-color:#eee}.dialog-wrapper .mask{position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:1500}.error-retry-container[data-v-eae38f38]{text-align:center}.error-retry-container img[data-v-eae38f38]{height:6.08rem;width:9.38667rem}.error-retry-container .error-text[data-v-eae38f38]{font-size:.48rem;padding:.64rem 0 1.01333rem}.error-retry-container .error-code[data-v-eae38f38]{font-size:.37333rem;color:#98989f;padding:.64rem 0 1.01333rem}.error-retry-container .button button[data-v-eae38f38]{height:auto;width:4.93333rem;line-height:1;font-size:.42667rem;padding:.29333rem 0;background-color:transparent;color:#e4007f;border:.02667rem solid #e4007f}.sticky-box-container{z-index:1270}.sticky-box-container.sticky{width:100%;position:-webkit-sticky;position:sticky;top:0}.sticky-box-container .sticky-box{position:relative;z-index:1270;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.sticky-box-container .sticky-box.fixed{width:100%;position:fixed;top:0}.sticky-box-container .sticky-box.fixed+.sticky-fill{display:block}.sticky-box-container .sticky-box.fixed__bottom{width:100%;position:fixed;bottom:0}.sticky-box-container .sticky-box.fixed__bottom+.sticky-fill{display:block}.sticky-box-container .sticky-fill{display:none}.download-container div.download-fixed[data-v-453cdfc0]{position:fixed;top:0;left:0;right:0}.download-container div.download-footer-fixed[data-v-453cdfc0]{position:fixed;top:1.33333rem;left:0;right:0}.download-container.has-developer-info div.download-footer-fixed[data-v-453cdfc0]{top:1.73333rem}.download-container .download-footer[data-v-453cdfc0]{z-index:1260;position:relative;-webkit-transform:translate(0);transform:translate(0)}.download-container .download-footer-animation[data-v-453cdfc0]{-webkit-transition:top .3s ease-in;transition:top .3s ease-in}.download-container .download-bar-place-holder[data-v-453cdfc0]{height:1.73333rem}.download-container .u-download-bar-wrap[data-v-453cdfc0]{position:relative;z-index:1260}.download-container .u-download-bar[data-v-453cdfc0]{position:relative;z-index:1260;height:1.33333rem;background:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/download-banner.9c5f7be.jpg);-webkit-background-size:cover;background-size:cover}.download-container .u-download-bar .download-text[data-v-453cdfc0]{position:absolute;left:0;top:50%;right:0;line-height:.53333rem;padding:0 2.66667rem;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0);font-weight:lighter;color:#fff}.download-container .u-download-bar .download-text .content[data-v-453cdfc0],.download-container .u-download-bar .download-text .title[data-v-453cdfc0]{font-family:PingFangSC-Regular;width:100%;overflow:hidden;white-space:nowrap;text-overflow:clip}.download-container .u-download-bar .download-text .title[data-v-453cdfc0]{font-size:.34667rem;word-break:break-all}.download-container .u-download-bar .download-text .content[data-v-453cdfc0]{font-size:.26667rem;opacity:.7}.download-container .u-download-bar .download-btn[data-v-453cdfc0]{position:absolute;right:0;top:0}.download-container .u-download-bar .download-close[data-v-453cdfc0]{position:absolute;left:0;top:0;width:.64rem;height:.64rem;z-index:4;font-size:.32rem;color:hsla(0,0%,100%,.6)}.download-container .u-download-bar .icon-close[data-v-453cdfc0]:before{margin-top:.10667rem;margin-left:.10667rem;display:inline-block}.download-container .u-download-info[data-v-453cdfc0]{line-height:.4rem;height:.4rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:0 .66667rem;color:#222;background-color:#fff;position:relative}.download-container .u-download-info__href[data-v-453cdfc0]{position:absolute;right:0;top:0}.dialog-wrapper .launch-weapp .dialog-foot button{position:relative}.dialog-wrapper .launch-weapp .dialog-foot #launch-btn{z-index:10;position:absolute;top:0;right:0;left:0;bottom:0;background:transparent}.wakeup-bar-container[data-v-8cea33a8]{position:relative}.wakeup-bar-container .wakeup-bar-wrap[data-v-8cea33a8]{position:fixed;top:0;left:0;right:0;color:#fff;font-size:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:1.33333rem;background-color:#232227;z-index:1260}.wakeup-bar-container .wakeup-bar-wrap .left[data-v-8cea33a8]{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-size:.32rem;overflow:hidden}.wakeup-bar-container .wakeup-bar-wrap .left div[data-v-8cea33a8]{display:inline-block}.wakeup-bar-container .wakeup-bar-wrap .left .close-btn-wrap[data-v-8cea33a8]{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transform:translateY(-50%) scale(.8);transform:translateY(-50%) scale(.8);margin-left:.13333rem;width:.45333rem;height:.45333rem;line-height:.45333rem;text-align:center}.wakeup-bar-container .wakeup-bar-wrap .left .close-btn-wrap i[data-v-8cea33a8]{font-size:.34667rem}.wakeup-bar-container .wakeup-bar-wrap .left .new-logo-wrap[data-v-8cea33a8]{margin-left:.98667rem;width:1.01333rem;height:1.01333rem;line-height:.93333rem;text-align:center;background-color:#e90684;border-radius:.21333rem;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wakeup-bar-container .wakeup-bar-wrap .left .new-logo-wrap i[data-v-8cea33a8]{display:inline-block;font-size:.32rem;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%) scale(.9);transform:translate(-50%,-50%) scale(.9)}.wakeup-bar-container .wakeup-bar-wrap .left .description[data-v-8cea33a8]{margin-left:2.45333rem;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wakeup-bar-container .wakeup-bar-wrap .left .description p[data-v-8cea33a8]{line-height:.53333rem;font-size:.37333rem;color:#fff;font-weight:700}.wakeup-bar-container .wakeup-bar-wrap .left .description p[data-v-8cea33a8]:last-child{font-size:.32rem;line-height:.42667rem;color:#e80583;font-weight:400}.wakeup-bar-container .wakeup-bar-wrap .wakeup-btn[data-v-8cea33a8]{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:2.50667rem;height:1.33333rem;line-height:1.33333rem;font-size:.37333rem;text-align:center;letter-spacing:.05333rem;overflow:hidden;background-color:#e90684}.wakeup-bar-container .wakeup-bar-wrap-placeholder[data-v-8cea33a8]{position:relative;height:1.33333rem;width:100%}.wakeup-bar-container .wakeup-fixed-right-btn[data-v-8cea33a8]{position:fixed;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAAA8CAMAAAD8BbCIAAABdFBMVEUAAADeAH3fAHzfAHzeAHzgAHzfAH/fAH/gAIXoAIPeAHzfAHzfAH3eAH3fAHzmAID/AJLgAH7eAHzjAH7hAH3////VAHbWAHfXAHfbAHrXAHjaAHjfBn/zpdDfAHr85/P//P7aAXnfDIHZAHbeAHj+9fr+9fnlKZLXAHPtfLvymsvvcbfrbrPqaLHcAHjaAHT97vf1uNruisLsc7bdAXvwmsrxkMbZAHjcAHX2stfjGYngEIPYAHT4yeP3yOLwjsTpTaPjQJviOZfhFYfgCIH63O33w+Dzq9Pxos7xi8Psd7jqWKnnQJzcEYL75PH50+j2wN3wlMfsgr3pY67oX6vmXKjkS5/aGITkAH/bCX34zuX0n87mTaHfMpLkJo/kCoPjBoH0qNLwhMDoVafrUKbbAHD98vn0r9XnUaTqSKLmJJDeI4vlE4f96/X3wd71u9zXCXv+9/v61urlQ53nNZjkLpPfKY7eG4fdAHrlR5/iH4z5z+aAFMLhAAAAEnRSTlMA+qLHw3FHPxkV8Ozfs3kKB0Frao2tAAAF60lEQVRo3tSW60/aUBTA2dzb13bL+UDWx13TltBCKYINlIBogQUhEIcmiyyAvESjGBQy1H9+t634yNT5rd0v7em5ST/8cnLuudf3OKvvVl4vLC2+Qh7lMeePb9941vdJ7ffLXnd+RPvLG/Q/8FD6w2t0Ax0sl4oFSSoUS+UgjbzGA+t3n5BNPpeBB2RyeeQp7lu/RTa8DgBiSjk6Pmm3T46PlJQIADqPPMSd9GenQWgFQGv0WtQ9Wr2GBqB4qFfupt6Cvc6JIHVa1E8HomylJLQ6Eog55BVua+1YbwCWDepRDBnDBvIIc227Q+gRVCfUk0yqMPJIo9zfjSYHGYN6BiMDnIm8wM3ks1KaA6ZNPUubAc4T9XZOGXtej4ChKD/l99uGdvx7zcAIeYC7xt6AbN7/T/JZT+xL+/JkJTmoGv4XYFTBA3PQ0rZuT7SIJ/4XMcGi++09L7YCsmPFksdJ5vgdbjMZFOQ2RHuZfHiQDFYQBNYfNPJNu8ebQYdmmrWkydpwvA0JXL+fkFP9Ffno0GGNcFyphLRJZTxNsqypVfctajgiIMSyITw4rZCM0AEduYxz0uRB44UKXJ9yOBNisLxtCuY4bEmyVyLRZoU4xCbnmuOd1iCP3MXZkDloIKHCpXe4c67zHTdClnakLxAMkegLEbxv9q9qN/VuuD5MfKtWj2Sgh1SiLcvMfr8yDvZnMxM3ht1ut/cDyqpax9AZdoch0Coq+b0HGeQu9rlOg9iaa2vrZzi1Y8x4mWGYA/LGabUONZIfkFVWy80Qaong8gz0rZAQhBQ11+bCMtYjaXTVnE6bPInNplku55MOqDsk/1MpCCJXsQ/2MihUQt3k0uvywXX/Yjztz8zqaG2H2y1k13SuzEfCkXDcps7PEglKgTJyFd8CCSU4srX5HZkZMEV8JpvpQbxPn0e4TjRR2zVKBxDb0HW9tFYyVaJ9BCXkKr4lEopwbGmfNmMyU+2u4dCQTw+2o/x5nWjTtXoyGpaukqqanO6qgQTRPoYichXfIgkFOKECyS18Ohgy19FfeCupWtVGVrX7aq0e5QupBOHblnT5NRAIUCdQQK7is+afBG0qoPKbF8HoIY7tjzOHv9Pi4V5ocKnF9ralzegucMUsoQaRpKXdBgm5yZ02sfnTrdW1tg1D0b1trys4lWVCp+pFAZvOzlwtVGuwobVncGI7/sDFfgiBpWDahAUS8u8np/EgW9P1bXIPln3lp4PQ1z3n4q8K7purlbWy8nPTcRxt91ZltO15vR0m57IYtH9Pkj2UHepAVvDuB+aNXdRg7EKWxZgkzZL8g7LMCTL+wbmM5S81W+WC5QrDiIcCLMlmA+S8/Oi7YVzOFIRiNUmDMNkocjq3bWNR+Iqy1ibjaHIvywgJsAE2xw1CuPppVxvTxQqadg29uwgKli8+R0V3PPEpKjzvR+hpvoKQAMdNc7hz2ptx1FeDPlPQXB8G+u11yipDj7XpnWphpLqG4XpjHiEBDvfmKkUprjQvUdUyp2ge2YPBXLeZv9HjbaqGawzWw6Gl+/0SUyrAVaq5uFLKHPcxdsy7lKGp3lMfHRtT330wL8PbM/4vDc3iW5nllFIBLq5NmgAp0UvDm/vujKCu5y7chzDFeRnYvW08oNjvReHNp4VhYQoFSBOapCyHRPcGmh4HKdmYybCyb6wMYBjYVmw4BMIqNczESXwAcxGSsn0KHEGQqol/r81ykK3XK7Ls5RgC2K9IZdgAokmyhsRPSgAjEVLgRnDIYIcQQHiDAIAOhDzgqLuE1QE5rcNTmAkhODTyjgkAfAIAu3asb4oh7zRiWglehVIQMe3dxzoopFF2+gpkI6k4+e84EIqX/2a9FEco3svygeQ+Uet06lY/f/ddKTgRAIcmiLvsvIilK5IJsrecrs6k6+wl1tm1dHZ1IgIODb5AGpXHWZcjKRBirJ+zU83syFCbAtqpjXldcPM6Wj4zqyNuXguw872RUoG2Fma0tgymrUVHHO/bWOLV2oK6Gh/aWL7YimLRX4Vrzc+N+XouAAAAAElFTkSuQmCC) 50% no-repeat;-webkit-background-size:contain;background-size:contain;width:2.42667rem;height:.8rem;right:0;top:45%;z-index:1260;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 .26667rem 0 .8rem;text-align:center;line-height:.8rem;color:#fff;font-size:.32rem}.vui-loading-container[data-v-d94f9d8a]{position:relative;z-index:1550}.vui-loading-container .vui-mask[data-v-d94f9d8a]{position:fixed;z-index:1550;top:0;right:0;left:0;bottom:0}.vui-loading-container.vui-loading-no-text .vui-toast[data-v-d94f9d8a]{min-height:2.61333rem}.vui-loading-container .vui-toast[data-v-d94f9d8a]{position:fixed;width:3.22667rem;min-height:3.22667rem;line-height:1.6;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:1550;top:6.53333rem;left:50%;background:hsla(0,0%,7%,.7);text-align:center;border-radius:.13333rem;color:#fff}.vui-loading-container .vui-toast .vui-loading[data-v-d94f9d8a]{margin:.8rem 0 0;width:1.01333rem;height:1.01333rem;vertical-align:baseline;display:inline-block;-webkit-animation:weuiLoading-data-v-d94f9d8a 1s steps(12) infinite;animation:weuiLoading-data-v-d94f9d8a 1s steps(12) infinite;background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat;-webkit-background-size:100% 100%;background-size:100%}.vui-loading-container .vui-toast .vui-toast-content[data-v-d94f9d8a]{font-size:.42667rem;letter-spacing:.02667rem;margin:0 0 .4rem}.vui-mask-enter-active[data-v-d94f9d8a],.vui-mask-enter[data-v-d94f9d8a],.vui-mask-leave-active[data-v-d94f9d8a]{position:relative;z-index:1}.vui-mask-enter[data-v-d94f9d8a],.vui-mask-leave-active[data-v-d94f9d8a]{opacity:0}.vui-mask-enter-active[data-v-d94f9d8a],.vui-mask-leave-active[data-v-d94f9d8a]{-webkit-transition:opacity .3s;transition:opacity .3s}@-webkit-keyframes weuiLoading-data-v-d94f9d8a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes weuiLoading-data-v-d94f9d8a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.vip-backtop[data-v-9e47b6c0]{position:fixed;right:.4rem;bottom:2.02667rem;width:1.17333rem;height:1.17333rem;background-color:rgba(34,34,34,.9);border-radius:50%;z-index:1240;text-align:center;line-height:1.17333rem;font-size:0}.vip-backtop .icon-up[data-v-9e47b6c0]{font-size:.56rem;color:#fff}.u-shopbag[data-v-3f94e833]{position:fixed;bottom:.6rem;left:.4rem;min-width:1.2rem;height:1.2rem;z-index:1350;background-color:rgba(25,29,38,.95);border-radius:.6rem}.u-shopbag.add-bottom[data-v-3f94e833]{bottom:2.28rem}.u-shopbag.add-bottom2[data-v-3f94e833]{bottom:3.57333rem}.u-shopbag a[data-v-3f94e833]{display:block;position:relative;width:100%;height:100%}.u-shopbag .i-flow-carticon[data-v-3f94e833]{display:block;float:left;width:1.12rem;height:1.2rem;line-height:1.2rem;font-size:.6rem;text-align:center;color:#fff}.u-shopbag .u-flow-cartnum[data-v-3f94e833]{position:absolute;left:.64rem;top:.16rem;width:.37333rem;height:.37333rem;font-style:normal;text-align:center;line-height:.37333rem;background-color:#fbe943;border-radius:.18667rem;color:#4c1f02;font-size:.32rem;display:none}.u-shopbag.show-cart[data-v-3f94e833]{background:rgba(228,52,148,.9)}.u-shopbag.show-cart .u-flow-cartnum[data-v-3f94e833],.u-shopbag.show-cart .u-flow-carttime[data-v-3f94e833]{display:inline-block}.u-shopbag .u-flow-carttime[data-v-3f94e833]{font-size:0;line-height:1.2rem;font-style:normal;padding-right:.32rem;color:#fff;display:none}.u-shopbag .u-flow-carttime span[data-v-3f94e833]{font-size:.48rem}.m-common-footer[data-v-94ea3856]{width:100%;overflow:hidden;background-color:#f3f4f5;font-size:.37333rem}.m-common-footer a[data-v-94ea3856]{color:#585c64}.m-common-footer .footer-list[data-v-94ea3856]{overflow:hidden;padding:.53333rem 0}.m-common-footer .footer-list li[data-v-94ea3856]{float:left;width:25%;text-align:center}.m-common-footer .footer-list li:last-child a[data-v-94ea3856]{border-right:0}.m-common-footer .footer-list li a[data-v-94ea3856]{display:block;border-right:.02667rem solid #ccc}.m-common-footer .footer-list span[data-v-94ea3856]{display:block;line-height:.504rem}.m-common-footer .footer-list .u-icon[data-v-94ea3856]{display:inline-block;position:relative;width:.98667rem;height:.98667rem;font-size:.98667rem;color:#ff5cae;font-weight:100}.m-common-footer .footer-nav[data-v-94ea3856]{overflow:hidden;padding:.26667rem .26667rem 0}.m-common-footer .footer-nav a[data-v-94ea3856]{font-size:.37333rem;color:#585c64;padding:0 .13333rem}.m-common-footer .copyright[data-v-94ea3856]{overflow:hidden;line-height:.53333rem;padding:.4rem 0 0;text-align:center;font-size:.32rem;color:#ccc}.m-common-footer .psb[data-v-94ea3856]{margin-top:.53333rem;font-size:.32rem;text-align:center}.m-common-footer .psb p[data-v-94ea3856]{margin:0 0 0 .13333rem;height:.53333rem;line-height:.53333rem;font-size:.32rem;color:#ccc}.m-common-footer .psb a[data-v-94ea3856]{text-align:center;color:#ccc}.m-common-footer .psb .psb-sign[data-v-94ea3856]{display:inline-block;vertical-align:middle;width:.53333rem;height:.53333rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAFDklEQVQ4EQXBbWwbZwHA8f89dz6fz2/nxLFj4tI1jdamrG1GW2AjpFuH9oLaMIJUVoQQQ2VMoDGB2AfQ+DCND+NLJaZpgMqQ6NQPwJAm2qqsy4LY1ooOphbaqi9Zmqax0zSx49hn34vPdw+/nyKlBKcDQIRAyAhXr5CIDQLtQefmhcl/nP7393y3pz/06M6jfTt2vA3DFd+XxF0XhAIIAMikUaSUBE4TFIkIJaqeA95/ePb0mWfP/v3GpHRnjUXfRM1ZbMwbuDWzN/7I8InRA1N/kOE9J6XfRioKIFGzQwiAlmLTlutIMwe6Z8z85o2Zbz8zfbDtLRj3plQOG3d51ljkwQeK9D1Q1A4/8+7Xzrz6ygklocYdXcHjPwTaxwAIAFSBUDNool72L7z8zq+PNzl0eJjvlFtkf3eF+vWQ+lxIc/9v+Wp4ieePPcXRvwbI67//S8r0DGGkMJJxAARAyrdJxpujt0++ODex/9KENVLkh/lLzB9vITZYhHYX/AhlwOLcc2c5aF6g+MX7+fL+UwdWP3zjprNwccvV9/4GgACI+y6a907qxPW0/tHSbp7YbdO+2ELcbqJYceJrId7Zu8Q29WO0XWp/PM/UY11mPtnGmx+EpZTSSSDGABAAzdVaOfrXe0ciJQGaQ8ZeorUMsTCANQ9ls4m+y0Lc6aATUZt3GerzQVFotAXxAe3I1vGpTQACYOHau1/vVqvjuZQOvTiyVCI/Pkgbif1gP+GhMqmXxjCf34EYMCnsytNxuiAlpYIJlYsPry2e+y6AADBTudGWHTA84IHRz5nzJtq+DPUDGwmrNsr/Ojin7hLMr6O/ME7fj3fy1rEGkGRsu0ZnbgWvMlcGEADR2tKBVkPjvrJN+XM6r7+Z5J+vVBjbUyJrpnGuNIhWfLxLDdLVdS6/fINXj8UpjllsH2pSq/oEa9fGAQSA0DqW3RJkVm9w8LGQXpAiOLlM/58+RgzF6A6oRAWN/L4SpZmb1I5eptNVmZqMka7PYrc0tLSIAWgACfPT02LLrcmwOMTTn7c5MjTA69VRgsUr9NdnEdkE7pUG9kiBaq7En0UCMhZPf2GFXrqM9RkFM7fhFIAGAKIgW5KlOZv7Ruf55U938eILE5y0t0MrYNKp02cJ3jqVpo0J5PjJDwz2jMyyNAt4DlHP3gmgAWhWd3cvXSRYDqisXOVH43GmppPMnHa4Jnbw+LZPKCVq9E4M0W24bNhq8vPHb3H33C2cwMDI62iWvhVAkVLitz/6Zv38r467y138WgCVBTY/OUa8aEBYJ6xrtFdcspv6YGM/VGrMv30dN50nNZwiMWiSHTm0V8995X1FSglAr/Pfb61dPvJa6LnZ2gfLaEnJ4N5RwjWXwOkgTAOjL4mix6ifm6MXamR3bybwqGe3TDyVtDLTiv4oGkDgLuCuulVvOeEaxShb3DdC2OwQ2i0wdVTdQk9Ad71Np9LA2NiPUS7irzt4VVsmNrRRMxkSgACQ3ZuofPizwmfTg7FcCb8ZEYUaUajirdogI7r1Ju3ZVRQ1BoqCd6dGLCEofqmU1037+5ELAAJAVzPE+/c8aTvZ15xKpaOr62QKPWKKg64EqP460nVJb82TGckg9DZaVkfJDd7uaff/QjPv/YaqrwKgASADlJjmtOrJ59yrxZfc5uoTfrC491PbBrZFtpIyLNGnJdLYd7idGLAcrTBxcW1uZdpdaJwZ2luIFFVFhh4A/wcuIjcTHG3F4QAAAABJRU5ErkJggg==) no-repeat}.u-download-footer .download-text[data-v-5f9185c8]{max-width:100%;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.u-download-footer[data-v-5f9185c8]{height:1.12rem;line-height:1.12rem;padding:.26667rem .4rem;background-color:#f3f4f5;border-bottom:.02667rem solid #ccc;font-size:0}.u-download-footer a[data-v-5f9185c8]{color:#555;text-decoration:none}.u-download-footer .download-logo[data-v-5f9185c8]{display:inline-block;vertical-align:middle;margin:0 .26667rem 0 0;width:1.12rem;height:1.12rem;background:#ea4c88;border-radius:.26667rem;font-size:.32rem;color:#fff;line-height:1.12rem;text-align:center;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e2007e),color-stop(1,#d40075))}.u-download-footer .download-text[data-v-5f9185c8]{display:inline-block;vertical-align:middle;font-size:.37333rem;color:#222}.u-download-footer .download-btn[data-v-5f9185c8]{float:right;margin-top:.21333rem;height:.74667rem;line-height:.74667rem;padding:0 .58667rem;border:.02667rem solid #cf3e8e;border-radius:.05333rem;background-color:#f3f4f5;font-size:.32rem;color:#cf3e8e}.operate[data-v-4bae17a0]{background-color:#fafafa;text-align:center;position:relative}.operate .operate-bg[data-v-4bae17a0]{position:absolute;width:100%;height:100%;left:0;right:0;top:0;bottom:0}.operate .operate-bg img[data-v-4bae17a0]{width:100%;display:block;max-height:100%}.operate .operate-inner[data-v-4bae17a0]{position:relative;z-index:2}.operate .operate-inner .operate-inner-common[data-v-4bae17a0]{float:left;text-align:center}.operate .operate-inner .operate-inner-common .operate-inner-item[data-v-4bae17a0]{width:100%;height:100%;display:block}.operate .operate-inner .operate-inner-common .operate-inner-item img[data-v-4bae17a0]{width:100%;-o-object-fit:contain;object-fit:contain;height:auto}.operate .operate-inner .operate-inner-common .operate-inner-item img[lazy=loading][data-v-4bae17a0]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIBAMAAABfdrOtAAAAGFBMVEX6+vry8vLr6+v4+Pj29vb09PTu7u7w8PBu45v7AAADAUlEQVR42u2ZTW/iMBCGjQzbKwHSnpmW9Gq2ZPeaQNlz3NA7pPtxrbor9e+vHWwsUgVX8uQQaZ5DG0HI6/lybA8jCIIgCIIgCIIgCIIgCIIgCKJH8NVWRlH0vBHMgi8hI0PclQx/1kY8KuqLjHXAUJmx2zwwxcNqq4zRKvga8YadWMkOVLiMduLsg61TQddwKBXc6OfRTHwQzqMdakDsoJvmBTvM/7QRpsPSqPR8gWFILDzfYBiStQerxDJkxlqRMUNhFGWX8q7AqZGLg1VmhuJ3exphhH55+Sk8mrJw5MzrzWC4L7KjcH/5n8ER8iufBd/hR3pLOo2DE7hRiYM/oqVYAxg1ZsAnGOMHZdlw+ARe8YMiG6X2DcTHgcTIVcJ3LS4NEsk+lRyBySXCR+JPrvopG/O0R3Wp/wk2vHl34ZYFQnINIDtGPRFXiRKAbFgBwE9myKcIIkOTt+s5+wJapJiA5q+9K0TEjpFXt0xT3RkRCYdydQ0JTqHk5bEE50eDxkakuhd19b+izF6ytMFQf69AGBEYHw1c4Ihk7Bh5nT9fE2ZEjJ+eEpeDAZgK4LVjJgsrokNUm1aYasIQYZNb7Z29ETGx0BeYIut75RQYW5GCGQP3aCIu5lbETiPVC5aIyV5dit2KMFWOb3es6a4KxV3SikzmOspWZNyISXgxmnIcQHYSqb1kUiG8GHMrMoAfCTuJLM7fxeksdIK0noGFEzGRf5vbuRppsTKB/UnEvEq+wwvW+8SwhrETuYapYKsKslARN/XZcnQiZQWHmwp+udcvzkKCz5kTKZagmIvghUTz9//sWqIuxvQ3HDI3EvQtkBbB3QbJqV9kGQcvuP0i+TR86+AT4bLA3AQ5keYt+Nu50blIGnexMeXv2fkd/dhif+awoB/HHgEHOJhHUVlfDtUCjgexDjrzWPTnyNZz+NynY/TWhoBuRvSrtdHapJl13W7ipt3UdeNM9LEFGNDMDGnLNnzVpwbzqVUe75QEQRAEQRAEQRAEQRAEQRAEQRD94T9cfYUtpey2sgAAAABJRU5ErkJggg==);background-repeat:no-repeat;-webkit-background-size:contain;background-size:contain;background-position:50%}.operate a[data-v-4bae17a0]{width:100%;display:block;position:relative}.operate a.got-coupon>.coupon-signet[data-v-4bae17a0]{position:absolute;top:0;right:0;width:1.46667rem;height:1.41333rem;background:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/got-coupon.26091aa.png) 0 0 no-repeat;-webkit-background-size:cover;background-size:cover}.operate a.no-coupon>.coupon-signet[data-v-4bae17a0]{position:absolute;top:0;right:0;width:1.46667rem;height:1.41333rem;background:url(//h2.vipstatic.com/ms2-m.vipstatic.com/static_v2/img/no-coupon.df353dc.png) 0 0 no-repeat;-webkit-background-size:cover;background-size:cover}.operate .countdown-inner[data-v-683b666f]:after,.operate .countdown-inner[data-v-683b666f]:before{content:"";display:table}.operate .countdown-inner[data-v-683b666f]:after{clear:both}.operate .countdown-normal[data-v-683b666f]{position:absolute;bottom:11.5%;right:4.5333%}.operate .countdown-left[data-v-683b666f]{left:4.5333%}.operate .countdown-right[data-v-683b666f]{left:auto;right:4.5333%}.operate .countdown-center[data-v-683b666f]{width:100%;text-align:center;right:auto;bottom:auto}.operate .countdown-center .countdown-inner[data-v-683b666f]{display:inline-block}.operate .countdown-center.countdown-bottom[data-v-683b666f]{bottom:7.77%}.operate .countdown-top[data-v-683b666f]{top:21.8%}.operate .countdown-bottom[data-v-683b666f]{top:auto;bottom:11.5%}.operate .countdown-vertical-center[data-v-683b666f]{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.operate .countdown-default[data-v-683b666f]{text-align:center}.operate .countdown-default span[data-v-683b666f]{display:inline-block;font-size:.32rem}.operate .countdown-default span[data-v-683b666f]:nth-child(3n){width:.53333rem;text-align:center;font-style:normal;color:#001406}.operate .countdown-default span[data-v-683b666f]:nth-child(3n+1){margin-right:.05333rem}.operate .countdown-default .millisecond[data-v-683b666f],.operate .countdown-default .numbers[data-v-683b666f]{-webkit-box-sizing:border-box;box-sizing:border-box;width:.53333rem;height:.64rem;line-height:.53333rem;color:#fefefe;text-align:center;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b2a26),to(#030007));background-image:linear-gradient(180deg,#2b2a26,#030007);border-radius:.05333rem;border:.02667rem solid #030007;font-weight:400}.operate .countdown-default span.millisecond[data-v-683b666f]{background:#dc1518;border-color:#dc1518;color:#fff}.operate .countdown-normal span[data-v-683b666f]{float:left;font-size:.32rem}.operate .countdown-normal .colon[data-v-683b666f],.operate .countdown-normal .numbers+span[data-v-683b666f]{width:.24rem;text-align:center;line-height:.64rem;height:.64rem;font-style:normal;color:#001406;font-size:.42667rem}.operate .countdown-normal .numbers[data-v-683b666f]{-webkit-box-sizing:border-box;box-sizing:border-box;width:.53333rem;height:.64rem;line-height:.53333rem;color:#fefefe;text-align:center;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b2a26),to(#030007));background-image:linear-gradient(180deg,#2b2a26,#030007);border-radius:.05333rem;border:.02667rem solid #030007;font-weight:400}.operate .countdown-custom[data-v-683b666f]{width:100%;top:28%;bottom:auto;right:0;text-align:center;position:absolute}.operate .countdown-custom .countdown-inner[data-v-683b666f]{display:inline-block}.operate .countdown-custom span[data-v-683b666f]{float:left}.operate .countdown-custom .numbers+span[data-v-683b666f]:not([class=numbers]),.operate .countdown-custom .separate-txt[data-v-683b666f]{font-size:.32rem;width:.37333rem;line-height:.42667rem;margin-top:.26667rem;margin-left:.10667rem;margin-right:.05333rem;color:#fff}.operate .countdown-custom .millisecond[data-v-683b666f],.operate .countdown-custom .numbers[data-v-683b666f]{display:inline-block;width:.66667rem;text-align:center;height:.74667rem;line-height:.74667rem;font-size:.53333rem;color:#000;margin-left:.08rem;border:none;position:relative;border-radius:.05333rem}.operate .countdown-custom .numbers[data-v-683b666f]:first-child{margin-left:0}.operate .countdown-custom span.millisecond[data-v-683b666f]{background-color:#dc1518;color:#fff}.operate .countdown-white .numbers[data-v-683b666f]{background-color:#fff;color:#000}.operate .countdown-white .separate-txt[data-v-683b666f]{color:#525252}.operate .countdown-black[data-v-683b666f]{top:25.6%}.operate .countdown-black .numbers[data-v-683b666f]{background-image:-webkit-gradient(linear,left top,left bottom,from(#2b2a26),to(#030007));background-image:linear-gradient(180deg,#2b2a26,#030007);color:#fff}.operate .countdown-black span.millisecond[data-v-683b666f]{background-image:none;background-color:#dc1518}.operate .countdown-black .separate-txt[data-v-683b666f]{color:#525252}.operate .countdown-black .numbers+span[data-v-683b666f]:not([class=numbers]){color:#151515}@media (max-width:375px){.operate .countdown-custom[data-v-683b666f]{top:28%}.operate .countdown-custom .millisecond[data-v-683b666f],.operate .countdown-custom .numbers[data-v-683b666f]{height:.69333rem;line-height:.69333rem;font-size:.48rem}.operate .countdown-custom .separate-txt[data-v-683b666f]{margin-top:.24rem;margin-left:.08rem;margin-right:.05333rem}.operate .countdown-black[data-v-683b666f]{top:28%}}@media (max-width:320px){.operate .countdown-custom[data-v-683b666f]{top:23%}.operate .countdown-custom .millisecond[data-v-683b666f],.operate .countdown-custom .numbers[data-v-683b666f]{height:.58667rem;line-height:.58667rem;font-size:.42667rem}.operate .countdown-custom .separate-txt[data-v-683b666f]{margin-top:.16rem;margin-left:.08rem;margin-right:.02667rem}}.operate-coupon-pop img[data-v-683b666f]{width:100%}.operate-coupon-pop .dialog-foot button[data-v-683b666f]{color:#222!important} +/*! inline-style-end */.secure-code-wrapper .vipsc_wap_box .vipsc_inner .vipsc_ft .vipsc_code_qimg{height:22px}.adv-slider{height:4rem;overflow-y:hidden}.adv-slider .adv-item img{height:100%}.adv-slider div.mint-swipe-indicators{position:absolute;right:.21333rem;left:0;text-align:right;line-height:.37333rem;bottom:.05333rem;-webkit-transform:translateZ(.02667rem);transform:translateZ(.02667rem);text-align:center;font-size:0}.adv-slider div.mint-swipe-indicators .mint-swipe-indicator{opacity:1;border:.02667rem solid hsla(0,0%,100%,.6);border-radius:50%;background-color:#fafafa}.adv-slider div.mint-swipe-indicators .mint-swipe-indicator.is-active{background-color:#000;border:.02667rem solid #fff}.mint-swipe,.mint-swipe .mint-swipe-items-wrap{overflow:hidden;position:relative;height:100%}.mint-swipe .mint-swipe-items-wrap>div{position:absolute;-webkit-transform:translateX(-100%);transform:translateX(-100%);width:100%;height:100%;display:none}.mint-swipe .mint-swipe-items-wrap>div.is-active{display:block;-webkit-transform:none;transform:none}.mint-swipe .mint-swipe-indicators{position:absolute;bottom:.26667rem;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.mint-swipe .mint-swipe-indicator{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2;margin:0 3px}.mint-swipe .mint-swipe-indicator.is-active{background:#fff}.operate-slider[data-v-7c746661]{background-color:#fff;width:100%;overflow:hidden}.operate-slider h2[data-v-7c746661]{font-size:.42667rem;padding-top:.45333rem;padding-bottom:.08rem;line-height:.53333rem;text-align:center;font-weight:400}.operate-slider .operate-container[data-v-7c746661]{will-change:scroll-position;width:100%;overflow-y:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.operate-slider .operate-container ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.operate-slider .operate-container ul[data-v-7c746661]::-webkit-scrollbar{display:none}.operate-slider .operate-container li[data-v-7c746661]{float:left}.operate-slider.picture.small ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;height:3.62667rem}.operate-slider.picture.small li[data-v-7c746661]{float:left;width:2.64rem;height:3.62667rem}.operate-slider.picture.small a[data-v-7c746661]{position:relative;display:block;width:2.64rem;height:3.62667rem}.operate-slider.picture.small a img[data-v-7c746661]{position:relative;display:block;width:100%;z-index:1}.operate-slider.picture.medium ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;height:5.04rem}.operate-slider.picture.medium li[data-v-7c746661]{float:left;width:3.76rem;height:5.04rem}.operate-slider.picture.medium a[data-v-7c746661]{position:relative;display:block;width:3.76rem;height:5.04rem}.operate-slider.picture.medium a img[data-v-7c746661]{position:relative;display:block;width:100%;z-index:1}.operate-slider.picture.medium-lower ul[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box;height:4.26667rem}.operate-slider.picture.medium-lower li[data-v-7c746661]{float:left;width:3.76rem;height:4.26667rem}.operate-slider.picture.medium-lower a[data-v-7c746661]{position:relative;display:block;width:3.76rem;height:4.26667rem}.operate-slider.picture.medium-lower a img[data-v-7c746661]{position:relative;display:block;width:100%;z-index:1}.operate-slider.picture.medium-lower h2[data-v-7c746661]{padding:.32rem .29333rem .29333rem .26667rem;width:95%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;font-size:.32rem;color:#98989f;line-height:.32rem;text-align:left;background-color:#fff}.operate-slider.single-product h2[data-v-7c746661]{padding-top:.45333rem;padding-bottom:.08rem;line-height:.53333rem;font-size:.37333rem;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis}.operate-slider.single-product ul[data-v-7c746661]{padding-left:.4rem;padding-right:.4rem;padding-top:.26667rem;height:3.94667rem;border-bottom:.21333rem solid #f3f4f5;overflow:hidden;display:block}.operate-slider.single-product li[data-v-7c746661]{padding-right:.53333rem}.operate-slider.single-product li[data-v-7c746661]:last-child{padding-right:0}.operate-slider.single-product li a[data-v-7c746661]{display:block;width:2.05333rem;height:3.46667rem;overflow:hidden}.operate-slider.single-product .img[data-v-7c746661]{position:relative;width:2.05333rem;height:2.61333rem;background-color:#fff;display:block;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.operate-slider.single-product .img img[data-v-7c746661]{position:relative;z-index:1;width:100%;border-radius:.08rem}.operate-slider.single-product .title[data-v-7c746661]{width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;text-align:center;font-size:.32rem;line-height:.42667rem;padding-top:.16rem;padding-bottom:.26667rem;height:.85333rem}.operate-slider.single-product .operate-container[data-v-7c746661]{-webkit-box-sizing:border-box;box-sizing:border-box}.operate-slider.single-product .more[data-v-7c746661]{position:relative;vertical-align:middle}.operate-slider.single-product .more .title[data-v-7c746661]{visibility:hidden}.operate-slider.single-product .more .center[data-v-7c746661]{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.operate-slider.single-product .more .img[data-v-7c746661]:after{display:none}.operate-slider.single-product .more span[data-v-7c746661]{display:block;font-size:.32rem;width:1.33333rem;line-height:.53333rem;text-align:center}@media screen and (-webkit-min-device-pixel-ratio:2){.operate-slider.single-product .more span[data-v-7c746661]:first-child{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#98989f));background-image:linear-gradient(180deg,transparent 50%,#98989f 0)}}.listview-loading[data-v-2eaaeabd]{font-size:.32rem;line-height:1;color:#999;padding:.53333rem .26667rem;text-shadow:0 .02667rem 0 #fff;text-align:center;vertical-align:middle;background:url(data:image/gif;base64,R0lGODlhJAAkAMQAAP////f39+/v7+bm5t7e3tbW1szMzMXFxb29vbW1ta2traWlpZmZmZmZmYyMjISEhHt7e3Nzc2ZmZmZmZlpaWlJSUkpKSkJCQjMzMykpKRkZGf///wAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmS5DRg2mGzrio6mOW89FhJTxnMZBAAbKZJKkHi00e8nHDFSFsEIOQIsA02R4JLSwWTJzTWY3SRSKtFCthBZl+WRpDtSKJTwGuGxwN4uFwUtb2RuAgJ+IhAWFhQIcT4DklIjC4yMEASQAQKSkyUIEpcUkJ6SiSQBlo2lp4UsAwuacT+vkLe4cQIJvLwHuRuHwogQEsbHv7cCBczNBMXHxsmQy83MBLu9CdPKw4jA4OEuAggrtAOoJgEID+2QBvADtiIGDu0PYVnw8AWUI+z3FpgrE6DAPgMDNyxo58AAsGX8SMRCgErAggX+fBw4gArAAALpWCRgwMChCEkjCEogQGAyTgGSDCgN4GVu3cqEQlSRbFmAlyARKhEcmPfCAMk+N3xWObByVhMEJH+K6JlA6omVVm3sajlVKQkCBkJCoppVnAibYl2EAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmQpWpapruzIYBjTziMBLeUbl05V0KQHCkHSyUYLjUYCRKIkARfsuBFglI6mKEBB4UTGkUOZEWhFCBRllIAlRAOl5nveQLzst2isqdAGDHo1FBQEKwUZGT8kAQEAJA4SEhEHdSaNjSQJkpIOA5YAmJglBxCcEZaijiubk6mZMwIJn3WPlre4uWgIvAgGulEkAA4Pxca/twEDy8wDxMbFyKnNzBu9vNLJqra63d4rBmaW4i0GCwx0WgQFBeQlBecM6Jbr7IYlBvLyCe5aA+zs3CWQt2BRrnq0RAjwZSKBIBUGsilM2OKAQ4MlBkTE6M9hgmDWiIyIGM4Sgos1eC3d26AxYp0CDkWKIKCSRIGIFGkYcEiRJoKVVSICBXKAo8+h/74d/bbiQKUzIQAAIfkEBQcAGwAsAAAAACQAJAAABf/gJo5kKUqSqa7suFjW0s7j4CTlG5dMSpM9yYGkk40SGEzkd0RBiDCjyJJkMEcRFE5UHDGSl+vogJIIRAgYYnRJbsUbh3aEWIu+GN9sYa9FIgMsF2EkAnIFRA+KBnA5GRoaFSQIiopSYgUVkJAOJQYOlQ+Nj5AYCiuUD51wpA5nLX2YDoGNtba3Brm5iLcbAb+/GwsMxMW8tcDJw8XEx43JwBu6u70AvdfYVwHOcNYtBQnhjQPkLAMI4eJw5OwBJeDpQ7UC7LRj6fbI7K8jBtwBBw64W0GAgIkA/FoYqGNQhAB+AgoUyCemTh8BufhJ5PYDwAGGNXLZi1ig4RUCdQ4leNswQCQJAhIT0ihQp0RLAxQlUpwRwIBJETcp0ssWNNsKiXBCAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmS5CRAkmGzriokkJW9NLkgZz+UCEbbb42Eg7WgjhMXyCCaHDqMMuQlIlgvnyDHMwaajxZIS0IoMw6boIDuMlhavebPojg5ukdgCsQkQRSUOUS0EFBRAJAwROgwMCwVzOhcYGBIkBo6OCSuSEpWVDCUFC5pZc5SVFlQlmY+SqaI1Bp1zspK4ubkBBb29A7p0g8MDCAnHyMC4CxrNzhjGyMfKkszOzRi8vgXUuArDg93B4+QmBGVzAOguAAQICHlmAfPrJgfv8JL09CXu+Ab1nKjbV8/Au3i5Bs4jwYsAgFaBWgwQJyLAwxoFDBigOGJiLTMCNEbc0GsEgIkDAi0GybhxhIBeH1HOGaAxkkuYJGSaIaDx48sCHwN4nMOtxM+PVZDmOlquUCItIQAAIfkEBQcAGwAsAAAAACQAJAAABf/gJo5kKTqOqa7siDwP0s6jkBjlG5eJM9AkBINRCMJko4NEwgCODMOFcTeCLBPO0WKIE+mQm8Qykh0Vhk2RAdYVLCWH8ijBfXbDyxTNUCQJFgsCKwMRET8jAQsPBCQHCQkIh3IuFBYWECQFj49xkwQQlpZSJAMIm1hylZYSYCWaj5OVFAsBLQF9cgSjk7y9vgTAwL4idGhNBwjJyr4JGM7PFsjKyczP0BvBwsPFaMPe3zOSZQU+4QbnkxkaGg6CJgIF5+hy6usYuyID8ny8BRXr6/SIiHfOXS8F9SqUICBOhDYVAAIEAODHgQRcLAYUKGBQIiKJtfptRDRgQMgNIHknEdhocENJEiBPOoFXgBGphjHLaMSYD2dKnS17qpgI7iU4iCUpZgkBACH5BAUHABsALAAAAAAkACQAAAX/4CaOZCkui6mu7GgwjNHO5FGUb1wiKU0aicTgB5O5Ho+eb1MIIoi6kQP5XIqCiZsoZ9wgkA7raIANiAow7Qb56IoPQXVB/U3SAgUCoBRsOcJ8DEMuCAgHYioHERISgCIEhYUGZogDDoyMCSYHkYeIi4wQniUABJyjVqCaMwSUYmQCiLKztCUDt7extTwoKEwGwMG6sggWxscSBcHCtMXHxhIbuLm1Xr2+1dnaLcOIgjMCcwSyFxgYDCwEc3nk5hgWqyPh64OyEu7nJAPi2QnlGNH0dRNxi0WBDBnUiGAQwYeAgiscaNBQYVYAXHtEBHA1YKIGJVZwkdi4UcrEDANpJogcQdKVAAwTHTm85WpDSxILJga0IqCmTZIlHFRQSOvmNhUlxYQAACH5BAUHABsALAAAAAAkACQAAAX/4CaOZLkFCBKYbOuKRZIUbz0GBlHGc2kkAhupkNrJaKMCg4EQjgipAyB5JC2WBqcIcEjpYFWRYbnQklJN0UA2GC0ZSPPG4B0N2uJlQkjA3w4HKywCCwtBZ2VDBgYFh3IjBg+SiWqLi3FyC5KSaSMCBZZZcpsPDqImA5aPDqWdLn5yro+ztLMCt7i1GwcyvQIEBcHCtQcSxscQwMLBxMfIG7i5xL0yjrrX2CZTswSUL3ewThQWFguCJQHgd4/j5BKyG+rWWgQQ5OTeAuDnswgS5BBKCOC3AUCAANtYXLiATtOXFwcPjijkBgMGCbQiTtSggdIFi3vkRDzngKODihgYJ5oZSaKkhpMjLFhksFJiS5MkEliMYMagCZcw3WDEBjQbiwEWw9UIAQAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmQpHoepruxIIAjRzmQxlG9cFilNEgaD4AeTjQaJhMF3DBaIuhEi+WSKgoabKGfcFJII60iAJcFGgWRCK/YG2btkbzYYloKtpMmAsIsGBQVdbSMFCwwMCSQCgYFwVgIJiIhLOI2DTIeIC1UmjIKEhwuVLX5iZISpqqsbACUBrHwwZwO1tgOwqQYPvL0Ot7a5hLu9vA4AAcnKsbNnrM/QLQGubUimKsrCVhESEoor2dpM3N0QcyLh04QDDt3d3+jK1KoH5A4kyCYFGRmdOBQUMEl6pKKCBg33ROgRscCCBQipFhzUoCUBBgzwKDgMcyrDwYQbGFxkMKKhBQriZi04OIjBj0gMJNFJcLhAjISDNUe8jCkCgcMHYgpUACliZ4kFEDClMhpNhcM2IQAAIfkEBQcAGwAsAAAAACQAJAAABf/gJo5kKRaFqa7sOBjG0M7kIJRvXBJGQNcoHExGQiBSP5EARagNR4CDsZkUEVA3UY64IRgPgOoIhdwIYNmNFCEGFtKCtBdh+KVJBKoqcDj4SAV1JAIDhX9tLgmKBziFNogiB4qKZSIBjoWIkwkIXCWXmW2TlSoAh20Fp5CrrFUBr7CtgTAwG7C3rAUMu7wLt7Grury7CyZhubS1rcvMLAMOpElsLQIOGhoZiA/b0yYLGNfYiA7bDw6CI9bhFdE/C+UP3RsV1xkKrQbkD8VjEg53Gy5ccBYhgqcNCPjNkIABA4MRRkYkkOAPUoKGGCBasDBNQASKjNpcaPhQxIKNCicuSojQhkFDCyROWlC4AQLFBGIiNMQ5QibNAxRLVpEg1CTKEgkcHITks9kKim1CAAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmQpEoSpruwoFIXQzqRcvnE5FPQ9DIEazCYSGAyp3ug3EOZGhWNTKWI6iYMjjyoKMAHQrehoIHIFP1bWIGYBAkHddHUsAQiFeBeu55YOCAgGJHx8YH4BBoGBSSNvhX4bgIEHLXyRkwSHLZtUAY2RoaKhAw6mpgujGzswMAEYGrGyqaQJtrcIsLKxtJEDt7ilpw4KqqytfarKyyYMoUY0DBcYF5ELDAyDKgkWGN7VftfYC20bDN7eEs8J2NjaIhLfCaoF4vMkEc4kBBQUoCUPHphQZGYFBAsWeh2oJAJBwF5cECC0MOKABAkMNzgI+E5JAAkIeyW4eG+Dw4DhEClK0DNSQkmNARFweYBQ5oiWLw085EIAAsQNOEsg+CkqKDMTAiBAKDgjBAAh+QQFBwAbACwAAAAAJAAkAAAF/+AmjmS5AcMAmGzrjukrk0AQmHEpDHNp36UcqVDg9UQ/IMw4IhAFx1GSJNwIiIQo6SdNKZ0F7ZaLVF6Ls4LEAR3VAqsWIRukjyoaTWYh1hn+YSMOeXkVgWIFf39MIgoYhBl9igYFbTqDepKLMgMOh1qMfaKjogympgmkInOsGxYYsLGpowi1tgevsbCzora3G6eoqhusc8PHyC0LdloFSiwBCxQWFH0J158kCBIW3dVi19cIoQvd3RDMUQfhCZ8Q3giqAwjXByQEDwvPAxERoSMCFiywJCJRDwcSJPD6M8KAsD4HEkpoY+DBAwMjFpjK1gNCQl4ILMYT4ZABHy0JEilC0CaShEYGGKMwSGhvRMgHIwuaytmjEy8RN3luMJCAIK2WyUw4YKMlBAAh+QQJBwAbACwAAAAAJAAkAAAF/+AmjmQpBoGpruyIom08FpVTvmkpyKWkaQsSTjgY7Hgixw9z3AxHRSNSJMj8bKcXKTodLX6agSu3AUTJ3cp1BABspbIIo1TIZAqsokkgJkkwGBcJXSoEBQV9IgyAgBKEUIeHTSIJFowXj4aHBCwMF4GZkjJzjxuTpaipXQusrAiqfFFiEha1tq+lAga7vAW0trW4j7q8u3itrrCyiarNzioCCcxIAZwxCRESEY8HCAgEbiYHEBLl24Td3gcmCeXlDtM8AQbe3tZJ5uuq6QZbDIMlHjxokQAgG0NoViwQKOzQjIL6CBkQOFBEAQYM8DgpKO2RA4YjDGDsZ5EjIQQCsSWIEMmApAgEBTUiWfjA5QaWNgcUtMljgbCVI+lEVIXzmcIgXUIAADs=) no-repeat 3.264rem;-webkit-background-size:.48rem .48rem;background-size:.48rem;text-indent:.8rem}.listview-loading a[data-v-2eaaeabd]{text-decoration:underline;color:#e4007f}.no-background[data-v-2eaaeabd]{background:transparent}.v-skeleton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAMsCAYAAACvFuLjAAAN70lEQVR4nO3d0XLa1hqA0Q0InNh9/yc1nhHY1rlI3dNmek6BQHG+rHUnj4F9kfmy/UtIq3k+LAOAlPW9FwDA9Yk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETfdeAH+13z/fewn8i56efrv3EoiycwcIEneAIHH/hJZlcfwLHcMtrOb54F/aJ2Lm/msxc+dW7NwBgsQdIEjcP6F7z4Adm7nz8zNz/2TM3H8tZu7cirgDBBnLAASJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtA0HSrN35/fx/H42G8vb15rBjAd1ar9Zimaex2u9u8/zWfxHQ8HsbhcPj2xqvVWG82Y71ejzFW1/oIgIRlWcb7+9t4f3v742ePj09jtbpOL68S99fX45jneaxWqzFtb/O/EEDd8TCPMa7zbN0fjvvHA523u4cfXgwA3yI/Tdvx8HB5V3/ohOp+/zw2m0nYAa5ou3sYr6/H8fKyv/g9Lo77fv88pu12rDebiz8cgL+33T2MZRnj5eXlotdfFPePHftq5UpKgFvZ7nZjWd7H6+vx7NeefSnkx4f8vx37x0kB/sr4CjjXdvcw5vnbDP4cZ2+953kWKYB/0Waa/rh45VRnxf14PFztGkwATrNen39u86y4Hw6Hk69j//5bqY59Sxe43HqzGfN8+sj7ZmdEv9/hO/YXD3C5zWY668TqyXF/f38XKICfxMlxPx4PrmkH+EmcHPe3t7ffbwJ2mnvPtD/7McAtnVzrb3E6fSxz75n2Zz8GuKWT475are0+AX4SJ8d9mqbx/v72z78IwN2dHPfdbveXm8r/k3vPtD/7McAtuc79TscAt+S2jgA/gePhML58+Xry758V98fHJ3d8BLiLZWzO+K7RWXE/Z7Rw75n2Zz8GONXr8TC2Zz6f+uyxzNPTbyft3u890/7sxwCnWpZl7Hbnxf3sh3WMMcY0bcfx8L/v6+5+7wDXcTzM4+npt7Nfd9EJ1YeHh7FarcbxcLjk5QCc4HiYx9evjxe99uKrZR4fn34PvBOsANf2EfZz7un1Z6t5PvzQmb7X1+OY53lspumip4UA8F+vx8NYluWiUcyf/XDcP3w832+92YzN5qJRPsAv69uYexnb7e7sk6d/52px/zDP81lPCwFgjC9fvp51Hfs/uXrcAbg/tx8ACBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwgSd4AgcQcIEneAIHEHCBJ3gCBxBwia9vvne68BgCubtruHe68BgCszlgEIEneAIHEHCBJ3gKDVsizLvRcBwHXZuQMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETc/7l3uvAYArs3MHCBJ3gCBxBwgSd4Cg1bIsy70XAcB12bkDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETc/7l3uvAYArs3MHCBJ3gCBxBwgSd4Cg1bIsy70XAcB12bkDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMETc/7l3uvAYArs3MHCBJ3gCBxBwgSd4Cg1bIsy70XAcB12bkDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QJC4AwSJO0CQuAMEiTtAkLgDBIk7QNB/ANQUlnozllhCAAAAAElFTkSuQmCC);-webkit-background-size:cover;background-size:cover;min-height:100vh;position:absolute;top:0;left:0;width:100%;height:100%}.index-container .lightart-container{padding-bottom:16.05333rem;opacity:0;max-width:10rem;margin:0 auto}.index-container .lightart-container.actived{padding-bottom:1.6rem;opacity:1}.index-container .header-right-button{font-size:.64rem}.ltart-sectionlist-col-item{max-width:10rem;overflow-x:hidden} +/*! inline-style-start */.header{height:2.26667rem;line-height:1.17333rem;overflow:hidden;font-size:.37333rem;background-color:#fbfbfa;text-align:center;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;position:relative}@media screen and (-webkit-min-device-pixel-ratio:2){.header{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.header .header-title{height:1.17333rem;line-height:1.17333rem;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.header .header-title>h1{font-size:.48rem;font-weight:400;max-width:100%;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;width:auto}.header .header-title>sub{font-size:.34667rem;vertical-align:baseline;color:#98989f}.header .header-left,.header .header-right{z-index:2;height:1.17333rem;line-height:1.17333rem;position:relative}.header .header-left{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.header .header-left,.header .header-right{-ms-flex-negative:0;-webkit-flex-shrink:0;flex-shrink:0}.header .header-left-button,.header .header-right-button{display:block;padding:0 .4rem;height:100%;font-size:.42667rem}.header .header-left-button:active,.header .header-right-button:active{opacity:.3}.header .header-left-button .icon-back,.header .header-right-button .icon-back{font-size:.69333rem}.header .header-left-button .icon-home,.header .header-right-button .icon-home{font-size:.53333rem}.header .header-left-button{padding-right:.13333rem}div.is-android-mini-app,div.is-android-mini-app .header{height:auto}.index-header-container.sticky{position:absolute;height:100vh;top:0;bottom:0;left:0;right:0;background-color:#fff;z-index:1400}.index-header.header{position:relative;background-image:none;background-color:#f9f9fa;width:100%}.index-header.header a{color:#585c64}.index-header.header .top-logo{float:left}.index-header.header .top-logo i{width:.02667rem;height:.53333rem;margin:0 .18667rem;background:#eaebef;border-radius:.05333rem;display:inline-block;vertical-align:middle}.index-header.header .top-logo img{margin-left:.26667rem;width:2rem;height:.50667rem}.index-header.header .top-logo span{color:#98989f;line-height:.53333rem;vertical-align:middle}.index-header.header .v-search{height:100%;overflow:hidden;background-color:transparent}.index-header.header .v-search .search-header,.index-header.header .v-search .searchbar{background-color:transparent}.index-header.header .v-search .searchbar{position:relative}.index-header.header .v-search .searchbar,.index-header.header .v-search .searchbar-back,.index-header.header .v-search .searchbar-btn,.index-header.header .v-search .searchbar-inner{display:block}.index-header.header .v-search .searchbar-back{position:absolute;left:0;top:0;bottom:0}.index-header.header .v-search .searchbar-btn{position:absolute;right:0;top:0;bottom:0}.index-header.header .v-search .searchbar,.index-header.header .v-search .searchbar-back,.index-header.header .v-search .searchbar-btn{height:1.17333rem;line-height:1.17333rem}.index-header.header .v-search .searchbar-btn{font-size:.37333rem}.index-header.header .v-search .searchbar-back,.index-header.header .v-search .searchbar-btn{width:1.17333rem;-webkit-box-sizing:border-box;box-sizing:border-box}.index-header.header .v-search .search-inner,.index-header.header .v-search .searchbar{width:auto;overflow:hidden}.index-header.header .v-search .searchbar-inner-close{width:9.46667rem;margin:0 .26667rem .13333rem;position:relative;z-index:7;padding-right:0;border-radius:2.66667rem;border:.02667rem solid #ccc}.index-header.header .v-search .searchbar-inner-close:before{background-color:transparent}.index-header.header .v-search .searchbar-inner{width:7.6rem;margin:.18667rem auto;position:relative;z-index:7;padding-right:0;border-radius:2.66667rem}.index-header.header .v-search .searchbar-core,.index-header.header .v-search .searchbar-inner:before{background-color:transparent}.index-header.header .v-search .search-body{height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;will-change:scroll-position;-webkit-overflow-scrolling:touch;padding-top:0}.index-header.header .v-search .search-header{position:static}.index-header.header .v-search .search-bar{background-image:none}.index-header.header.header.hack-fixed{display:block}.index-header.header.header.hack-fixed .header-left,.index-header.header.header.hack-fixed .header-right{display:block;float:right}.index-header.header.header.hack-fixed .header-right{float:right}.index-header.header.header .header-left,.index-header.header.header .header-right{width:1.17333rem;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.index-header.header.header .header-right-button{padding:0 .24rem}.index-header.header.header .header-left-button{padding:0}.index-header.header.header .header-left-button.text{font-size:.34667rem}.index-header.header.header .icon-member{font-size:.64rem}.index-header.header.header .icon-classify{width:.64rem;height:.64rem;display:block}.index-header.header.header .icon-classify:after{content:"";width:.64rem;height:.64rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAAEgBckRAAAAAXNSR0IArs4c6QAAAb9JREFUaAXtV9FtAyEMJVWHuBGaJU7NYo3SLdJlUt0S6Qi3QvrT9p1kZKgBX4XTEMEPYB42fjb4bnO5fH45oT0IskV0jYVNW6daTdU9b0jGrq7T2+1ToBBzSQZQMmUDDWxiv+FvLEkOSrJ7cXo1SyyGquEjR8VM8jWMh2Fwp9P7rzRL4SAPDEBwPn+gExs/gBa3OlVFyxmhuYGAInDMaYgPdjy+LSItDuAgi3LKAe5BBgvV23WDXP34PwqDLLIwYH7RzA34IO92z26e5yxLeOC0OFLkDUC55oXU4siAOUXdAFGd7NunyKcpqlWu4KDYoGlxxJn5W+Q90N5QLY488Aa0N1SLIwPtZ1H3gGKZ7M0p8mmqvaFaHLlkfpPNKTL3gKiy6s0Zsjo46fVJSgL00zS5/f6l+BnG9/AxStPh8OrGcVzEtfVxW2IKUd3MfeZxJfE43h/PY3xpntvffAp1B0rht17vEbBmuKS/+QiIdQDvOL6d6fkqsSCt028K1mrr4/bEOsABtz4WI1C7ctbWx0kVI0Cp0ysxp8po3Pwr1B0wygy12h4BNVVGQLEO1K6ctfVxLsQ6wAG3Pu534L8j9A0FpO2FAWiBwgAAAABJRU5ErkJggg==);display:block;-webkit-background-size:cover;background-size:cover;background-repeat:no-repeat;position:absolute;top:50%;transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0)}.index-header.header.header.open{line-height:normal}.index-header.header.header.open .v-search{background-color:#fff}.index-header.header.header.open .v-search .search-header{position:absolute}.index-header.header.header.open .v-search .search-body{padding-top:1.2rem}.index-header.header.header.open .v-search .search-inner,.index-header.header.header.open .v-search .searchbar{margin:0}.index-header.header.header.open .header-title{line-height:normal;width:100%;margin-top:0}.index-header.header.header.open .header-left,.index-header.header.header.open .header-right{display:none}.search-list-wrapper{height:100%;overflow:scroll}.search-page-container{height:100%}.close{position:relative;height:2.13333rem}.close .index-header.header{position:relative;background-image:none;background-color:#f9f9fa;width:100%}.close .index-header.header a{position:absolute;top:50%;left:50%;width:100%;height:100%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.close .index-header.header .v-search{width:100%}.close .index-header.header.header.hack-fixed .header-left,.close .index-header.header.header.hack-fixed .header-right{overflow:hidden;position:relative}.close .index-header.header.header .header-title{width:100%;margin-top:.18667rem}.close .index-header.header.header .header-right-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:0}.close .index-header.header.header .icon-classify{width:.64rem;height:.64rem;display:block}.close .index-header.header.header .icon-classify:after{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);-webkit-transform:translate3d(-50%,-50%,0)}.header-search .index-header.header{background-color:#fff}.open-search{overflow:hidden;height:100%;max-height:100%}.open-search .container,.open-search .tab-bar{display:none}.open-search .header,.open-search .header-title,.open-search .search,.open-search .v-search{height:100%;overflow:hidden}@media screen and (-webkit-min-device-pixel-ratio:2){.index-header.header .searchbar-inner:before{border-radius:2.66667rem}} +/*! inline-style-end */.list .item-content:after,.list .item-content:before{content:"";display:table}.list .item-content:after{clear:both}.list{position:relative;margin:.53333rem 0}.list .list-header{padding:0 .4rem;line-height:.85333rem}.list .list-title{height:.64rem;line-height:.64rem;background-color:#fafafa;padding:0 .4rem}.list .list-footer{padding:0 .4rem;line-height:.48rem;margin-top:.18667rem}.list .list-item{width:100%;overflow-x:hidden;list-style-type:none;font-weight:400;background-color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.list .list-item+.list-item{position:relative}.list .list-item.align-top .item-content,.list .list-item.align-top .item-inner{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}@media screen and (-webkit-min-device-pixel-ratio:2){.list .list-item:not(:last-child) .item-inner{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}.list .list-item .item-title-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.list .list-item .item-subtitle,.list .list-item .item-text,.list .list-item .item-title-row{font-size:.37333rem;line-height:.53333rem}.list .list-item .item-text{color:#585c64;position:relative;display:-webkit-box;overflow:hidden;text-overflow:ellipsis; + /*! autoprefixer: off */-webkit-box-orient:vertical;-webkit-line-clamp:2}.list .list-item.disabled{color:#ccc}.list .list-item.disabled .item-content,.list .list-item.disabled .item-inner,.list .list-item.disabled .item-input,.list .list-item.disabled .item-label,.list .list-item.disabled .select,.list .list-item.disabled:after{color:#ccc!important}.list .list-item.more{position:relative}.list .list-item.more .icon-arrow-right,.list .list-item.more .icon-back{font-size:.53333rem;position:absolute;right:.4rem}.list .list-item.more .icon-back{top:50%;transform:translate3d(0,-50%,0) rotate(180deg);-webkit-transform:translate3d(0,-50%,0) rotate(180deg)}.list .list-item.more .item-inner{padding-right:1.09333rem}.list .list-item.more:not(.disabled):active{background-color:rgba(0,0,0,.1)}.list .list-item.unfold{position:relative}.list .list-item.unfold .icon-back{font-size:.53333rem;position:absolute;right:.32rem;top:50%;transform:translate3d(0,-50%,0) rotate(270deg);-webkit-transform:translate3d(0,-50%,0) rotate(270deg);margin-top:-.08rem}.list .list-item.unfold .item-inner{padding-right:1.09333rem}.list .list-item.unfold:not(.disabled):active{background-color:rgba(0,0,0,.1)}.list .list-item.fold{position:relative}.list .list-item.fold .icon-back{font-size:.53333rem;position:absolute;right:.32rem;top:50%;transform:translate3d(0,-50%,0) rotate(90deg);-webkit-transform:translate3d(0,-50%,0) rotate(90deg);margin-top:.10667rem}.list .list-item.fold .item-inner{padding-right:1.09333rem}.list .list-item.fold:not(.disabled):active{background-color:rgba(0,0,0,.1)}.list .list-item.media .item-left{padding-top:.26667rem;padding-bottom:.26667rem}.list .list-item.media .item-left img{display:block}.list .list-item.checkbox .item-inner,.list .list-item.media .item-inner,.list .list-item.radio .item-inner{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;display:block}.list .list-item.checkbox .icon-circle,.list .list-item.checkbox .icon-circle-selected,.list .list-item.checkbox .icon-multiple-choice-normal,.list .list-item.checkbox .icon-multiple-choice-selected,.list .list-item.radio .icon-circle,.list .list-item.radio .icon-circle-selected,.list .list-item.radio .icon-multiple-choice-normal,.list .list-item.radio .icon-multiple-choice-selected{font-size:.53333rem;color:#98989f}.list .list-item.checkbox .icon-circle-selected,.list .list-item.radio .icon-circle-selected{color:#64bd63}.list .list-item.checkbox input[type=checkbox],.list .list-item.checkbox input[type=radio],.list .list-item.radio input[type=checkbox],.list .list-item.radio input[type=radio]{display:none}.list .list-item.checkbox input[type=checkbox]:checked+.item-left .icon-circle-selected,.list .list-item.checkbox input[type=checkbox]:checked+.item-left .icon-multiple-choice-selected,.list .list-item.checkbox input[type=radio]:checked+.item-left .icon-circle-selected,.list .list-item.checkbox input[type=radio]:checked+.item-left .icon-multiple-choice-selected,.list .list-item.radio input[type=checkbox]:checked+.item-left .icon-circle-selected,.list .list-item.radio input[type=checkbox]:checked+.item-left .icon-multiple-choice-selected,.list .list-item.radio input[type=radio]:checked+.item-left .icon-circle-selected,.list .list-item.radio input[type=radio]:checked+.item-left .icon-multiple-choice-selected{color:#64bd63}.list .item-content{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-left:.4rem;line-height:.69333rem;-webkit-box-sizing:border-box;box-sizing:border-box}.list .item-right{font-size:.37333rem;white-space:nowrap;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-left:.26667rem}.list .item-inner{padding:.32rem .4rem .32rem 0;min-height:.69333rem;width:100%;position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.list .item-title{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:.42667rem}.list .item-left{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.list .item-left [class*=" icon-"],.list .item-left [class^=icon-]{font-size:.64rem}.list .item-left+.item-inner{margin-left:.26667rem}.search-list{height:100%;overflow:hidden}.search-list .list{height:100%;margin-top:0;overflow:scroll}.search-list .list-header{font-size:.32rem;color:#585c64;line-height:.58667rem;padding-top:.4rem}.search-list .item-title{font-size:.37333rem}.search-list .item-inner{padding:.4rem 0}.search-list .item-content{line-height:.64rem;padding-right:.4rem}.v-search{position:relative;width:100%;background-color:#fff}.v-search .searchbar,.v-search .searchbar-inner,.v-search .searchbar-inner-close{width:100%;height:1.2rem;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.v-search .search-header{position:absolute;top:0;left:0;right:0;z-index:2;background-color:#fff}.v-search .searchbar{background-color:#fff}.v-search .searchbar .searchbar-inner{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:.8rem;border-radius:.10667rem;background-color:#f3f4f5;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-right:.26667rem}.v-search .searchbar .searchbar-inner .placeholder{color:#98989f;font-size:.37333rem;left:.26667rem;text-align:left;right:0;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;position:absolute;top:50%;transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0)}.v-search .searchbar .searchbar-inner.center .placeholder{text-align:center;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);-webkit-transform:translate3d(-50%,-50%,0)}.v-search .searchbar .searchbar-inner-close{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:.8rem;border-radius:.10667rem;background-color:#f3f4f5;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-right:.26667rem}.v-search .searchbar .searchbar-inner-close .placeholder{color:#98989f;font-size:.37333rem;left:.26667rem;text-align:left;right:0;height:100%;overflow:hidden;line-height:.74667rem;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;position:absolute;top:50%;transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0)}.v-search .searchbar .searchbar-inner-close.center .placeholder{text-align:center;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);-webkit-transform:translate3d(-50%,-50%,0)}.v-search .searchbar .searchbar-core{border:0;outline:0;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-size:.37333rem;height:100%;width:100%;padding:.16rem .26667rem;-webkit-appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#f3f4f5;display:block;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.v-search .searchbar .searchbar-btn{width:1.6rem;text-align:center;height:1.2rem;line-height:1.2rem;font-size:.42667rem;display:block}.v-search .searchbar .searchbar-btn .icon-home{font-size:.53333rem}.v-search .searchbar .icon-close-round2{color:#ccc;font-size:.42667rem;padding:.13333rem 0 .13333rem .29333rem}.v-search .searchbar .searchbar-back{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 0 0 .37333rem;height:1.2rem;font-size:.42667rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.v-search .searchbar .searchbar-back:active{opacity:.3}.v-search .searchbar .searchbar-back .icon-back{font-size:.69333rem}.v-search .search-body{padding-top:1.2rem}.atmosphere-box[data-v-1c46ae7d]{display:inline-block;position:relative;position:absolute;bottom:50%;left:5%;z-index:999}.atmosphere-box .scorll-list[data-v-1c46ae7d]{position:relative;width:4rem;padding:0;margin:0}.atmosphere-box .scorll-list li[data-v-1c46ae7d]{position:absolute;bottom:0;left:0;right:0;width:4rem;height:.74667rem;line-height:.74667rem;opacity:0;font-size:.32rem;background:#f8f8f8;border-radius:.37333rem;list-style:none;-webkit-transition:all .5s linear;transition:all .5s linear}.atmosphere-box .scorll-list li img[data-v-1c46ae7d]{width:.48rem;height:.48rem;border-radius:50%;padding:0 .13333rem;line-height:.48rem}.atmosphere-box .scorll-list li.step1[data-v-1c46ae7d]{-webkit-transform:translateY(-1.01333rem);transform:translateY(-1.01333rem);opacity:1}.atmosphere-box .scorll-list li.step2[data-v-1c46ae7d]{-webkit-transform:translateY(-2.02667rem);transform:translateY(-2.02667rem);opacity:.8}.atmosphere-box .scorll-list li.step3[data-v-1c46ae7d]{-webkit-transform:translateY(-3.04rem);transform:translateY(-3.04rem);opacity:0}.button[data-v-da12f782]{border:.02667rem solid #98989f;color:#98989f;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#222}.button input[type=button][data-v-da12f782],.button input[type=submit][data-v-da12f782]{width:100%}.button[data-v-da12f782]:active{color:#7e7e86;border-color:#7e7e86}.button.button-round[data-v-da12f782]{border-radius:.8rem}.button.active[data-v-da12f782]:active{color:#7e7e86;border-color:#7e7e86}.button.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button.button-small.loading[data-v-da12f782]{min-height:.64rem}.button.button-fill[data-v-da12f782]{color:#fff;background:#98989f;border-color:#98989f;line-height:.8rem}.button.button-fill.active[data-v-da12f782],.button.button-fill[data-v-da12f782]:active{background:#7e7e86;border-color:#7e7e86}.button.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#98989f;background-color:transparent;border:0}.button i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button.loading[data-v-da12f782]{min-height:.85333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.button.border-radius[data-v-da12f782],.button.border[data-v-da12f782]{border:0}}.button-fill.loading[data-v-da12f782]:after{border-color:#fff;border-right-color:transparent;border-top-color:transparent}.button-default.button-fill[data-v-da12f782]{background-color:#fdfdfd;color:#222;border:.02667rem solid #ccc;line-height:.8rem}.button-default.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-primary[data-v-da12f782]{border:.02667rem solid #de3c96;color:#de3c96;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-primary input[type=button][data-v-da12f782],.button-primary input[type=submit][data-v-da12f782]{width:100%}.button-primary[data-v-da12f782]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-round[data-v-da12f782]{border-radius:.8rem}.button-primary.active[data-v-da12f782]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-primary.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-primary.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-primary.button-fill[data-v-da12f782]{background:#de3c96;border-color:#de3c96}.button-primary.button-fill.active[data-v-da12f782],.button-primary.button-fill[data-v-da12f782]:active{background:#c6217d;border-color:#c6217d}.button-primary.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-primary .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#de3c96;background-color:transparent;border:0}.button-primary i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-primary i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-primary i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-primary.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-primary.button-fill[data-v-da12f782]{background-color:#de3c96;color:#fff;border:.02667rem solid #de3c96;line-height:.8rem}.button-primary.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-success[data-v-da12f782]{border:.02667rem solid #46c33b;color:#46c33b;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-success input[type=button][data-v-da12f782],.button-success input[type=submit][data-v-da12f782]{width:100%}.button-success[data-v-da12f782]:active{color:#389c2f;border-color:#389c2f}.button-success.button-round[data-v-da12f782]{border-radius:.8rem}.button-success.active[data-v-da12f782]:active{color:#389c2f;border-color:#389c2f}.button-success.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-success.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-success.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-success.button-fill[data-v-da12f782]{color:#fff;background:#46c33b;border-color:#46c33b;line-height:.8rem}.button-success.button-fill.active[data-v-da12f782],.button-success.button-fill[data-v-da12f782]:active{background:#389c2f;border-color:#389c2f}.button-success.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-success.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-success .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#46c33b;background-color:transparent;border:0}.button-success i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-success i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-success i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-success.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-danger[data-v-da12f782]{border:.02667rem solid #ec5042;color:#ec5042;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-danger input[type=button][data-v-da12f782],.button-danger input[type=submit][data-v-da12f782]{width:100%}.button-danger[data-v-da12f782]:active{color:#e42817;border-color:#e42817}.button-danger.button-round[data-v-da12f782]{border-radius:.8rem}.button-danger.active[data-v-da12f782]:active{color:#e42817;border-color:#e42817}.button-danger.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-danger.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-danger.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-danger.button-fill[data-v-da12f782]{color:#fff;background:#ec5042;border-color:#ec5042;line-height:.8rem}.button-danger.button-fill.active[data-v-da12f782],.button-danger.button-fill[data-v-da12f782]:active{background:#e42817;border-color:#e42817}.button-danger.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-danger.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-danger .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#ec5042;background-color:transparent;border:0}.button-danger i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-danger i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-danger i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-danger.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-warning[data-v-da12f782]{border:.02667rem solid #f60;color:#f60;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-warning input[type=button][data-v-da12f782],.button-warning input[type=submit][data-v-da12f782]{width:100%}.button-warning[data-v-da12f782]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-round[data-v-da12f782]{border-radius:.8rem}.button-warning.active[data-v-da12f782]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-big[data-v-da12f782]{font-size:.42667rem;line-height:1.12rem}.button-warning.button-small[data-v-da12f782]{font-size:.32rem;line-height:.58667rem}.button-warning.button-small.loading[data-v-da12f782]{min-height:.64rem}.button-warning.button-fill[data-v-da12f782]{color:#fff;background:#f60;border-color:#f60;line-height:.8rem}.button-warning.button-fill.active[data-v-da12f782],.button-warning.button-fill[data-v-da12f782]:active{background:#cc5200;border-color:#cc5200}.button-warning.button-fill.button-big[data-v-da12f782]{line-height:1.12rem}.button-warning.button-fill.disabled[data-v-da12f782]{background-color:#ccc;color:#fff}.button-warning .button-link[data-v-da12f782]{padding-top:.4rem;padding-bottom:.4rem;color:#f60;background-color:transparent;border:0}.button-warning i.icon[data-v-da12f782]:first-child{margin-right:.26667rem}.button-warning i.icon[data-v-da12f782]:last-child{margin-left:.26667rem}.button-warning i.icon[data-v-da12f782]:first-child:last-child{margin-left:0;margin-right:0}.button-warning.disabled[data-v-da12f782]{border-color:#ccc;color:#ccc;cursor:not-allowed}.buttons-row[data-v-da12f782],.buttons-tab[data-v-da12f782]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.buttons-row .button[data-v-da12f782]{border-radius:0;width:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;border-color:#585c64;color:#585c64;margin-left:-.02667rem;display:block}.buttons-row .button.active[data-v-da12f782]{background-color:#585c64;color:#fff}.buttons-row .button[data-v-da12f782]:first-child{border-radius:.10667rem 0 0 .10667rem;margin-left:0;border-left-width:.02667rem;border-left-style:solid}.buttons-row .button[data-v-da12f782]:last-child{border-radius:0 .10667rem .10667rem 0}.buttons-row .button[data-v-da12f782]:not(:last-child){border-right-color:transparent}.buttons-row .button.button-round[data-v-da12f782]:first-child{border-radius:.72rem 0 0 .72rem}.buttons-row .button.button-round[data-v-da12f782]:last-child{border-radius:0 .72rem .72rem 0}.buttons-tab[data-v-da12f782]{background:#fff;position:relative}@media screen and (-webkit-min-device-pixel-ratio:2){.buttons-tab[data-v-da12f782]{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.buttons-tab .button[data-v-da12f782]{color:#585c64;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:.42667rem;width:100%;height:1.06667rem;line-height:1.06667rem;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block;border:0;border-bottom:.05333rem solid transparent;border-radius:0}.buttons-tab .button.active[data-v-da12f782]{color:#585c64;border-color:#585c64}.border-t[data-v-da12f782]{border-top:1px solid #ccc}.border-b[data-v-da12f782],.border-tb[data-v-da12f782]{border-bottom:1px solid #ccc}.border-tb[data-v-da12f782]{border-top:1px solid #ccc;background-image:none}.border-l[data-v-da12f782]{border-left:1px solid #ccc}.border-r[data-v-da12f782]{border-right:1px solid #ccc}.border[data-v-da12f782]{border:.02667rem solid #ccc}.border-radius[data-v-da12f782]{border:1px solid #ccc;border-radius:2px}@media screen and (-webkit-min-device-pixel-ratio:2){.border-radius[data-v-da12f782]{position:relative;border:0}.border-radius[data-v-da12f782]:before{content:"";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid #ccc;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;pointer-events:none}}@media screen and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-da12f782],.border-l[data-v-da12f782],.border-r[data-v-da12f782],.border-t[data-v-da12f782],.border-tb[data-v-da12f782]{border:0}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-t[data-v-da12f782]{background-position:0 0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-da12f782],.border-t[data-v-da12f782]{border:0;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px}.border-b[data-v-da12f782]{background-position:0 100%;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-tb[data-v-da12f782]{border:0;background-position:top,bottom;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-da12f782]{background-position:0 0;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(270deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-da12f782],.border-r[data-v-da12f782]{border:0;background-repeat:repeat-y;-webkit-background-size:1px 100%;background-size:1px 100%}.border-r[data-v-da12f782]{background-position:100% 0;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(90deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border[data-v-da12f782]{position:relative;border:0}.border[data-v-da12f782]:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;-webkit-background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-repeat:no-repeat;background-position:top,100%,bottom,0;padding:.02667rem;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0),linear-gradient(270deg,transparent 50%,#ccc 0),linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(90deg,transparent 50%,#ccc 0)}}.hot-search .hot-list p[data-v-da12f782]{white-space:normal;word-wrap:break-word;word-break:break-all}.hot-search[data-v-da12f782]{padding:.4rem .4rem 0;margin-top:-.16rem}.hot-search .hotbar[data-v-da12f782]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;font-size:.32rem}.hot-search .hot-list[data-v-da12f782]{margin:.13333rem 0;padding-bottom:.50667rem}.hot-search .hot-list .button[data-v-da12f782]{color:#5d78ab;font-size:.32rem;padding:0 .4rem;line-height:.74667rem;height:.74667rem;max-height:.74667rem;margin:.13333rem .13333rem .16rem 0;max-width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;float:left}.hot-search .hot-list p[data-v-da12f782]{max-width:100%;height:100%;overflow:hidden}.hot-search .hot-list .highlight[data-v-da12f782]{color:#e4007f;border-color:#f7add6}.hot-search .search-list-button[data-v-da12f782]{margin:.32rem .21333rem 0 0;float:left}@media screen and (-webkit-min-device-pixel-ratio:2){.hot-search .border-radius[data-v-da12f782]:before{border:.02667rem solid #c4cddc}.hot-search .highlight[data-v-da12f782]:before{border-color:#f7add6}}.button[data-v-8b35437c]{border:.02667rem solid #98989f;color:#98989f;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#222}.button input[type=button][data-v-8b35437c],.button input[type=submit][data-v-8b35437c]{width:100%}.button[data-v-8b35437c]:active{color:#7e7e86;border-color:#7e7e86}.button.button-round[data-v-8b35437c]{border-radius:.8rem}.button.active[data-v-8b35437c]:active{color:#7e7e86;border-color:#7e7e86}.button.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button.button-fill[data-v-8b35437c]{color:#fff;background:#98989f;border-color:#98989f;line-height:.8rem}.button.button-fill.active[data-v-8b35437c],.button.button-fill[data-v-8b35437c]:active{background:#7e7e86;border-color:#7e7e86}.button.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#98989f;background-color:transparent;border:0}.button i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button.loading[data-v-8b35437c]{min-height:.85333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.button.border-radius[data-v-8b35437c],.button.border[data-v-8b35437c]{border:0}}.button-fill.loading[data-v-8b35437c]:after{border-color:#fff;border-right-color:transparent;border-top-color:transparent}.button-default.button-fill[data-v-8b35437c]{background-color:#fdfdfd;color:#222;border:.02667rem solid #ccc;line-height:.8rem}.button-default.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-primary[data-v-8b35437c]{border:.02667rem solid #de3c96;color:#de3c96;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-primary input[type=button][data-v-8b35437c],.button-primary input[type=submit][data-v-8b35437c]{width:100%}.button-primary[data-v-8b35437c]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-round[data-v-8b35437c]{border-radius:.8rem}.button-primary.active[data-v-8b35437c]:active{color:#c6217d;border-color:#c6217d}.button-primary.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-primary.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-primary.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-primary.button-fill[data-v-8b35437c]{background:#de3c96;border-color:#de3c96}.button-primary.button-fill.active[data-v-8b35437c],.button-primary.button-fill[data-v-8b35437c]:active{background:#c6217d;border-color:#c6217d}.button-primary.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-primary .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#de3c96;background-color:transparent;border:0}.button-primary i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-primary i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-primary i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-primary.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-primary.button-fill[data-v-8b35437c]{background-color:#de3c96;color:#fff;border:.02667rem solid #de3c96;line-height:.8rem}.button-primary.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-success[data-v-8b35437c]{border:.02667rem solid #46c33b;color:#46c33b;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-success input[type=button][data-v-8b35437c],.button-success input[type=submit][data-v-8b35437c]{width:100%}.button-success[data-v-8b35437c]:active{color:#389c2f;border-color:#389c2f}.button-success.button-round[data-v-8b35437c]{border-radius:.8rem}.button-success.active[data-v-8b35437c]:active{color:#389c2f;border-color:#389c2f}.button-success.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-success.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-success.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-success.button-fill[data-v-8b35437c]{color:#fff;background:#46c33b;border-color:#46c33b;line-height:.8rem}.button-success.button-fill.active[data-v-8b35437c],.button-success.button-fill[data-v-8b35437c]:active{background:#389c2f;border-color:#389c2f}.button-success.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-success.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-success .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#46c33b;background-color:transparent;border:0}.button-success i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-success i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-success i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-success.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-danger[data-v-8b35437c]{border:.02667rem solid #ec5042;color:#ec5042;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-danger input[type=button][data-v-8b35437c],.button-danger input[type=submit][data-v-8b35437c]{width:100%}.button-danger[data-v-8b35437c]:active{color:#e42817;border-color:#e42817}.button-danger.button-round[data-v-8b35437c]{border-radius:.8rem}.button-danger.active[data-v-8b35437c]:active{color:#e42817;border-color:#e42817}.button-danger.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-danger.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-danger.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-danger.button-fill[data-v-8b35437c]{color:#fff;background:#ec5042;border-color:#ec5042;line-height:.8rem}.button-danger.button-fill.active[data-v-8b35437c],.button-danger.button-fill[data-v-8b35437c]:active{background:#e42817;border-color:#e42817}.button-danger.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-danger.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-danger .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#ec5042;background-color:transparent;border:0}.button-danger i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-danger i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-danger i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-danger.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.button-warning[data-v-8b35437c]{border:.02667rem solid #f60;color:#f60;text-decoration:none;text-align:center;display:block;border-radius:.10667rem;line-height:.8rem;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;padding:0 .26667rem;margin:0;white-space:nowrap;position:relative;text-overflow:ellipsis;font-size:.37333rem;font-family:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button-warning input[type=button][data-v-8b35437c],.button-warning input[type=submit][data-v-8b35437c]{width:100%}.button-warning[data-v-8b35437c]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-round[data-v-8b35437c]{border-radius:.8rem}.button-warning.active[data-v-8b35437c]:active{color:#cc5200;border-color:#cc5200}.button-warning.button-big[data-v-8b35437c]{font-size:.42667rem;line-height:1.12rem}.button-warning.button-small[data-v-8b35437c]{font-size:.32rem;line-height:.58667rem}.button-warning.button-small.loading[data-v-8b35437c]{min-height:.64rem}.button-warning.button-fill[data-v-8b35437c]{color:#fff;background:#f60;border-color:#f60;line-height:.8rem}.button-warning.button-fill.active[data-v-8b35437c],.button-warning.button-fill[data-v-8b35437c]:active{background:#cc5200;border-color:#cc5200}.button-warning.button-fill.button-big[data-v-8b35437c]{line-height:1.12rem}.button-warning.button-fill.disabled[data-v-8b35437c]{background-color:#ccc;color:#fff}.button-warning .button-link[data-v-8b35437c]{padding-top:.4rem;padding-bottom:.4rem;color:#f60;background-color:transparent;border:0}.button-warning i.icon[data-v-8b35437c]:first-child{margin-right:.26667rem}.button-warning i.icon[data-v-8b35437c]:last-child{margin-left:.26667rem}.button-warning i.icon[data-v-8b35437c]:first-child:last-child{margin-left:0;margin-right:0}.button-warning.disabled[data-v-8b35437c]{border-color:#ccc;color:#ccc;cursor:not-allowed}.buttons-row[data-v-8b35437c],.buttons-tab[data-v-8b35437c]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.buttons-row .button[data-v-8b35437c]{border-radius:0;width:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;border-color:#585c64;color:#585c64;margin-left:-.02667rem;display:block}.buttons-row .button.active[data-v-8b35437c]{background-color:#585c64;color:#fff}.buttons-row .button[data-v-8b35437c]:first-child{border-radius:.10667rem 0 0 .10667rem;margin-left:0;border-left-width:.02667rem;border-left-style:solid}.buttons-row .button[data-v-8b35437c]:last-child{border-radius:0 .10667rem .10667rem 0}.buttons-row .button[data-v-8b35437c]:not(:last-child){border-right-color:transparent}.buttons-row .button.button-round[data-v-8b35437c]:first-child{border-radius:.72rem 0 0 .72rem}.buttons-row .button.button-round[data-v-8b35437c]:last-child{border-radius:0 .72rem .72rem 0}.buttons-tab[data-v-8b35437c]{background:#fff;position:relative}@media screen and (-webkit-min-device-pixel-ratio:2){.buttons-tab[data-v-8b35437c]{border:0;background-position:0 100%;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(180deg,transparent 50%,#dbdbdb 0)}}.buttons-tab .button[data-v-8b35437c]{color:#585c64;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:.42667rem;width:100%;height:1.06667rem;line-height:1.06667rem;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:block;border:0;border-bottom:.05333rem solid transparent;border-radius:0}.buttons-tab .button.active[data-v-8b35437c]{color:#585c64;border-color:#585c64}.border-t[data-v-8b35437c]{border-top:1px solid #ccc}.border-b[data-v-8b35437c],.border-tb[data-v-8b35437c]{border-bottom:1px solid #ccc}.border-tb[data-v-8b35437c]{border-top:1px solid #ccc;background-image:none}.border-l[data-v-8b35437c]{border-left:1px solid #ccc}.border-r[data-v-8b35437c]{border-right:1px solid #ccc}.border[data-v-8b35437c]{border:.02667rem solid #ccc}.border-radius[data-v-8b35437c]{border:1px solid #ccc;border-radius:2px}@media screen and (-webkit-min-device-pixel-ratio:2){.border-radius[data-v-8b35437c]{position:relative;border:0}.border-radius[data-v-8b35437c]:before{content:"";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid #ccc;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;padding:1px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;pointer-events:none}}@media screen and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-8b35437c],.border-l[data-v-8b35437c],.border-r[data-v-8b35437c],.border-t[data-v-8b35437c],.border-tb[data-v-8b35437c]{border:0}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-t[data-v-8b35437c]{background-position:0 0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-b[data-v-8b35437c],.border-t[data-v-8b35437c]{border:0;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px}.border-b[data-v-8b35437c]{background-position:0 100%;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-tb[data-v-8b35437c]{border:0;background-position:top,bottom;background-repeat:repeat-x;-webkit-background-size:100% 1px;background-size:100% 1px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(180deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-8b35437c]{background-position:0 0;background-image:-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(270deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border-l[data-v-8b35437c],.border-r[data-v-8b35437c]{border:0;background-repeat:repeat-y;-webkit-background-size:1px 100%;background-size:1px 100%}.border-r[data-v-8b35437c]{background-position:100% 0;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(90deg,transparent 50%,#ccc 0)}}@media screen and (-webkit-min-device-pixel-ratio:2) and (-webkit-min-device-pixel-ratio:2){.border[data-v-8b35437c]{position:relative;border:0}.border[data-v-8b35437c]:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;-webkit-background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-size:100% .02667rem,.02667rem 100%,100% .02667rem,.02667rem 100%;background-repeat:no-repeat;background-position:top,100%,bottom,0;padding:.02667rem;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,right top,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#ccc)),-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#ccc));background-image:linear-gradient(180deg,transparent 50%,#ccc 0),linear-gradient(270deg,transparent 50%,#ccc 0),linear-gradient(0deg,transparent 50%,#ccc 0),linear-gradient(90deg,transparent 50%,#ccc 0)}}.search-history[data-v-8b35437c]{padding:.4rem .4rem 0}.search-history .historybar[data-v-8b35437c]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;font-size:.32rem}.search-history .history-list[data-v-8b35437c]{margin:.13333rem 0;padding-bottom:.50667rem}.search-history .history-list-button[data-v-8b35437c]{margin:.32rem .21333rem 0 0;float:left}.search-history .historybar[data-v-8b35437c]{padding:0}.search-history .historybar-clear[data-v-8b35437c]{color:#585c64;text-align:right;padding-left:.53333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.search-history .border-radius[data-v-8b35437c]:before{border:.02667rem solid #c4cddc}.search-history .border-b[data-v-8b35437c]{background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,transparent),color-stop(50%,#e7e7e7));background-image:linear-gradient(180deg,transparent 50%,#e7e7e7 0)}}.tab-bar-container{position:relative;background-color:#f9f9fa;border-bottom:.02667rem solid #e5e5e5}.tab-bar-container .menu-name{display:block;padding:0 .08rem}.tab-bar-container .tab-bar-wrap{margin-right:1.06667rem;opacity:0}.tab-bar-container .tab-bar-wrap.fill-width{margin-right:0}.tab-bar-container .tab-bar-wrap .tab-bar__item{padding-right:.26667rem}.tab-bar-container .tab-bar-more{position:absolute;top:0;left:0;right:0;z-index:2}.tab-bar-container .tab-bar-more .more{width:1.06667rem;height:.90667rem;line-height:.90667rem;position:absolute;right:0;top:0;bottom:0;z-index:4;background:-webkit-gradient(linear,left top,left bottom,from(#e5e5e5),color-stop(#e5e5e5),to(hsla(0,0%,90%,0))) 0 100% no-repeat;background:linear-gradient(180deg,#e5e5e5,#e5e5e5,hsla(0,0%,90%,0)) 0 100% no-repeat;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;text-align:center}.tab-bar-container .tab-bar-more .more .icon-arrow-down,.tab-bar-container .tab-bar-more .more .icon-arrow-up{font-size:.48rem;display:inline-block}.tab-bar-container .tab-bar-more .more .icon-arrow-up{display:none}.tab-bar-container .tab-bar-more .channel-box{position:absolute;left:0;right:0;background-color:#fff}.tab-bar-container .tab-bar-more.open{display:block}.tab-bar-container .tab-bar-more.open .more{background-color:transparent;background-image:none}.tab-bar-container .tab-bar-more.open .more .icon-arrow-up{display:inline-block}.tab-bar-container .tab-bar-more.open .more .icon-arrow-down{display:none}.vui-tab-ink-bar{position:absolute;height:.05333rem;bottom:.02667rem;left:0;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent;text-align:center}.vui-tab-ink-bar-transition-forward{-webkit-transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1) .09s;transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1) .09s}.vui-tab-ink-bar-transition-backward{-webkit-transition:right .3s cubic-bezier(.35,0,.25,1) .09s,left .3s cubic-bezier(.35,0,.25,1);transition:right .3s cubic-bezier(.35,0,.25,1) .09s,left .3s cubic-bezier(.35,0,.25,1)}.vui-tab-ink-bar-transition-backward-v2,.vui-tab-ink-bar-transition-forward-v2{-webkit-transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1);transition:right .3s cubic-bezier(.35,0,.25,1),left .3s cubic-bezier(.35,0,.25,1)}.vui-tab-ink-bar .vui-tab-bar-inner{display:block;height:100%;width:100%;background-color:#f90;position:absolute;top:0;left:50%;bottom:0;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.vui-tab-bar-top .vui-tab .vui-tab-ink-bar{top:0}.vui-tab{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:100%;position:relative;overflow:hidden;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.vui-tab button{padding:0;border:0;outline:0;background:0 0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vui-tab .vui-tab-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;white-space:nowrap;height:100%;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:.37333rem;text-align:center;color:#666}.vui-tab .vui-tab-item.tab-item-border{background:-webkit-gradient(linear,left top,left bottom,from(#e5e5e5),color-stop(#e5e5e5),to(hsla(0,0%,90%,0))) 0 100% no-repeat;background:linear-gradient(180deg,#e5e5e5,#e5e5e5,hsla(0,0%,90%,0)) 0 100% no-repeat;-webkit-background-size:100% .02667rem;background-size:100% .02667rem}.vui-tab .vui-tab-item.vui-tab-disabled{color:#ddd}.vui-tab-bar-top .vui-tab .vui-tab-item{background:-webkit-gradient(linear,left top,left bottom,from(#e5e5e5),color-stop(#e5e5e5),to(hsla(0,0%,90%,0))) 0 0 no-repeat;background:linear-gradient(180deg,#e5e5e5,#e5e5e5,hsla(0,0%,90%,0)) 0 0 no-repeat;-webkit-background-size:100% .02667rem;background-size:100% .02667rem}.vui-tab-item-badge{position:absolute;top:0;bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;height:.48rem;min-width:.48rem;padding:0 .10667rem;border-radius:.8rem;margin:auto 0 auto .10667rem;line-height:.48rem;font-size:.29333rem;-webkit-background-clip:padding-box;background-clip:padding-box;vertical-align:middle}.vui-tab-wrap{position:relative;background-color:#f9f9fa;padding-top:.90667rem}.vui-tab-container{height:100%;top:0;left:0;right:0;overflow:hidden;position:absolute}.scrollable{overflow-y:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch;-webkit-box-sizing:content-box;box-sizing:content-box}.scrollable::-webkit-scrollbar{display:none}.scrollable .vui-tab-ink-bar{bottom:.02667rem;position:absolute}.channel-list h3{font-size:.32rem;height:.90667rem;padding-left:.26667rem}.channel-list h3 p{line-height:.90667rem}.channel-list a,.channel-list p{color:#585c64}.channel-list .well-chosen-channel .current span{color:#d34ba8}.channel-list .well-chosen-channel li{float:left;width:25%;height:1.92rem;text-align:center;position:relative}.channel-list .well-chosen-channel li a{display:block;width:100%;height:100%}.channel-list .well-chosen-channel li div{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);width:100%}.channel-list .well-chosen-channel li i{display:block;width:.53333rem;height:.53333rem;-webkit-background-size:cover;background-size:cover;background-repeat:no-repeat;margin:0 auto}.channel-list .well-chosen-channel li span{display:block;margin-top:.21333rem;font-size:.32rem}.channel-list .well-chosen-channel li:after{content:"";position:absolute;right:0;top:0;bottom:0;height:100%;width:.05333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.channel-list .well-chosen-channel li:after{border:0;background-position:100% 0;background-repeat:repeat-y;-webkit-background-size:.02667rem 100%;background-size:.02667rem 100%;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(90deg,transparent 50%,#dbdbdb 0)}}.channel-list .well-chosen-channel li:before{content:"";position:absolute;right:0;left:0;width:100%;height:.05333rem}@media screen and (-webkit-min-device-pixel-ratio:2){.channel-list .well-chosen-channel li:before{border:0;background-position:0 0;background-repeat:repeat-x;-webkit-background-size:100% .02667rem;background-size:100% .02667rem;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,transparent),color-stop(50%,#dbdbdb));background-image:linear-gradient(0deg,transparent 50%,#dbdbdb 0)}}.channel-list .well-chosen-channel li:nth-child(4n):after{display:none}.channel-list .more-channel li{float:left;width:25%}.channel-list .more-channel li:nth-child(4n) a{margin-right:.26667rem}.channel-list .more-channel li:nth-child(4n+1) a{margin-left:.26667rem}.channel-list .more-channel a{display:block;margin:0 .13333rem .26667rem;background-color:#f3f4f5;-webkit-box-sizing:border-box;box-sizing:border-box;height:1.01333rem;line-height:1.01333rem;font-size:.32rem;border-radius:.05333rem;text-align:center}.body-ll[data-v-1e6287ca]{border-radius:.16rem}.before-image[data-v-1e6287ca],.body-ll[data-v-1e6287ca]{width:7.46667rem;height:10.66667rem;position:relative}.before-image img[data-v-1e6287ca]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.btn-close[data-v-1e6287ca]{width:.77333rem;position:absolute;bottom:-.66667rem;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);height:.72rem;-o-object-fit:contain;object-fit:contain;-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAABGdBTUEAALGPC/xhBQAABW5JREFUaAXlmz1vHFUUhm0kUqCEBoEiUeAUQAGdIwEFUVLyB+KUKyjpY6T8AWpo0qR2foIrr4vICS1KhBBSLISoSEVEpCDw8jzjeybr3Z31fNzxLt4jvXtn7sd7zjt3Zu6dO7Nraytm633pHY1GF+D+BHwGPkx4l/RSAsna84TfSX9OeEj6w/r6+t+ky22IvAgGYBf8BdqabeWQ62JO1Vl6mKDeJ6hvwC3wRgpwRPoY7IMnwB78FfwJ7FnN3n4TvAc8Cz4C18HHIGJ7wfZ98C29/gvp4gyhG2AH/Au0I7APvgRvt43MtolDLjk1fehroy1v63Y4vQDugBdAM6j7wJ7OanIm7hCuT317j+jfcHQZPARhe2xc7duzPoC+wozhcq9+cbAJfksen5J+0avDGeT6BPrWjGVzRrXuWRDfBHEKD9l+qztrOwZ9A2PQjOlmO6aKVhBuy5zsLunrFVXPLNsYgLGEbWdxDttWYvyH9OsspBlJjAkYm9atpyHwmo3TeOnExnEjRkVrxtrumqahd+O4Qd0N8mVNiTVOb2NudvemgeNsDD1Dthd+zZ52oI0RGKtm7PXHaSo7sGve/hd2Nz5N5GS5saaYSUZ3Jstn7lPR6WJct2c+zs4MqkEmsTtOa2rYOLUplXasje2dWnlJKxh7oQAtc0OkkvNWJ+lHoPfp4txgOhQae9Kglur5PYX3gObjWG2j/hAcgNZPSFXO5Ezcjc442vgwo92byU3BJeCDt71bfVRmtKa+YrXHIJtouRInyehghuvKLOp7tqpFTdOLCGQOgLZfyVJRQJvxwLKIzsGpFqANpkInc7co4uF9qrBGBm2zic7FBc9XSdPuCQlkOtGw6z0FWp+StgX2sNaqp2nXmSPEJa44rV9NRCi4BrQfo3LbFI7WAXdpWxWvmoB2razDzu0iazT6rszssAFXY9Ft2tQJEd7vk7bb1n8tNXLFUHtynHT7ZXXxDxhuJD5XIocKqmJNZUPKrWsMNxJHVZMm+a6caqFxbQ2HD4B2vSjK9APfqT1dp06XcNQEtAclDzuH5mAbZWamDTgrRc8ry+TezrwCtMOSk51nRVZPT0ZwT4melVcGlHEDPz5Bac9KWnZeFllNniHL1vU24B8X/RP7Qms1fNXzWlyuDrnay7KNO0VWj4J1hg9Fh1Bdul15MysD7LAB/wnBcZd+njh913PeLDSFxuLIH3IktCt9qYV7Uaf0zJtWL8NSHLwJscU1Oysv6udM8XNiWIpT2leZ2qvB+Xi/86/CIJmaVDSdnHQIJDQVGicFO9PJZlViw8EZifZdsxadWlzD2R4ejrnLO3KtJ6c+T2+44+Hh84jN4SLL42EQthHQpk34q0oT5/TjoQ0o7LQAEE67BN6lbfgfT+GbvQBgJQoHQNsfb9Rkm7bjQ0+rGVQOjohZLUAbRF6Zktl6EU8S2ncWG8Hk4IJj/iJeCrrtMm02sblEI3j+Mm0S3GohHvIDoLU6jUPkZArf+IGsvUxLu6vAm9X8hfgkuvGrFoj3gKKzPwjA+U7irr0QT33j0XYmD+LUPpU2wOq8TEu9vDqvS5NgJyL/xxfiMQw1eyGeRK/OJw9xYdPLq/NRy5joLYRr5/+zpTHR28eai1+/lln4Ry7GAIwlLM+HaWOi7ekYroZsL+xjF30DY9CMaSvizJpC7DUd3249ZfvMP3rRJ9C3ZiybWUVOkuHAu3cMWWwWs5revwfBj9PFmEHp1xiafYA2KabuPo4cp1fjA/Hxg4Jop6E7wEm6dgQc/Jf2LwDxR4pxHY23EfgBjbxL3gLn908ek0cG4avxN55J4e4j3m8qPk1wbVjU+aPWI+o9Ygl3+f+oRaBLb/8Bcy96WBaRfVEAAAAASUVORK5CYII=)}.before-title[data-v-1e6287ca]{top:2.4rem;font-size:.42667rem;line-height:.58667rem}.before-money[data-v-1e6287ca],.before-title[data-v-1e6287ca]{width:100%;overflow:hidden;text-align:center;position:absolute;color:#fee9d1}.before-money[data-v-1e6287ca]{top:3.04rem}.before-money .main-price[data-v-1e6287ca]{font-size:2.13333rem;line-height:2.4rem}.before-money .suffix[data-v-1e6287ca]{font-size:1.33333rem;line-height:2.4rem}.before-desc[data-v-1e6287ca]{top:5.49333rem;width:100%;overflow:hidden;text-align:center;position:absolute;color:#fee9d1;line-height:.53333rem;font-size:.37333rem}.clear-button-ss[data-v-1e6287ca]{position:relative;display:block;margin:0;padding:0;font-size:inherit;text-align:left;text-decoration:none;line-height:1;-webkit-tap-highlight-color:transparent;overflow:auto;color:#000;background-color:transparent;opacity:1!important;width:100%;height:100%}button.clear-button-ss[data-v-1e6287ca]:after{border:none!important;opacity:1!important;border-radius:0!important}.body-ll[data-v-1e6287ca] .popup-content{overflow:visible} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login-deal.min.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login-deal.min.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..912a52c94ab14153b7e5c9541928828a485ffd76 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login-deal.min.js.\344\270\213\350\275\275" @@ -0,0 +1,15 @@ +(function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="//mlogin.vip.com/asserts/",t(0)})([function(e,t,n){(function(t){"use strict";function i(e){if(w.emit("login-reg-win","render-loginReg-win"),!k){var t=!1;e.isviva&&(t=!0),y.loginWin.init({data:{captcha:0,text:0,isviva:t,registerTips:p,bgImg:e.bgImg||"",logoImg:e.logoImg,optsSource:e.source,isSwitchWeixinBinding:e.isSwitchWeixinBinding,isChangeWeixinBind:e.isChangeWeixinBind,challengeCallbackUrl:e.challengeCallbackUrl,disablePasswordLogin:e.disablePasswordLogin,hideCloseBtn:e.hideCloseBtn,remainOnSuccess:e.remainOnSuccess||!1,isGray:E,isGrayTicketLogin:A},loginSuccess:function(){var t={};try{t=s(),window.Mar&&Mar.Seed.request("body","load","H5_mlogin_success",JSON.stringify({phoneName:t.phoneName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2"),loginName:t.loginName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2")}))}catch(n){t={}}e.remainOnSuccess||y.loginWin.close(),e.onWinLogin({success:!0,channel:"login",phoneName:t.phoneName||"",loginName:t.loginName||""})},loginFail:function(){e.onWinLogin({success:!1,channel:"login"});try{var t=s();window.Mar&&Mar.Seed.request("body","load","H5_mlogin_fail",JSON.stringify({phoneName:t.phoneName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2"),loginName:t.loginName.replace(/(\d{3})\d{4}(\d{3})/,"$1****$2")}))}catch(n){}},thirdData:e.thirdData||{},className:e.className||""}),k=!0}}function o(e){g.weixinAutoLogin(window.weixinData).then(function(){var e=window.location.href.split("#");e[1]=e[1]?"#"+e[1]:"";var t=e[0].indexOf("?")===-1?"?":"&";window.location.href=""+e[0]+t+"time="+(new Date).getTime()+e[1]},function(){e&&e()})}function r(e){if(f.isWeixin()&&!e.disableWeixinAutoLogin)if(window.Mar&&Mar.Seed.request("body","load","H5_weixinlogin_mlogin",JSON.stringify({opts:e,host:location.host})),e.openid&&e.unionid){if(t.extend(window.weixinData,{openid:e.openid,unionid:e.unionid,source:e.source||"",loginType:e.loginType||""}),e.isChangeWeixinBind)return i(e),y.loginWin.open(),g.getweixinInfoStatus(window.weixinData).then(function(e){1===e.status&&t(".J-mlogin-login-weixin").css("display","inline")}),!1;e.isSwitchWeixinBinding?(i(e),y.loginWin.open()):o(function(){i(e),y.loginWin.open()})}else g.getWeixinInfo(_,function(n){if(0===n.code){if(t.extend(window.weixinData,n.data),e.isChangeWeixinBind)return i(e),y.loginWin.open(),g.getweixinInfoStatus(window.weixinData).then(function(e){1===e.status&&t(".J-mlogin-login-weixin").css("display","inline")}),!1;e.isSwitchWeixinBinding?(i(e),y.loginWin.open()):o(function(){i(e),y.loginWin.open()})}else n.code===-33?(window.localStorage.setItem("wxLoginPop",1),window.location.href=n.data.redirectUrl+"?fs="+n.data.fs+"&type="+n.data.type+"&src="+encodeURIComponent(location.href)):(i(e),y.loginWin.open())});else i(e),y.loginWin.open();var n=0;if(e.isviva?(n=1,window.Mar&&Mar.Seed.request("body","load","H5_login_pop",JSON.stringify({isviva:n.toString(),enter:"1"}))):window.Mar&&Mar.Seed.request("body","load","H5_login_first",JSON.stringify({enter:"1"})),window.localStorage){var r=s(),a=r.phoneName,c=r.loginName;/^1[3-9]\d{9}$/.test(a)&&t(".J-mlogin-ipt-mobile").val(a),(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(c)||/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(c))&&t(".J-mlogin-ipt-username").val(c);var l=t(".J-mlogin-ipt-mobile").val();l&&l.length>0&&t("button").removeClass("disabled")}}function s(){var e=localStorage.getItem("saveIphoneName"),t=localStorage.getItem("saveLoginName");return e=e?m.decode(e):"",t=t?m.decode(t):"",{phoneName:e,loginName:t}}function a(){Object.keys(T).forEach(function(e){var t=T[e];Object.keys(t).forEach(function(n){var i=t[n];w.on(e,n,i)})}),t("body").on("touchmove","#J-register-win",function(e){t(window).height()>=t(this).height()&&e.stopPropagation()}),t("body").on("touchmove","#J-login-win",function(e){t(window).height()>=t(this).height()&&e.stopPropagation()}),w.on("login-reg-win","open-win",function(e){e.type;t("body").css({padding:"0"})}),w.on("login-reg-win","close-win",function(e){e.type;t("body").css({padding:""})})}function c(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return C?void g.getVivaTips(n).then(function(n){C=!1,n.registerTips&&(p=''+n.registerTips,t("#J-footer-tips").html(p)),n&&n.isGray&&(E=n.isGray),n&&n.isGrayTicketLogin&&(A=n.isGrayTicketLogin),"function"==typeof e&&e()},function(){"function"==typeof e&&e()}):("function"==typeof e&&e(),!1)}function l(e){var n={usePop:!0,isWeixinLogin:!1,isChangeWeixinBind:!1,openid:"",unionid:"",isviva:!1,backUrl:"",onWinLogin:function(){},onBeforeJumpLogin:function(){}};t.extend(n,e),r(n),S||(S=!0,a())}n(1),n(4);var u=n(19),d=n(20),h=d.getId();window.weixinData={domain_id:h};var p,f=n(21),m=n(23),g=n(24),v=n(32),y={loginWin:v.loginWin,exchangeLogin:v.exchangeLogin},w=n(43),b=n(22),x=b.get("WAP[from]"),_={fs:x,type:3},S=!1,k=!1,T={},C=!0,E=0,A=0,I={go:function(e){console.log("opts:",e),T=e.eventHandlers||{},u&&"function"==typeof u&&(u(),u=null),c(function(){l(e)},e.tipsData||{})},automaticLogin:function(e,t){var n={};return f.isWeixin()&&""!=e.openid&&""!=e.unionid?void g.weixinAutoLogin(e).then(function(e){n.re=e,n.success=!0,t&&t(n)},function(e){n.r=e,n.success=!1,t&&t(n)}):(n.success=!1,t&&t(n),!1)}};y.exchangeLogin(),e.exports=I,window.loginDeal=I}).call(t,n(1))},function(e,t,n){n(2)(n(3)),e.exports=window._mlogin_zepto},function(e,t){e.exports=function(e){"function"==typeof execScript?execScript(e):eval.call(null,e)}},function(e,t){e.exports="'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* Zepto 1.1.4 - 20170316淇敼xhr by tinda.lliu zepto event ajax form ie detect fx fx_methods assets data callbacks deferred selector touch stack - zeptojs.com/license */\n\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) define(function () {\n return factory(global);\n });else factory(global);\n // 瑙e喅鎵撳寘鐨勬椂鍊檂this`涓簎ndefined锛岃繖閲屽啓姝粀indow\n})(window, function (window) {\n\n var Zepto = function () {\n var undefined,\n key,\n $,\n classList,\n emptyArray = [],\n _concat = emptyArray.concat,\n _filter = emptyArray.filter,\n _slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {},\n classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1, 'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n adjacencyOperators = ['after', 'prepend', 'before', 'append'],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize,\n uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray || function (object) {\n return object instanceof Array;\n };\n\n zepto.matches = function (element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false;\n var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector;\n if (matchesSelector) return matchesSelector.call(element, selector);\n // fall back to performing a selector:\n var match,\n parent = element.parentNode,\n temp = !parent;\n if (temp) (parent = tempParent).appendChild(element);\n match = ~zepto.qsa(parent, selector).indexOf(element);\n temp && tempParent.removeChild(element);\n return match;\n };\n\n function type(obj) {\n return obj == null ? String(obj) : class2type[toString.call(obj)] || \"object\";\n }\n\n function isFunction(value) {\n return type(value) == \"function\";\n }\n function isWindow(obj) {\n return obj != null && obj == obj.window;\n }\n function isDocument(obj) {\n return obj != null && obj.nodeType == obj.DOCUMENT_NODE;\n }\n function isObject(obj) {\n return type(obj) == \"object\";\n }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n }\n function likeArray(obj) {\n return typeof obj.length == 'number';\n }\n\n function compact(array) {\n return _filter.call(array, function (item) {\n return item != null;\n });\n }\n function flatten(array) {\n return array.length > 0 ? $.fn.concat.apply([], array) : array;\n }\n camelize = function camelize(str) {\n return str.replace(/-+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n };\n function dasherize(str) {\n return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\\d])([A-Z])/g, '$1_$2').replace(/_/g, '-').toLowerCase();\n }\n uniq = function uniq(array) {\n return _filter.call(array, function (item, idx) {\n return array.indexOf(item) == idx;\n });\n };\n\n function classRE(name) {\n return name in classCache ? classCache[name] : classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)');\n }\n\n function maybeAddPx(name, value) {\n return typeof value == \"number\" && !cssNumber[dasherize(name)] ? value + \"px\" : value;\n }\n\n function defaultDisplay(nodeName) {\n var element, display;\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getComputedStyle(element, '').getPropertyValue(\"display\");\n element.parentNode.removeChild(element);\n display == \"none\" && (display = \"block\");\n elementDisplay[nodeName] = display;\n }\n return elementDisplay[nodeName];\n }\n\n function _children(element) {\n return 'children' in element ? _slice.call(element.children) : $.map(element.childNodes, function (node) {\n if (node.nodeType == 1) return node;\n });\n }\n\n function Z(dom, selector) {\n var i,\n len = dom ? dom.length : 0;\n for (i = 0; i < len; i++) {\n this[i] = dom[i];\n }this.length = len;\n this.selector = selector || '';\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overriden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function (html, name, properties) {\n var dom, nodes, container;\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1));\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1>\");\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1;\n if (!(name in containers)) name = '*';\n\n container = containers[name];\n container.innerHTML = '' + html;\n dom = $.each(_slice.call(container.childNodes), function () {\n container.removeChild(this);\n });\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom);\n $.each(properties, function (key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value);else nodes.attr(key, value);\n });\n }\n\n return dom;\n };\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overriden in plugins.\n zepto.Z = function (dom, selector) {\n return new Z(dom, selector);\n };\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overriden in plugins.\n zepto.isZ = function (object) {\n return object instanceof zepto.Z;\n };\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overriden in plugins.\n zepto.init = function (selector, context) {\n var dom;\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z();\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim();\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector)) dom = zepto.fragment(selector, RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector);\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector;else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector);\n // Wrap DOM nodes.\n else if (isObject(selector)) dom = [selector], selector = null;\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector);\n };\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function $(selector, context) {\n return zepto.init(selector, context);\n };\n\n function extend(target, source, deep) {\n for (key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {};\n if (isArray(source[key]) && !isArray(target[key])) target[key] = [];\n extend(target[key], source[key], deep);\n } else if (source[key] !== undefined) target[key] = source[key];\n }\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function (target) {\n var deep,\n args = _slice.call(arguments, 1);\n if (typeof target == 'boolean') {\n deep = target;\n target = args.shift();\n }\n args.forEach(function (arg) {\n extend(target, arg, deep);\n });\n return target;\n };\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overriden in plugins.\n zepto.qsa = function (element, selector) {\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly);\n return element.getElementById && isSimple && maybeID ? // Safari DocumentFragment doesn't have getElementById\n (found = element.getElementById(nameOnly)) ? [found] : [] : element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 ? [] : _slice.call(isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n );\n };\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector);\n }\n\n $.contains = document.documentElement.contains ? function (parent, node) {\n return parent !== node && parent.contains(node);\n } : function (parent, node) {\n while (node && (node = node.parentNode)) {\n if (node === parent) return true;\n }return false;\n };\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg;\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value);\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value) {\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined;\n\n if (value === undefined) return svg ? klass.baseVal : klass;\n svg ? klass.baseVal = value : node.className = value;\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ? value == \"true\" || (value == \"false\" ? false : value == \"null\" ? null : +value + \"\" == value ? +value : /^[\\[\\{]/.test(value) ? $.parseJSON(value) : value) : value;\n } catch (e) {\n return value;\n }\n }\n\n $.type = type;\n $.isFunction = isFunction;\n $.isWindow = isWindow;\n $.isArray = isArray;\n $.isPlainObject = isPlainObject;\n\n $.isEmptyObject = function (obj) {\n var name;\n for (name in obj) {\n return false;\n }return true;\n };\n\n $.inArray = function (elem, array, i) {\n return emptyArray.indexOf.call(array, elem, i);\n };\n\n $.camelCase = camelize;\n $.trim = function (str) {\n return str == null ? \"\" : String.prototype.trim.call(str);\n };\n\n // plugin compatibility\n $.uuid = 0;\n $.support = {};\n $.expr = {};\n $.noop = function () {};\n\n $.map = function (elements, callback) {\n var value,\n values = [],\n i,\n key;\n if (likeArray(elements)) for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i);\n if (value != null) values.push(value);\n } else for (key in elements) {\n value = callback(elements[key], key);\n if (value != null) values.push(value);\n }\n return flatten(values);\n };\n\n $.each = function (elements, callback) {\n var i, key;\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++) {\n if (callback.call(elements[i], i, elements[i]) === false) return elements;\n }\n } else {\n for (key in elements) {\n if (callback.call(elements[key], key, elements[key]) === false) return elements;\n }\n }\n\n return elements;\n };\n\n $.grep = function (elements, callback) {\n return _filter.call(elements, callback);\n };\n\n if (window.JSON) $.parseJSON = JSON.parse;\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function concat() {\n var i,\n value,\n args = [];\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i];\n args[i] = zepto.isZ(value) ? value.toArray() : value;\n }\n return _concat.apply(zepto.isZ(this) ? this.toArray() : this, args);\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function map(fn) {\n return $($.map(this, function (el, i) {\n return fn.call(el, i, el);\n }));\n },\n slice: function slice() {\n return $(_slice.apply(this, arguments));\n },\n\n ready: function ready(callback) {\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($);else document.addEventListener('DOMContentLoaded', function () {\n callback($);\n }, false);\n return this;\n },\n get: function get(idx) {\n return idx === undefined ? _slice.call(this) : this[idx >= 0 ? idx : idx + this.length];\n },\n toArray: function toArray() {\n return this.get();\n },\n size: function size() {\n return this.length;\n },\n remove: function remove() {\n return this.each(function () {\n if (this.parentNode != null) this.parentNode.removeChild(this);\n });\n },\n each: function each(callback) {\n emptyArray.every.call(this, function (el, idx) {\n return callback.call(el, idx, el) !== false;\n });\n return this;\n },\n filter: function filter(selector) {\n if (isFunction(selector)) return this.not(this.not(selector));\n return $(_filter.call(this, function (element) {\n return zepto.matches(element, selector);\n }));\n },\n add: function add(selector, context) {\n return $(uniq(this.concat($(selector, context))));\n },\n is: function is(selector) {\n return this.length > 0 && zepto.matches(this[0], selector);\n },\n not: function not(selector) {\n var nodes = [];\n if (isFunction(selector) && selector.call !== undefined) this.each(function (idx) {\n if (!selector.call(this, idx)) nodes.push(this);\n });else {\n var excludes = typeof selector == 'string' ? this.filter(selector) : likeArray(selector) && isFunction(selector.item) ? _slice.call(selector) : $(selector);\n this.forEach(function (el) {\n if (excludes.indexOf(el) < 0) nodes.push(el);\n });\n }\n return $(nodes);\n },\n has: function has(selector) {\n return this.filter(function () {\n return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size();\n });\n },\n eq: function eq(idx) {\n return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1);\n },\n first: function first() {\n var el = this[0];\n return el && !isObject(el) ? el : $(el);\n },\n last: function last() {\n var el = this[this.length - 1];\n return el && !isObject(el) ? el : $(el);\n },\n find: function find(selector) {\n var result,\n $this = this;\n if (!selector) result = $();else if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object') result = $(selector).filter(function () {\n var node = this;\n return emptyArray.some.call($this, function (parent) {\n return $.contains(parent, node);\n });\n });else if (this.length == 1) result = $(zepto.qsa(this[0], selector));else result = this.map(function () {\n return zepto.qsa(this, selector);\n });\n return result;\n },\n closest: function closest(selector, context) {\n var node = this[0],\n collection = false;\n if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object') collection = $(selector);\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) {\n node = node !== context && !isDocument(node) && node.parentNode;\n }return $(node);\n },\n parents: function parents(selector) {\n var ancestors = [],\n nodes = this;\n while (nodes.length > 0) {\n nodes = $.map(nodes, function (node) {\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node);\n return node;\n }\n });\n }return filtered(ancestors, selector);\n },\n parent: function parent(selector) {\n return filtered(uniq(this.pluck('parentNode')), selector);\n },\n children: function children(selector) {\n return filtered(this.map(function () {\n return _children(this);\n }), selector);\n },\n contents: function contents() {\n return this.map(function () {\n return this.contentDocument || _slice.call(this.childNodes);\n });\n },\n siblings: function siblings(selector) {\n return filtered(this.map(function (i, el) {\n return _filter.call(_children(el.parentNode), function (child) {\n return child !== el;\n });\n }), selector);\n },\n empty: function empty() {\n return this.each(function () {\n this.innerHTML = '';\n });\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function pluck(property) {\n return $.map(this, function (el) {\n return el[property];\n });\n },\n show: function show() {\n return this.each(function () {\n this.style.display == \"none\" && (this.style.display = '');\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\") this.style.display = defaultDisplay(this.nodeName);\n });\n },\n replaceWith: function replaceWith(newContent) {\n return this.before(newContent).remove();\n },\n wrap: function wrap(structure) {\n var func = isFunction(structure);\n if (this[0] && !func) var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1;\n\n return this.each(function (index) {\n $(this).wrapAll(func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom);\n });\n },\n wrapAll: function wrapAll(structure) {\n if (this[0]) {\n $(this[0]).before(structure = $(structure));\n var children;\n // drill down to the inmost element\n while ((children = structure.children()).length) {\n structure = children.first();\n }$(structure).append(this);\n }\n return this;\n },\n wrapInner: function wrapInner(structure) {\n var func = isFunction(structure);\n return this.each(function (index) {\n var self = $(this),\n contents = self.contents(),\n dom = func ? structure.call(this, index) : structure;\n contents.length ? contents.wrapAll(dom) : self.append(dom);\n });\n },\n unwrap: function unwrap() {\n this.parent().each(function () {\n $(this).replaceWith($(this).children());\n });\n return this;\n },\n clone: function clone() {\n return this.map(function () {\n return this.cloneNode(true);\n });\n },\n hide: function hide() {\n return this.css(\"display\", \"none\");\n },\n toggle: function toggle(setting) {\n return this.each(function () {\n var el = $(this);(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide();\n });\n },\n prev: function prev(selector) {\n return $(this.pluck('previousElementSibling')).filter(selector || '*');\n },\n next: function next(selector) {\n return $(this.pluck('nextElementSibling')).filter(selector || '*');\n },\n html: function html(_html) {\n return 0 in arguments ? this.each(function (idx) {\n var originHtml = this.innerHTML;\n $(this).empty().append(funcArg(this, _html, idx, originHtml));\n }) : 0 in this ? this[0].innerHTML : null;\n },\n text: function text(_text) {\n return 0 in arguments ? this.each(function (idx) {\n var newText = funcArg(this, _text, idx, this.textContent);\n this.textContent = newText == null ? '' : '' + newText;\n }) : 0 in this ? this[0].textContent : null;\n },\n attr: function attr(name, value) {\n var result;\n return typeof name == 'string' && !(1 in arguments) ? !this.length || this[0].nodeType !== 1 ? undefined : !(result = this[0].getAttribute(name)) && name in this[0] ? this[0][name] : result : this.each(function (idx) {\n if (this.nodeType !== 1) return;\n if (isObject(name)) for (key in name) {\n setAttribute(this, key, name[key]);\n } else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)));\n });\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n this.nodeType === 1 && name.split(' ').forEach(function (attribute) {\n setAttribute(this, attribute);\n }, this);\n });\n },\n prop: function prop(name, value) {\n name = propMap[name] || name;\n return 1 in arguments ? this.each(function (idx) {\n this[name] = funcArg(this, value, idx, this[name]);\n }) : this[0] && this[0][name];\n },\n data: function data(name, value) {\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase();\n\n var data = 1 in arguments ? this.attr(attrName, value) : this.attr(attrName);\n\n return data !== null ? deserializeValue(data) : undefined;\n },\n val: function val(value) {\n return 0 in arguments ? this.each(function (idx) {\n this.value = funcArg(this, value, idx, this.value);\n }) : this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function () {\n return this.selected;\n }).pluck('value') : this[0].value);\n },\n offset: function offset(coordinates) {\n if (coordinates) return this.each(function (index) {\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n };\n\n if ($this.css('position') == 'static') props['position'] = 'relative';\n $this.css(props);\n });\n if (!this.length) return null;\n var obj = this[0].getBoundingClientRect();\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n };\n },\n css: function css(property, value) {\n if (arguments.length < 2) {\n var computedStyle,\n element = this[0];\n if (!element) return;\n computedStyle = getComputedStyle(element, '');\n if (typeof property == 'string') return element.style[camelize(property)] || computedStyle.getPropertyValue(property);else if (isArray(property)) {\n var props = {};\n $.each(property, function (_, prop) {\n props[prop] = element.style[camelize(prop)] || computedStyle.getPropertyValue(prop);\n });\n return props;\n }\n }\n\n var css = '';\n if (type(property) == 'string') {\n if (!value && value !== 0) this.each(function () {\n this.style.removeProperty(dasherize(property));\n });else css = dasherize(property) + \":\" + maybeAddPx(property, value);\n } else {\n for (key in property) {\n if (!property[key] && property[key] !== 0) this.each(function () {\n this.style.removeProperty(dasherize(key));\n });else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';';\n }\n }\n\n return this.each(function () {\n this.style.cssText += ';' + css;\n });\n },\n index: function index(element) {\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]);\n },\n hasClass: function hasClass(name) {\n if (!name) return false;\n return emptyArray.some.call(this, function (el) {\n return this.test(className(el));\n }, classRE(name));\n },\n addClass: function addClass(name) {\n if (!name) return this;\n return this.each(function (idx) {\n if (!('className' in this)) return;\n classList = [];\n var cls = className(this),\n newName = funcArg(this, name, idx, cls);\n newName.split(/\\s+/g).forEach(function (klass) {\n if (!$(this).hasClass(klass)) classList.push(klass);\n }, this);\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"));\n });\n },\n removeClass: function removeClass(name) {\n return this.each(function (idx) {\n if (!('className' in this)) return;\n if (name === undefined) return className(this, '');\n classList = className(this);\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function (klass) {\n classList = classList.replace(classRE(klass), \" \");\n });\n className(this, classList.trim());\n });\n },\n toggleClass: function toggleClass(name, when) {\n if (!name) return this;\n return this.each(function (idx) {\n var $this = $(this),\n names = funcArg(this, name, idx, className(this));\n names.split(/\\s+/g).forEach(function (klass) {\n (when === undefined ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass);\n });\n });\n },\n scrollTop: function scrollTop(value) {\n if (!this.length) return;\n var hasScrollTop = 'scrollTop' in this[0];\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset;\n return this.each(hasScrollTop ? function () {\n this.scrollTop = value;\n } : function () {\n this.scrollTo(this.scrollX, value);\n });\n },\n scrollLeft: function scrollLeft(value) {\n if (!this.length) return;\n var hasScrollLeft = 'scrollLeft' in this[0];\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset;\n return this.each(hasScrollLeft ? function () {\n this.scrollLeft = value;\n } : function () {\n this.scrollTo(value, this.scrollY);\n });\n },\n position: function position() {\n if (!this.length) return;\n\n var elem = this[0],\n\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat($(elem).css('margin-top')) || 0;\n offset.left -= parseFloat($(elem).css('margin-left')) || 0;\n\n // Add offsetParent borders\n parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0;\n parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0;\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n };\n },\n offsetParent: function offsetParent() {\n return this.map(function () {\n var parent = this.offsetParent || document.body;\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\") {\n parent = parent.offsetParent;\n }return parent;\n });\n }\n\n // for now\n };$.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function (dimension) {\n var dimensionProperty = dimension.replace(/./, function (m) {\n return m[0].toUpperCase();\n });\n\n $.fn[dimension] = function (value) {\n var offset,\n el = this[0];\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension];else return this.each(function (idx) {\n el = $(this);\n el.css(dimension, funcArg(this, value, idx, el[dimension]()));\n });\n };\n });\n\n function traverseNode(node, fun) {\n fun(node);\n for (var i = 0, len = node.childNodes.length; i < len; i++) {\n traverseNode(node.childNodes[i], fun);\n }\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function (operator, operatorIndex) {\n var inside = operatorIndex % 2; //=> prepend, append\n\n $.fn[operator] = function () {\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType,\n nodes = $.map(arguments, function (arg) {\n argType = type(arg);\n return argType == \"object\" || argType == \"array\" || arg == null ? arg : zepto.fragment(arg);\n }),\n parent,\n copyByClone = this.length > 1;\n if (nodes.length < 1) return this;\n\n return this.each(function (_, target) {\n parent = inside ? target : target.parentNode;\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null;\n\n var parentInDocument = $.contains(document.documentElement, parent);\n\n nodes.forEach(function (node) {\n if (copyByClone) node = node.cloneNode(true);else if (!parent) return $(node).remove();\n\n parent.insertBefore(node, target);\n if (parentInDocument) traverseNode(node, function (el) {\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) window['eval'].call(window, el.innerHTML);\n });\n });\n });\n };\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function (html) {\n $(html)[operator](this);\n return this;\n };\n });\n\n zepto.Z.prototype = Z.prototype = $.fn;\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq;\n zepto.deserializeValue = deserializeValue;\n $.zepto = zepto;\n\n return $;\n }();\n\n window.Zepto = Zepto;\n window.$ === undefined && (window.$ = Zepto);\n\n window._mlogin_zepto = Zepto;(function ($) {\n var _zid = 1,\n undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function isString(obj) {\n return typeof obj == 'string';\n },\n handlers = {},\n specialEvents = {},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' };\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents';\n\n function zid(element) {\n return element._zid || (element._zid = _zid++);\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event);\n if (event.ns) var matcher = matcherFor(event.ns);\n return (handlers[zid(element)] || []).filter(function (handler) {\n return handler && (!event.e || handler.e == event.e) && (!event.ns || matcher.test(handler.ns)) && (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector);\n });\n }\n function parse(event) {\n var parts = ('' + event).split('.');\n return { e: parts[0], ns: parts.slice(1).sort().join(' ') };\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del && !focusinSupported && handler.e in focus || !!captureSetting;\n }\n\n function realEvent(type) {\n return hover[type] || focusinSupported && focus[type] || type;\n }\n\n function add(element, events, fn, data, selector, delegator, capture) {\n var id = zid(element),\n set = handlers[id] || (handlers[id] = []);\n events.split(/\\s/).forEach(function (event) {\n if (event == 'ready') return $(document).ready(fn);\n var handler = parse(event);\n handler.fn = fn;\n handler.sel = selector;\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function fn(e) {\n var related = e.relatedTarget;\n if (!related || related !== this && !$.contains(this, related)) return handler.fn.apply(this, arguments);\n };\n handler.del = delegator;\n var callback = delegator || fn;\n handler.proxy = function (e) {\n e = compatible(e);\n if (e.isImmediatePropagationStopped()) return;\n try {\n e.data = data;\n } catch (e) {\n console.log(e.message);\n }\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args));\n if (result === false) e.preventDefault(), e.stopPropagation();\n return result;\n };\n handler.i = set.length;\n set.push(handler);\n if ('addEventListener' in element) element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n }\n function remove(element, events, fn, selector, capture) {\n var id = zid(element);(events || '').split(/\\s/).forEach(function (event) {\n findHandlers(element, event, fn, selector).forEach(function (handler) {\n delete handlers[id][handler.i];\n if ('removeEventListener' in element) element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n });\n }\n\n $.event = { add: add, remove: remove };\n\n $.proxy = function (fn, context) {\n var args = 2 in arguments && slice.call(arguments, 2);\n if (isFunction(fn)) {\n var proxyFn = function proxyFn() {\n return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments);\n };\n proxyFn._zid = zid(fn);\n return proxyFn;\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn);\n return $.proxy.apply(null, args);\n } else {\n return $.proxy(fn[context], fn);\n }\n } else {\n throw new TypeError(\"expected function\");\n }\n };\n\n $.fn.bind = function (event, data, callback) {\n return this.on(event, data, callback);\n };\n $.fn.unbind = function (event, callback) {\n return this.off(event, callback);\n };\n $.fn.one = function (event, selector, data, callback) {\n return this.on(event, selector, data, callback, 1);\n };\n\n var returnTrue = function returnTrue() {\n return true;\n },\n returnFalse = function returnFalse() {\n return false;\n },\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n };\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event);\n\n $.each(eventMethods, function (name, predicate) {\n var sourceMethod = source[name];\n event[name] = function () {\n this[predicate] = returnTrue;\n return sourceMethod && sourceMethod.apply(source, arguments);\n };\n event[predicate] = returnFalse;\n });\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented : 'returnValue' in source ? source.returnValue === false : source.getPreventDefault && source.getPreventDefault()) event.isDefaultPrevented = returnTrue;\n }\n return event;\n }\n\n function createProxy(event) {\n var key,\n proxy = { originalEvent: event };\n for (key in event) {\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key];\n }return compatible(proxy, event);\n }\n\n $.fn.delegate = function (selector, event, callback) {\n return this.on(event, selector, callback);\n };\n $.fn.undelegate = function (selector, event, callback) {\n return this.off(event, selector, callback);\n };\n\n $.fn.live = function (event, callback) {\n $(document.body).delegate(this.selector, event, callback);\n return this;\n };\n $.fn.die = function (event, callback) {\n $(document.body).undelegate(this.selector, event, callback);\n return this;\n };\n\n $.fn.on = function (event, selector, data, callback, one) {\n var autoRemove,\n delegator,\n $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.on(type, selector, data, fn, one);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = data, data = selector, selector = undefined;\n if (callback === undefined || data === false) callback = data, data = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function (_, element) {\n if (one) autoRemove = function autoRemove(e) {\n remove(element, e.type, callback);\n return callback.apply(this, arguments);\n };\n\n if (selector) delegator = function delegator(e) {\n var evt,\n match = $(e.target).closest(selector, element).get(0);\n if (match && match !== element) {\n evt = $.extend(createProxy(e), { currentTarget: match, liveFired: element });\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)));\n }\n };\n\n add(element, event, callback, data, selector, delegator || autoRemove);\n });\n };\n $.fn.off = function (event, selector, callback) {\n var $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.off(type, selector, fn);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = selector, selector = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function () {\n remove(this, event, callback, selector);\n });\n };\n\n $.fn.trigger = function (event, args) {\n event = isString(event) || $.isPlainObject(event) ? $.Event(event) : compatible(event);\n event._args = args;\n return this.each(function () {\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]();\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event);else $(this).triggerHandler(event, args);\n });\n };\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function (event, args) {\n var e, result;\n this.each(function (i, element) {\n e = createProxy(isString(event) ? $.Event(event) : event);\n e._args = args;\n e.target = element;\n $.each(findHandlers(element, event.type || event), function (i, handler) {\n result = handler.proxy(e);\n if (e.isImmediatePropagationStopped()) return false;\n });\n });\n return result;\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select keydown keypress keyup error').split(' ').forEach(function (event) {\n $.fn[event] = function (callback) {\n return 0 in arguments ? this.bind(event, callback) : this.trigger(event);\n };\n });\n\n $.Event = function (type, props) {\n if (!isString(type)) props = type, type = props.type;\n var event = document.createEvent(specialEvents[type] || 'Events'),\n bubbles = true;\n if (props) for (var name in props) {\n name == 'bubbles' ? bubbles = !!props[name] : event[name] = props[name];\n }event.initEvent(type, bubbles, true);\n return compatible(event);\n };\n })(Zepto);(function ($) {\n var jsonpID = 0,\n document = window.document,\n key,\n name,\n rscript = /)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a');\n\n originAnchor.href = window.location.href;\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName);\n $(context).trigger(event, data);\n return !event.isDefaultPrevented();\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data);\n }\n\n // Number of active Ajax requests\n $.active = 0;\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart');\n }\n function ajaxStop(settings) {\n if (settings.global && ! --$.active) triggerGlobal(settings, null, 'ajaxStop');\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context;\n if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false;\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]);\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context,\n status = 'success';\n settings.success.call(context, data, status, xhr);\n if (deferred) deferred.resolveWith(context, [data, status, xhr]);\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]);\n ajaxComplete(status, xhr, settings);\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context;\n settings.error.call(context, xhr, type, error);\n if (deferred) deferred.rejectWith(context, [xhr, type, error]);\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]);\n ajaxComplete(type, xhr, settings);\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context;\n settings.complete.call(context, xhr, status);\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]);\n ajaxStop(settings);\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function (options, deferred) {\n if (!('type' in options)) return $.ajax(options);\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ? _callbackName() : _callbackName) || 'jsonp' + ++jsonpID,\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function abort(errorType) {\n $(script).triggerHandler('error', errorType || 'abort');\n },\n xhr = { abort: abort },\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n $(script).on('load error', function (e, errorType) {\n clearTimeout(abortTimeout);\n $(script).off().remove();\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred);\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred);\n }\n\n window[callbackName] = originalCallback;\n if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]);\n\n originalCallback = responseData = undefined;\n });\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort');\n return xhr;\n }\n\n window[callbackName] = function () {\n responseData = arguments;\n };\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName);\n document.head.appendChild(script);\n\n if (options.timeout > 0) abortTimeout = setTimeout(function () {\n abort('timeout');\n }, options.timeout);\n\n return xhr;\n };\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function xhr() {\n return new window.XMLHttpRequest();\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true\n };\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0];\n return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text';\n }\n\n function appendQuery(url, query) {\n if (query == '') return url;\n return (url + '&' + query).replace(/[&?]{1,2}/, '?');\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\") options.data = $.param(options.data, options.traditional);\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET')) options.url = appendQuery(options.url, options.data), options.data = undefined;\n }\n\n $.ajax = function (options) {\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor,\n hashIndex;\n for (key in $.ajaxSettings) {\n if (settings[key] === undefined) settings[key] = $.ajaxSettings[key];\n }ajaxStart(settings);\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a');\n urlAnchor.href = settings.url;\n urlAnchor.href = urlAnchor.href;\n settings.crossDomain = originAnchor.protocol + '//' + originAnchor.host !== urlAnchor.protocol + '//' + urlAnchor.host;\n }\n\n if (!settings.url) settings.url = window.location.toString();\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex);\n serializeData(settings);\n\n var dataType = settings.dataType,\n hasPlaceholder = /\\?.+=\\?/.test(settings.url);\n if (hasPlaceholder) dataType = 'jsonp';\n\n if (settings.cache === false || (!options || options.cache !== true) && ('script' == dataType || 'jsonp' == dataType)) settings.url = appendQuery(settings.url, '_=' + Date.now());\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder) settings.url = appendQuery(settings.url, settings.jsonp ? settings.jsonp + '=?' : settings.jsonp === false ? '' : 'callback=?');\n return $.ajaxJSONP(settings, deferred);\n }\n\n var mime = settings.accepts[dataType],\n headers = {},\n setHeader = function setHeader(name, value) {\n headers[name.toLowerCase()] = [name, value];\n },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest');\n setHeader('Accept', mime || '*/*');\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0];\n xhr.overrideMimeType && xhr.overrideMimeType(mime);\n }\n if (settings.contentType || settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET') setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');\n\n if (settings.headers) for (name in settings.headers) {\n setHeader(name, settings.headers[name]);\n }xhr.setRequestHeader = setHeader;\n\n var async = 'async' in settings ? settings.async : true;\n xhr.open(settings.type, settings.url, async, settings.username, settings.password);\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty;\n clearTimeout(abortTimeout);\n var result,\n error = false;\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 || xhr.status == 0 && protocol == 'file:') {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));\n result = xhr.responseText;\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n if (dataType == 'script') (1, eval)(result);else if (dataType == 'xml') result = xhr.responseXML;else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result);\n } catch (e) {\n error = e;\n }\n\n if (error) ajaxError(error, 'parsererror', xhr, settings, deferred);else ajaxSuccess(result, xhr, settings, deferred);\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred);\n }\n }\n };\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort();\n ajaxError(null, 'abort', xhr, settings, deferred);\n return xhr;\n }\n\n if (settings.xhrFields) for (name in settings.xhrFields) {\n xhr[name] = settings.xhrFields[name];\n }for (name in headers) {\n nativeSetHeader.apply(xhr, headers[name]);\n }if (settings.timeout > 0) abortTimeout = setTimeout(function () {\n xhr.onreadystatechange = empty;\n xhr.abort();\n ajaxError(null, 'timeout', xhr, settings, deferred);\n }, settings.timeout);\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null);\n return xhr;\n };\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined;\n if (!$.isFunction(success)) dataType = success, success = undefined;\n return {\n url: url,\n data: data,\n success: success,\n dataType: dataType\n };\n }\n\n $.get = function () /* url, data, success, dataType */{\n return $.ajax(parseArguments.apply(null, arguments));\n };\n\n $.post = function () /* url, data, success, dataType */{\n var options = parseArguments.apply(null, arguments);\n options.type = 'POST';\n return $.ajax(options);\n };\n\n $.getJSON = function () /* url, data, success */{\n var options = parseArguments.apply(null, arguments);\n options.dataType = 'json';\n return $.ajax(options);\n };\n\n $.fn.load = function (url, data, success) {\n if (!this.length) return this;\n var self = this,\n parts = url.split(/\\s/),\n selector,\n options = parseArguments(url, data, success),\n callback = options.success;\n if (parts.length > 1) options.url = parts[0], selector = parts[1];\n options.success = function (response) {\n self.html(selector ? $('
    ').html(response.replace(rscript, \"\")).find(selector) : response);\n callback && callback.apply(self, arguments);\n };\n $.ajax(options);\n return this;\n };\n\n var escape = encodeURIComponent;\n\n function serialize(params, obj, traditional, scope) {\n var type,\n array = $.isArray(obj),\n hash = $.isPlainObject(obj);\n $.each(obj, function (key, value) {\n type = $.type(value);\n if (scope) key = traditional ? scope : scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']';\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value);\n // recurse into nested objects\n else if (type == \"array\" || !traditional && type == \"object\") serialize(params, value, traditional, key);else params.add(key, value);\n });\n }\n\n $.param = function (obj, traditional) {\n var params = [];\n params.add = function (key, value) {\n if ($.isFunction(value)) value = value();\n if (value == null) value = \"\";\n this.push(escape(key) + '=' + escape(value));\n };\n serialize(params, obj, traditional);\n return params.join('&').replace(/%20/g, '+');\n };\n })(Zepto);(function ($) {\n $.fn.serializeArray = function () {\n var name,\n type,\n result = [],\n add = function add(value) {\n if (value.forEach) return value.forEach(add);\n result.push({ name: name, value: value });\n };\n if (this[0]) $.each(this[0].elements, function (_, field) {\n type = field.type, name = field.name;\n if (name && field.nodeName.toLowerCase() != 'fieldset' && !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' && (type != 'radio' && type != 'checkbox' || field.checked)) add($(field).val());\n });\n return result;\n };\n\n $.fn.serialize = function () {\n var result = [];\n this.serializeArray().forEach(function (elm) {\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value));\n });\n return result.join('&');\n };\n\n $.fn.submit = function (callback) {\n if (0 in arguments) this.bind('submit', callback);else if (this.length) {\n var event = $.Event('submit');\n this.eq(0).trigger(event);\n if (!event.isDefaultPrevented()) this.get(0).submit();\n }\n return this;\n };\n })(Zepto);(function () {\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined);\n } catch (e) {\n var nativeGetComputedStyle = getComputedStyle;\n window.getComputedStyle = function (element) {\n try {\n return nativeGetComputedStyle(element);\n } catch (e) {\n return null;\n }\n };\n }\n })();(function ($) {\n function detect(ua, platform) {\n var os = this.os = {},\n browser = this.browser = {},\n webkit = ua.match(/Web[kK]it[\\/]{0,1}([\\d.]+)/),\n android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/),\n osx = !!ua.match(/\\(Macintosh\\; Intel /),\n ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/),\n ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/),\n iphone = !ipad && ua.match(/(iPhone\\sOS)\\s([\\d_]+)/),\n webos = ua.match(/(webOS|hpwOS)[\\s\\/]([\\d.]+)/),\n win = /Win\\d{2}|Windows/.test(platform),\n wp = ua.match(/Windows Phone ([\\d.]+)/),\n touchpad = webos && ua.match(/TouchPad/),\n kindle = ua.match(/Kindle\\/([\\d.]+)/),\n silk = ua.match(/Silk\\/([\\d._]+)/),\n blackberry = ua.match(/(BlackBerry).*Version\\/([\\d.]+)/),\n bb10 = ua.match(/(BB10).*Version\\/([\\d.]+)/),\n rimtabletos = ua.match(/(RIM\\sTablet\\sOS)\\s([\\d.]+)/),\n playbook = ua.match(/PlayBook/),\n chrome = ua.match(/Chrome\\/([\\d.]+)/) || ua.match(/CriOS\\/([\\d.]+)/),\n firefox = ua.match(/Firefox\\/([\\d.]+)/),\n firefoxos = ua.match(/\\((?:Mobile|Tablet); rv:([\\d.]+)\\).*Firefox\\/[\\d.]+/),\n ie = ua.match(/MSIE\\s([\\d.]+)/) || ua.match(/Trident\\/[\\d](?=[^\\?]+).*rv:([0-9.].)/),\n webview = !chrome && ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),\n safari = webview || ua.match(/Version\\/([\\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/);\n\n // Todo: clean this up with a better OS/browser seperation:\n // - discern (more) between multiple browsers on android\n // - decide if kindle fire in silk mode is android or not\n // - Firefox on Android doesn't specify the Android version\n // - possibly devide in os, device and browser hashes\n\n if (browser.webkit = !!webkit) browser.version = webkit[1];\n\n if (android) os.android = true, os.version = android[2];\n if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.');\n if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.');\n if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n if (wp) os.wp = true, os.version = wp[1];\n if (webos) os.webos = true, os.version = webos[2];\n if (touchpad) os.touchpad = true;\n if (blackberry) os.blackberry = true, os.version = blackberry[2];\n if (bb10) os.bb10 = true, os.version = bb10[2];\n if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2];\n if (playbook) browser.playbook = true;\n if (kindle) os.kindle = true, os.version = kindle[1];\n if (silk) browser.silk = true, browser.version = silk[1];\n if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true;\n if (chrome) browser.chrome = true, browser.version = chrome[1];\n if (firefox) browser.firefox = true, browser.version = firefox[1];\n if (firefoxos) os.firefoxos = true, os.version = firefoxos[1];\n if (ie) browser.ie = true, browser.version = ie[1];\n if (safari && (osx || os.ios || win)) {\n browser.safari = true;\n if (!os.ios) browser.version = safari[1];\n }\n if (webview) browser.webview = true;\n\n os.tablet = !!(ipad || playbook || android && !ua.match(/Mobile/) || firefox && ua.match(/Tablet/) || ie && !ua.match(/Phone/) && ua.match(/Touch/));\n os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos || blackberry || bb10 || chrome && ua.match(/Android/) || chrome && ua.match(/CriOS\\/([\\d.]+)/) || firefox && ua.match(/Mobile/) || ie && ua.match(/Touch/)));\n }\n\n detect.call($, navigator.userAgent, navigator.platform);\n // make available to unit tests\n $.__detect = detect;\n })(Zepto);(function ($, undefined) {\n var prefix = '',\n eventPrefix,\n vendors = { Webkit: 'webkit', Moz: '', O: 'o' },\n testEl = document.createElement('div'),\n supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,\n transform,\n transitionProperty,\n transitionDuration,\n transitionTiming,\n transitionDelay,\n animationName,\n animationDuration,\n animationTiming,\n animationDelay,\n cssReset = {};\n\n function dasherize(str) {\n return str.replace(/([a-z])([A-Z])/, '$1-$2').toLowerCase();\n }\n function normalizeEvent(name) {\n return eventPrefix ? eventPrefix + name : name.toLowerCase();\n }\n\n $.each(vendors, function (vendor, event) {\n if (testEl.style[vendor + 'TransitionProperty'] !== undefined) {\n prefix = '-' + vendor.toLowerCase() + '-';\n eventPrefix = event;\n return false;\n }\n });\n\n transform = prefix + 'transform';\n cssReset[transitionProperty = prefix + 'transition-property'] = cssReset[transitionDuration = prefix + 'transition-duration'] = cssReset[transitionDelay = prefix + 'transition-delay'] = cssReset[transitionTiming = prefix + 'transition-timing-function'] = cssReset[animationName = prefix + 'animation-name'] = cssReset[animationDuration = prefix + 'animation-duration'] = cssReset[animationDelay = prefix + 'animation-delay'] = cssReset[animationTiming = prefix + 'animation-timing-function'] = '';\n\n $.fx = {\n off: eventPrefix === undefined && testEl.style.transitionProperty === undefined,\n speeds: { _default: 400, fast: 200, slow: 600 },\n cssPrefix: prefix,\n transitionEnd: normalizeEvent('TransitionEnd'),\n animationEnd: normalizeEvent('AnimationEnd')\n };\n\n $.fn.animate = function (properties, duration, ease, callback, delay) {\n if ($.isFunction(duration)) callback = duration, ease = undefined, duration = undefined;\n if ($.isFunction(ease)) callback = ease, ease = undefined;\n if ($.isPlainObject(duration)) ease = duration.easing, callback = duration.complete, delay = duration.delay, duration = duration.duration;\n if (duration) duration = (typeof duration == 'number' ? duration : $.fx.speeds[duration] || $.fx.speeds._default) / 1000;\n if (delay) delay = parseFloat(delay) / 1000;\n return this.anim(properties, duration, ease, callback, delay);\n };\n\n $.fn.anim = function (properties, duration, ease, callback, delay) {\n var key,\n cssValues = {},\n cssProperties,\n transforms = '',\n that = this,\n _wrappedCallback,\n endEvent = $.fx.transitionEnd,\n fired = false;\n\n if (duration === undefined) duration = $.fx.speeds._default / 1000;\n if (delay === undefined) delay = 0;\n if ($.fx.off) duration = 0;\n\n if (typeof properties == 'string') {\n // keyframe animation\n cssValues[animationName] = properties;\n cssValues[animationDuration] = duration + 's';\n cssValues[animationDelay] = delay + 's';\n cssValues[animationTiming] = ease || 'linear';\n endEvent = $.fx.animationEnd;\n } else {\n cssProperties = [];\n // CSS transitions\n for (key in properties) {\n if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') ';else cssValues[key] = properties[key], cssProperties.push(dasherize(key));\n }if (transforms) cssValues[transform] = transforms, cssProperties.push(transform);\n if (duration > 0 && (typeof properties === 'undefined' ? 'undefined' : _typeof(properties)) === 'object') {\n cssValues[transitionProperty] = cssProperties.join(', ');\n cssValues[transitionDuration] = duration + 's';\n cssValues[transitionDelay] = delay + 's';\n cssValues[transitionTiming] = ease || 'linear';\n }\n }\n\n _wrappedCallback = function wrappedCallback(event) {\n if (typeof event !== 'undefined') {\n if (event.target !== event.currentTarget) return; // makes sure the event didn't bubble from \"below\"\n $(event.target).unbind(endEvent, _wrappedCallback);\n } else $(this).unbind(endEvent, _wrappedCallback); // triggered by setTimeout\n\n fired = true;\n $(this).css(cssReset);\n callback && callback.call(this);\n };\n if (duration > 0) {\n this.bind(endEvent, _wrappedCallback);\n // transitionEnd is not always firing on older Android phones\n // so make sure it gets fired\n setTimeout(function () {\n if (fired) return;\n _wrappedCallback.call(that);\n }, (duration + delay) * 1000 + 25);\n }\n\n // trigger page reflow so new elements can animate\n this.size() && this.get(0).clientLeft;\n\n this.css(cssValues);\n\n if (duration <= 0) setTimeout(function () {\n that.each(function () {\n _wrappedCallback.call(this);\n });\n }, 0);\n\n return this;\n };\n\n testEl = null;\n })(Zepto);(function ($, undefined) {\n var document = window.document,\n docElem = document.documentElement,\n origShow = $.fn.show,\n origHide = $.fn.hide,\n origToggle = $.fn.toggle;\n\n function anim(el, speed, opacity, scale, callback) {\n if (typeof speed == 'function' && !callback) callback = speed, speed = undefined;\n var props = { opacity: opacity };\n if (scale) {\n props.scale = scale;\n el.css($.fx.cssPrefix + 'transform-origin', '0 0');\n }\n return el.animate(props, speed, null, callback);\n }\n\n function hide(el, speed, scale, callback) {\n return anim(el, speed, 0, scale, function () {\n origHide.call($(this));\n callback && callback.call(this);\n });\n }\n\n $.fn.show = function (speed, callback) {\n origShow.call(this);\n if (speed === undefined) speed = 0;else this.css('opacity', 0);\n return anim(this, speed, 1, '1,1', callback);\n };\n\n $.fn.hide = function (speed, callback) {\n if (speed === undefined) return origHide.call(this);else return hide(this, speed, '0,0', callback);\n };\n\n $.fn.toggle = function (speed, callback) {\n if (speed === undefined || typeof speed == 'boolean') return origToggle.call(this, speed);else return this.each(function () {\n var el = $(this);\n el[el.css('display') == 'none' ? 'show' : 'hide'](speed, callback);\n });\n };\n\n $.fn.fadeTo = function (speed, opacity, callback) {\n return anim(this, speed, opacity, null, callback);\n };\n\n $.fn.fadeIn = function (speed, callback) {\n var target = this.css('opacity');\n if (target > 0) this.css('opacity', 0);else target = 1;\n return origShow.call(this).fadeTo(speed, target, callback);\n };\n\n $.fn.fadeOut = function (speed, callback) {\n return hide(this, speed, null, callback);\n };\n\n $.fn.fadeToggle = function (speed, callback) {\n return this.each(function () {\n var el = $(this);\n el[el.css('opacity') == 0 || el.css('display') == 'none' ? 'fadeIn' : 'fadeOut'](speed, callback);\n });\n };\n })(Zepto);(function ($) {\n var cache = [],\n timeout;\n\n $.fn.remove = function () {\n return this.each(function () {\n if (this.parentNode) {\n if (this.tagName === 'IMG') {\n cache.push(this);\n this.src = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(function () {\n cache = [];\n }, 60000);\n }\n this.parentNode.removeChild(this);\n }\n });\n };\n })(Zepto);(function ($) {\n var data = {},\n dataAttr = $.fn.data,\n camelize = $.camelCase,\n exp = $.expando = 'Zepto' + +new Date(),\n emptyArray = [];\n\n // Get value from node:\n // 1. first try key as given,\n // 2. then try camelized key,\n // 3. fall back to reading \"data-*\" attribute.\n function getData(node, name) {\n var id = node[exp],\n store = id && data[id];\n if (name === undefined) return store || setData(node);else {\n if (store) {\n if (name in store) return store[name];\n var camelName = camelize(name);\n if (camelName in store) return store[camelName];\n }\n return dataAttr.call($(node), name);\n }\n }\n\n // Store value under camelized key on node\n function setData(node, name, value) {\n var id = node[exp] || (node[exp] = ++$.uuid),\n store = data[id] || (data[id] = attributeData(node));\n if (name !== undefined) store[camelize(name)] = value;\n return store;\n }\n\n // Read all \"data-*\" attributes from a node\n function attributeData(node) {\n var store = {};\n $.each(node.attributes || emptyArray, function (i, attr) {\n if (attr.name.indexOf('data-') == 0) store[camelize(attr.name.replace('data-', ''))] = $.zepto.deserializeValue(attr.value);\n });\n return store;\n }\n\n $.fn.data = function (name, value) {\n return value === undefined ?\n // set multiple values via object\n $.isPlainObject(name) ? this.each(function (i, node) {\n $.each(name, function (key, value) {\n setData(node, key, value);\n });\n }) :\n // get value from first element\n 0 in this ? getData(this[0], name) : undefined :\n // set value on all elements\n this.each(function () {\n setData(this, name, value);\n });\n };\n\n $.fn.removeData = function (names) {\n if (typeof names == 'string') names = names.split(/\\s+/);\n return this.each(function () {\n var id = this[exp],\n store = id && data[id];\n if (store) $.each(names || store, function (key) {\n delete store[names ? camelize(this) : key];\n });\n });\n }\n\n // Generate extended `remove` and `empty` functions\n ;['remove', 'empty'].forEach(function (methodName) {\n var origFn = $.fn[methodName];\n $.fn[methodName] = function () {\n var elements = this.find('*');\n if (methodName === 'remove') elements = elements.add(this);\n elements.removeData();\n return origFn.call(this);\n };\n });\n })(Zepto);(function ($) {\n // Create a collection of callbacks to be fired in a sequence, with configurable behaviour\n // Option flags:\n // - once: Callbacks fired at most one time.\n // - memory: Remember the most recent context and arguments\n // - stopOnFalse: Cease iterating over callback list\n // - unique: Permit adding at most one instance of the same callback\n $.Callbacks = function (options) {\n options = $.extend({}, options);\n\n var memory,\n // Last fire value (for non-forgettable lists)\n _fired,\n // Flag to know if list was already fired\n firing,\n // Flag to know if list is currently firing\n firingStart,\n // First callback to fire (used internally by add and fireWith)\n firingLength,\n // End of the loop when firing\n firingIndex,\n // Index of currently firing callback (modified by remove if needed)\n list = [],\n // Actual callback list\n stack = !options.once && [],\n // Stack of fire calls for repeatable lists\n fire = function fire(data) {\n memory = options.memory && data;\n _fired = true;\n firingIndex = firingStart || 0;\n firingStart = 0;\n firingLength = list.length;\n firing = true;\n for (; list && firingIndex < firingLength; ++firingIndex) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false;\n break;\n }\n }\n firing = false;\n if (list) {\n if (stack) stack.length && fire(stack.shift());else if (memory) list.length = 0;else Callbacks.disable();\n }\n },\n Callbacks = {\n add: function add() {\n if (list) {\n var start = list.length,\n add = function add(args) {\n $.each(args, function (_, arg) {\n if (typeof arg === \"function\") {\n if (!options.unique || !Callbacks.has(arg)) list.push(arg);\n } else if (arg && arg.length && typeof arg !== 'string') add(arg);\n });\n };\n add(arguments);\n if (firing) firingLength = list.length;else if (memory) {\n firingStart = start;\n fire(memory);\n }\n }\n return this;\n },\n remove: function remove() {\n if (list) {\n $.each(arguments, function (_, arg) {\n var index;\n while ((index = $.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n // Handle firing indexes\n if (firing) {\n if (index <= firingLength) --firingLength;\n if (index <= firingIndex) --firingIndex;\n }\n }\n });\n }\n return this;\n },\n has: function has(fn) {\n return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length));\n },\n empty: function empty() {\n firingLength = list.length = 0;\n return this;\n },\n disable: function disable() {\n list = stack = memory = undefined;\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n lock: function lock() {\n stack = undefined;\n if (!memory) Callbacks.disable();\n return this;\n },\n locked: function locked() {\n return !stack;\n },\n fireWith: function fireWith(context, args) {\n if (list && (!_fired || stack)) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n if (firing) stack.push(args);else fire(args);\n }\n return this;\n },\n fire: function fire() {\n return Callbacks.fireWith(this, arguments);\n },\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return Callbacks;\n };\n })(Zepto);(function ($) {\n var slice = Array.prototype.slice;\n\n function Deferred(func) {\n var tuples = [\n // action, add listener, listener list, final state\n [\"resolve\", \"done\", $.Callbacks({ once: 1, memory: 1 }), \"resolved\"], [\"reject\", \"fail\", $.Callbacks({ once: 1, memory: 1 }), \"rejected\"], [\"notify\", \"progress\", $.Callbacks({ memory: 1 })]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function then() /* fnDone [, fnFailed [, fnProgress]] */{\n var fns = arguments;\n return Deferred(function (defer) {\n $.each(tuples, function (i, tuple) {\n var fn = $.isFunction(fns[i]) && fns[i];\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && $.isFunction(returned.promise)) {\n returned.promise().done(defer.resolve).fail(defer.reject).progress(defer.notify);\n } else {\n var context = this === _promise ? defer.promise() : this,\n values = fn ? [returned] : arguments;\n defer[tuple[0] + \"With\"](context, values);\n }\n });\n });\n fns = null;\n }).promise();\n },\n\n promise: function promise(obj) {\n return obj != null ? $.extend(obj, _promise) : _promise;\n }\n },\n deferred = {};\n\n $.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3];\n\n _promise[tuple[1]] = list.add;\n\n if (stateString) {\n list.add(function () {\n _state = stateString;\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? _promise : this, arguments);\n return this;\n };\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n _promise.promise(deferred);\n if (func) func.call(deferred, deferred);\n return deferred;\n }\n\n $.when = function (sub) {\n var resolveValues = slice.call(arguments),\n len = resolveValues.length,\n i = 0,\n remain = len !== 1 || sub && $.isFunction(sub.promise) ? len : 0,\n deferred = remain === 1 ? sub : Deferred(),\n progressValues,\n progressContexts,\n resolveContexts,\n updateFn = function updateFn(i, ctx, val) {\n return function (value) {\n ctx[i] = this;\n val[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (val === progressValues) {\n deferred.notifyWith(ctx, val);\n } else if (! --remain) {\n deferred.resolveWith(ctx, val);\n }\n };\n };\n\n if (len > 1) {\n progressValues = new Array(len);\n progressContexts = new Array(len);\n resolveContexts = new Array(len);\n for (; i < len; ++i) {\n if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise().done(updateFn(i, resolveContexts, resolveValues)).fail(deferred.reject).progress(updateFn(i, progressContexts, progressValues));\n } else {\n --remain;\n }\n }\n }\n if (!remain) deferred.resolveWith(resolveContexts, resolveValues);\n return deferred.promise();\n };\n\n $.Deferred = Deferred;\n })(Zepto);(function ($) {\n var zepto = $.zepto,\n oldQsa = zepto.qsa,\n oldMatches = zepto.matches;\n\n function _visible(elem) {\n elem = $(elem);\n return !!(elem.width() || elem.height()) && elem.css(\"display\") !== \"none\";\n }\n\n // Implements a subset from:\n // http://api.jquery.com/category/selectors/jquery-selector-extensions/\n //\n // Each filter function receives the current index, all nodes in the\n // considered set, and a value if there were parentheses. The value\n // of `this` is the node currently being considered. The function returns the\n // resulting node(s), null, or undefined.\n //\n // Complex selectors are not supported:\n // li:has(label:contains(\"foo\")) + li:has(label:contains(\"bar\"))\n // ul.inner:first > li\n var filters = $.expr[':'] = {\n visible: function visible() {\n if (_visible(this)) return this;\n },\n hidden: function hidden() {\n if (!_visible(this)) return this;\n },\n selected: function selected() {\n if (this.selected) return this;\n },\n checked: function checked() {\n if (this.checked) return this;\n },\n parent: function parent() {\n return this.parentNode;\n },\n first: function first(idx) {\n if (idx === 0) return this;\n },\n last: function last(idx, nodes) {\n if (idx === nodes.length - 1) return this;\n },\n eq: function eq(idx, _, value) {\n if (idx === value) return this;\n },\n contains: function contains(idx, _, text) {\n if ($(this).text().indexOf(text) > -1) return this;\n },\n has: function has(idx, _, sel) {\n if (zepto.qsa(this, sel).length) return this;\n }\n };\n\n var filterRe = new RegExp('(.*):(\\\\w+)(?:\\\\(([^)]+)\\\\))?$\\\\s*'),\n childRe = /^\\s*>/,\n classTag = 'Zepto' + +new Date();\n\n function process(sel, fn) {\n // quote the hash in `a[href^=#]` expression\n sel = sel.replace(/=#\\]/g, '=\"#\"]');\n var filter,\n arg,\n match = filterRe.exec(sel);\n if (match && match[2] in filters) {\n filter = filters[match[2]], arg = match[3];\n sel = match[1];\n if (arg) {\n var num = Number(arg);\n if (isNaN(num)) arg = arg.replace(/^[\"']|[\"']$/g, '');else arg = num;\n }\n }\n return fn(sel, filter, arg);\n }\n\n zepto.qsa = function (node, selector) {\n return process(selector, function (sel, filter, arg) {\n try {\n var taggedParent;\n if (!sel && filter) sel = '*';else if (childRe.test(sel))\n // support \"> *\" child queries by tagging the parent node with a\n // unique class and prepending that classname onto the selector\n taggedParent = $(node).addClass(classTag), sel = '.' + classTag + ' ' + sel;\n\n var nodes = oldQsa(node, sel);\n } catch (e) {\n console.error('error performing selector: %o', selector);\n throw e;\n } finally {\n if (taggedParent) taggedParent.removeClass(classTag);\n }\n return !filter ? nodes : zepto.uniq($.map(nodes, function (n, i) {\n return filter.call(n, i, nodes, arg);\n }));\n });\n };\n\n zepto.matches = function (node, selector) {\n return process(selector, function (sel, filter, arg) {\n return (!sel || oldMatches(node, sel)) && (!filter || filter.call(node, null, arg) === node);\n });\n };\n })(Zepto);(function ($) {\n var touch = {},\n touchTimeout,\n tapTimeout,\n swipeTimeout,\n longTapTimeout,\n longTapDelay = 750,\n gesture;\n\n function swipeDirection(x1, x2, y1, y2) {\n return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? x1 - x2 > 0 ? 'Left' : 'Right' : y1 - y2 > 0 ? 'Up' : 'Down';\n }\n\n function longTap() {\n longTapTimeout = null;\n if (touch.last) {\n touch.el.trigger('longTap');\n touch = {};\n }\n }\n\n function cancelLongTap() {\n if (longTapTimeout) clearTimeout(longTapTimeout);\n longTapTimeout = null;\n }\n\n function cancelAll() {\n if (touchTimeout) clearTimeout(touchTimeout);\n if (tapTimeout) clearTimeout(tapTimeout);\n if (swipeTimeout) clearTimeout(swipeTimeout);\n if (longTapTimeout) clearTimeout(longTapTimeout);\n touchTimeout = tapTimeout = swipeTimeout = longTapTimeout = null;\n touch = {};\n }\n\n function isPrimaryTouch(event) {\n return (event.pointerType == 'touch' || event.pointerType == event.MSPOINTER_TYPE_TOUCH) && event.isPrimary;\n }\n\n function isPointerEventType(e, type) {\n return e.type == 'pointer' + type || e.type.toLowerCase() == 'mspointer' + type;\n }\n\n $(document).ready(function () {\n var now,\n delta,\n deltaX = 0,\n deltaY = 0,\n firstTouch,\n _isPointerType;\n\n if ('MSGesture' in window) {\n gesture = new MSGesture();\n gesture.target = document.body;\n }\n\n $(document).bind('MSGestureEnd', function (e) {\n var swipeDirectionFromVelocity = e.velocityX > 1 ? 'Right' : e.velocityX < -1 ? 'Left' : e.velocityY > 1 ? 'Down' : e.velocityY < -1 ? 'Up' : null;\n if (swipeDirectionFromVelocity) {\n touch.el.trigger('swipe');\n touch.el.trigger('swipe' + swipeDirectionFromVelocity);\n }\n }).on('touchstart MSPointerDown pointerdown', function (e) {\n if ((_isPointerType = isPointerEventType(e, 'down')) && !isPrimaryTouch(e)) return;\n firstTouch = _isPointerType ? e : e.touches[0];\n if (e.touches && e.touches.length === 1 && touch.x2) {\n // Clear out touch movement data if we have it sticking around\n // This can occur if touchcancel doesn't fire due to preventDefault, etc.\n touch.x2 = undefined;\n touch.y2 = undefined;\n }\n now = Date.now();\n delta = now - (touch.last || now);\n touch.el = $('tagName' in firstTouch.target ? firstTouch.target : firstTouch.target.parentNode);\n touchTimeout && clearTimeout(touchTimeout);\n touch.x1 = firstTouch.pageX;\n touch.y1 = firstTouch.pageY;\n if (delta > 0 && delta <= 250) touch.isDoubleTap = true;\n touch.last = now;\n longTapTimeout = setTimeout(longTap, longTapDelay);\n // adds the current touch contact for IE gesture recognition\n if (gesture && _isPointerType) gesture.addPointer(e.pointerId);\n }).on('touchmove MSPointerMove pointermove', function (e) {\n if ((_isPointerType = isPointerEventType(e, 'move')) && !isPrimaryTouch(e)) return;\n firstTouch = _isPointerType ? e : e.touches[0];\n cancelLongTap();\n touch.x2 = firstTouch.pageX;\n touch.y2 = firstTouch.pageY;\n\n deltaX += Math.abs(touch.x1 - touch.x2);\n deltaY += Math.abs(touch.y1 - touch.y2);\n }).on('touchend MSPointerUp pointerup', function (e) {\n if ((_isPointerType = isPointerEventType(e, 'up')) && !isPrimaryTouch(e)) return;\n cancelLongTap();\n\n // swipe\n if (touch.x2 && Math.abs(touch.x1 - touch.x2) > 30 || touch.y2 && Math.abs(touch.y1 - touch.y2) > 30) swipeTimeout = setTimeout(function () {\n if (touch.el) {\n touch.el.trigger('swipe');\n touch.el.trigger('swipe' + swipeDirection(touch.x1, touch.x2, touch.y1, touch.y2));\n }\n touch = {};\n }, 0);\n\n // normal tap\n else if ('last' in touch)\n // don't fire tap when delta position changed by more than 30 pixels,\n // for instance when moving to a point and back to origin\n if (deltaX < 30 && deltaY < 30) {\n // delay by one tick so we can cancel the 'tap' event if 'scroll' fires\n // ('tap' fires before 'scroll')\n tapTimeout = setTimeout(function () {\n\n // trigger universal 'tap' with the option to cancelTouch()\n // (cancelTouch cancels processing of single vs double taps for faster 'tap' response)\n var event = $.Event('tap');\n event.cancelTouch = cancelAll;\n if (touch.el) touch.el.trigger(event);\n\n // trigger double tap immediately\n if (touch.isDoubleTap) {\n if (touch.el) touch.el.trigger('doubleTap');\n touch = {};\n }\n\n // trigger single tap after 250ms of inactivity\n else {\n touchTimeout = setTimeout(function () {\n touchTimeout = null;\n if (touch.el) touch.el.trigger('singleTap');\n touch = {};\n }, 250);\n }\n }, 0);\n } else {\n touch = {};\n }\n deltaX = deltaY = 0;\n })\n // when the browser window loses focus,\n // for example when a modal dialog is shown,\n // cancel all ongoing events\n .on('touchcancel MSPointerCancel pointercancel', cancelAll);\n\n // scrolling the window indicates intention of the user\n // to scroll, not tap or swipe, so cancel all ongoing events\n $(window).on('scroll', cancelAll);\n });['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap', 'tap', 'singleTap', 'longTap'].forEach(function (eventName) {\n $.fn[eventName] = function (callback) {\n return this.on(eventName, callback);\n };\n });\n })(Zepto);(function ($) {\n $.fn.end = function () {\n return this.prevObject || $();\n };\n\n $.fn.andSelf = function () {\n return this.add(this.prevObject || $());\n };\n\n 'filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings'.split(',').forEach(function (property) {\n var fn = $.fn[property];\n $.fn[property] = function () {\n var ret = fn.apply(this, arguments);\n ret.prevObject = this;\n return ret;\n };\n });\n })(Zepto);\n\n return Zepto;\n});"; +},function(e,t){},,,,,,,,,,,,,,,function(e,t){"use strict";function n(){var e=document.createElement("script");e.type="text/javascript",e.async=!0,e.src="https://captcha.vip.com/getbootstrap",e.onload=function(){window.VipSecureCode&&VipSecureCode.init()},document.body.appendChild(e)}function i(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://captcha.vip.com/getbootstrap",t.onload=function(){window.VipSecureCode&&(VipSecureCode.init(),e&&e())},document.body.appendChild(t)}e.exports=n,e.exports=i},function(e,t){"use strict";function n(){var e=1;switch(window.location.host){case"mcheckout.vip.com":e=8;break;case"mst-vis-admin.vip.com":e=7;break;case"mst-admin.vip.vip.com":e=6;break;case"weixin.vip.com":e=5;break;case"viva.vip.com":e=4;break;case"mst.vip.com":e=3;break;case"m.vipglobal.hk":e=2}return e}t.getId=n},function(e,t,n){(function(t){"use strict";var i=n(22),o=window,r=o.location,s={genLocation:function(e){var t=e.split("&"),n={};return t.map(function(e){var t=e.split("=");if(t.length){var i=t[0],o=t.slice(1,t.length).join("=");n[i]=o}}),n},query:function(e){var t=r.search.substr(1),n=t.split("&"),i={};return n.map(function(e){var t=e.split("=");t[0]&&(i[t[0]]=t[1])}),e?i[e]:i},queryV2:function(e){var t=s.genLocation(r.search.substr(1));return e?t[e]:t},queryV3:function(e){var t=s.genLocation(r.search.substr(1));return e?decodeURIComponent(t[e]):(Object.keys(t).forEach(function(e){t[e]=decodeURIComponent(t[e])}),t)},getSubmitData:function(e){e=e||t("body");var n=e.find("[data-submit]").filter(":visible"),i={};return n.each(function(){var e=t(this),n=e.attr("name"),o=e.data("submit"),r=e[0].nodeName.toLowerCase();if(""===o&&(o=e.val()),"i"!==r||(n=e.parent().parent().attr("name"),e.hasClass("selected")))return n||"i"==r||o.indexOf(",")==-1?void(i[n]=o):void o.split("|").forEach(function(e,t){var n=e.split(",");i[n[0]]=n[1]})}),i},isWeixin:function(){var e=window.navigator.userAgent.toLowerCase();return"micromessenger"==e.match(/MicroMessenger/i)},getClientType:function(){if(i.get("client"))return i.get("client");var e=window.navigator.userAgent.toLowerCase();return e.match(/iphone/i)?"iphone":e.match(/android/i)?"android":e.match(/ipad/i)?"ipad":"wap"},parseObjToUrlStr:function(e){var t=[];for(var n in e)t.push(n+"="+e[n]);return t.join("&")},spellUrl:function(e,t){if(!e)return"";if(!t)return e;var n=document.createElement("a");n.href=e;var i=Object.keys(t).map(function(e){var n=encodeURIComponent(t[e]);return e+"="+n}).join("&"),o=n.search?n.search+"&"+i:"?"+i;return n.search=o,n.href},isVipUrl:function(e){if(!e||"string"!=typeof e)return!1;var t=e.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i),n=t&&t[1]||"";return/((.*\.)|^)vip\.com$/.test(n)},asyncLoadJs:function(e,n){var i=t.Deferred(),o=n||{},r=document.querySelector("script[src='"+e+"']");if(r||o.hasLoaded)return setTimeout(function(){i.resolve()},0),i.promise();var s=document.createElement("script"),a=e.slice(e.lastIndexOf("/")+1,e.lastIndexOf("."));return s.type="text/javascript",s.src=e,document.body.appendChild(s),s.onload=function(){i.resolve(a+".js鍔犺浇瀹屾垚")},s.onerror=function(){i.reject(a+".js鍔犺浇澶辫触")},i.promise()}};e.exports=s}).call(t,n(1))},function(e,t,n){var i,o;"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};(function(r){i=r,o="function"==typeof i?i.call(t,n,t,e):i,!(void 0!==o&&(e.exports=o))})(function(){function e(){for(var e=0,t={};e1){if(r=e({path:"/"},i.defaults,r),"number"==typeof r.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*r.expires),r.expires=a}try{s=JSON.stringify(o),/^[\{\[]/.test(s)&&(o=s)}catch(c){}return o=encodeURIComponent(String(o)),o=o.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|5B|5D|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape),document.cookie=[t,"=",o,r.expires&&"; expires="+r.expires.toUTCString(),r.path&&"; path="+r.path,r.domain&&"; domain="+r.domain,r.secure?"; secure":""].join("")}t||(s={});for(var l=document.cookie?document.cookie.split("; "):[],u=/(%[0-9A-Z]{2})+/g,d=0;d>2,s=(3&t)<<4|i>>4,a=(15&i)<<2|o>>6,c=63&o,isNaN(i)?a=c=64:isNaN(o)&&(c=64),l=l+this._keyStr.charAt(r)+this._keyStr.charAt(s)+this._keyStr.charAt(a)+this._keyStr.charAt(c);return l},decode:function(e){var t,i,o,r,s,a,c,l="",u=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");u>4,i=(15&s)<<4|a>>2,o=(3&a)<<6|c,l+=String.fromCharCode(t),64!=a&&(l+=String.fromCharCode(i)),64!=c&&(l+=String.fromCharCode(o));return l=n._utf8_decode(l)},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");for(var t="",n=0;ni?t+=String.fromCharCode(i):i>127&&2048>i?(t+=String.fromCharCode(i>>6|192),t+=String.fromCharCode(63&i|128)):(t+=String.fromCharCode(i>>12|224),t+=String.fromCharCode(i>>6&63|128),t+=String.fromCharCode(63&i|128))}return t},_utf8_decode:function(e){for(var t="",n=0,i=0,o=0,r=0;rn?(t+=String.fromCharCode(n),r++):n>191&&224>n?(i=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&i),r+=2):(i=e.charCodeAt(r+1),o=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&i)<<6|63&o),r+=3);return t}};e.exports=n},function(e,t,n){(function(e){"use strict";function i(e){return C.req({url:"//pcapi.vip.com/cc/index.php?code="+e,cache:!1,type:"GET",timeout:8e3,dataType:"json"})}function o(e){return E({url:N.GET_CONFIG_SWITCH,data:e,isEncrypt:!0,type:"POST",xhrFields:{withCredentials:!0},Authorization:!0},0)}function r(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.CAPTCHAPRE})}function s(t){return A.isWeixin()&&e.extend(t,window.weixinData),A.asyncLoadJs(I.signScript,{hasLoaded:window.sign}).then(function(){return i("phoneEncryptWap").then(function(e){return E({url:N.PWDLOGINV2,data:t,isEncrypt:e.phoneEncryptWap,type:"POST",xhrFields:{withCredentials:!0},Authorization:!0},0)},function(e){return E({url:N.PWDLOGINV2,data:t,isEncrypt:!1,type:"POST",xhrFields:{withCredentials:!0},Authorization:!0},0)})})}function a(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.SELECTACCOUNT})}function c(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.EXCHANGETOKENLOGIN})}function l(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.EXCHANGETOKENLOGINV3})}function u(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.EXCHANGETOKENLOGINV4})}function d(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.WEIXINREGISTERLOGIN})}function h(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.WEIXININFOSTATUS})}function p(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.GETVIVATIPS})}function f(e){return C.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:N.ISLOGINED})}function m(e){return C.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:N.GETTHIRDINFO})}function g(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.THIRDTRYLOGIN})}function v(e){return C.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:N.THIRDAUTOLOGIN})}function y(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.SENDSMS})}function w(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.CHECKSMS})}function b(t){return A.isWeixin()&&e.extend(t,window.weixinData),i("phoneEncryptWap").then(function(e){return E({data:t,isEncrypt:e.phoneEncryptWap,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHAINFO},0)},function(e){return E({data:t,isEncrypt:!1,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHAINFO})})}function x(t){return A.isWeixin()&&e.extend(t,window.weixinData),A.asyncLoadJs(I.signScript,{hasLoaded:window.sign}).then(function(){return E({data:t,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.TICKETLOGIN,Authorization:!0},0)})}function _(t){return A.isWeixin()&&e.extend(t,window.weixinData),C.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:N.MOBILELOGIN})}function S(e){return C.req({data:e,url:N.WEIXINAUTOLOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function k(){return C.req({url:N.GET_USER_INFO,xhrFields:{withCredentials:!0}})}function T(t,n){return e.ajax({type:"GET",url:N.GETWEIXININFO,data:t,dataType:"jsonp",jsonp:"jsonp",timeout:2e3,success:function(e){n(e)},error:function(e){n(e)}})}Object.defineProperty(t,"__esModule",{value:!0}),t.getConfigSwitch=o,n(1);var C=n(25),E=n(29),A=n(21),I=n(31),P="//mlogin-api.vip.com/ajaxapi-user.html",N={CAPTCHAPRE:P+"?act=captchaPre",PWDLOGIN:P+"?act=pwdLoginV2",PWDLOGINV2:"//mlogin-api.vip.com/ajaxapi/user/pwdLoginV2",SELECTACCOUNT:P+"?act=selectAccountV2",EXCHANGETOKENLOGIN:P+"?act=exchangeTokenLogin",EXCHANGETOKENLOGINV3:P+"?act=exchangeTokenLoginV3",EXCHANGETOKENLOGINV4:"//mlogin-api.vip.com/ajaxapi/user/exchangeTokenLoginV4",WEIXINREGISTERLOGIN:P+"?act=weixinRegisterLogin",WEIXININFOSTATUS:P+"?act=weixinInfoStatus",GETVIVATIPS:P+"?act=getVivaTips",SENDSMS:P+"?act=sendSmsV3",CHECKSMS:P+"?act=checkV3",CAPTCHAINFO:"//mlogin-api.vip.com/ajaxapi/user/getCaptchaInfo",TICKETLOGIN:"//mlogin-api.vip.com/ajaxapi/user/ticketLogin",MOBILELOGIN:P+"?act=mobileLoginV3",GET_USER_INFO:P+"?act=getUserInfo",ISLOGINED:P+"?act=isLogined",GETTHIRDINFO:P+"?act=getThirdInfo",THIRDTRYLOGIN:P+"?act=thirdTryLogin",THIRDAUTOLOGIN:P+"?act=thirdAutoLogin",WEIXINAUTOLOGIN:P+"?act=weixinAutoLogin",GETWEIXININFO:"//weixin-api.vip.com/user/getUserInfo",GET_CONFIG_SWITCH:"//mlogin-api.vip.com/ajaxapi/comm/getConfigSwitch",CAPTCHA_FLOW:"//mapi.vip.com/vips-mobile/rest/auth/captcha/mp/flow/v1",CAPTCHA_CHECKMOBILE:"//mapi.vip.com/vips-mobile/rest/auth/quicklogin/wap/checkmobile/v1"};t.getCaptchaFlow=function(t){return A.isWeixin()&&e.extend(t,window.weixinData),E({data:t,isEncrypt:!0,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHA_FLOW},0)},t.getCaptchaInfoV2=function(t){return A.isWeixin()&&e.extend(t,window.weixinData),E({data:t,isEncrypt:!0,type:"POST",timeout:5e3,xhrFields:{withCredentials:!0},url:N.CAPTCHA_CHECKMOBILE},0)};t.getEncryptSwitch=i,t.captchaPre=r,t.pwdLogin=s,t.selectAccount=a,t.exchangeToken=c,t.exchangeTokenV3=l,t.exchangeTokenV4=u,t.weixinRegisterLogin=d,t.getweixinInfoStatus=h,t.getVivaTips=p,t.sendSms=y,t.checkSms=w,t.mobileLogin=_,t.getUserInfo=k,t.isLogined=f,t.getThirdInfo=m,t.thirdTryLogin=g,t.thirdAutoLogin=v,t.weixinAutoLogin=S,t.getWeixinInfo=T,t.getCaptchaInfo=b,t.ticketLogin=x}).call(t,n(1))},function(e,t,n){(function(e){"use strict";function i(e){var t=document.createElement("a");return t.href=e,t.hostname}function o(t){function n(e){var n=t.url.replace(/\//g,"_");void 0!==e.code&&l(n+"_fail_"+(e.code||999999)),o.reject(e)}var o=e.Deferred(),r=u.createIfNeed();if(!t.url)throw Error("request url required");t.type||(t.type="GET"),t.timeout||(t.timeout=1e4);var s=i(t.url),a=h["mlogin.vip.com"];h[s]&&(a=h[s]),delete t.success,delete t.error,delete t.complete,t.data||(t.data={}),t.data._t=Date.now(),t.data.mars_cid||(t.data.mars_cid=r),t.cache=!1;var p=t.url.replace(/\//g,"_");t.Authorization&&window.sign&&"function"==typeof window.sign.getSign&&(t.beforeSend=function(e,n){var i={};n.data.split("&").forEach(function(e){var n=e.split("="),o=c(n,2),r=o[0],s=o[1];i[r]=t.data[r]||s});var o=window.sign.getSign(n.url,i);e.setRequestHeader("Authorization",o)}),e.ajax(t).done(function(e){e&&a.successCode.indexOf(e.code)!==-1?o.resolve(a.callbackData(e)||{}):(e.msg=e.msg||"缃戠粶瓒呮椂锛岃閲嶈瘯锛",l("error",{code:e.code,event:p,error:p+":"+e.code,info:e.msg}),n(e))}).fail(function(e,t,i){var o=e.status;l("error",{status:o,event:p,error:p+":"+t,errType:t,info:t+"_"+(i||"")}),n(i&&i.msg||{msg:"缃戠粶瓒呮椂锛岃閲嶈瘯锛"})});var f=o.promise();return e.isFunction(d)&&f.fail(d),f}function r(e){h=a(h,e)}function s(e){d=e}var a=Object.assign||function(e){for(var t=1;t-1?"page_exception_network":!!t.errType&&"page_exception_service",request_url:t.event||!1,rpc_code:t.error||!1,domain:location.host||!1,exception_info:!!t.info&&encodeURIComponent(t.info)});return n=n+"?"+c+"&r="+Math.random()},this.request=function(e){var t=new XMLHttpRequest;return t.open("GET",e),t.send(),e},n=this.setErrUrl(e,t),this.request(n)},c=function(e,t){new a(e,t)};e.exports=c}).call(t,n(1))},function(e,t,n){"use strict";var i=n(22),o=n(28),r=o.creat(),s={createIfNeed:function(){var e=i.get("mars_cid");if(!e){e=r;var t=730;i.set("mars_cid",e,{expires:t,domain:".vip.com",path:"/"})}return e}};e.exports=s},function(e,t){"use strict";var n={creat:function(){var e=this;return this.encrypt(e._pad((new Date).getTime(),13)+"_"+e._rand())},encrypt:function(e){var t=e.split("_"),n=t[0],i=t[1];if(!n||!i)return e;for(var o=0,r=n.length,s=0;s>>8^255&f^99,o[n]=f,r[f]=n;var m=e[n],g=e[m],v=e[g],y=257*e[f]^16843008*f;s[n]=y<<24|y>>>8,a[n]=y<<16|y>>>16,c[n]=y<<8|y>>>24,l[n]=y,y=16843009*v^65537*g^257*m^16843008*n,u[f]=y<<24|y>>>8,d[f]=y<<16|y>>>16,h[f]=y<<8|y>>>24,p[f]=y,n?(n=m^e[e[e[v^m]]],i^=e[e[i]]):n=i=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],m=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,i=4*((this._nRounds=n+6)+1),r=this._keySchedule=[],s=0;s6&&s%n==4&&(l=o[l>>>24]<<24|o[l>>>16&255]<<16|o[l>>>8&255]<<8|o[255&l]):(l=o[(l=l<<8|l>>>24)>>>24]<<24|o[l>>>16&255]<<16|o[l>>>8&255]<<8|o[255&l],l^=f[s/n|0]<<24),r[s]=r[s-n]^l);for(var a=this._invKeySchedule=[],c=0;c>>24]]^d[o[l>>>16&255]]^h[o[l>>>8&255]]^p[o[255&l]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,s,a,c,l,o)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,d,h,p,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,o,r,s,a){for(var c=this._nRounds,l=e[t]^n[0],u=e[t+1]^n[1],d=e[t+2]^n[2],h=e[t+3]^n[3],p=4,f=1;f>>24]^o[u>>>16&255]^r[d>>>8&255]^s[255&h]^n[p++],g=i[u>>>24]^o[d>>>16&255]^r[h>>>8&255]^s[255&l]^n[p++],v=i[d>>>24]^o[h>>>16&255]^r[l>>>8&255]^s[255&u]^n[p++],y=i[h>>>24]^o[l>>>16&255]^r[u>>>8&255]^s[255&d]^n[p++];l=m,u=g,d=v,h=y}m=(a[l>>>24]<<24|a[u>>>16&255]<<16|a[d>>>8&255]<<8|a[255&h])^n[p++],g=(a[u>>>24]<<24|a[d>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^n[p++],v=(a[d>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&u])^n[p++],y=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[u>>>8&255]<<8|a[255&d])^n[p++],e[t]=m,e[t+1]=g,e[t+2]=v,e[t+3]=y},keySize:8});e.AES=t._createHelper(m)}(),i.AES)},109:function(e,t,n){var i;e.exports=(i=n(249),n(888),void(i.lib.Cipher||function(e){var t=i,n=t.lib,o=n.Base,r=n.WordArray,s=n.BufferedBlockAlgorithm,a=t.enc,c=(a.Utf8,a.Base64),l=t.algo.EvpKDF,u=n.Cipher=s.extend({cfg:o.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?w:v}return function(t){return{encrypt:function(n,i,o){return e(i).encrypt(t,n,i,o)},decrypt:function(n,i,o){return e(i).decrypt(t,n,i,o)}}}}()}),d=(n.StreamCipher=u.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),t.mode={}),h=n.BlockCipherMode=o.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=d.CBC=function(){function t(t,n,i){var o,r=this._iv;r?(o=r,this._iv=e):o=this._prevBlock;for(var s=0;s>>2];e.sigBytes-=t}},m=(n.BlockCipher=u.extend({cfg:u.cfg.extend({mode:p,padding:f}),reset:function(){var e;u.reset.call(this);var t=this.cfg,n=t.iv,i=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=i.createEncryptor:(e=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,n&&n.words):(this._mode=e.call(i,this,n&&n.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),n.CipherParams=o.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),g=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;return(n?r.create([1398893684,1701076831]).concat(n).concat(t):t).toString(c)},parse:function(e){var t,n=c.parse(e),i=n.words;return 1398893684==i[0]&&1701076831==i[1]&&(t=r.create(i.slice(2,4)),i.splice(0,4),n.sigBytes-=16),m.create({ciphertext:n,salt:t})}},v=n.SerializableCipher=o.extend({cfg:o.extend({format:g}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var o=e.createEncryptor(n,i),r=o.finalize(t),s=o.cfg;return m.create({ciphertext:r,key:n,iv:s.iv,algorithm:e,mode:s.mode,padding:s.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(n,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(t.kdf={}).OpenSSL={execute:function(e,t,n,i){i||(i=r.random(8));var o=l.create({keySize:t+n}).compute(e,i),s=r.create(o.words.slice(t),4*n);return o.sigBytes=4*t,m.create({key:o,iv:s,salt:i})}},w=n.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:y}),encrypt:function(e,t,n,i){var o=(i=this.cfg.extend(i)).kdf.execute(n,e.keySize,e.ivSize);i.iv=o.iv;var r=v.encrypt.call(this,e,t,o.key,i);return r.mixIn(o),r},decrypt:function(e,t,n,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var o=i.kdf.execute(n,e.keySize,e.ivSize,t.salt);return i.iv=o.iv,v.decrypt.call(this,e,t,o.key,i)}})}()))},249:function(e,t,n){var i;e.exports=i=i||function(e,t){var i;if("undefined"!=typeof window&&window.crypto&&(i=window.crypto),!i&&"undefined"!=typeof window&&window.msCrypto&&(i=window.msCrypto),!i&&"undefined"!=typeof n.g&&n.g.crypto&&(i=n.g.crypto),!i)try{i=n(480)}catch(o){}var r=function(){if(i){if("function"==typeof i.getRandomValues)try{return i.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof i.randomBytes)try{return i.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),a={},c=a.lib={},l=c.Base={extend:function(e){var t=s(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},u=c.WordArray=l.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||h).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes,o=e.sigBytes;if(this.clamp(),i%4)for(var r=0;r>>2]>>>24-r%4*8&255;t[i+r>>>2]|=s<<24-(i+r)%4*8}else for(r=0;r>>2]=n[r>>>2];return this.sigBytes+=o,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=l.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n>>2]>>>24-o%4*8&255;i.push((r>>>4).toString(16)),i.push((15&r).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new u.init(n,t/2)}},p=d.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(r))}return i.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new u.init(n,t)}},f=d.Utf8={stringify:function(e){try{return decodeURIComponent(escape(p.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return p.parse(unescape(encodeURIComponent(e)))}},m=c.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,i=this._data,o=i.words,r=i.sigBytes,s=this.blockSize,a=r/(4*s),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*s,l=e.min(4*c,r);if(c){for(var d=0;d>>6-s%4*2;o[r>>>2]|=a<<24-r%4*8,r++}return n.create(o,r)}var t=i,n=t.lib.WordArray;t.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,i=this._map;e.clamp();for(var o=[],r=0;r>>2]>>>24-r%4*8&255)<<16|(t[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|t[r+2>>>2]>>>24-(r+2)%4*8&255,a=0;a<4&&r+.75*a>>6*(3-a)&63));var c=i.charAt(64);if(c)for(;o.length%4;)o.push(c);return o.join("")},parse:function(t){var n=t.length,i=this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var r=0;r>>8&16711935}var t=i,n=t.lib.WordArray,o=t.enc;o.Utf16=o.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>16-o%4*8&65535;i.push(String.fromCharCode(r))}return i.join("")},parse:function(e){for(var t=e.length,i=[],o=0;o>>1]|=e.charCodeAt(o)<<16-o%2*16;return n.create(i,2*t)}},o.Utf16LE={stringify:function(t){for(var n=t.words,i=t.sigBytes,o=[],r=0;r>>2]>>>16-r%4*8&65535);o.push(String.fromCharCode(s))}return o.join("")},parse:function(t){for(var i=t.length,o=[],r=0;r>>1]|=e(t.charCodeAt(r)<<16-r%2*16);return n.create(o,2*i)}}}(),i.enc.Utf16)},888:function(e,t,n){var i,o,r,s,a,c,l,u;e.exports=(u=n(249),n(783),n(824),o=(i=u).lib,r=o.Base,s=o.WordArray,a=i.algo,c=a.MD5,l=a.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:c,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n,i=this.cfg,o=i.hasher.create(),r=s.create(),a=r.words,c=i.keySize,l=i.iterations;a.lengthi&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),r=this._iKey=t.clone(),a=o.words,c=r.words,l=0;l>>2]|=e[o]<<24-o%4*8;t.call(this,i,n)}else t.apply(this,arguments)}).prototype=e}}(),i.lib.WordArray)},214:function(e,t,n){var i;e.exports=(i=n(249),function(e){function t(e,t,n,i,o,r,s){var a=e+(t&n|~t&i)+o+s;return(a<>>32-r)+t}function n(e,t,n,i,o,r,s){var a=e+(t&i|n&~i)+o+s;return(a<>>32-r)+t}function o(e,t,n,i,o,r,s){var a=e+(t^n^i)+o+s;return(a<>>32-r)+t}function r(e,t,n,i,o,r,s){var a=e+(n^(t|~i))+o+s;return(a<>>32-r)+t}var s=i,a=s.lib,c=a.WordArray,l=a.Hasher,u=s.algo,d=[];!function(){for(var t=0;t<64;t++)d[t]=4294967296*e.abs(e.sin(t+1))|0}();var h=u.MD5=l.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,i){for(var s=0;s<16;s++){var a=i+s,c=e[a];e[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var l=this._hash.words,u=e[i+0],h=e[i+1],p=e[i+2],f=e[i+3],m=e[i+4],g=e[i+5],v=e[i+6],y=e[i+7],w=e[i+8],b=e[i+9],x=e[i+10],_=e[i+11],S=e[i+12],k=e[i+13],T=e[i+14],C=e[i+15],E=l[0],A=l[1],I=l[2],P=l[3];E=t(E,A,I,P,u,7,d[0]),P=t(P,E,A,I,h,12,d[1]),I=t(I,P,E,A,p,17,d[2]),A=t(A,I,P,E,f,22,d[3]),E=t(E,A,I,P,m,7,d[4]),P=t(P,E,A,I,g,12,d[5]),I=t(I,P,E,A,v,17,d[6]),A=t(A,I,P,E,y,22,d[7]),E=t(E,A,I,P,w,7,d[8]),P=t(P,E,A,I,b,12,d[9]),I=t(I,P,E,A,x,17,d[10]),A=t(A,I,P,E,_,22,d[11]),E=t(E,A,I,P,S,7,d[12]),P=t(P,E,A,I,k,12,d[13]),I=t(I,P,E,A,T,17,d[14]),E=n(E,A=t(A,I,P,E,C,22,d[15]),I,P,h,5,d[16]),P=n(P,E,A,I,v,9,d[17]),I=n(I,P,E,A,_,14,d[18]),A=n(A,I,P,E,u,20,d[19]),E=n(E,A,I,P,g,5,d[20]),P=n(P,E,A,I,x,9,d[21]),I=n(I,P,E,A,C,14,d[22]),A=n(A,I,P,E,m,20,d[23]),E=n(E,A,I,P,b,5,d[24]),P=n(P,E,A,I,T,9,d[25]),I=n(I,P,E,A,f,14,d[26]),A=n(A,I,P,E,w,20,d[27]),E=n(E,A,I,P,k,5,d[28]),P=n(P,E,A,I,p,9,d[29]),I=n(I,P,E,A,y,14,d[30]),E=o(E,A=n(A,I,P,E,S,20,d[31]),I,P,g,4,d[32]),P=o(P,E,A,I,w,11,d[33]),I=o(I,P,E,A,_,16,d[34]),A=o(A,I,P,E,T,23,d[35]),E=o(E,A,I,P,h,4,d[36]),P=o(P,E,A,I,m,11,d[37]),I=o(I,P,E,A,y,16,d[38]),A=o(A,I,P,E,x,23,d[39]),E=o(E,A,I,P,k,4,d[40]),P=o(P,E,A,I,u,11,d[41]),I=o(I,P,E,A,f,16,d[42]),A=o(A,I,P,E,v,23,d[43]),E=o(E,A,I,P,b,4,d[44]),P=o(P,E,A,I,S,11,d[45]),I=o(I,P,E,A,C,16,d[46]),E=r(E,A=o(A,I,P,E,p,23,d[47]),I,P,u,6,d[48]),P=r(P,E,A,I,y,10,d[49]),I=r(I,P,E,A,T,15,d[50]),A=r(A,I,P,E,g,21,d[51]),E=r(E,A,I,P,S,6,d[52]),P=r(P,E,A,I,f,10,d[53]),I=r(I,P,E,A,x,15,d[54]),A=r(A,I,P,E,h,21,d[55]),E=r(E,A,I,P,w,6,d[56]),P=r(P,E,A,I,C,10,d[57]),I=r(I,P,E,A,v,15,d[58]),A=r(A,I,P,E,k,21,d[59]),E=r(E,A,I,P,m,6,d[60]),P=r(P,E,A,I,_,10,d[61]),I=r(I,P,E,A,p,15,d[62]),A=r(A,I,P,E,b,21,d[63]),l[0]=l[0]+E|0,l[1]=l[1]+A|0,l[2]=l[2]+I|0,l[3]=l[3]+P|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,o=8*t.sigBytes;n[o>>>5]|=128<<24-o%32;var r=e.floor(i/4294967296),s=i;n[15+(o+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n[14+(o+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(n.length+1),this._process();for(var a=this._hash,c=a.words,l=0;l<4;l++){var u=c[l];c[l]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return a},clone:function(){var e=l.clone.call(this);return e._hash=this._hash.clone(),e}});s.MD5=l._createHelper(h),s.HmacMD5=l._createHmacHelper(h)}(Math),i.MD5)},568:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.mode.CFB=function(){function e(e,t,n,i){var o,r=this._iv;r?(o=r.slice(0),this._iv=void 0):o=this._prevBlock,i.encryptBlock(o,0);for(var s=0;s>24&255)){var t=e>>16&255,n=e>>8&255,i=255&e;255===t?(t=0,255===n?(n=0,255===i?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}function t(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t}var n=i.lib.BlockCipherMode.extend(),o=n.Encryptor=n.extend({processBlock:function(e,n){var i=this._cipher,o=i.blockSize,r=this._iv,s=this._counter;r&&(s=this._counter=r.slice(0),this._iv=void 0),t(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>2]|=o<<24-r%4*8,e.sigBytes+=o},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},i.pad.Ansix923)},807:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.Iso10126={pad:function(e,t){var n=4*t,o=n-e.sigBytes%n;e.concat(i.lib.WordArray.random(o-1)).concat(i.lib.WordArray.create([o<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},i.pad.Iso10126)},77:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.Iso97971={pad:function(e,t){e.concat(i.lib.WordArray.create([2147483648],1)),i.pad.ZeroPadding.pad(e,t)},unpad:function(e){i.pad.ZeroPadding.unpad(e),e.sigBytes--}},i.pad.Iso97971)},991:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.NoPadding={pad:function(){},unpad:function(){}},i.pad.NoPadding)},475:function(e,t,n){var i;e.exports=(i=n(249),n(109),i.pad.ZeroPadding={pad:function(e,t){var n=4*t;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){var t=e.words,n=e.sigBytes-1;for(n=e.sigBytes-1;n>=0;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},i.pad.ZeroPadding)},112:function(e,t,n){var i,o,r,s,a,c,l,u,d;e.exports=(d=n(249),n(783),n(824),o=(i=d).lib,r=o.Base,s=o.WordArray,a=i.algo,c=a.SHA1,l=a.HMAC,u=a.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:c,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,i=l.create(n.hasher,e),o=s.create(),r=s.create([1]),a=o.words,c=r.words,u=n.keySize,d=n.iterations;a.length>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,n=0;n<8;n++){var i=e[n]+t[n],o=65535&i,r=i>>>16,c=((o*o>>>17)+o*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[n]=c^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var t=i,n=t.lib.StreamCipher,o=t.algo,r=[],s=[],a=[],c=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,n=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var r=0;r<4;r++)e.call(this);for(r=0;r<8;r++)o[r]^=i[r+4&7];if(n){var s=n.words,a=s[0],c=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),u=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),d=l>>>16|4294901760&u,h=u<<16|65535&l;for(o[0]^=l,o[1]^=d,o[2]^=u,o[3]^=h,o[4]^=l,o[5]^=d,o[6]^=u,o[7]^=h,r=0;r<4;r++)e.call(this)}},_doProcessBlock:function(t,n){var i=this._X;e.call(this),r[0]=i[0]^i[5]>>>16^i[3]<<16,r[1]=i[2]^i[7]>>>16^i[5]<<16,r[2]=i[4]^i[1]>>>16^i[7]<<16,r[3]=i[6]^i[3]>>>16^i[1]<<16;for(var o=0;o<4;o++)r[o]=16711935&(r[o]<<8|r[o]>>>24)|4278255360&(r[o]<<24|r[o]>>>8),t[n+o]^=r[o]},blockSize:4,ivSize:2});t.RabbitLegacy=n._createHelper(c)}(),i.RabbitLegacy)},454:function(e,t,n){var i;e.exports=(i=n(249),n(269),n(214),n(888),n(109),function(){function e(){for(var e=this._X,t=this._C,n=0;n<8;n++)s[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0>>0?1:0)|0,this._b=t[7]>>>0>>0?1:0,n=0;n<8;n++){var i=e[n]+t[n],o=65535&i,r=i>>>16,c=((o*o>>>17)+o*r>>>15)+r*r,l=((4294901760&i)*i|0)+((65535&i)*i|0);a[n]=c^l}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var t=i,n=t.lib.StreamCipher,o=t.algo,r=[],s=[],a=[],c=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,n=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var o=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],r=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,i=0;i<4;i++)e.call(this);for(i=0;i<8;i++)r[i]^=o[i+4&7];if(n){var s=n.words,a=s[0],c=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),u=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),d=l>>>16|4294901760&u,h=u<<16|65535&l;for(r[0]^=l,r[1]^=d,r[2]^=u,r[3]^=h,r[4]^=l,r[5]^=d,r[6]^=u,r[7]^=h,i=0;i<4;i++)e.call(this)}},_doProcessBlock:function(t,n){var i=this._X;e.call(this),r[0]=i[0]^i[5]>>>16^i[3]<<16,r[1]=i[2]^i[7]>>>16^i[5]<<16,r[2]=i[4]^i[1]>>>16^i[7]<<16,r[3]=i[6]^i[3]>>>16^i[1]<<16;for(var o=0;o<4;o++)r[o]=16711935&(r[o]<<8|r[o]>>>24)|4278255360&(r[o]<<24|r[o]>>>8),t[n+o]^=r[o]},blockSize:4,ivSize:2});t.Rabbit=n._createHelper(c)}(),i.Rabbit)},857:function(e,t,n){var i;e.exports=(i=n(249),n(269),n(214),n(888),n(109),function(){function e(){for(var e=this._S,t=this._i,n=this._j,i=0,o=0;o<4;o++){n=(n+e[t=(t+1)%256])%256;var r=e[t];e[t]=e[n],e[n]=r,i|=e[(e[t]+e[n])%256]<<24-8*o}return this._i=t,this._j=n,i}var t=i,n=t.lib.StreamCipher,o=t.algo,r=o.RC4=n.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,i=this._S=[],o=0;o<256;o++)i[o]=o;o=0;for(var r=0;o<256;o++){var s=o%n,a=t[s>>>2]>>>24-s%4*8&255;r=(r+i[o]+a)%256;var c=i[o];i[o]=i[r],i[r]=c}this._i=this._j=0},_doProcessBlock:function(t,n){t[n]^=e.call(this)},keySize:8,ivSize:0});t.RC4=n._createHelper(r);var s=o.RC4Drop=r.extend({cfg:r.cfg.extend({drop:192}),_doReset:function(){r._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)e.call(this)}});t.RC4Drop=n._createHelper(s)}(),i.RC4)},706:function(e,t,n){var i;e.exports=(i=n(249),function(e){function t(e,t,n){return e^t^n}function n(e,t,n){return e&t|~e&n}function o(e,t,n){return(e|~t)^n}function r(e,t,n){return e&n|t&~n}function s(e,t,n){return e^(t|~n)}function a(e,t){return e<>>32-t}var c=i,l=c.lib,u=l.WordArray,d=l.Hasher,h=c.algo,p=u.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),f=u.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),m=u.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),g=u.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),v=u.create([0,1518500249,1859775393,2400959708,2840853838]),y=u.create([1352829926,1548603684,1836072691,2053994217,0]),w=h.RIPEMD160=d.extend({_doReset:function(){this._hash=u.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,i){for(var c=0;c<16;c++){var l=i+c,u=e[l];e[l]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}var d,h,w,b,x,_,S,k,T,C,E,A=this._hash.words,I=v.words,P=y.words,N=p.words,O=f.words,$=m.words,D=g.words;for(_=d=A[0],S=h=A[1],k=w=A[2],T=b=A[3],C=x=A[4],c=0;c<80;c+=1)E=d+e[i+N[c]]|0,E+=c<16?t(h,w,b)+I[0]:c<32?n(h,w,b)+I[1]:c<48?o(h,w,b)+I[2]:c<64?r(h,w,b)+I[3]:s(h,w,b)+I[4],E=(E=a(E|=0,$[c]))+x|0,d=x,x=b,b=a(w,10),w=h,h=E,E=_+e[i+O[c]]|0,E+=c<16?s(S,k,T)+P[0]:c<32?r(S,k,T)+P[1]:c<48?o(S,k,T)+P[2]:c<64?n(S,k,T)+P[3]:t(S,k,T)+P[4],E=(E=a(E|=0,D[c]))+C|0,_=C,C=T,T=a(k,10),k=S,S=E;E=A[1]+w+T|0,A[1]=A[2]+b+C|0,A[2]=A[3]+x+_|0,A[3]=A[4]+d+S|0,A[4]=A[0]+h+k|0,A[0]=E},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var o=this._hash,r=o.words,s=0;s<5;s++){var a=r[s];r[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return o},clone:function(){var e=d.clone.call(this);return e._hash=this._hash.clone(),e}});c.RIPEMD160=d._createHelper(w),c.HmacRIPEMD160=d._createHmacHelper(w)}(Math),i.RIPEMD160)},783:function(e,t,n){var i,o,r,s,a,c,l,u;e.exports=(u=n(249),o=(i=u).lib,r=o.WordArray,s=o.Hasher,a=i.algo,c=[],l=a.SHA1=s.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],o=n[1],r=n[2],s=n[3],a=n[4],l=0;l<80;l++){if(l<16)c[l]=0|e[t+l];else{var u=c[l-3]^c[l-8]^c[l-14]^c[l-16];c[l]=u<<1|u>>>31}var d=(i<<5|i>>>27)+a+c[l];d+=l<20?1518500249+(o&r|~o&s):l<40?1859775393+(o^r^s):l<60?(o&r|o&s|r&s)-1894007588:(o^r^s)-899497514,a=s,s=r,r=o<<30|o>>>2,o=i,i=d}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+r|0,n[3]=n[3]+s|0,n[4]=n[4]+a|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(i+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}}),i.SHA1=s._createHelper(l),i.HmacSHA1=s._createHmacHelper(l),u.SHA1)},792:function(e,t,n){var i,o,r,s,a,c;e.exports=(c=n(249),n(153),o=(i=c).lib.WordArray,r=i.algo,s=r.SHA256,a=r.SHA224=s.extend({_doReset:function(){this._hash=new o.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=s._doFinalize.call(this);return e.sigBytes-=4,e}}),i.SHA224=s._createHelper(a),i.HmacSHA224=s._createHmacHelper(a),c.SHA224)},153:function(e,t,n){var i;e.exports=(i=n(249),function(e){var t=i,n=t.lib,o=n.WordArray,r=n.Hasher,s=t.algo,a=[],c=[];!function(){function t(t){for(var n=e.sqrt(t),i=2;i<=n;i++)if(!(t%i))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var i=2,o=0;o<64;)t(i)&&(o<8&&(a[o]=n(e.pow(i,.5))),c[o]=n(e.pow(i,1/3)),o++),i++}();var l=[],u=s.SHA256=r.extend({ +_doReset:function(){this._hash=new o.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],o=n[1],r=n[2],s=n[3],a=n[4],u=n[5],d=n[6],h=n[7],p=0;p<64;p++){if(p<16)l[p]=0|e[t+p];else{var f=l[p-15],m=(f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3,g=l[p-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;l[p]=m+l[p-7]+v+l[p-16]}var y=i&o^i&r^o&r,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),b=h+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&u^~a&d)+c[p]+l[p];h=d,d=u,u=a,a=s+b|0,s=r,r=o,o=i,i=b+(w+y)|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+r|0,n[3]=n[3]+s|0,n[4]=n[4]+a|0,n[5]=n[5]+u|0,n[6]=n[6]+d|0,n[7]=n[7]+h|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,o=8*t.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=e.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(u),t.HmacSHA256=r._createHmacHelper(u)}(Math),i.SHA256)},327:function(e,t,n){var i;e.exports=(i=n(249),n(938),function(e){var t=i,n=t.lib,o=n.WordArray,r=n.Hasher,s=t.x64.Word,a=t.algo,c=[],l=[],u=[];!function(){for(var e=1,t=0,n=0;n<24;n++){c[e+5*t]=(n+1)*(n+2)/2%64;var i=(2*e+3*t)%5;e=t%5,t=i}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var o=1,r=0;r<24;r++){for(var a=0,d=0,h=0;h<7;h++){if(1&o){var p=(1<>>24)|4278255360&(r<<24|r>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(A=n[o]).high^=s,A.low^=r}for(var a=0;a<24;a++){for(var h=0;h<5;h++){for(var p=0,f=0,m=0;m<5;m++)p^=(A=n[h+5*m]).high,f^=A.low;var g=d[h];g.high=p,g.low=f}for(h=0;h<5;h++){var v=d[(h+4)%5],y=d[(h+1)%5],w=y.high,b=y.low;for(p=v.high^(w<<1|b>>>31),f=v.low^(b<<1|w>>>31),m=0;m<5;m++)(A=n[h+5*m]).high^=p,A.low^=f}for(var x=1;x<25;x++){var _=(A=n[x]).high,S=A.low,k=c[x];k<32?(p=_<>>32-k,f=S<>>32-k):(p=S<>>64-k,f=_<>>64-k);var T=d[l[x]];T.high=p,T.low=f}var C=d[0],E=n[0];for(C.high=E.high,C.low=E.low,h=0;h<5;h++)for(m=0;m<5;m++){var A=n[x=h+5*m],I=d[x],P=d[(h+1)%5+5*m],N=d[(h+2)%5+5*m];A.high=I.high^~P.high&N.high,A.low=I.low^~P.low&N.low}A=n[0];var O=u[a];A.high^=O.high,A.low^=O.low}},_doFinalize:function(){var t=this._data,n=t.words,i=(this._nDataBytes,8*t.sigBytes),r=32*this.blockSize;n[i>>>5]|=1<<24-i%32,n[(e.ceil((i+1)/r)*r>>>5)-1]|=128,t.sigBytes=4*n.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,l=[],u=0;u>>24)|4278255360&(h<<24|h>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),l.push(p),l.push(h)}return new o.init(l,a)},clone:function(){for(var e=r.clone.call(this),t=e._state=this._state.slice(0),n=0;n<25;n++)t[n]=t[n].clone();return e}});t.SHA3=r._createHelper(h),t.HmacSHA3=r._createHmacHelper(h)}(Math),i.SHA3)},460:function(e,t,n){var i,o,r,s,a,c,l,u;e.exports=(u=n(249),n(938),n(34),o=(i=u).x64,r=o.Word,s=o.WordArray,a=i.algo,c=a.SHA512,l=a.SHA384=c.extend({_doReset:function(){this._hash=new s.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var e=c._doFinalize.call(this);return e.sigBytes-=16,e}}),i.SHA384=c._createHelper(l),i.HmacSHA384=c._createHmacHelper(l),u.SHA384)},34:function(e,t,n){var i;e.exports=(i=n(249),n(938),function(){function e(){return r.create.apply(r,arguments)}var t=i,n=t.lib.Hasher,o=t.x64,r=o.Word,s=o.WordArray,a=t.algo,c=[e(1116352408,3609767458),e(1899447441,602891725),e(3049323471,3964484399),e(3921009573,2173295548),e(961987163,4081628472),e(1508970993,3053834265),e(2453635748,2937671579),e(2870763221,3664609560),e(3624381080,2734883394),e(310598401,1164996542),e(607225278,1323610764),e(1426881987,3590304994),e(1925078388,4068182383),e(2162078206,991336113),e(2614888103,633803317),e(3248222580,3479774868),e(3835390401,2666613458),e(4022224774,944711139),e(264347078,2341262773),e(604807628,2007800933),e(770255983,1495990901),e(1249150122,1856431235),e(1555081692,3175218132),e(1996064986,2198950837),e(2554220882,3999719339),e(2821834349,766784016),e(2952996808,2566594879),e(3210313671,3203337956),e(3336571891,1034457026),e(3584528711,2466948901),e(113926993,3758326383),e(338241895,168717936),e(666307205,1188179964),e(773529912,1546045734),e(1294757372,1522805485),e(1396182291,2643833823),e(1695183700,2343527390),e(1986661051,1014477480),e(2177026350,1206759142),e(2456956037,344077627),e(2730485921,1290863460),e(2820302411,3158454273),e(3259730800,3505952657),e(3345764771,106217008),e(3516065817,3606008344),e(3600352804,1432725776),e(4094571909,1467031594),e(275423344,851169720),e(430227734,3100823752),e(506948616,1363258195),e(659060556,3750685593),e(883997877,3785050280),e(958139571,3318307427),e(1322822218,3812723403),e(1537002063,2003034995),e(1747873779,3602036899),e(1955562222,1575990012),e(2024104815,1125592928),e(2227730452,2716904306),e(2361852424,442776044),e(2428436474,593698344),e(2756734187,3733110249),e(3204031479,2999351573),e(3329325298,3815920427),e(3391569614,3928383900),e(3515267271,566280711),e(3940187606,3454069534),e(4118630271,4000239992),e(116418474,1914138554),e(174292421,2731055270),e(289380356,3203993006),e(460393269,320620315),e(685471733,587496836),e(852142971,1086792851),e(1017036298,365543100),e(1126000580,2618297676),e(1288033470,3409855158),e(1501505948,4234509866),e(1607167915,987167468),e(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=e()}();var u=a.SHA512=n.extend({_doReset:function(){this._hash=new s.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],o=n[1],r=n[2],s=n[3],a=n[4],u=n[5],d=n[6],h=n[7],p=i.high,f=i.low,m=o.high,g=o.low,v=r.high,y=r.low,w=s.high,b=s.low,x=a.high,_=a.low,S=u.high,k=u.low,T=d.high,C=d.low,E=h.high,A=h.low,I=p,P=f,N=m,O=g,$=v,D=y,L=w,J=b,B=x,H=_,j=S,z=k,M=T,R=C,F=E,W=A,X=0;X<80;X++){var G,q,V=l[X];if(X<16)q=V.high=0|e[t+2*X],G=V.low=0|e[t+2*X+1];else{var Y=l[X-15],U=Y.high,Z=Y.low,K=(U>>>1|Z<<31)^(U>>>8|Z<<24)^U>>>7,Q=(Z>>>1|U<<31)^(Z>>>8|U<<24)^(Z>>>7|U<<25),ee=l[X-2],te=ee.high,ne=ee.low,ie=(te>>>19|ne<<13)^(te<<3|ne>>>29)^te>>>6,oe=(ne>>>19|te<<13)^(ne<<3|te>>>29)^(ne>>>6|te<<26),re=l[X-7],se=re.high,ae=re.low,ce=l[X-16],le=ce.high,ue=ce.low;q=(q=(q=K+se+((G=Q+ae)>>>0>>0?1:0))+ie+((G+=oe)>>>0>>0?1:0))+le+((G+=ue)>>>0>>0?1:0),V.high=q,V.low=G}var de,he=B&j^~B&M,pe=H&z^~H&R,fe=I&N^I&$^N&$,me=P&O^P&D^O&D,ge=(I>>>28|P<<4)^(I<<30|P>>>2)^(I<<25|P>>>7),ve=(P>>>28|I<<4)^(P<<30|I>>>2)^(P<<25|I>>>7),ye=(B>>>14|H<<18)^(B>>>18|H<<14)^(B<<23|H>>>9),we=(H>>>14|B<<18)^(H>>>18|B<<14)^(H<<23|B>>>9),be=c[X],xe=be.high,_e=be.low,Se=F+ye+((de=W+we)>>>0>>0?1:0),ke=ve+me;F=M,W=R,M=j,R=z,j=B,z=H,B=L+(Se=(Se=(Se=Se+he+((de+=pe)>>>0>>0?1:0))+xe+((de+=_e)>>>0<_e>>>0?1:0))+q+((de+=G)>>>0>>0?1:0))+((H=J+de|0)>>>0>>0?1:0)|0,L=$,J=D,$=N,D=O,N=I,O=P,I=Se+(ge+fe+(ke>>>0>>0?1:0))+((P=de+ke|0)>>>0>>0?1:0)|0}f=i.low=f+P,i.high=p+I+(f>>>0

    >>0?1:0),g=o.low=g+O,o.high=m+N+(g>>>0>>0?1:0),y=r.low=y+D,r.high=v+$+(y>>>0>>0?1:0),b=s.low=b+J,s.high=w+L+(b>>>0>>0?1:0),_=a.low=_+H,a.high=x+B+(_>>>0>>0?1:0),k=u.low=k+z,u.high=S+j+(k>>>0>>0?1:0),C=d.low=C+R,d.high=T+M+(C>>>0>>0?1:0),A=h.low=A+W,h.high=E+F+(A>>>0>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),t[31+(i+128>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});t.SHA512=n._createHelper(u),t.HmacSHA512=n._createHmacHelper(u)}(),i.SHA512)},253:function(e,t,n){var i;e.exports=(i=n(249),n(269),n(214),n(888),n(109),function(){function e(e,t){var n=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=n,this._lBlock^=n<>>e^this._lBlock)&t;this._lBlock^=n,this._rBlock^=n<>>5]>>>31-i%32&1}for(var o=this._subKeys=[],r=0;r<16;r++){var s=o[r]=[],a=u[r];for(n=0;n<24;n++)s[n/6|0]|=t[(l[n]-1+a)%28]<<31-n%6,s[4+(n/6|0)]|=t[28+(l[n+24]-1+a)%28]<<31-n%6;for(s[0]=s[0]<<1|s[0]>>>31,n=1;n<7;n++)s[n]=s[n]>>>4*(n-1)+3;s[7]=s[7]<<5|s[7]>>>27}var d=this._invSubKeys=[];for(n=0;n<16;n++)d[n]=o[15-n]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(n,i,o){this._lBlock=n[i],this._rBlock=n[i+1],e.call(this,4,252645135),e.call(this,16,65535),t.call(this,2,858993459),t.call(this,8,16711935),e.call(this,1,1431655765);for(var r=0;r<16;r++){for(var s=o[r],a=this._lBlock,c=this._rBlock,l=0,u=0;u<8;u++)l|=d[u][((c^s[u])&h[u])>>>0];this._lBlock=c,this._rBlock=a^l}var p=this._lBlock;this._lBlock=this._rBlock,this._rBlock=p,e.call(this,1,1431655765),t.call(this,8,16711935),t.call(this,2,858993459),e.call(this,16,65535),e.call(this,4,252645135),n[i]=this._lBlock,n[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});n.DES=s._createHelper(p);var f=a.TripleDES=s.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),n=e.length<4?e.slice(0,2):e.slice(2,4),i=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=p.createEncryptor(r.create(t)),this._des2=p.createEncryptor(r.create(n)),this._des3=p.createEncryptor(r.create(i))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});n.TripleDES=s._createHelper(f)}(),i.TripleDES)},938:function(e,t,n){var i;e.exports=(i=n(249),function(e){var t=i,n=t.lib,o=n.Base,r=n.WordArray,s=t.x64={};s.Word=o.extend({init:function(e,t){this.high=e,this.low=t}}),s.WordArray=o.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:8*t.length},toX32:function(){for(var e=this.words,t=e.length,n=[],i=0;i1&&u(t);break;case 71300:n?(e(".J-secure-text").text(t.msg||"鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯"),Oe.freshCaptcha(!0)):(A(t.msg),W.emit("login-reg-win","login-fail"),O(de.loginFail)&&de.loginFail());break;default:n&&n.close(),A(t.msg),W.emit("login-reg-win","login-fail"),de.loginFail&&de.loginFail()}}function l(e,t){var n="";1===ye&&(n="&isChangeWeixinBind="+ye);var i="";we&&(i="&isSwitchWeixinBinding=1");var o="";be&&(o="&challengeCallbackUrl="+encodeURIComponent(be));var r="&exchangeLoginType=password";t&&"sms"===t.exchangeLoginType&&(r="&exchangeLoginType=sms");var s="";e.data.pid&&(s="&pid="+e.data.pid),window.localStorage.setItem("_change_weixin_bind_data",JSON.stringify(window.weixinData));var a=window.location.href,c="https://mlogin.vip.com/asserts/login/challenge.html?challengeCallbackUrl="+encodeURIComponent(a),l=encodeURIComponent(""+c+(c.indexOf("?")!=-1?"&":"?")+"mlogin_processId="+(e.data.processId||s)+"&mlogin_exchange=1"+n+i+o+r+s);ce.set("newlogin_thirdData",(de||{}).thirdData||{}),window.location.href="https://defend.vip.com/index/app/?challengeId="+e.data.challengeId+"&sign="+e.data.challengeSign+"&callback="+l+"&isCallbackToUrl=true",M.send("mlogin_defend_touchoff")}function u(t){var n=t.data.accounts.length;se.conf({content:'

    ',width:"80%",btns:[''],clsName:"m-user-choose"}).open(),e(".J-mlogin-userlist").html(F({data:t.data.accounts,displayName:e(".J-mlogin-ipt-username").val(),chooseTips:"mloginUser"})),2===n&&e(".user-choose-list").addClass("z-user-item-two"),e(document).ready(function(){var t=e(".user-choose-inner");t.find("[data-src]").one("error",function(t){e(this).attr("src","https://mlogin.vip.com/asserts/img/icons/user-pic.png")}).each(function(t,n){n.src=e(n).data("src")})}),e(".J-user-choose").on("click",function(){var n="";t.data&&t.data.processId&&(n=t.data.processId);var i=e(this),o={processId:i.attr("data-id")||n,accountId:i.find(".user-item-name").attr("data-id"),username:H.encryptMobile(Ee.find(".J-mlogin-ipt-username")[0].value)};d(o)})}function d(t){se.close(),t.third_data=de.thirdData||{},t.source=ve,z.selectAccount(t).then(function(t){e("#mg-dialog").removeClass("m-user-choose"),de.loginSuccess&&de.loginSuccess(),!Se&&oe.open(t.msg||"鐧诲綍鎴愬姛",2e3),t=t||{},M.send("H5_active_new_login",JSON.stringify({type:"userNameLogin",status:"1",way:"userNameLogin",enter:"1",isGray:pe}))},function(e){return e.code===-10033?(l(e),!1):(A(e.msg),e=e||{},void M.send("H5_active_new_login",JSON.stringify({type:"userNameLogin",status:"0",status_des:e.msg||"",way:"userNameLogin",enter:"1",isGray:pe})))})}function h(){z.weixinRegisterLogin(window.weixinData).then(function(){window.localStorage.removeItem("wxLoginPop");var e=window.location.href.indexOf("?")!=-1?"&":"?";window.location.href=location.href+e+"time="+(new Date).getTime()},function(e){A(e.msg)})}function p(t){window.mlogin_isfromLogin=!0,e("#J-register-win .J-mlogin-back").removeClass("icon-register-close"),t.preventDefault(),X.close(),e(".J-error-msg").removeClass("m-login-error"),W.emit("login-reg-win","toggle-to-register"),Ee.find("form")[0].reset(),I()}function f(t){var n=H.query("exchangeLoginType")||"password";if("sms"===n){var i=decodeURIComponent(H.query("challengeCallbackUrl")||""),o=H.useHistory("exchangeLogin",{mlogin_exchange:""});return void(window.location.href=(0,B["default"])(i||o))}t.preventDefault(),e(".J-login-wrap,.J-mobile-fast-login-header,.J-password-step,.J-second-step,.J-error-msg").hide(),e(".J-mobile-fast-login,.J-models-login-footer,.J-models-login-logo").show(),e("#J-models-login-wrap").addClass("models-login-bg-write"),e(".J-error-msg").addClass("m-login-error"),_e?e(".J-mlogin-close").hide():e(".J-mlogin-close").show(),I()}function m(t){t.preventDefault(),fe.stopCountDown(),e(".J-error-msg").addClass("m-login-error"),e("#J-models-login-wrap").addClass("models-login-bg-write"),e(".J-mlogin-ipt").val(""),e("button").addClass("disabled"),setTimeout(function(){e(".J-mlogin-get-login-authcode").html("鑾峰彇楠岃瘉鐮"),e(".J-mlogin-get-login-authcode").addClass("disabled")},500),"0"===he?(e(".J-mobile-fast-login-header,.J-mobile-fast-login,.J-password-step,.J-second-step").hide(),e(".J-models-login-logo,.J-login-wrap,.J-models-login-footer,.J-mlogin-close").show()):(e(".J-mobile-fast-login-header,.J-login-wrap,.J-password-step,.J-second-step").hide(),e(".J-models-login-logo,.J-mobile-fast-login,.J-models-login-footer,.J-mlogin-close").show()),e(".J-mlogin-captcha-item").length>0&&e(".J-mlogin-captcha-item").remove(),I()}function g(t){t.preventDefault(),e("#J-models-login-wrap").removeClass("models-login-bg-write"),e(".J-error-msg").addClass("m-login-error"),e(".J-login-wrap,.J-models-login-logo").show(),e(".J-mobile-fast-login-header,.J-mobile-fast-login,.J-models-login-footer").hide(),_e?e(".J-mlogin-close").hide():e(".J-mlogin-close").show(),I()}function v(t){if(t.preventDefault(),!e(".J-rectangle-agree").hasClass("mlogin-icon-rectangle-selected"))return A("鎮ㄥ繀椤诲悓鎰忓敮鍝佷細鏈嶅姟鏉℃鍚庯紝鎵嶈兘杩涜涓嬩竴姝"),!1;if(e(t.currentTarget).hasClass("disabled"))return!1;var n=r();return"string"==typeof n?(A(n),!1):(n.third_data=de.thirdData||{},ke.captchaTypePwd?(n.captchaType=ke.captchaTypePwd,n.captchaId=ke.captchaId,n.ticket=ke.ticket):(n.uuid=fe.getOption("uuid"),n.processId=fe.getOption("processId"),n.authScene=fe.getOption("authScene")),n.info=ne,n.domain_id=ae,n.smsTicket=fe.getOption("smsTicket")||"",ge=Y().show(),I(),z.checkSms(n).then(function(e){var t="鐧诲綍鎴愬姛";W.emit("login-reg-win","register-success"),de.loginSuccess&&de.loginSuccess(),!Se&&oe.open(t,2e3),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"sms",status:"1",way:"login",enter:"1",isGray:pe}))},function(t){if(!t.code||2!==t.code&&70309!==t.code)if(t.code&&11170300===Number(t.code))ce.set("sms-exchange-login-params",{mobile:n.mobile||"",authScene:n.authScene||"",userName:n.mobile||"",processId:(t.data||{}).processId||""}),l(t,{exchangeLoginType:"sms"});else{var i="";Number(t.code)!==-10001||n.processId||(i="璇峰厛鑾峰彇鐭俊楠岃瘉鐮"),A(i||t.msg),t=t||{},M.send("H5_active_new_login",JSON.stringify({type:"sms",status:"0",status_des:t.msg,enter:"1",code:t.code,isGray:pe})),W.emit("login-reg-win","login-fail"),de.loginFail&&de.loginFail()}else se.conf({content:"璇ユ墜鏈哄彿灏氭湭娉ㄥ唽鍞搧浼氳处鍙凤紝鐐瑰嚮鈥滅户缁敞鍐屸濓紝灏嗕负鎮ㄥ垱寤哄敮鍝佷細璐﹀彿銆",btns:["閲嶆柊杈撳叆","缁х画娉ㄥ唽"],width:"80%",clsName:"no-title",x:"80%",onBtnClick:function(e,n){1===n&&y(t),this.close()}}).open(),e(".mg-dialog-foot button:first-child").css("color","#333333")}).always(function(){ge.hide()}),void G.send())}function y(t){e(".J-mobile-fast-login").hide();var n=!1;t.data&&t.data.op&&(1===t.data.op||"2"===t.data.op)?(e(".J-password-step").show(),e(".J-mobile-fast-login-header").show(),e(".J-models-login-logo, .J-models-login-footer").hide(),e("#J-models-login-wrap").removeClass("models-login-bg-write"),e(".J-mobile-fast-login-header h2").html("璁剧疆瀵嗙爜"),e(".J-error-msg").removeClass("m-login-error"),n=!0):(e(".J-second-step").show(),e(".J-mobile-fast-login-header").show(),e(".J-models-login-logo, .J-models-login-footer").hide(),e("#J-models-login-wrap").removeClass("models-login-bg-write"),e(".J-mobile-fast-login-header h2").html("璁剧疆瀵嗙爜"),e(".J-error-msg").removeClass("m-login-error")),t=t||{},M.send("H5_active_new_login",JSON.stringify({type:"sms",status:"1",way:n?"login":"reg",enter:"1",isGray:pe})),o()}function w(t){t.preventDefault(),"password"===e(t.currentTarget).siblings(".J-mlogin-ipt").attr("type")?(e(t.currentTarget).siblings(".J-mlogin-ipt")[0].setAttribute("type","text"),e(t.currentTarget).addClass("mlogin-ipt-show")):(e(t.currentTarget).siblings(".J-mlogin-ipt")[0].setAttribute("type","password"),e(t.currentTarget).removeClass("mlogin-ipt-show"))}function b(t){if(t.preventDefault(),e(t.currentTarget).hasClass("disabled"))return!1;var n=V.onlyPasswordValidate(Ee.find(".J-mlogin-ipt-password-second")[0],function(t){t.mobile=fe.getOption("mobile")||H.encryptMobile(e(".J-mlogin-ipt-mobile").val()),t.domain_id=ae,t.serialno=fe.getOption("serialno")});if("string"==typeof n)return A(n),!1;n.third_data=de.thirdData||{},ge=Y().show(),I(),n.processId=fe.getOption("processId"),n.authScene=1,e.extend(n,_());var i=decodeURIComponent(H.query("challengeCallbackUrl")||"");z.mobileLogin(n).then(function(e){var t="娉ㄥ唽鎴愬姛";W.emit("login-reg-win","register-success"),de.loginSuccess&&de.loginSuccess();var n=H.useHistory("exchangeLogin",{mlogin_exchange:""});Se||(oe.open(t,2e3),setTimeout(function(){window.location.href=(0,B["default"])(i||n)},1e3)),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"1",way:"reg",enter:"2",isGray:pe}))},function(e){A(e.msg),W.emit("login-reg-win","register-success"),de.loginFail&&de.loginFail(),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"0",code:e.code,status_des:e.msg||"",way:"reg",enter:"2",isGray:pe}))}).always(function(){ge.hide()}),G.send()}function x(t){t.preventDefault();var n=V.fullPasswordValidate(Ie[0],Ae[0],Pe[0],function(e){e.domain_id=ae,e.serialno=fe.getOption("serialno")});if("string"==typeof n)return A(n),!1;n.third_data=de.thirdData||{},ge=Y().show(),I(),n.processId=fe.getOption("processId"),n.authScene=2,e.extend(n,_());var i=decodeURIComponent(H.query("challengeCallbackUrl")||"");z.mobileLogin(n).then(function(e){var t="鐧诲綍鎴愬姛";fe.setOption("serialno",e.serialno),W.emit("login-reg-win","login-success"),de.loginSuccess&&de.loginSuccess();var n=H.useHistory("exchangeLogin",{mlogin_exchange:""});Se||(oe.open(t,2e3),setTimeout(function(){window.location.href=(0,B["default"])(i||n)},1e3)),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"1",way:"login",enter:"1",isGray:pe}))},function(e){A(e.msg),W.emit("login-reg-win","login-fail"),de.loginFail&&de.loginFail(),ge.hide(),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"set-pwd",status:"0",code:e.code,status_des:e.msg||"",way:"login",enter:"1",isGray:pe}))})}function _(){var e=H.query("exchangeLoginType")||"password",t="sms"===e?ce.get("sms-exchange-login-params"):{};return t}function S(){window.localStorage&&localStorage.setItem("saveLoginName",K.encode(e(".J-mlogin-ipt-username").val()))}function k(){window.localStorage&&localStorage.setItem("saveIphoneName",K.encode(e(".J-mlogin-ipt-mobile").val()))}function T(t){t.preventDefault();var n=e(".J-rectangle-agree"),i="mlogin-icon-rectangle-selected",o="mlogin-icon-rectangle-normal"; +n.hasClass(i)?(n.removeClass(i),n.addClass(o)):(n.removeClass(o),n.addClass(i))}function C(){z.getUserInfo().then(function(e){e=e||{},Ce=e.userName||"",E(!0)})}function E(t){var n=e(".J-binding-user-info");we&&t&&Ce?n.show().find(".J-binding-user-info__name").text(Ce):n.hide()}function A(e){E(!1),H.showError(Ne,e)}function I(){E(!0),H.hideError(Ne)}function P(e){H.btnAbled(e),I()}function N(){Ee.on("click",".J-mlogin-clear",H.clearIptVal),Ee.on("click",".J-mlogin-show-password",w),Ee.on("click",".J-mlogin-submit",a),Ee.on("click",".J-mlogin-mobile-new,.J-mlogin-back-new",f),Ee.on("click",".J-mlogin-login-normal",g),Ee.find(".J-mlogin-ipt-username").on("blur",S),Ee.find(".J-mlogin-ipt-mobile").on("blur",k),Ee.on("click",".J-mlogin-get-login-authcode",function(e){fe.getSmsCaptcha(e,ve)}),Ee.on("click",".J-mlogin-password-btn",x),Ee.on("click",".J-register-btn",b),Ee.on("click",".J-mlogin-toggle",p),Ee.on("click",".J-login-models-submit",v),Ee.find(".J-mlogin-ipt").on("focus",H.focusClearBtn),Ee.find(".J-mlogin-ipt").on("blur",H.blurClearBtn),Ee.find(".J-mlogin-ipt").on("keyup input change",P),Ee.on("click",".J-mlogin-back",m),Ee.on("click",".J-mlogin-backi",m),Ee.find(".J-mlogin-ipt-mobile").on("keyup input change",P),Ee.on("click",".J-mlogin-login-weixin",h),Ee.on("click",".J-mlogin-close",function(e){e.preventDefault(),De.close(),X.close(),I(),W.emit("login-reg-win","close-login-win",{})}),Ee.on("click",".J-rectangle-agree",T),e("body").on("focus",".J-mlogin-ipt-captcha",function(){e(".J-secure-text").text("")}),e("body").on("click",".J-refresh-img",function(){Oe.freshCaptcha()}),e("#J-models-login-wrap").find("input").on("blur",o),L["default"].attach(document.getElementById("J-models-login-wrap"))}var O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$=n(33),D=n(34),L=i(D),J=n(36),B=i(J),H=n(37),j=n(39),z=n(24),M=n(40),R=n(41),F=n(42),W=n(43),X=n(44)(),G=n(47),q=n(20),V=n(48),Y=n(50),U=n(54),Z=n(21),K=n(23),Q=n(22),ee=n(58),te=Q.get("mars_cid")||"",ne=JSON.stringify({cid:te}),ie=n(70),oe=n(55)(),re=n(72),se=n(65)(),ae=q.getId();se.setNoAnimate(!0),n(1);var ce=n(62);window.storageAPI=ce;var le=n(74),ue=null,de=null,he="0",pe=0,fe="",me=!1,ge="",ve="",ye=0,we=!1,be="",xe=!1,_e=!1,Se=!1,ke={},Te=0,Ce="",Ee=void 0,Ae=void 0,Ie=void 0,Pe=void 0,Ne=void 0,Oe={checkNeed:function(t){if(e(".J-mlogin-captcha-item").length)t&&t();else{e(".J-mlogin-submit").addClass("disabled");var n=ne,i=Ee.find(".J-mlogin-ipt-username")[0],o={loginName:H.encryptMobile(i.value),scene:"LOGIN_WAP",source:ve,info:n};z.captchaPre(o).then(function(n){me=!1,ge.hide(),e(".J-mlogin-submit").removeClass("disabled"),n.sid&&(ke.sid=n.sid),n.captchaType&&0!==Number(n.captchaType)?(ke.captchaTypePwd=n.captchaType,ke.captchaId=n.captchaId||"",window.VipSecureCode?U.vipCaptchaShow(n,ke,ve,t):(oe.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),M.send("H5_safe_mlogin_components_load_failed",JSON.stringify({source:ve,capatchType:ke.captchaTypePwd,way:"accountlogin"})))):t&&t()},function(e){me=!1,ge.hide(),A(e.msg)})}},freshCaptcha:function(t){if(!me){me=!0;var n={domain_id:ae,username:H.encryptMobile(Ee.find(".J-mlogin-ipt-username")[0].value)};j.getNewCaptcha(n).then(function(n){if(me=!1,n.captchaType)switch(String(n.captchaType)){case"1":n.pic&&"string"==typeof n.pic?(e(".J-mlogin-ipt-captcha").val("").data("captcha-type",1),e(".J-code-img").attr("src","data:image/png;base64,"+n.pic),!(t===!0)&&e(".J-secure-text").text(""),e(".J-secure-check-title").addClass("doc").removeClass("img")):e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯");break;case"6":var i=null;try{i=JSON.parse(n.pic||"")}catch(o){console.log("json parse error !"),i={}}i&&i.qp&&i.ap&&"string"==typeof i.qp&&"string"==typeof i.ap?(e(".J-question-img").attr("src","data:image/png;base64,"+i.qp),e(".J-code-img").attr("src","data:image/png;base64,"+i.ap),e(".J-mlogin-ipt-captcha").val("").data("captcha-type",6),!(t===!0)&&e(".J-secure-text").text(""),e(".J-secure-check-title").addClass("img").removeClass("doc")):e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯");break;default:e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯")}else e(".J-secure-text").text("鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯")},function(){me=!1})}}},$e=function(){var t=H.query(),n=t.mlogin_exchange;if(n){M.send("mlogin_defend_touchoffsuccess");var i="1",o=t.mlogin_processId,r=decodeURIComponent(t.challengeToken),s=t.challengeId,a=ce.get("newlogin_thirdData")||{},c=decodeURIComponent(t.challengeCallbackUrl||""),l=t.exchangeLoginType||"password";ce.remove("newlogin_thirdData");var u=void 0;if(r){var d=window.localStorage.getItem("_change_weixin_bind_data");window.localStorage.removeItem("_change_weixin_bind_data");try{d=JSON.parse(d)}catch(h){d={}}window.weixinData=d;var p=t.pid||"",f="sms"===l?ce.get("sms-exchange-login-params"):{},m=e.extend({source:ve,isNew:i,processId:o,challengeToken:r,challengeId:s,pid:p,third_data:a},f),g=null;g=p?z.exchangeTokenV4:"sms"===l?z.exchangeTokenV3:z.exchangeToken,g(m).then(function(e){var n="鎭枩锛岃韩浠芥牎楠屾垚鍔熴";!Z.isWeixin()||"1"!==String(t.isChangeWeixinBind)&&"1"!==String(t.isSwitchWeixinBinding)||(n="鍒囨崲缁戝畾鎴愬姛"),u=H.useHistory("exchangeLogin",{mlogin_exchange:""}),setTimeout(function(){c=H.changeURLArg(c,"loginChallengeSuccess",1),window.location.href=(0,B["default"])(c||u)},500),oe.open(n,2e3),e=e||{},M.send("H5_active_new_login",JSON.stringify({type:"defend",status:"1",isGray:pe}))},function(e){return e=e||{},e&&70309===Number(e.code)?void(window.loginDeal&&window.loginDeal.go({eventHandlers:{"login-reg-win":{"open-win":function(){y(e)}}}})):(u=H.useHistory("exchangeLogin",{mlogin_exchange:""}),setTimeout(function(){c=H.changeURLArg(c,"loginChallengeSuccess",0),window.location.href=(0,B["default"])(c||u)},2e3),oe.open(e.msg||"绯荤粺缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯锛",5e3),void M.send("H5_active_new_login",JSON.stringify({type:"defend",status:"0",isGray:pe})))})}else oe.open("鎶辨瓑锛岃韩浠芥牎楠屽け璐ワ紝鏃犳硶鐧诲綍锛岃24灏忔椂鍚庨噸璇曘",5e3),H.useHistory("exchangeLogin",{mlogin_exchange:""}),setTimeout(function(){c=H.changeURLArg(c,"loginChallengeSuccess",0),window.location.href=(0,B["default"])(c||u)},2e3)}},De={};De={init:function(t){return t.data||window.console.warn(new Error("loginWin 缁勪欢锛屽睘鎬 data 鏄繀閫夐」")),t.data.isviva&&(he="1"),t.data.isGray&&(pe=t.data.isGray),ve=t.data.optsSource,we=!!t.data.isSwitchWeixinBinding,be=t.data.challengeCallbackUrl||"",_e=!!t.data.hideCloseBtn,xe=!!t.data.disablePasswordLogin,Se=!!t.data.remainOnSuccess,t.data.isChangeWeixinBind&&(ye=1),t.id=t.id?t.id:"J-login-win",t.className=t.className?t.className+" login-reg-win models-wrapper":"login-reg-win models-wrapper",ue||(ue=new ie({id:t.id,className:t.className})),ue.conf({content:R({data:t.data}),freeze:!0,scrollLock:!1}),Te=t.data.isGrayTicketLogin,t.data.isGrayTicketLogin&&ee.init({params:t,showSetPassword:y,locationDefend:l}),_e?e(".J-mlogin-close").hide():e(".J-mlogin-close").show(),de=t,Ee=e("#"+t.id),Ne=Ee.find(".J-error-msg"),Ae=Ee.find(".J-mlogin-ipt-mobile"),Ie=Ee.find(".J-login-password"),Pe=Ee.find(".J-mlogin-ipt-authcode"),fe=new re({$mobile:Ae,$authCode:Pe,$getAuthCode:e(".J-mlogin-get-login-authcode"),$errorBox:Ne},{domain_id:ae,isviva:he,enter:1,toggleToNormalLogin:g,disablePasswordLogin:xe,showError:function(e){A(e)},hideError:function(){I()}}),N(),we&&C(),this},open:function(){window.mlogin_isfromLogin=!1,e("#J-register-win .J-mlogin-back").addClass("icon-register-close"),ue.open(),o();var t=!0,n=e(".J-login-wrap").find(".J-mlogin-ipt");return setTimeout(function(){n.each(function(){""===this.value&&(t=!1)}),t&&Ee.find(".J-mlogin-submit").removeClass("disabled")},500),e("body,html").css({"overflow-y":"hidden",height:"100%"}),le||(le=new le("#J-models-login-wrap",{preventDefault:!1,scrollbars:!0,mouseWheel:!0,click:!0,interactiveScrollbars:!0,fadeScrollbars:!0})),W.emit("login-reg-win","open-win",{type:"login"}),this},close:function(){return ue.close(),e("body,html").css({"overflow-y":"",height:""}),W.emit("login-reg-win","close-win",{type:"login"}),this}},t.loginWin=De,t.exchangeLogin=$e}).call(t,n(1))},function(e,t){"use strict";function n(){var e=window,t=e.scrollX,n=e.scrollY;window.scroll(t,n+1),window.scroll(t,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.fixElementsOffsetAfterKeyboardHide=n},function(e,t,n){var i,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};(function(){"use strict";/** + * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. + * + * @codingstandard ftlabs-jsv2 + * @copyright The Financial Times Limited [All Rights Reserved] + * @license MIT License (see LICENSE.txt) + */ +function r(e,t){function n(e,t){return function(){return e.apply(t,arguments)}}var i;if(t=t||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=t.touchBoundary||10,this.layer=e,this.tapDelay=t.tapDelay||200,this.tapTimeout=t.tapTimeout||700,!r.notNeeded(e)){for(var o=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],s=this,c=0,l=o.length;c=0,a=navigator.userAgent.indexOf("Android")>0&&!s,c=/iP(ad|hone|od)/.test(navigator.userAgent)&&!s,l=c&&/OS 4_\d(_\d)?/.test(navigator.userAgent),u=c&&/OS [6-7]_\d/.test(navigator.userAgent),d=navigator.userAgent.indexOf("BB10")>0;r.prototype.needsClick=function(e){switch(e.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(e.disabled)return!0;break;case"input":if(c&&"file"===e.type||e.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(e.className)},r.prototype.needsFocus=function(e){switch(e.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!a;case"input":switch(e.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!e.disabled&&!e.readOnly;default:return/\bneedsfocus\b/.test(e.className)}},r.prototype.sendClick=function(e,t){var n,i;document.activeElement&&document.activeElement!==e&&document.activeElement.blur(),i=t.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(e),!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,e.dispatchEvent(n)},r.prototype.determineEventType=function(e){return a&&"select"===e.tagName.toLowerCase()?"mousedown":"click"},r.prototype.focus=function(e){var t;c&&e.setSelectionRange&&0!==e.type.indexOf("date")&&"time"!==e.type&&"month"!==e.type?(t=e.value.length,e.setSelectionRange(t,t),e.focus()):e.focus()},r.prototype.updateScrollParent=function(e){var t,n;if(t=e.fastClickScrollParent,!t||!t.contains(e)){n=e;do{if(n.scrollHeight>n.offsetHeight){t=n,e.fastClickScrollParent=n;break}n=n.parentElement}while(n)}t&&(t.fastClickLastScrollTop=t.scrollTop)},r.prototype.getTargetElementFromEventTarget=function(e){return e.nodeType===Node.TEXT_NODE?e.parentNode:e},r.prototype.onTouchStart=function(e){var t,n,i;if(e.targetTouches.length>1)return!0;if(t=this.getTargetElementFromEventTarget(e.target),n=e.targetTouches[0],c){if(i=window.getSelection(),i.rangeCount&&!i.isCollapsed)return!0;if(!l){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return e.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(t)}}return this.trackingClick=!0,this.trackingClickStart=e.timeStamp,this.targetElement=t,this.touchStartX=n.pageX,this.touchStartY=n.pageY,e.timeStamp-this.lastClickTimen||Math.abs(t.pageY-this.touchStartY)>n},r.prototype.onTouchMove=function(e){return!this.trackingClick||((this.targetElement!==this.getTargetElementFromEventTarget(e.target)||this.touchHasMoved(e))&&(this.trackingClick=!1,this.targetElement=null),!0)},r.prototype.findControl=function(e){return void 0!==e.control?e.control:e.htmlFor?document.getElementById(e.htmlFor):e.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},r.prototype.onTouchEnd=function(e){var t,n,i,o,r,s=this.targetElement;if(!this.trackingClick)return!0;if(e.timeStamp-this.lastClickTimethis.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=e.timeStamp,n=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,u&&(r=e.changedTouches[0],s=document.elementFromPoint(r.pageX-window.pageXOffset,r.pageY-window.pageYOffset)||s,s.fastClickScrollParent=this.targetElement.fastClickScrollParent),i=s.tagName.toLowerCase(),"label"===i){if(t=this.findControl(s)){if(this.focus(s),a)return!1;s=t}}else if(this.needsFocus(s))return e.timeStamp-n>100||c&&window.top!==window&&"input"===i?(this.targetElement=null,!1):(this.focus(s),this.sendClick(s,e),c&&"select"===i||(this.targetElement=null,e.preventDefault()),!1);return!(!c||l||(o=s.fastClickScrollParent,!o||o.fastClickLastScrollTop===o.scrollTop))||(this.needsClick(s)||(e.preventDefault(),this.sendClick(s,e)),!1)},r.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},r.prototype.onMouse=function(e){return!this.targetElement||(!!e.forwardedTouchEvent||(!e.cancelable||(!(!this.needsClick(this.targetElement)||this.cancelNextClick)||(e.stopImmediatePropagation?e.stopImmediatePropagation():e.propagationStopped=!0,e.stopPropagation(),e.preventDefault(),!1))))},r.prototype.onClick=function(e){var t;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===e.target.type&&0===e.detail||(t=this.onMouse(e),t||(this.targetElement=null),t)},r.prototype.destroy=function(){var e=this.layer;a&&(e.removeEventListener("mouseover",this.onMouse,!0),e.removeEventListener("mousedown",this.onMouse,!0),e.removeEventListener("mouseup",this.onMouse,!0)),e.removeEventListener("click",this.onClick,!0),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1),e.removeEventListener("touchcancel",this.onTouchCancel,!1)},r.notNeeded=function(e){var t,n,i,o;if("undefined"==typeof window.ontouchstart)return!0;if(n=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!a)return!0;if(t=document.querySelector("meta[name=viewport]")){if(t.content.indexOf("user-scalable=no")!==-1)return!0;if(n>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(d&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(t=document.querySelector("meta[name=viewport]")))){if(t.content.indexOf("user-scalable=no")!==-1)return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===e.style.msTouchAction||"manipulation"===e.style.touchAction||(o=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],!!(o>=27&&(t=document.querySelector("meta[name=viewport]"),t&&(t.content.indexOf("user-scalable=no")!==-1||document.documentElement.scrollWidth<=window.outerWidth)))||("none"===e.style.touchAction||"manipulation"===e.style.touchAction))},r.attach=function(e,t){return new r(e,t)},"object"===o(n(35))&&n(35)?(i=function(){return r}.call(t,n,t,e),!(void 0!==i&&(e.exports=i))):"undefined"!=typeof e&&e.exports?(e.exports=r.attach,e.exports.FastClick=r):window.FastClick=r})()},function(e,t){(function(t){e.exports=t}).call(t,{})},function(e,t){"use strict";function n(e){var t=[/^((https?:)?\/\/)?([^#\\=\?\/\@]*\.)?vip\.com([\/\?#].*)?$/,/^((https?:)?\/\/)?([^#\\=\?\/\@]*\.)?vpal\.com([\/\?#].*)?$/,/^((https?\:)?\/\/)?mlogin\.ebatong\.com([\/\?#].*)?$/,/^((https?\:)?\/\/)?www\.huahaicang\.cn([\/\?#].*)?$/],n=t.some(function(t){return t.test(e)});return n?e:"//m.vip.com"}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n},function(module,exports,__webpack_require__){(function($){"use strict";var md5=__webpack_require__(38),base64=__webpack_require__(23),fn={};fn.encrypt=function(e,t){var n="",i=Date.parse(new Date)/1e3;return n=base64.encode(e)+":"+base64.encode(i.toString())+":"+base64.encode(md5(t))},fn.encryptPassword=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n="";return n=md5(e),t&&(n=base64.encode(n)),n},fn.encryptMobile=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n="";return n=e,t&&(n=base64.encode(e)),n},fn.showError=function(e,t){t=t||"鏈煡閿欒锛岃鍒锋柊椤甸潰閲嶈瘯",e.show().find("span").html(t)},fn.hideError=function(e){e.hide().find("span").html("")},fn.toggleClearBtn=function(e){""===$(e.currentTarget).val()?$(e.currentTarget).siblings(".J-mlogin-clear").hide():$(e.currentTarget).siblings(".J-mlogin-clear").show()},fn.blurClearBtn=function(e){var t=$(e.currentTarget);setTimeout(function(){t.siblings(".J-mlogin-clear").hide()},1e3)},fn.focusClearBtn=function(e){""===$(e.currentTarget).val()?$(e.currentTarget).siblings(".J-mlogin-clear").hide():$(e.currentTarget).siblings(".J-mlogin-clear").show()},fn.btnAbled=function(e){var t=$(e.currentTarget).parent().parent();$(e.currentTarget).hasClass("f-password-width-fix-target")&&(t=t.parent());var n=t.find(".J-mlogin-ipt").eq(0),i=t.find(".J-mlogin-ipt").eq(1),o=t.find(".ui-button"),r=t.find("button"),s=n.data("is-mobile");$(".J-error-msg").hide().find("span").html(""),!n.val()||1===s&&n.val().replace(/\s/g,"").length<11?(o.addClass("disabled"),r[0]&&r.addClass("disabled")):(r[0]&&(r.html().length<6?r.removeClass("disabled"):r.addClass("disabled")),i[0]?i.val()?o.removeClass("disabled"):o.addClass("disabled"):o.removeClass("disabled")),""===$(e.currentTarget).val()?$(e.currentTarget).siblings(".J-mlogin-clear").hide():$(e.currentTarget).siblings(".J-mlogin-clear").show()},fn.clearIptVal=function(e){e.preventDefault(),$(e.currentTarget).siblings(".J-mlogin-ipt").val(""),$(e.currentTarget).hide(),$("button").addClass("disabled"),fn.btnAbled(e)},fn.focusInput=function(e){e.preventDefault(),$(e.target).hasClass("J-mlogin-show-password")||$(e.currentTarget).find("input").focus()},fn.closeWin=function(e){e.close()},fn.query=function(e){var t=location.search.substr(1),n=t.split("&"),i={};return n.map(function(e){var t=e.split("=");if(2===t.length)i[t[0]]=t[1];else if(t.length>2){var n=t[0],o=t.slice(1,t.length).join("=");i[n]=o}}),e?i[e]:i},fn.useHistory=function(e,t){var n=location.search,i=n.substr(1),o=i.split("&"),r={};o.map(function(e){var t=e.split("=");if(2===t.length)r[t[0]]=t[1];else if(t.length>2){var n=t[0],i=t.slice(1,t.length).join("=");r[n]=i}});for(var s in t)r.hasOwnProperty(s)&&(t[s]?r[s]=t[s]:delete r[s]);n="?";for(var a in r)n+=a+"="+r[a]+"&";return window.history&&history.pushState?(history.pushState(e,null,n),location.href):""+location.origin+location.pathname+n},fn.changeURLArg=function(url,arg,arg_val){var pattern=arg+"=([^&]*)",replaceText=arg+"="+arg_val;if(url.match(pattern)){var tmp="/("+arg+"=)([^&]*)/gi";return tmp=url.replace(eval(tmp),replaceText)}return url.match("[?]")?url+"&"+replaceText:url+"?"+replaceText},module.exports=fn}).call(exports,__webpack_require__(1))},function(e,t,n){var i;(function(o){"use strict";function r(e,t){var n=(65535&e)+(65535&t),i=(e>>16)+(t>>16)+(n>>16);return i<<16|65535&n}function s(e,t){return e<>>32-t}function a(e,t,n,i,o,a){return r(s(r(r(t,e),r(i,a)),o),n)}function c(e,t,n,i,o,r,s){return a(t&n|~t&i,e,t,o,r,s)}function l(e,t,n,i,o,r,s){return a(t&i|n&~i,e,t,o,r,s)}function u(e,t,n,i,o,r,s){return a(t^n^i,e,t,o,r,s)}function d(e,t,n,i,o,r,s){return a(n^(t|~i),e,t,o,r,s)}function h(e,t){e[t>>5]|=128<>>9<<4)+14]=t;var n,i,o,s,a,h=1732584193,p=-271733879,f=-1732584194,m=271733878;for(n=0;n>5]>>>t%32&255);return n}function f(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<16&&(o=h(o,8*e.length)),n=0;n<16;n+=1)r[n]=909522486^o[n],s[n]=1549556828^o[n];return i=h(r.concat(f(t)),512+8*t.length),p(h(s.concat(i),640))}function v(e){var t,n,i="0123456789abcdef",o="";for(n=0;n>>4&15)+i.charAt(15&t);return o}function y(e){return unescape(encodeURIComponent(e))}function w(e){return m(y(e))}function b(e){return v(w(e))}function x(e,t){return g(y(e),y(t))}function _(e,t){return v(x(e,t))}function S(e,t,n){return t?n?x(t,e):_(t,e):n?w(e):b(e)}i=function(){return S}.call(t,n,t,e),!(void 0!==i&&(e.exports=i))})(this)},function(e,t,n){(function(e){"use strict";function i(e){return k.req({data:e,url:E.GETWEIXININFOSTATUS,type:"POST",xhrFields:{withCredentials:!0}})}function o(e){return k.req({data:e,url:E.WEIXINAUTOLOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function r(e){return k.req({data:e,url:E.WEIXINREGISTERLOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function s(t,n){return e.ajax({type:"GET",url:E.GETWEIXININFO,data:t,dataType:"jsonp",jsonp:"jsonp",timeout:2e3,success:function(e){n(e)},error:function(e){n(e)}})}function a(e){return k.req({data:e,url:E.GETNEWCAPTCHA,type:"POST",xhrFields:{withCredentials:!0}})}function c(t){var n=E.NEWREGISTER;return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,url:n,type:"POST",xhrFields:{withCredentials:!0}})}function l(t){var n=E.NEWLOGIN;return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,url:n,type:"POST",xhrFields:{withCredentials:!0}})}function u(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,url:E.LOGIN,type:"POST",xhrFields:{withCredentials:!0}})}function d(e){return k.req({data:e,url:E.REGISTER,type:"POST",xhrFields:{withCredentials:!0}})}function h(e){return k.req({data:e,url:E.AUTHCODE,type:"POST",xhrFields:{withCredentials:!0}})}function p(e){return k.req({data:e,url:E.CAPTCHA,type:"POST",xhrFields:{withCredentials:!0}})}function f(e){return k.req({data:e,url:E.CAPTCHAFRESHEN,type:"POST",xhrFields:{withCredentials:!0}})}function m(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:E.CHECK})}function g(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:E.EXCHANGETOKEN})}function v(t){return T.isWeixin()&&e.extend(t,window.weixinData),k.req({data:t,type:"POST",xhrFields:{withCredentials:!0},url:E.SELECTACCOUNT})}function y(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.GETVIVATIPS})}function w(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.GETUISWITCH})}function b(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.THIRDAUTOLOGIN})}function x(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.ISLOGINED})}function _(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.GETTHIRDINFO})}function S(e){return k.req({data:e,type:"POST",xhrFields:{withCredentials:!0},url:E.THIRDTRYLOGIN})}n(1);var k=n(25),T=n(21),C="//mlogin.vip.com/ajaxapi-user.html",E={LOGIN:C+"?act=loginV2",REGISTER:C+"?act=register",AUTHCODE:C+"?act=create",CHECK:C+"?act=check",CAPTCHA:C+"?act=send",CAPTCHAFRESHEN:C+"?act=freshen",NEWLOGIN:C+"?act=newLogin",NEWREGISTER:C+"?act=newRegister",GETNEWCAPTCHA:C+"?act=getNewCaptcha",GETWEIXININFO:"//weixin-api.vip.com/user/getUserInfo",WEIXINREGISTERLOGIN:C+"?act=weixinRegisterLogin",GETWEIXININFOSTATUS:C+"?act=weixinInfoStatus",WEIXINAUTOLOGIN:C+"?act=weixinAutoLogin",EXCHANGETOKEN:C+"?act=exchangeToken",SELECTACCOUNT:C+"?act=selectAccount",GETVIVATIPS:C+"?act=getVivaTips",GETUISWITCH:C+"?act=getUiSwitch",THIRDAUTOLOGIN:C+"?act=thirdAutoLogin",ISLOGINED:C+"?act=isLogined",GETTHIRDINFO:C+"?act=getThirdInfo",THIRDTRYLOGIN:C+"?act=thirdTryLogin"};t.login=u,t.register=d,t.newRegister=c,t.newLogin=l,t.authCode=h,t.sendCaptcha=p,t.freshenCaptcha=f,t.checkSmscode=m,t.getNewCaptcha=a,t.getweixinInfoStatus=i,t.weixinRegisterLogin=r,t.getWeixinInfo=s,t.weixinAutoLogin=o,t.exchangeToken=g,t.selectAccount=v,t.getVivaTips=y,t.getUiSwitch=w,t.thirdAutoLogin=b,t.isLogined=x,t.getThirdInfo=_,t.thirdTryLogin=S}).call(t,n(1))},function(e,t){"use strict";t.send=function(e,t){window.Mar&&Mar.Seed.request("button","click",e,t)}},function(module,exports){module.exports=function(obj){function print(){__p+=__j.call(arguments,"")}obj||(obj={});var __t,__p="",__j=Array.prototype.join;with(obj){var isvivaMars=data.isviva?1:0,disablePasswordLogin=!!data.disablePasswordLogin,showPasswordLoginFirst=!1,displayNone='style="display: none"',diyBgImg='style="background: url('+data.bgImg+') no-repeat left top"',diyLogoImg='style="background:url('+data.logoImg+') no-repeat left top"';__p+='\n
    \n \n
    \n
    \n\n').appendTo(t("body")),this.$box=u,this.isOpen=!1,c=this,d="fixed"===u.css("position"),o(),this)):new i}function o(){u.on("tap",function(e){e.stopPropagation(),e.preventDefault(),c&&c.close(!1)})}function r(){s=document.documentElement.clientHeight,a=document.documentElement.clientWidth}n(56);var s=void 0,a=void 0,c=void 0,l=void 0,u=void 0,d=void 0,h=i.prototype;t.extend(h,{reset:function(){return this.setContent(""),this.isOpen=!1,clearTimeout(l),l=null,this},setContent:function(e){return u.html(e),this},calSize:function(){s<10&&r();var e=(a-u.width())/2+"px",t=d?-30:document.body.scrollTop-30,n=(s-u.height())/2+t+"px",i={left:e,top:n};return i},open:function(e,t,n){var i=this;if(!e)return this;if(this.setContent(e),this.isOpen)return u.css(this.calSize()),clearTimeout(l),l=setTimeout(this.close.bind(this),t||1e3),this;u.css("display","block");var o=this.calSize();return o.opacity=1,u.animate(o,200,function(){i.isOpen=!0,l=setTimeout(function(){i.close(i),n&&n()},t||1e3)}),this},close:function(e){var n=this,i={opacity:0};return e?u.animate(i,100,function(){u.css("display","none"),n.reset()}):(u.css(t.extend(i,{display:"none"})),this.reset()),this}}),e.exports=i}).call(t,n(1))},function(e,t){},,function(e,t,n){(function(t){"use strict";var i=Object.assign||function(e){for(var t=1;t0},triggerEvents:function(){var e=this.elements.LOGIN_BOX;setTimeout(function(){e.find("#J-captcha-mlogin-ipt-mobile-id").trigger("input")},500)},mobileLoginSubmit:function(e){if(!t(".J-rectangle-agree").hasClass("mlogin-icon-rectangle-selected"))return y.open("璇烽槄璇诲苟鍕鹃夋湰椤靛崗璁"),!1;var n=this.elements.LOGIN_BOX,i=n.find(this.tmplMap.LOGIN_INPUT);i.val().replace(/\s+/g,"");this.mobileLoginV2(e)},mobileLoginFlow:function(e,t){var n=this;return new Promise(function(i,o){l.getCaptchaFlow({event:"CONVENIENT_LOGIN_WAP_IMG_CAPTCHA",biz_data:JSON.stringify({contact_phone:e.mobile,cid:v.get("mars_cid")||""})}).then(function(e){if(e.sid&&(x.sid=e.sid),e.pid&&(x.pid=e.pid),x.captchaTypePwd=e.captchaType,x.captchaId=e.captchaId||"",e.templateId=n.getVerTemplateId(e.templateId),!e.captchaId)return void i(e);var r=function(){x.cancel||x.close?o():i(x)};window.VipSecureCode?f.vipCaptchaShow(e,x,t,r):(y.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),d.send("H5_safe_mlogin_components_load_failed",JSON.stringify({source:t,capatchType:x.captchaTypePwd,way:"mobileLogin"})))},function(e){return o(e)})})},mobileLoginV2:function(e){var n=this;e.preventDefault();var o=this,r=this.params.data.optsSource;if(t(e.currentTarget).hasClass("disabled"))return!1;this.mobile=this.getMobile();var s=a.onlyMobileValidate(this.elements.LOGIN_MOBILE[0],!1);return"string"==typeof s?(this.showError(s),!1):(x={},b.show(),this.hideError(),this.mobileLoginFlow(s,r).then(function(){function e(){"1"===o.authType?o.register():x.ticket?o.loginByTicket():o.hideCaptcha()}l.getCaptchaInfoV2({scene:"CONVENIENT_LOGIN_WAP_AFTER_CAPTCHA",mobile:s.mobile,biz_data:JSON.stringify(i({},x))}).then(function(t){b.hide(),o.authType=t.authType,t.sid&&(x.sid=t.sid),t.pid&&(x.pid=t.pid),t.captchaType&&0!==Number(t.captchaType)?(x.captchaTypePwd=t.captchaType,x.captchaId=t.captchaId||"",t.templateId=n.getVerTemplateId(t.templateId),window.VipSecureCode?(o.showCaptcha(),t.targetId="J-sms-captcha",t.componentStyle="inline",f.vipCaptchaShow(t,x,r,e)):(y.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),d.send("H5_V2_safe_mlogin_components_load_failed",JSON.stringify({source:r,capatchType:x.captchaTypePwd,way:"mobileLogin"})))):d.send("H5_V2_active_sms_login",JSON.stringify({type:"err",source:r,capatchType:x.captchaTypePwd,way:"mobileLogin",msg:"getCaptchaInfo err",captchaType:t.captchaType}))},function(e){return e.code&&70306===e.code?(w.conf({content:e.msg,width:"90%",btns:["纭畾"],onBtnClick:function(e,t){this.close()}}).open(),void d.send("H5_V2_active_login_failed_alert",'{"reason":"'+e.msg+'","code":"70306"}')):(o.showError(e.msg),e=e||{},d.send("H5_V2_active_sms_login",JSON.stringify({type:"sms",status:"0",status_des:e.msg,enter:"1",code:e.code,isGray:o.params.data.isGray,isGrayTicketLogin:o.params.data.isGrayTicketLogin})),u.emit("login-reg-win","login-fail"),void(o.params.loginFail&&o.params.loginFail()))}).always(function(){b.hide()})})["catch"](function(e){b.hide()}),void h.send())},loginByTicket:function(){b.show();var e=this,t={pid:x.pid,ticket:x.ticket,third_data:p.get("newlogin_thirdData")||{}};l.ticketLogin(t).then(function(t){y.open("鐧诲綍鎴愬姛",2e3),d.send("H5_active_sms_login",JSON.stringify({type:"pwd",status:"1",way:"-99",enter:"3",isGray:e.params.data.isGray,isGrayTicketLogin:e.params.data.isGrayTicketLogin})),e.params.loginSuccess&&e.params.loginSuccess()},function(t){return e.hideCaptcha(),d.send("H5_active_sms_login",JSON.stringify({type:"pwd",status:"0",status_des:t.msg,way:"-99",enter:"3",isGray:e.params.data.isGray,isGrayTicketLogin:e.params.data.isGrayTicketLogin})),t.code&&11170300===Number(t.code)?(t.data=t.data||{},p.set("sms-exchange-login-params",{mobile:e.mobile||"",pid:t.data.pid,authScene:2,userName:e.mobile||"",processId:t.data.pid||""}),void e.locationDefend(t,{exchangeLoginType:"sms"})):void y.open(t.msg||"绯荤粺缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯锛",5e3)}).always(function(){b.hide()})},getMobile:function(){return this.handleMobile(this.mobileInputManager.getMobile())},handleMobile:function(e){var t=(e||"").replace(/\s/g,"");return t.replace(/(\d{3})\d{5}(\d{3})/,"$1*****$2")},register:function(){var e=this,t="鎮ㄧ殑鎵嬫満"+this.mobile+'鏆傛湭娉ㄥ唽鍞搧浼氳处鍙凤紝璇风偣鍑诲悓鎰忔敞鍐屽崗璁強闅愮鏀跨瓥浠ユ敞鍐屻俓n ';this.isInWXKApp()&&this.isAndroid()&&(t="鎮ㄧ殑鎵嬫満"+this.mobile+'鏆傛湭娉ㄥ唽鍞搧浼氳处鍙凤紝璇风偣鍑诲悓鎰忔敞鍐屽崗璁強闅愮鏀跨瓥浠ユ敞鍐屻俓n '),w.conf({clsName:"login-captcha-dialog",title:"娉ㄥ唽鍗忚鍙婇殣绉佹斂绛",content:t,btns:["涓嶅悓鎰","鍚屾剰"],width:"80%",x:"80%",y:"50%",onBtnClick:function(t,n){1===n?e.loginByTicket():e.hideCaptcha(),this.close()}}).open()},showCaptcha:function(){this.elements.LOGIN_CAPTCHA_BOX.show(),this.elements.LOGIN_BOX.addClass("win-captcha-container"),this.elements.LOGIN_MODELS_WRAP.hide()},hideCaptcha:function(){this.elements.LOGIN_CAPTCHA_BOX.hide(),this.elements.LOGIN_BOX.removeClass("win-captcha-container");var e=this;setTimeout(function(){e.elements.LOGIN_MODELS_WRAP.show()},100),f.vipCaptchaDestroy()},hideError:function(){""!==t(".J-binding-user-info__name").text()&&this.elements.LOGIN_USER_INFO.show(),r.hideError(this.elements.LOGIN_ERR_WRAP)},showError:function(e){this.elements.LOGIN_USER_INFO.hide(),r.showError(this.elements.LOGIN_ERR_WRAP,e)},getVerTemplateId:function(e){if(!e)return"";var t=e.split("?")[1]?"&":"?";return""+e+t+"v="+(new Date).getTime()}};e.exports=_}).call(t,n(1))},function(e,t){},,function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='\n';return __p}},function(e,t,n){(function(t){"use strict";function i(){var e="__test",t=window.localStorage;try{return t.setItem(e,"1"),t.removeItem(e),"localStorage"in window&&window.localStorage}catch(n){return n.name.toLowerCase().indexOf("quotaexceedederror")!==-1&&a("error",{error:"localstorage_full"}),!1}}function o(){var e=(new Date).getTime();for(var n in localStorage)if(localStorage.hasOwnProperty(n)){var i=localStorage.getItem(n);try{i=t.parseJSON(i)}catch(o){}if(Object.prototype.toString.call(i).toLowerCase().indexOf("array")>0){var r=i[0]&&i[0].expires;if(r&&/^\d{13,}$/.test(r)&&r<=e||"brandList_sortList"===n)localStorage.removeItem(n);else if(n.indexOf("classify")!==-1&&i[0]&&!i[0].expires){var s=void 0;if(i[0].cache_time){var a=i[0].cache_time.split(/[\s\:\-]/);s=new Date(a[0],a[1]-1,+a[2]+c,a[3],a[4],a[5])}else s=new Date(e-3600);s.getTime()2&&void 0!==arguments[2]?arguments[2]:86400*c,i=[];if(n){var o=(new Date).getTime();i.push({expires:o+1e3*n})}i.push(t);try{localStorage.setItem(e,JSON.stringify(i))}catch(r){r.name.toLowerCase().indexOf("quotaexceedederror")!==-1?a("error",{error:"localstorage_full"}):a("error",{error:"localstorage_write_error_"+e+"_"+JSON.stringify(i).length})}},get:function(e){var n=void 0;try{n=localStorage.getItem(e)}catch(i){n=null,a("error",{error:"localstorage_get_error_"+e})}if(null===n||void 0===n)return n="";try{n=t.parseJSON(n)}catch(i){}if("object"!==("undefined"==typeof n?"undefined":s(n)))return n;if("string"===t.type(n[0]))return n[0];if("object"===t.type(n))return n;var o=n[0]&&n[0].expires;if(o&&/^\d{13,}$/.test(o)){var r=(new Date).getTime();if(o<=r)return localStorage.removeItem(e),"";n.shift()}return n[0]},remove:function(e){try{localStorage.removeItem(e)}catch(t){a("error",{error:"localstorage_remove_error_"+e})}}}:{set:r,get:r,remove:r};e.exports=l}).call(t,n(1))},function(e,t){"use strict";function n(e){var t=d.createElement("link");return t.type="text/css",t.rel="stylesheet",t.href=e,h.appendChild(t),t}function i(e,t){var n=d.createElement("style");return n.type="text/css",t&&(n.id=t),e&&(m?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))),h.appendChild(n),n}function o(){return!b&&m&&p.length+f.length>=w&&(b=!0),b}function r(e){o()?l(e):u(e)}function s(e){o()?c(e):a(e)}function a(e){i(e)}function c(e){var t=d.getElementById(v);t?t.styleSheet.cssText=t.styleSheet.cssText+e:i(e,v)}function l(e){var t=d.getElementById(g),n=null;t?t.styleSheet.addImport(e):(n=i(null,g),n.styleSheet.addImport(e))}function u(e){n(e)}var d=document,h=document.getElementsByTagName("head")[0],p=d.getElementsByTagName("link"),f=d.getElementsByTagName("style"),m=/MSIE ([^;]+)/.test(navigator.userAgent)&&parseInt(RegExp.$1,10)<10,g="importLink_ID",v="appendStyle_ID",y=31,w=y-2,b=!1;e.exports={loadStyle:r,loadStyleStr:s}},function(e,t,n){(function(t){"use strict";function n(e){this.init(e)}t.extend(n.prototype,{isSelectionApiSupported:!0,init:function(e){this.$input=e.$input;var t=this.$input.get(0);!t||void 0!==t.selectionStart&&void 0!==t.setSelectionRange||(this.isSelectionApiSupported=!1,this.$input.attr("maxlength","11")),this.bindEvent()},getMobile:function(){return this.$input.val().replace(/\s/g,"")},bindEvent:function(){this.isSelectionApiSupported&&this.$input.on("input change",function(){var e=t(this).val(),n=e;n=" "+n.replace(/\s/g,""),n=n.replace(/[ \w]{4}/g,function(e){return e+" "}),n=t.trim(n);var i=this.selectionStart;(4===i&&" "!==e[3]||9===i&&" "!==e[8])&&(i+=1),11===i&&e.indexOf(" ")<0&&(i=13),t(this).val(n),this.setSelectionRange(i,i)})}}),e.exports=n}).call(t,n(1))},function(e,t,n){(function(t){"use strict";function i(){if(!(this instanceof i))return new i;if(r(),p=t("#mg-dialog"),p.length)return l;var e='
    \t

    \t
    \t
    \t
    ';return this.$box=p=t(e).appendTo(t("body")),this.$title=p.find(".mg-dialog-title"),this.$body=p.find(".mg-dialog-body"),this.$foot=p.find(".mg-dialog-foot"),this.isOpen=!1,this.mask=m(),this.mask.associate(this),this.freeze=!0,l=this,f="fixed"===p.css("position"),o(),this}function o(){p.on("tap",function(e){e.preventDefault(),e.stopPropagation()}),p.on("close",l.close.bind(l)),p.find(".mg-dialog-close").on("tap",function(){return l.close(),!1}),l.$body.on("tap",function(e){e.stopPropagation(),d&&d.call(l,e)}),l.$foot.on("click","button",function(e){e.stopPropagation();var n=t(this),i=n.data("index")-0,o=n.html(),r=u||g;r.call(l,e,i,o)}),window.onorientationchange=r}function r(){s=document.documentElement.clientHeight,a=document.documentElement.clientWidth}n(66),n(68);var s,a,c,l,u,d,h,p,f,m=n(44),g=function(e){l&&l.close()},v=[],y=!1,w="",b=i.prototype;t.extend(b,{reset:function(){this.$box.removeClass(w),p.css({width:"auto",height:"auto",left:"auto",right:"auto",top:"auto",bottom:"auto"}),c=!1,this.setTitle(),this.$body.removeClass("left"),u=null,d=null,h=null,this.freeze=!0},setNoAnimate:function(e){y=e,this.mask.conf({noAnimate:y})},conf:function(e){var t=[].slice.call(arguments,0);if(t.length){if("string"==typeof t[0]&&(e={content:t[0]},"string"==typeof t[1]&&(e.title=t[0],e.content=t[1])),!e.content)throw Error("content required");var n=this,i=e.title;e.content;return this.reset(),this.setClass(e.clsName),this.setTitle(i),this.setContent(e.content,e.left),this.setFoot(e.btns),void 0!==e.freeze&&(this.freeze=e.freeze),u=e.onBtnClick,d=e.onContentClick,h=e.onOpen,window.requestAnimationFrame?requestAnimationFrame(function(){n.setSize(e.width,e.x,e.y,e.position)}):setTimeout(function(){n.setSize(e.width,e.x,e.y,e.position)},0),c=e.useBottom,this}},setTitle:function(e){e?this.$title.html(e).removeClass("none"):this.$title.addClass("none").html("")},setClass:function(e){e&&""!=e&&(this.$box.removeClass(w),w=e,this.$box.addClass(e))},setContent:function(e,t){if(!e)throw Error("content can not empty");this.$body.html(e),t&&this.$body.addClass("left")},setFoot:function(e){var n="";return e?(v="string"==t.type(e)?[e]:e,t.each(v,function(e,t){n+='"})):(this.freeze=!1,v=[]),this.$foot.html(n),this},setSize:function(e,t,n,i){s<10&&r();var o={};if(e&&p.css("width",e),void 0!==t?"number"==typeof t&&(t+="px"):t="100%"===e?0:(a-p.width())/2+"px",void 0!==n)"number"==typeof n&&(n+="px");else{var l=-30;n=i&&""!=i?s-p.height()+"px":(s-p.height())/2+l+"px"}return o.left=t,c?(o.top="auto",o.bottom=0):o.top=n,p.css(o),this},open:function(){if(!this.isOpen){arguments.length&&this.conf.apply(this,arguments);var e=this;return this.mask.freeze(this.freeze).scrollLock(!0).open(),y?(p.show(),this.isOpen=!0,h&&h.call(this)):p.css({display:"block"}).animate({opacity:1},200,function(){e.isOpen=!0,h&&h.call(e)}),this}},close:function(){var e=this;return y?(p.hide(),this.mask.close(),this.isOpen=!1,this.reset()):p.animate({opacity:0},60,function(){p.css("display","none"),e.mask.close(),e.isOpen=!1,e.reset()}),this}}),e.exports=i}).call(t,n(1))},function(e,t){},,function(e,t){},,function(e,t,n){(function(t){"use strict";function i(e){if(!(this instanceof i))return new i(e);var n,c,l=e&&e.id||"J-popup"+a++,u=this.$popup=t("#"+l),d={};return t.extend(d,e),u.length?n=this:(c=t(r({popupId:l})),d.zIndex&&c.css("z-index",d.zIndex),d.className&&c.addClass(d.className),u=this.$popup=c.appendTo(t("body")),this.$box=u,this.isOpen=!1,s="fixed"===u.css("position"),o(u,this),n=this),n}function o(e,t){e.on("touchmove",".size-box",function(e){e.stopPropagation()}),e.on("close",t.close.bind(t))}n(66);var r=n(71),s=!0,a=(new Date).getTime(),c=i.prototype;t.extend(c,{setContent:function(e){return this.$popup.html(e),this},addClass:function(e){this.$popup.addClass(e)},setSize:function(e){return e&&this.$popup.css("width",e),this},conf:function(e){var t=this;return e.content&&this.setContent(e.content),window.requestAnimationFrame?requestAnimationFrame(function(){t.setSize(e.width)}):setTimeout(function(){t.setSize(e.width)},0),this},open:function(){return arguments.length&&this.conf.apply(this,arguments),this.$popup.fadeIn(),this.isOpen=!0,this},close:function(){return this.$popup.fadeOut(),this.isOpen=!1,this}}),e.exports=i}).call(t,n(1))},function(module,exports){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='
    ';return __p}},function(e,t,n){(function(t){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(37),r=n(39),s=n(24),a=n(40),c=n(44)(),l=n(48),u=n(73),d=n(54),h=n(65)(),p=n(55)();n(1);var f=n(22),m={},g="CONVENIENT_LOGIN_WAP",v=f.get("mars_cid")||"",y=JSON.stringify({cid:v}),w="鎮ㄧ殑鎵嬫満鍙锋殏涓嶆敮鎸佹鐧诲綍鏂瑰紡锛岃浣跨敤璐﹀彿鍚+瀵嗙爜鐧诲綍锛屾垨鑱旂郴瀹㈡湇",b="璇ユ墜鏈哄彿缁戝畾浜嗗涓处鍙凤紝璇峰厛鍓嶅線鍞搧浼欰PP锛屼慨鏀规偍瑕佷娇鐢ㄧ殑璐﹀彿鐨勭粦瀹氭墜鏈猴紝纭繚鍙粦瀹氫簡涓涓处鍙峰悗锛屽啀鏉ユ椤甸潰灏濊瘯鐧诲綍銆",x=function(e,n){var i=this,o={domain_id:"",serialno:"",token:"",mobile:"",isviva:"0",toggleToNormalLogin:function(e){},showError:function(e){},hideError:function(){},preMobile:""},r={$mobile:"",$authCode:"",$getAuthCode:"",$errorBox:""},s={sendCaptchaLoading:!1,captchaLoading:!1};i.ui=t.extend(!0,r,e),i.option=t.extend(!0,o,n),i.config=s};x.fn=x.prototype,x.fn.getOption=function(e){return e?this.option[e]:this.option},x.fn.setOption=function(e,t){return this.option[e]=t,this},x.fn.stopCountDown=function(){u.stop(this.ui.$getAuthCode)},x.fn.sendSmsCaptcha=function(e){var n=this,i={domain_id:n.option.domain_id,mobile:n.option.mobile,token:n.option.token,captcha:e};for(var o in i)i[o]||delete i[o];return!n.config.sendCaptchaLoading&&(n.config.sendCaptchaLoading=!0,void r.sendCaptcha(i).then(function(e){i.mobile&&(n.option.preMobile=i.mobile),h.close(),p.open("楠岃瘉鐮佸凡鍙戦侊紝璇锋敞鎰忔煡鏀",2e3),u.start(n.ui.$getAuthCode,e),n.option.serialno=e.serialno,a.send("H5_active_new_get_smscode_click",'{"status":"1","enter":"'+n.option.enter+'"}')},function(i){var o=i.msg;if(n.ui.$getAuthCode.removeClass("disabled"),!i.code||200!==Number(i.code)&&210!==Number(i.code))e?(t("#J-captcha").val(""),n.refreshImgCaptcha(),t(".J-captcha-error").html(o).parent().show()):n.option.showError&&n.option.showError(o);else{c.open();var r=n.option.disablePasswordLogin?["纭畾"]:["鍙栨秷","璐﹀彿鐧诲綍"];h.conf({content:'

    '+o+"

    ",width:"90%",btns:r,onBtnClick:function(e,t){this.close(),1===t&&n.option.toggleToNormalLogin(e)}}).open(),a.send("H5_active_new_phonenum_login_failed_alert",'{"reason":"'+o+'","enter":"'+n.option.enter+'"}')}a.send("H5_active_new_get_smscode_click",'{"status":"0","status_des":"'+o+'","enter":"'+n.option.enter+'","code":"'+i.code+'"}')}).always(function(){n.config.sendCaptchaLoading=!1}))},x.fn.getSmsCaptcha=function(e,n){var i=this,r=this;e.preventDefault();var u=e.currentTarget;if(t(u).hasClass("disabled"))return!1;var d=l.mobileFastValidate(r.ui.$mobile[0],r.ui.$authCode[0]);if(t(".J-mlogin-ipt-mobile").on("input propertychange",function(){r.option.smsTicket=""; +}),"string"!=typeof d||"鎵嬫満鍙风爜涓嶈兘涓虹┖"!==d&&"鎵嬫満鍙风爜鏍煎紡閿欒"!==d){r.option.hideError&&r.option.hideError(),t(u).addClass("disabled");var p=r.ui.$mobile.val(),f={mobile:o.encryptMobile(p),domain_id:r.option.domain_id};f.scene=g,f.info=y,s.sendSms(f).then(function(e){return r.mloginApiSendSms(e,f,n,{plainMobile:p}),!1},function(n){t(e.currentTarget).removeClass("disabled");var o=n.msg;if(n.code&&70306===n.code){c.open();var s=r.option.disablePasswordLogin?["纭畾"]:["鍙栨秷","璐﹀彿鐧诲綍"];r.option.disablePasswordLogin&&o&&o.indexOf(w)>=0&&(o=b),h.conf({content:'

    '+o+"

    ",width:"90%",btns:s,onBtnClick:function(e,t){this.close(),1===t&&r.option.toggleToNormalLogin(e)}}).open(),a.send("H5_active_new_phonenum_login_failed_alert",'{"reason":"'+o+'","enter":"'+r.option.enter+'"}')}else r.option.showError&&r.option.showError(o);m.ticket="",i.option.smsTicket=""})}else r.option.showError&&r.option.showError(d)},x.fn.showDialogErrMsg=function(e,n){void 0===("undefined"==typeof e?"undefined":i(e))?"缃戠粶寮傚父锛岃绋嶅悗鍐嶈瘯锛":e;n&&"function"==typeof n.text?n.text(e):t(".J-captcha-error").text(e)},x.fn.mloginApiSendSms=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this;e=e||{};var r=e.captchaDataType&&3===Number(e.captchaDataType.type),s=(i.plainMobile||"").replace(/(\d{3})\d{5}(\d{3})/,"$1*****$2");e.captchaType&&0!==Number(e.captchaType)?(m.captchaType=e.captchaType,m.captchaId=e.captchaId||"",m.sid=e.sid||"",window.VipSecureCode?d.vipCaptchaShow(e,m,n,function(){m.ticket&&o.sendSms(n),(m.cancel||m.close)&&(o.ui.$getAuthCode.removeClass("disabled"),m.close&&(m.ticket=""))}):(p.open("鍔犺浇楠岃瘉鐮佺粍浠跺け璐"),o.ui.$getAuthCode.removeClass("disabled"),a.send("H5_safe_mlogin_components_load_failed",JSON.stringify({captchaType:m.captchaType,way:"accountlogin"})))):(t.mobile&&(o.option.preMobile=t.mobile),h.close(),p.open(r?"鎴戜滑灏嗘嫧鎵"+s+"鍛婄煡楠岃瘉鐮侊紝璇锋敞鎰忔帴鍚":"楠岃瘉鐮佸凡鍙戦侊紝璇锋敞鎰忔煡鏀",2e3),u.start(o.ui.$getAuthCode,e),o.ui.$authCode[0].focus(),o.option.uuid=e.uuid,o.option.processId=e.processId,o.option.authScene=e.authScene,o.option.smsTicket=e.smsTicket,a.send("H5_active_new_get_smscode_click",'{"status":"1","enter":"'+o.option.enter+'"}'))},x.fn.sendSms=function(e){var t=this,n=this,i=y,r=n.ui.$mobile.val(),l={mobile:o.encryptMobile(r),domain_id:n.option.domain_id,scene:g,sid:m.sid,captchaType:m.captchaType,captchaId:m.captchaId,ticket:m.ticket,info:i};s.sendSms(l).then(function(t){n.mloginApiSendSms(t,l,e,{plainMobile:r})},function(e){var i=e.msg;if(n.ui.$getAuthCode.removeClass("disabled"),e.code&&70306===e.code){c.open();var o=n.option.disablePasswordLogin?["纭畾"]:["鍙栨秷","璐﹀彿鐧诲綍"];n.option.disablePasswordLogin&&i&&i.indexOf(w)>=0&&(i=b),h.conf({content:'

    '+i+"

    ",width:"90%",btns:o,onBtnClick:function(e,t){this.close(),1===t&&n.option.toggleToNormalLogin(e)}}).open(),a.send("H5_active_new_phonenum_login_failed_alert",'{"reason":"'+i+'","enter":"'+n.option.enter+'"}')}else n.option.showError&&n.option.showError(i);t.option.smsTicket="",m.ticket="",a.send("H5_active_new_get_smscode_click",'{"status":"0","status_des":"'+i+'","enter":"'+n.option.enter+'","code":"'+e.code+'"}')})},x.fn.refreshImgCaptcha=function(e,n,i){var o=this;if(!o.config.captchaLoading){o.config.captchaLoading=!0;var s={domain_id:n||o.option.domain_id,mobile:i||o.option.mobile,old_token:e||o.option.token};r.freshenCaptcha(s).then(function(e){if(t("#J-captcha").val(""),o.option.token=e.token,e.verifyType)switch(String(e.verifyType)){case"1":e.captcha&&"string"==typeof e.captcha?(t(".J-sms-captcha-img").attr("src","data:image/png;base64,"+e.captcha),t(".J-sms-captcha-title").addClass("doc").removeClass("img"),t("#J-captcha").focus()):o.showDialogErrMsg();break;case"6":var n=null;try{n=JSON.parse(e.captcha||"")}catch(i){console.log("json parse error !"),n={}}n&&n.qp&&n.ap&&"string"==typeof n.qp&&"string"==typeof n.ap?(t(".J-sms-captcha-img").attr("src","data:image/png;base64,"+n.ap),t(".J-auth-question-img").attr("src","data:image/png;base64,"+n.qp),t(".J-sms-captcha-title").addClass("img").removeClass("doc"),t("#J-captcha").focus()):o.showDialogErrMsg();break;default:o.showDialogErrMsg()}else o.showDialogErrMsg()},function(e){t("#J-captcha").val(""),o.showDialogErrMsg(e.msg)}).always(function(){o.config.captchaLoading=!1})}},e.exports=x}).call(t,n(1))},function(e,t){"use strict";function n(e,t){var n=t.interval||60,r=parseInt(n,10);e.removeClass("J-send-code-btn z-send-code"),o=setInterval(function(){r-=1,r<0?i(e):(e.html(r+"绉掑悗閲嶆柊鑾峰彇"),e.addClass("disabled"))},1e3)}function i(e){o&&(clearInterval(o),e.html("閲嶆柊鑾峰彇"),e.addClass("J-send-code-btn z-send-code"),e.removeClass("disabled"))}var o;t.start=n,t.stop=i},function(e,t){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */ +(function(t,i,o){function r(e,t){this.wrapper="string"==typeof e?i.querySelector(e):e,this.scroller=this.wrapper.children[0],this.scrollerStyle=this.scroller.style,this.options={resizeScrollbars:!0,mouseWheelSpeed:20,snapThreshold:.334,startX:0,startY:0,scrollY:!0,directionLockThreshold:5,momentum:!0,bounce:!0,bounceTime:600,bounceEasing:"",preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT)$/},HWCompositing:!0,useTransition:!0,useTransform:!0};for(var n in t)this.options[n]=t[n];this.translateZ=this.options.HWCompositing&&l.hasPerspective?" translateZ(0)":"",this.options.useTransition=l.hasTransition&&this.options.useTransition,this.options.useTransform=l.hasTransform&&this.options.useTransform,this.options.eventPassthrough=this.options.eventPassthrough===!0?"vertical":this.options.eventPassthrough,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollY="vertical"!=this.options.eventPassthrough&&this.options.scrollY,this.options.scrollX="horizontal"!=this.options.eventPassthrough&&this.options.scrollX,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,this.options.bounceEasing="string"==typeof this.options.bounceEasing?l.ease[this.options.bounceEasing]||l.ease.circular:this.options.bounceEasing,this.options.resizePolling=void 0===this.options.resizePolling?60:this.options.resizePolling,this.options.tap===!0&&(this.options.tap="tap"),"scale"==this.options.shrinkScrollbars&&(this.options.useTransition=!1),this.options.invertWheelDirection=this.options.invertWheelDirection?-1:1,this.x=0,this.y=0,this.directionX=0,this.directionY=0,this._events={},this._init(),this.refresh(),this.scrollTo(this.options.startX,this.options.startY),this.enable()}function s(e,t,n){var o=i.createElement("div"),r=i.createElement("div");return n===!0&&(o.style.cssText="position:absolute;z-index:9999",r.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px"),r.className="iScrollIndicator","h"==e?(n===!0&&(o.style.cssText+=";height:7px;left:2px;right:2px;bottom:0",r.style.height="100%"),o.className="iScrollHorizontalScrollbar"):(n===!0&&(o.style.cssText+=";width:7px;bottom:2px;top:2px;right:1px",r.style.width="100%"),o.className="iScrollVerticalScrollbar"),o.style.cssText+=";overflow:hidden",t||(o.style.pointerEvents="none"),o.appendChild(r),o}function a(e,n){this.wrapper="string"==typeof n.el?i.querySelector(n.el):n.el,this.wrapperStyle=this.wrapper.style,this.indicator=this.wrapper.children[0],this.indicatorStyle=this.indicator.style,this.scroller=e,this.options={listenX:!0,listenY:!0,interactive:!1,resize:!0,defaultScrollbars:!1,shrink:!1,fade:!1,speedRatioX:0,speedRatioY:0};for(var o in n)this.options[o]=n[o];this.sizeRatioX=1,this.sizeRatioY=1,this.maxPosX=0,this.maxPosY=0,this.options.interactive&&(this.options.disableTouch||(l.addEvent(this.indicator,"touchstart",this),l.addEvent(t,"touchend",this)),this.options.disablePointer||(l.addEvent(this.indicator,l.prefixPointerEvent("pointerdown"),this),l.addEvent(t,l.prefixPointerEvent("pointerup"),this)),this.options.disableMouse||(l.addEvent(this.indicator,"mousedown",this),l.addEvent(t,"mouseup",this))),this.options.fade&&(this.wrapperStyle[l.style.transform]=this.scroller.translateZ,this.wrapperStyle[l.style.transitionDuration]=l.isBadAndroid?"0.001s":"0ms",this.wrapperStyle.opacity="0")}var c=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame||function(e){t.setTimeout(e,1e3/60)},l=function(){function e(e){return s!==!1&&(""===s?e:s+e.charAt(0).toUpperCase()+e.substr(1))}var n={},r=i.createElement("div").style,s=function(){for(var e,t=["t","webkitT","MozT","msT","OT"],n=0,i=t.length;n0&&(a=r?r/2.5*(u/8):0,l=o.abs(e)+a,c=l/u),{destination:o.round(a),duration:c}};var a=e("transform");return n.extend(n,{hasTransform:a!==!1,hasPerspective:e("perspective")in r,hasTouch:"ontouchstart"in t,hasPointer:t.PointerEvent||t.MSPointerEvent,hasTransition:e("transition")in r}),n.isBadAndroid=/Android /.test(t.navigator.appVersion)&&!/Chrome\/\d/.test(t.navigator.appVersion),n.extend(n.style={},{transform:a,transitionTimingFunction:e("transitionTimingFunction"),transitionDuration:e("transitionDuration"),transitionDelay:e("transitionDelay"),transformOrigin:e("transformOrigin")}),n.hasClass=function(e,t){var n=new RegExp("(^|\\s)"+t+"(\\s|$)");return n.test(e.className)},n.addClass=function(e,t){if(!n.hasClass(e,t)){var i=e.className.split(" ");i.push(t),e.className=i.join(" ")}},n.removeClass=function(e,t){if(n.hasClass(e,t)){var i=new RegExp("(^|\\s)"+t+"(\\s|$)","g");e.className=e.className.replace(i," ")}},n.offset=function(e){for(var t=-e.offsetLeft,n=-e.offsetTop;e=e.offsetParent;)t-=e.offsetLeft,n-=e.offsetTop;return{left:t,top:n}},n.preventDefaultException=function(e,t){for(var n in t)if(t[n].test(e[n]))return!0;return!1},n.extend(n.eventType={},{touchstart:1,touchmove:1,touchend:1,mousedown:2,mousemove:2,mouseup:2,pointerdown:3,pointermove:3,pointerup:3,MSPointerDown:3,MSPointerMove:3,MSPointerUp:3}),n.extend(n.ease={},{quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(e){return e*(2-e)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(e){return o.sqrt(1- --e*e)}},back:{style:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fn:function(e){var t=4;return(e-=1)*e*((t+1)*e+t)+1}},bounce:{style:"",fn:function(e){return(e/=1)<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}},elastic:{style:"",fn:function(e){var t=.22,n=.4;return 0===e?0:1==e?1:n*o.pow(2,-10*e)*o.sin((e-t/4)*(2*o.PI)/t)+1}}}),n.tap=function(e,t){var n=i.createEvent("Event");n.initEvent(t,!0,!0),n.pageX=e.pageX,n.pageY=e.pageY,e.target.dispatchEvent(n)},n.click=function(e){var t,n=e.target;/(SELECT|INPUT|TEXTAREA)/i.test(n.tagName)||(t=i.createEvent("MouseEvents"),t.initMouseEvent("click",!0,!0,e.view,1,n.screenX,n.screenY,n.clientX,n.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,0,null),t._constructed=!0,n.dispatchEvent(t))},n}();r.prototype={version:"5.1.3",_init:function(){this._initEvents(),(this.options.scrollbars||this.options.indicators)&&this._initIndicators(),this.options.mouseWheel&&this._initWheel(),this.options.snap&&this._initSnap(),this.options.keyBindings&&this._initKeys()},destroy:function(){this._initEvents(!0),this._execEvent("destroy")},_transitionEnd:function(e){e.target==this.scroller&&this.isInTransition&&(this._transitionTime(),this.resetPosition(this.options.bounceTime)||(this.isInTransition=!1,this._execEvent("scrollEnd")))},_start:function(e){if((1==l.eventType[e.type]||0===e.button)&&this.enabled&&(!this.initiated||l.eventType[e.type]===this.initiated)){!this.options.preventDefault||l.isBadAndroid||l.preventDefaultException(e.target,this.options.preventDefaultException)||e.preventDefault();var t,n=e.touches?e.touches[0]:e;this.initiated=l.eventType[e.type],this.moved=!1,this.distX=0,this.distY=0,this.directionX=0,this.directionY=0,this.directionLocked=0,this._transitionTime(),this.startTime=l.getTime(),this.options.useTransition&&this.isInTransition?(this.isInTransition=!1,t=this.getComputedPosition(),this._translate(o.round(t.x),o.round(t.y)),this._execEvent("scrollEnd")):!this.options.useTransition&&this.isAnimating&&(this.isAnimating=!1,this._execEvent("scrollEnd")),this.startX=this.x,this.startY=this.y,this.absStartX=this.x,this.absStartY=this.y,this.pointX=n.pageX,this.pointY=n.pageY,this._execEvent("beforeScrollStart")}},_move:function(e){if(this.enabled&&l.eventType[e.type]===this.initiated){this.options.preventDefault&&e.preventDefault();var t,n,i,r,s=e.touches?e.touches[0]:e,a=s.pageX-this.pointX,c=s.pageY-this.pointY,u=l.getTime();if(this.pointX=s.pageX,this.pointY=s.pageY,this.distX+=a,this.distY+=c,i=o.abs(this.distX),r=o.abs(this.distY),!(u-this.endTime>300&&i<10&&r<10)){if(this.directionLocked||this.options.freeScroll||(i>r+this.options.directionLockThreshold?this.directionLocked="h":r>=i+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"==this.directionLocked){if("vertical"==this.options.eventPassthrough)e.preventDefault();else if("horizontal"==this.options.eventPassthrough)return void(this.initiated=!1);c=0}else if("v"==this.directionLocked){if("horizontal"==this.options.eventPassthrough)e.preventDefault();else if("vertical"==this.options.eventPassthrough)return void(this.initiated=!1);a=0}a=this.hasHorizontalScroll?a:0,c=this.hasVerticalScroll?c:0,t=this.x+a,n=this.y+c,(t>0||t0?0:this.maxScrollX),(n>0||n0?0:this.maxScrollY),this.directionX=a>0?-1:a<0?1:0,this.directionY=c>0?-1:c<0?1:0,this.moved||this._execEvent("scrollStart"),this.moved=!0,this._translate(t,n),u-this.startTime>300&&(this.startTime=u,this.startX=this.x,this.startY=this.y)}}},_end:function(e){if(this.enabled&&l.eventType[e.type]===this.initiated){this.options.preventDefault&&!l.preventDefaultException(e.target,this.options.preventDefaultException)&&e.preventDefault();var t,n,i=(e.changedTouches?e.changedTouches[0]:e,l.getTime()-this.startTime),r=o.round(this.x),s=o.round(this.y),a=o.abs(r-this.startX),c=o.abs(s-this.startY),u=0,d="";if(this.isInTransition=0,this.initiated=0,this.endTime=l.getTime(),!this.resetPosition(this.options.bounceTime)){if(this.scrollTo(r,s),!this.moved)return this.options.tap&&l.tap(e,this.options.tap),this.options.click&&l.click(e),void this._execEvent("scrollCancel");if(this._events.flick&&i<200&&a<100&&c<100)return void this._execEvent("flick");if(this.options.momentum&&i<300&&(t=this.hasHorizontalScroll?l.momentum(this.x,this.startX,i,this.maxScrollX,this.options.bounce?this.wrapperWidth:0,this.options.deceleration):{destination:r,duration:0},n=this.hasVerticalScroll?l.momentum(this.y,this.startY,i,this.maxScrollY,this.options.bounce?this.wrapperHeight:0,this.options.deceleration):{destination:s,duration:0},r=t.destination,s=n.destination,u=o.max(t.duration,n.duration),this.isInTransition=1),this.options.snap){var h=this._nearestSnap(r,s);this.currentPage=h,u=this.options.snapSpeed||o.max(o.max(o.min(o.abs(r-h.x),1e3),o.min(o.abs(s-h.y),1e3)),300),r=h.x,s=h.y,this.directionX=0,this.directionY=0,d=this.options.bounceEasing}return r!=this.x||s!=this.y?((r>0||r0||s0?t=0:this.x0?n=0:this.y-1&&this._events[e].splice(n,1)}},_execEvent:function(e){if(this._events[e]){var t=0,n=this._events[e].length;if(n)for(;t0,!n||this.options.useTransition&&i.style?(this._transitionTimingFunction(i.style),this._transitionTime(n),this._translate(e,t)):this._animate(e,t,n,i.fn)},scrollToElement:function(e,t,n,i,r){if(e=e.nodeType?e:this.scroller.querySelector(e)){var s=l.offset(e);s.left-=this.wrapperOffset.left,s.top-=this.wrapperOffset.top,n===!0&&(n=o.round(e.offsetWidth/2-this.wrapper.offsetWidth/2)),i===!0&&(i=o.round(e.offsetHeight/2-this.wrapper.offsetHeight/2)),s.left-=n||0,s.top-=i||0,s.left=s.left>0?0:s.left0?0:s.top0?i--:t<0&&i++,n>0?r--:n<0&&r++,void this.goToPage(i,r);i=this.x+o.round(this.hasHorizontalScroll?t:0),r=this.y+o.round(this.hasVerticalScroll?n:0),i>0?i=0:i0?r=0:r-this.scrollerWidth;){for(this.pages[a]=[],e=0,r=0;r>-this.scrollerHeight;)this.pages[a][e]={x:o.max(l,this.maxScrollX),y:o.max(r,this.maxScrollY),width:u,height:d,cx:l-n,cy:r-i},r-=d,e++;l-=u,a++}else for(s=this.options.snap,e=s.length,t=-1;athis.maxScrollX&&c++;this.goToPage(this.currentPage.pageX||0,this.currentPage.pageY||0,0),this.options.snapThreshold%1===0?(this.snapThresholdX=this.options.snapThreshold,this.snapThresholdY=this.options.snapThreshold):(this.snapThresholdX=o.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width*this.options.snapThreshold),this.snapThresholdY=o.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height*this.options.snapThreshold))}}),this.on("flick",function(){var e=this.options.snapSpeed||o.max(o.max(o.min(o.abs(this.x-this.startX),1e3),o.min(o.abs(this.y-this.startY),1e3)),300);this.goToPage(this.currentPage.pageX+this.directionX,this.currentPage.pageY+this.directionY,e)})},_nearestSnap:function(e,t){if(!this.pages.length)return{x:0,y:0,pageX:0,pageY:0};var n=0,i=this.pages.length,r=0;if(o.abs(e-this.absStartX)0?e=0:e0?t=0:t=this.pages[n][0].cx){e=this.pages[n][0].x;break}for(i=this.pages[n].length;r=this.pages[0][r].cy){t=this.pages[0][r].y;break}return n==this.currentPage.pageX&&(n+=this.directionX,n<0?n=0:n>=this.pages.length&&(n=this.pages.length-1),e=this.pages[n][0].x),r==this.currentPage.pageY&&(r+=this.directionY,r<0?r=0:r>=this.pages[0].length&&(r=this.pages[0].length-1),t=this.pages[0][r].y),{x:e,y:t,pageX:n,pageY:r}},goToPage:function(e,t,n,i){i=i||this.options.bounceEasing,e>=this.pages.length?e=this.pages.length-1:e<0&&(e=0),t>=this.pages[e].length?t=this.pages[e].length-1:t<0&&(t=0);var r=this.pages[e][t].x,s=this.pages[e][t].y;n=void 0===n?this.options.snapSpeed||o.max(o.max(o.min(o.abs(r-this.x),1e3),o.min(o.abs(s-this.y),1e3)),300):n,this.currentPage={x:r,y:s,pageX:e,pageY:t},this.scrollTo(r,s,n,i)},next:function(e,t){var n=this.currentPage.pageX,i=this.currentPage.pageY;n++,n>=this.pages.length&&this.hasVerticalScroll&&(n=0,i++),this.goToPage(n,i,e,t)},prev:function(e,t){var n=this.currentPage.pageX,i=this.currentPage.pageY;n--,n<0&&this.hasVerticalScroll&&(n=0,i--),this.goToPage(n,i,e,t)},_initKeys:function(e){var i,o={pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40};if("object"==n(this.options.keyBindings))for(i in this.options.keyBindings)"string"==typeof this.options.keyBindings[i]&&(this.options.keyBindings[i]=this.options.keyBindings[i].toUpperCase().charCodeAt(0));else this.options.keyBindings={};for(i in o)this.options.keyBindings[i]=this.options.keyBindings[i]||o[i];l.addEvent(t,"keydown",this),this.on("destroy",function(){l.removeEvent(t,"keydown",this)})},_key:function(e){if(this.enabled){var t,n=this.options.snap,i=n?this.currentPage.pageX:this.x,r=n?this.currentPage.pageY:this.y,s=l.getTime(),a=this.keyTime||0,c=.25;switch(this.options.useTransition&&this.isInTransition&&(t=this.getComputedPosition(),this._translate(o.round(t.x),o.round(t.y)),this.isInTransition=!1),this.keyAcceleration=s-a<200?o.min(this.keyAcceleration+c,50):0,e.keyCode){case this.options.keyBindings.pageUp:this.hasHorizontalScroll&&!this.hasVerticalScroll?i+=n?1:this.wrapperWidth:r+=n?1:this.wrapperHeight;break;case this.options.keyBindings.pageDown:this.hasHorizontalScroll&&!this.hasVerticalScroll?i-=n?1:this.wrapperWidth:r-=n?1:this.wrapperHeight;break;case this.options.keyBindings.end:i=n?this.pages.length-1:this.maxScrollX,r=n?this.pages[0].length-1:this.maxScrollY;break;case this.options.keyBindings.home:i=0,r=0;break;case this.options.keyBindings.left:i+=n?-1:5+this.keyAcceleration>>0;break;case this.options.keyBindings.up:r+=n?1:5+this.keyAcceleration>>0;break;case this.options.keyBindings.right:i-=n?-1:5+this.keyAcceleration>>0;break;case this.options.keyBindings.down:r-=n?1:5+this.keyAcceleration>>0;break;default:return}if(n)return void this.goToPage(i,r);i>0?(i=0,this.keyAcceleration=0):i0?(r=0,this.keyAcceleration=0):r=d?(r.isAnimating=!1,r._translate(e,t),void(r.resetPosition(r.options.bounceTime)||r._execEvent("scrollEnd"))):(m=(m-u)/n,f=i(m),h=(e-s)*f+s,p=(t-a)*f+a,r._translate(h,p),void(r.isAnimating&&c(o)))}var r=this,s=this.x,a=this.y,u=l.getTime(),d=u+n;this.isAnimating=!0,o()},handleEvent:function(e){switch(e.type){case"touchstart":case"pointerdown":case"MSPointerDown":case"mousedown":this._start(e);break;case"touchmove":case"pointermove":case"MSPointerMove":case"mousemove":this._move(e);break;case"touchend":case"pointerup":case"MSPointerUp":case"mouseup":case"touchcancel":case"pointercancel":case"MSPointerCancel":case"mousecancel":this._end(e);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(e);break;case"wheel":case"DOMMouseScroll":case"mousewheel":this._wheel(e);break;case"keydown":this._key(e);break;case"click":e._constructed||(e.preventDefault(),e.stopPropagation())}}},a.prototype={handleEvent:function(e){switch(e.type){case"touchstart":case"pointerdown":case"MSPointerDown":case"mousedown":this._start(e);break;case"touchmove":case"pointermove":case"MSPointerMove":case"mousemove":this._move(e);break;case"touchend":case"pointerup":case"MSPointerUp":case"mouseup":case"touchcancel":case"pointercancel":case"MSPointerCancel":case"mousecancel":this._end(e)}},destroy:function(){this.options.interactive&&(l.removeEvent(this.indicator,"touchstart",this),l.removeEvent(this.indicator,l.prefixPointerEvent("pointerdown"),this),l.removeEvent(this.indicator,"mousedown",this),l.removeEvent(t,"touchmove",this),l.removeEvent(t,l.prefixPointerEvent("pointermove"),this),l.removeEvent(t,"mousemove",this),l.removeEvent(t,"touchend",this),l.removeEvent(t,l.prefixPointerEvent("pointerup"),this),l.removeEvent(t,"mouseup",this)),this.options.defaultScrollbars&&this.wrapper.parentNode.removeChild(this.wrapper)},_start:function(e){var n=e.touches?e.touches[0]:e;e.preventDefault(),e.stopPropagation(),this.transitionTime(),this.initiated=!0,this.moved=!1,this.lastPointX=n.pageX,this.lastPointY=n.pageY,this.startTime=l.getTime(),this.options.disableTouch||l.addEvent(t,"touchmove",this),this.options.disablePointer||l.addEvent(t,l.prefixPointerEvent("pointermove"),this),this.options.disableMouse||l.addEvent(t,"mousemove",this),this.scroller._execEvent("beforeScrollStart")},_move:function(e){var t,n,i,o,r=e.touches?e.touches[0]:e;l.getTime();this.moved||this.scroller._execEvent("scrollStart"),this.moved=!0,t=r.pageX-this.lastPointX,this.lastPointX=r.pageX,n=r.pageY-this.lastPointY,this.lastPointY=r.pageY,i=this.x+t,o=this.y+n,this._pos(i,o),e.preventDefault(),e.stopPropagation()},_end:function(e){if(this.initiated){if(this.initiated=!1,e.preventDefault(),e.stopPropagation(),l.removeEvent(t,"touchmove",this),l.removeEvent(t,l.prefixPointerEvent("pointermove"),this),l.removeEvent(t,"mousemove",this),this.scroller.options.snap){var n=this.scroller._nearestSnap(this.scroller.x,this.scroller.y),i=this.options.snapSpeed||o.max(o.max(o.min(o.abs(this.scroller.x-n.x),1e3),o.min(o.abs(this.scroller.y-n.y),1e3)),300);this.scroller.x==n.x&&this.scroller.y==n.y||(this.scroller.directionX=0,this.scroller.directionY=0,this.scroller.currentPage=n,this.scroller.scrollTo(n.x,n.y,i,this.scroller.options.bounceEasing))}this.moved&&this.scroller._execEvent("scrollEnd")}},transitionTime:function(e){e=e||0,this.indicatorStyle[l.style.transitionDuration]=e+"ms",!e&&l.isBadAndroid&&(this.indicatorStyle[l.style.transitionDuration]="0.001s")},transitionTimingFunction:function(e){this.indicatorStyle[l.style.transitionTimingFunction]=e},refresh:function(){this.transitionTime(),this.options.listenX&&!this.options.listenY?this.indicatorStyle.display=this.scroller.hasHorizontalScroll?"block":"none":this.options.listenY&&!this.options.listenX?this.indicatorStyle.display=this.scroller.hasVerticalScroll?"block":"none":this.indicatorStyle.display=this.scroller.hasHorizontalScroll||this.scroller.hasVerticalScroll?"block":"none",this.scroller.hasHorizontalScroll&&this.scroller.hasVerticalScroll?(l.addClass(this.wrapper,"iScrollBothScrollbars"),l.removeClass(this.wrapper,"iScrollLoneScrollbar"),this.options.defaultScrollbars&&this.options.customStyle&&(this.options.listenX?this.wrapper.style.right="8px":this.wrapper.style.bottom="8px")):(l.removeClass(this.wrapper,"iScrollBothScrollbars"),l.addClass(this.wrapper,"iScrollLoneScrollbar"),this.options.defaultScrollbars&&this.options.customStyle&&(this.options.listenX?this.wrapper.style.right="2px":this.wrapper.style.bottom="2px"));this.wrapper.offsetHeight;this.options.listenX&&(this.wrapperWidth=this.wrapper.clientWidth,this.options.resize?(this.indicatorWidth=o.max(o.round(this.wrapperWidth*this.wrapperWidth/(this.scroller.scrollerWidth||this.wrapperWidth||1)),8),this.indicatorStyle.width=this.indicatorWidth+"px"):this.indicatorWidth=this.indicator.clientWidth,this.maxPosX=this.wrapperWidth-this.indicatorWidth,"clip"==this.options.shrink?(this.minBoundaryX=-this.indicatorWidth+8,this.maxBoundaryX=this.wrapperWidth-8):(this.minBoundaryX=0,this.maxBoundaryX=this.maxPosX),this.sizeRatioX=this.options.speedRatioX||this.scroller.maxScrollX&&this.maxPosX/this.scroller.maxScrollX),this.options.listenY&&(this.wrapperHeight=this.wrapper.clientHeight,this.options.resize?(this.indicatorHeight=o.max(o.round(this.wrapperHeight*this.wrapperHeight/(this.scroller.scrollerHeight||this.wrapperHeight||1)),8),this.indicatorStyle.height=this.indicatorHeight+"px"):this.indicatorHeight=this.indicator.clientHeight,this.maxPosY=this.wrapperHeight-this.indicatorHeight,"clip"==this.options.shrink?(this.minBoundaryY=-this.indicatorHeight+8,this.maxBoundaryY=this.wrapperHeight-8):(this.minBoundaryY=0,this.maxBoundaryY=this.maxPosY),this.maxPosY=this.wrapperHeight-this.indicatorHeight,this.sizeRatioY=this.options.speedRatioY||this.scroller.maxScrollY&&this.maxPosY/this.scroller.maxScrollY),this.updatePosition()},updatePosition:function(){var e=this.options.listenX&&o.round(this.sizeRatioX*this.scroller.x)||0,t=this.options.listenY&&o.round(this.sizeRatioY*this.scroller.y)||0;this.options.ignoreBoundaries||(ethis.maxBoundaryX?"scale"==this.options.shrink?(this.width=o.max(this.indicatorWidth-(e-this.maxPosX),8),this.indicatorStyle.width=this.width+"px",e=this.maxPosX+this.indicatorWidth-this.width):e=this.maxBoundaryX:"scale"==this.options.shrink&&this.width!=this.indicatorWidth&&(this.width=this.indicatorWidth,this.indicatorStyle.width=this.width+"px"),tthis.maxBoundaryY?"scale"==this.options.shrink?(this.height=o.max(this.indicatorHeight-3*(t-this.maxPosY),8),this.indicatorStyle.height=this.height+"px",t=this.maxPosY+this.indicatorHeight-this.height):t=this.maxBoundaryY:"scale"==this.options.shrink&&this.height!=this.indicatorHeight&&(this.height=this.indicatorHeight,this.indicatorStyle.height=this.height+"px")),this.x=e,this.y=t,this.scroller.options.useTransform?this.indicatorStyle[l.style.transform]="translate("+e+"px,"+t+"px)"+this.scroller.translateZ:(this.indicatorStyle.left=e+"px",this.indicatorStyle.top=t+"px")},_pos:function(e,t){e<0?e=0:e>this.maxPosX&&(e=this.maxPosX),t<0?t=0:t>this.maxPosY&&(t=this.maxPosY),e=this.options.listenX?o.round(e/this.sizeRatioX):this.scroller.x,t=this.options.listenY?o.round(t/this.sizeRatioY):this.scroller.y,this.scroller.scrollTo(e,t)},fade:function(e,t){if(!t||this.visible){clearTimeout(this.fadeTimeout),this.fadeTimeout=null;var n=e?250:500,i=e?0:300;e=e?"1":"0",this.wrapperStyle[l.style.transitionDuration]=n+"ms",this.fadeTimeout=setTimeout(function(e){this.wrapperStyle.opacity=e,this.visible=+e}.bind(this,e),i)}}},r.utils=l,"undefined"!=typeof e&&e.exports?e.exports=r:t.IScroll=r})(window,document,Math)}]); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login.css" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login.css" new file mode 100644 index 0000000000000000000000000000000000000000..d510704a1868dd0f727a36bb850801b107af18ab --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/login.css" @@ -0,0 +1 @@ +.mlogin-loading-wrap{font-size:.27307rem;text-align:center;color:#fff;left:0;top:0;position:absolute;width:100%;height:100%;background-color:hsla(0,0%,100%,.4);z-index:5700}.mlogin-loading-wrap .c-loading-progress{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:150.796 150.796;-webkit-animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite;animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-text{text-anchor:middle;font:21px/1 Helvetica}.mlogin-loading-wrap .c-loading-curve .c-loading-progress{-webkit-animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite;animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-bg{width:90px;height:90px;background-color:#fff;border-radius:4px;text-align:center;font-size:0}.mlogin-loading-wrap .c-loading-bg:after{content:"";height:100%;width:0;overflow-y:hidden}.mlogin-loading-wrap .c-loading,.mlogin-loading-wrap .c-loading-bg:after{display:inline-block;vertical-align:middle}.mlogin-loading-wrap .c-loading-bg{margin-left:-45px;margin-top:-45px;left:50%;z-index:9999;top:43%;position:fixed}@-webkit-keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}.mg-mask,.mg-u-mask{position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;z-index:5300;background-color:rgba(0,0,0,.6);display:none}.mg-popup{position:fixed;z-index:5200;left:50%;top:50%;overflow:hidden;display:none;background-color:#fff;-webkit-box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);padding:.06144rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate(-50%,-50%)!important;transform:translate(-50%,-50%)!important;min-width:1.2288rem;min-height:.3072rem;line-height:1.5}.mg-dialog{font-size:.32rem;text-align:center;border-radius:6px;z-index:5500;left:50%!important}.mg-dialog .mg-dialog-title{font-size:18px;margin-top:.3rem;color:#222;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis}.mg-dialog .mg-dialog-body{margin:.3rem 0;padding:0 1em}.mg-dialog .mg-dialog-body.left{text-align:left}.mg-dialog .mg-dialog-foot{border-top:1px solid #ebebeb;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.mg-dialog .mg-dialog-foot:empty{border:none}.mg-dialog .mg-dialog-foot button{display:block;color:#1b81fb;font-family:Microsoft Yahei,Helvetica Neue,Helvetica,STHeiTi,sans-serif;font-size:17px;border:none;outline:none;background-color:transparent;-webkit-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:44px;line-height:44px}.mg-dialog .mg-dialog-foot button:nth-child(2){border-left:1px solid #ebebeb}.mg-dialog .mg-dialog-foot button:active{background-color:#eee}.mg-dialog.bottom{background:none;padding:0;-webkit-box-shadow:none;box-shadow:none}.mg-dialog.bottom .mg-dialog-body{padding:.3rem;margin:.3rem;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-body .tips{color:#585c64;font-size:.24rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .title{color:#222;font-size:.36rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .time{color:#98989f;font-size:.2rem;line-height:.9rem}.mg-dialog.bottom .mg-dialog-foot{margin:.3rem;border:none;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-foot button{color:#585c64;display:block;width:100%}.mg-dialog.supper_confirm_dialog button{display:block;width:100%}.mg-toast{clear:both;position:fixed;z-index:5800;left:-99999px;text-align:center;top:-99999px;background-color:rgba(0,0,0,.8);color:#fff;padding:10px 15px;border-radius:3px;font-size:16px;-webkit-box-sizing:border-content;box-sizing:border-content;width:50%}.login-reg-win{display:none}.c-relative{position:relative}.models-wrapper{width:100%;height:100%;position:absolute;overflow:hidden;z-index:5100}.models-wrapper input::-webkit-input-placeholder{color:#ccc}.models-wrapper,.models-wrapper button,.models-wrapper input,.models-wrapper textarea{font-family:Microsoft Yahei,Helvetica Neue,Helvetica,STHeiTi,sans-serif;font-size:.28rem;border:none;outline:none}.icon-register-close,.m-login-back-btn{display:block;width:48px;height:48px;position:absolute;left:0;top:0}.m-login-back-btn{background:url(../img/back.e8f1c37c.png) no-repeat 50%;background-size:50% auto}.icon-register-close{background:url(../img/close.6f8201f0.png) no-repeat 50%;background-size:40% auto}.models-login,.models-register{bottom:0;left:0;overflow-x:hidden;overflow-y:auto;position:absolute;right:0;top:0;width:100%;height:100%}.mg-dialog .m-login-captcha-text{height:22px;border:0;font-size:14px;outline:none;color:#222;margin-top:8px}.m-login-captcha-wrap{position:relative;text-align:left;margin-right:2px;height:38px;border:1px solid #ccc;margin-top:16px;margin-bottom:20px}.mlogin-captcha-freshen{position:absolute;right:0;top:0;height:38px;text-align:left;vertical-align:middle;width:105px;padding-left:10px}.mlogin-captcha-freshen .mlogin-btn-refresh{background:url(../img/mlogin-icon-refresh.05574d58.gif) no-repeat 0 0;width:16px;height:16px;position:absolute;right:5px;top:11px}.mg-dialog .m-captcha-error{display:none;clear:both;font-size:12px;color:#ec5042;height:28px;margin-top:-16px;margin-left:-14px;line-height:26px;text-align:left}.mg-dialog .m-captcha-error span{padding-left:14px}.mg-dialog-foot{clear:both}.models-login .captcha{position:absolute;right:0;top:0;width:115px;padding-left:10px;height:52px;border-left:1px solid #e7e7e7}.models-login .captcha .mlogin-refresh{background:url(../img/mlogin-icon-refresh.05574d58.gif) no-repeat 0 0;width:16px;height:16px;position:absolute;right:10px;top:18px}.models-login .captcha img{vertical-align:middle;width:80px}.m-login-captcha-img{vertical-align:top;width:80px;height:32px;margin-top:3px}.models-register{background:#f3f4f5}.models-login .hide,.models-register .hide{display:none}.models-login .models-dialog,.models-register .models-dialog{margin:0}.models-login .models-header,.models-register .models-header{height:44px;background:#fff;line-height:44px;margin-bottom:15px;position:relative;border-bottom:1px solid #ddd}.models-login .models-header h2,.models-register .models-header h2{font-size:18px;font-weight:300;text-align:center}.models-login .models-header .close,.models-login .models-logo .close,.models-register .models-header .close{color:#222;border-radius:12px;line-height:20px;display:block;text-align:center;height:20px;width:20px;font-size:18px;padding:1px;top:10px;right:10px;position:absolute}.mlogin-close-in{display:inline-block;width:22px;height:1px;background:#000;font-size:0;line-height:0;vertical-align:middle;-webkit-transform:rotate(45deg)}.mlogin-close-in:after{content:".";display:block;width:22px;height:1px;background:#000;-webkit-transform:rotate(-90deg)}.models-login .models-body,.models-register .models-body{max-height:none;padding-bottom:0;padding-top:0}.models-login .news-msg,.models-register .news-msg{color:#de3d96;font-size:.28rem;line-height:.48rem;margin-bottom:.1rem;margin-top:.1rem}.models-login .news-msg .iconfont-punctuation,.models-register .news-msg .iconfont-punctuation{color:#de3d96;font-size:.12rem}.mlogin-err-tips{color:#fff!important;background:#ec5648;border-radius:10px;text-align:center;height:12px;width:12px;font-size:14px;padding:1px;top:8px;display:block;left:15px;position:absolute}.mlogin-err-tips-in{display:inline-block;width:10px;height:1px;position:absolute;top:7px;left:2px;background:#fff;font-size:0;line-height:0;vertical-align:middle;-webkit-transform:rotate(45deg)}.mlogin-err-tips-in:after{content:".";display:block;top:7px;left:2px;height:1px;background:#fff;-webkit-transform:rotate(-90deg)}.models-login .mlogin-error-msg,.models-register .mlogin-error-msg{top:44px;color:#e32818;font-size:14px;line-height:32px;height:30px;position:absolute;background:#fffada;width:100%;padding-left:38px}.models-login .m-login-error{top:140px;width:auto;background:none;color:#c93c29;font-size:12px}.models-login .m-login-error>span{color:#c93c29}.models-login .mlogin-error-msg .iconfont-roundclosefill,.models-register .mlogin-error-msg .iconfont-roundclosefill{color:#fff;background:#ee948b;border-radius:10px;font-style:normal;line-height:16px;text-align:center;height:16px;width:16px;font-size:14px;padding:1px;top:4px;left:10px;display:block;position:absolute}.c-binding-user-info{position:absolute;top:-32px;left:15px;right:15px;line-height:32px;height:32px;font-size:14px;color:#de3d96;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.c-binding-user-info__text{color:#000}#J-register-win .models-login{background:#f3f4f5!important}.models-login .mlogin-error-msg .iconfont-roundclosefill:before{content:"\2716"}.models-login .ui-form,.models-register .ui-form{background-color:transparent;margin-bottom:0}.models-login .ui-form-item,.models-register .ui-form-item{height:52px;background:#fff;position:relative;line-height:52px;padding-left:15px;padding-right:0;clear:both;border-bottom:1px solid #e7e7e7}.ui-form-item--flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ui-form-item--flex input{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.c-label-min-width{min-width:50px}.models-login .ui-form-item-top,.models-register .ui-form-item-top{padding:13px 0 8px 15px;color:#585c64;font-size:14px}.models-login-bg-write{background:#fff}.models-login .ui-form-item label:not(.ui-switch):not(.ui-checkbox):not(.ui-radio),.models-register .ui-form-item label:not(.ui-switch):not(.ui-checkbox):not(.ui-radio){float:left;font-size:16px;margin-right:15px;height:52px;line-height:52px;padding:0;display:block;position:relative;width:auto}.models-login .ui-form-item input:not([type=checkbox]):not([type=radio]),.models-register .ui-form-item input:not([type=checkbox]):not([type=radio]){float:left;font-size:16px;height:20px;background-color:#fff!important;border:none;padding:16px 0 15px;color:#222}.models-login .ui-form-item input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fff inset}.models-login .ui-form-item .icon-show-password{width:50px;height:52px;background:url(../img/hidepassword.fe24f3c7.png) no-repeat 50%;background-size:50% auto;position:absolute;top:0;right:0}.models-login .ui-form-item .mlogin-ipt-show{background:url(../img/showpassword.441a0c3e.png) no-repeat 50%;background-size:50% auto}.models-login .icon-login-logo{width:125px;height:50px;background:url(../img/logo.ac5608f4.png) no-repeat 0 0;background-size:100% auto}.models-login .ui-form-item .m-mlogin-clear,.models-register .ui-form-item .m-mlogin-clear{display:none;height:50px;width:50px;position:absolute;right:0;top:0}.models-login .ui-form-item .clear_wrap,.models-register .ui-form-item .clear_wrap{color:#fff!important;background:#e4e3e6;border-radius:10px;line-height:16px;text-align:center;height:18px;width:18px;font-size:14px;padding:1px;top:18px;right:15px;position:absolute}.models-login .ui-form-item .show-btn-position,.models-register .ui-form-item .show-btn-position{right:120px}.models-login .ui-form-item .show-password-position,.models-register .ui-form-item .show-password-position{right:35px}.models-login .ui-form-item .clear,.models-register .ui-form-item .clear{display:inline-block;width:14px;height:2px;background:#fff;font-size:0;line-height:0;vertical-align:middle;-webkit-transform:rotate(45deg)}.models-login .ui-form-item .clear:after,.models-register .ui-form-item .clear:after{content:".";display:block;width:14px;height:2px;background:#fff;-webkit-transform:rotate(-90deg)}.models-login .models-logo{background:#f6f6f6 url(../img/login_bg.3a93a8bf.jpg) no-repeat 0 0;height:170px;display:-webkit-flex;display:-ms-flexbox;display:flex;display:-webkit-box;text-align:center;display:-moz-box;-webkit-box-pack:center;-moz-box-pack:center;-webkit-box-align:center;-moz-box-align:center}.models-login .ui-form-item .ui-validate,.models-register .ui-form-item .ui-validate{position:absolute;right:0;width:148px;border-left:1px solid #e7e7e7;font-size:16px;color:#4a90e2;text-align:center}.models-login .ui-form-item .ui-font-grey{color:#98989f!important}.models-login .ui-form-item-r button,.models-register .ui-form-item-r button{background-color:transparent;font-size:16px;border:0 none;border-left:1px solid #e7e7e7;outline:0 none;padding:0;position:absolute;right:0;top:0;width:80px}.models-login .ui-form-item-r,.models-register .ui-form-item-r{padding-left:15px;margin-left:0}.models-login .ui-form-item-r button,.models-register .ui-form-item-r button{color:#4a90e2;height:52px;line-height:52px;width:120px;font-size:14px}.models-login .ui-form-item-r button:before,.models-register .ui-form-item-r button:before{content:"";height:.8rem;left:0;overflow:hidden;position:absolute;top:.1rem;-webkit-transform:scaleX(.5);transform:scaleX(.5);width:0}.models-login .ui-form-item-r button.disabled,.models-register .ui-form-item-r button.disabled{color:#98989f}.models-login .ui-form-item-r input:not([type=checkbox]):not([type=radio]),.models-register .ui-form-item-r input:not([type=checkbox]):not([type=radio]){padding-right:.1rem}.models-login .submit-box,.models-register .submit-box{padding:30px 15px 0}.mlogin-footer-tips{padding:12px 20px 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;letter-spacing:.02rem;font-size:12px;color:#98989f;position:relative}.mlogin-footer-tips a{color:#157efa}.models-login .submit,.models-register .submit{background:#de3d96;text-decoration:none!important;text-align:center;border-radius:22px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;color:#fff;display:block;height:44px;line-height:44px;pointer-events:auto;width:100%}.models-register .m-mlogin-toggle{display:inline-block;border:1px solid #e4007f;color:#e4007f!important;border-radius:3px;height:25px;overflow:hidden;line-height:27px;width:52px;margin-top:-2px;font-size:12px;text-align:center;margin-left:5px;vertical-align:middle}.models-login .submitFast,.models-register .submitFast{font-size:16px;background:#de3d96;text-decoration:none!important;text-align:center;border-radius:22px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;display:block;height:44px;line-height:44px;pointer-events:auto;width:100%}.models-login .submit.disabled,.models-login .submitFast.disabled,.models-register .submit.disabled,.models-register .submitFast.disabled{color:#fff;background-color:#caccd2}.models-login .models-footer,.models-register .models-footer{border-top:medium none;padding-bottom:0;text-align:left}.models-login .models-footer fieldset,.models-register .models-footer fieldset{position:relative;height:120px;text-align:center;clear:both;color:#dbdbdb;border-top:1px solid #dbdbdb;border-right:0;font-size:12px;border-left:0;border-bottom:0}.models-login .models-footer fieldset legend,.models-register .models-footer fieldset legend{width:32px}.models-login .models-footer fieldset .login-pop-mobile{height:36px;line-height:36px;padding:0 14px;border-radius:18px;display:inline-block;border:1px solid #e4007f;color:#e4007f;text-decoration:none;margin:13px auto;font-size:14px}.models-login .frogot-pwd,.models-register .frogot-pwd{float:right;text-decoration:none;padding:15px}.models-register .had-account{color:#999;float:right;padding:15px 14px;font-size:16px}.models-login .frogot-pwd,.models-login .had-account,.models-login .without-account,.models-register .frogot-pwd,.models-register .without-account{color:#999;font-size:14px;height:22px;line-height:22px;overflow:hidden;clear:both}.models-login .frogot-pwd,.models-login .had-account a,.models-login .without-account a,.models-register .frogot-pwd a,.models-register .had-account a,.models-register .without-account a{text-decoration:none}.models-login .frogot-pwd a,.models-login .had-account a a,.models-login .without-account a a,.models-register .frogot-pwd a a,.models-register .had-account a a,.models-register .without-account a a{margin:0 12px}.models-login .frogot-pwd,.models-register .frogot-pwd{color:#0079ff}.models-login .without-account,.models-register .without-account{margin-top:10px;text-align:center;font-size:16px}.without-account{color:#ccc}.without-account-tips{display:none;color:#222}.models-login .had-account a,.models-login .without-account a,.models-register .had-account a,.models-register .without-account a{color:#222}.models-login .auth-code,.models-register .auth-code{cursor:pointer;height:1rem;line-height:1rem;position:absolute;right:0;top:0}.models-login .auth-code img,.models-register .auth-code img{float:left;height:.64rem;margin-top:.18rem;vertical-align:middle;width:65px}.models-login .auth-code .iconfont-refresh,.models-register .auth-code .iconfont-refresh{color:#585c65;float:left;font-size:.4rem;height:.8rem;line-height:.8rem;margin-top:.1rem;padding:0 .2rem}.models-login .auth-code .iconfont-refresh:active,.models-register .auth-code .iconfont-refresh:active{color:#ccc}.dialog-content-tips{font-size:18px}.m-user-choose{top:280px!important;padding:0;border-radius:5px!important;font-family:PingFang-SC-Regular,Helvetica Neue,Helvetica,microsoft yahei,sans-serif}.m-user-choose .mg-dialog-title{display:none}.m-user-choose .mg-dialog-foot{border-top:none!important}.m-user-choose .mg-dialog-foot button{height:0!important}.m-user-choose .icon-dialog-close{position:absolute;right:0;top:0;width:40px;height:40px;background:url(../img/password-icons.5784f415.png) no-repeat;background-size:100%}body .m-user-choose .mg-dialog-body{margin:38px 0;padding:0 0 0 26px}.mlogin-login .user-choose-inner{list-style-type:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;overflow:auto}.mlogin-login .user-choose-inner li:last-child{padding-right:26px}.mlogin-login .user-choose-list{position:relative;height:119px;margin-top:32px}.mlogin-login .u-user-item{-webkit-box-flex:1 0 auto;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin-right:22px;text-align:center}.mlogin-login .u-user-item .user-item-img{width:68px;height:68px;padding:.1rem;border-radius:50%;-webkit-box-shadow:0 0 8px #f5f5f5;box-shadow:0 0 8px #f5f5f5}.mlogin-login .u-user-item .user-item-name{margin-top:10px;margin:10px auto 54px;width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:#585c64}.mlogin-login .user-choose-title{margin-bottom:14px;padding-right:26px;font-size:22px;color:#222}.mlogin-login .user-choose-tips{padding-right:26px;font-size:16px;color:#585c64;text-align:left;text-align:justify;text-justify:inter-ideograph}.mlogin-login .z-user-item-two .u-user-item{margin-right:0}@media screen and (max-width:320px){.m-user-choose{top:200px!important}}.ui-form .ui-form-item.f-password-width-fix-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box}.ui-form .ui-form-item.f-password-width-fix-wrapper label[for=password]{width:60px;float:left}.ui-form .ui-form-item.f-password-width-fix-wrapper .f-password-width-fix{margin-left:80px}.ui-form .ui-form-item.f-password-width-fix-wrapper .f-password-width-fix input[name=password]{float:none;width:100%}.mg-dialog.secure-check{padding:0;border-radius:6px}.mg-dialog.secure-check .mg-dialog-title{font-size:18px;color:#000;letter-spacing:0;line-height:18px;margin:18px 0;font-weight:400}.mg-dialog.secure-check .mg-dialog-title .question-img{width:271px;height:20px}.mg-dialog.secure-check .mg-dialog-title .question-img,.mg-dialog.secure-check .mg-dialog-title .secure-doc-title{display:none;margin:0 auto}.mg-dialog.secure-check .mg-dialog-title .m-sms-captcha-title.doc .secure-doc-title,.mg-dialog.secure-check .mg-dialog-title .secure-check-title.doc .secure-doc-title{display:block;line-height:20px}.mg-dialog.secure-check .mg-dialog-title .m-sms-captcha-title.img .question-img,.mg-dialog.secure-check .mg-dialog-title .secure-check-title.img .question-img{display:block}.mg-dialog.secure-check .mg-dialog-body{position:relative;margin:0;padding:0 15.5px 35px}.mg-dialog.secure-check .mg-dialog-body .input-wrapper{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.mg-dialog.secure-check .mg-dialog-body .input-wrapper:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid #c7c7cf;width:200%;height:200%;-webkit-transform:scale(.5);-webkit-transform-origin:0 0;pointer-events:none;-webkit-box-sizing:border-box;box-sizing:border-box}.mg-dialog.secure-check .mg-dialog-body .secure-code{padding:2px 0;position:relative;margin:0 2px 0 14.5px;-webkit-box-sizing:border-box;box-sizing:border-box}.mg-dialog.secure-check .mg-dialog-body .secure-code input{width:100%;padding:0;font-size:16px;color:#222;line-height:36px;border:none;outline:none}.mg-dialog.secure-check .mg-dialog-body .secure-code input::-webkit-input-placeholder{color:#ccc;font-size:16px}.mg-dialog.secure-check .mg-dialog-body .secure-code input:-moz-placeholder,.mg-dialog.secure-check .mg-dialog-body .secure-code input::-moz-placeholder{color:#ccc;font-size:16px}.mg-dialog.secure-check .mg-dialog-body .secure-code input:-ms-input-placeholder{color:#ccc;font-size:16px}.mg-dialog.secure-check .mg-dialog-body .secure-code label{display:block;position:absolute;left:0;right:0;bottom:0;top:0}.mg-dialog.secure-check .mg-dialog-body .secure-img{padding:4px 0}.mg-dialog.secure-check .mg-dialog-body .secure-img img{display:block;width:80px;height:32px}.mg-dialog.secure-check .mg-dialog-body .secure-refresh{position:relative;width:41px;height:40px}.mg-dialog.secure-check .mg-dialog-body .secure-refresh .u-icon-refresh{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:18px;height:18px;background-image:url(../img/icon-refresh.1440dde8.png);background-repeat:no-repeat;background-size:100%}.mg-dialog.secure-check .mg-dialog-body .secure-tips{position:absolute;bottom:11.5px;left:15.5px;font-size:12px;color:#ec5042;letter-spacing:0;line-height:12px}.mg-dialog.secure-check .mg-dialog-body .secure-tips span{width:271px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:block;text-align:left}.mg-dialog.secure-check .mg-dialog-foot{margin:0}.vipsfin-login .models-login .icon-login-logo{width:125px;height:50px;background:url(../img/vipsfin-logo.02af540f.png) no-repeat 0 0;background-size:100% auto}.mlogin-rectangle{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;display:block;width:21px;height:22px;margin-right:10px;background-image:url(../img/rectangle.5d636f59.png);background-repeat:no-repeat;background-size:100%}.mlogin-icon-rectangle-normal{background-position:0 0}.mlogin-icon-rectangle-selected{background-position:0 -22px}.mg-mask,.mg-u-mask{position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;z-index:5300;background-color:rgba(0,0,0,.6);display:none}.mlogin-loading-wrap{font-size:.27307rem;text-align:center;color:#fff;left:0;top:0;position:absolute;width:100%;height:100%;background-color:hsla(0,0%,100%,.4);z-index:5700}.mlogin-loading-wrap .c-loading-progress{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:center;transform-origin:center;stroke-dasharray:150.796 150.796;-webkit-animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite;animation:loadingLinearLine linear 2s infinite,loadingLinearSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-text{text-anchor:middle;font:21px/1 Helvetica}.mlogin-loading-wrap .c-loading-curve .c-loading-progress{-webkit-animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite;animation:loadingCurveLine linear 2s infinite,loadingCurveSpin linear 2s infinite}.mlogin-loading-wrap .c-loading-bg{width:90px;height:90px;background-color:#fff;border-radius:4px;text-align:center;font-size:0}.mlogin-loading-wrap .c-loading-bg:after{content:"";height:100%;width:0;overflow-y:hidden}.mlogin-loading-wrap .c-loading,.mlogin-loading-wrap .c-loading-bg:after{display:inline-block;vertical-align:middle}.mlogin-loading-wrap .c-loading-bg{margin-left:-45px;margin-top:-45px;left:50%;z-index:9999;top:43%;position:fixed}@-webkit-keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingLinearLine{0%,to{stroke-dasharray:0 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingLinearSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@keyframes loadingCurveLine{0%,to{stroke-dasharray:0 150.796}35.8%,85.8%{stroke-dasharray:75.398 150.796}50%{stroke-dasharray:150.796 150.796}}@-webkit-keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(270deg)}}@keyframes loadingCurveSpin{0%,50%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}85.8%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}.mg-toast{clear:both;position:fixed;z-index:5800;left:-99999px;text-align:center;top:-99999px;background-color:rgba(0,0,0,.8);color:#fff;padding:10px 15px;border-radius:3px;font-size:16px;-webkit-box-sizing:border-content;box-sizing:border-content;width:50%}div.win-captcha-container{background:#f3f4f5}a.icon-captcha-back{background-size:100%;background-image:url(../img/password-icons.5784f415.png);background-repeat:no-repeat;cursor:pointer;width:1rem;height:1rem;background-position:0 -3rem;left:0}.m-header{position:relative;background-color:#fff;border-bottom:1px solid #ddd;text-align:center}.header-back{position:absolute;left:.29rem;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.header-title{line-height:44px;overflow:hidden;white-space:nowrap;color:#222}.header-title,[data-dpr="1"] .header-title{font-size:18px}@media screen and (min-width:540px){[data-dpr="1"] .header-title{font-size:20px}}[data-dpr="2"] .header-title{font-size:36px}@media screen and (min-width:1080px){[data-dpr="2"] .header-title{font-size:40px}}[data-dpr="3"] .header-title{font-size:54px}@media screen and (min-width:1620px){[data-dpr="3"] .header-title{font-size:60px}}@media screen and (min-width:540px){[data-dpr="1"] .header-title{line-height:49.72px}}@media screen and (min-width:1080px){[data-dpr="2"] .header-title{line-height:49.72px}}@media screen and (min-width:1620px){[data-dpr="3"] .header-title{line-height:49.72px}}div.login-captcha-dialog{padding:0}div.login-captcha-dialog .mg-dialog-title{margin-top:24px;line-height:18px}div.login-captcha-dialog .mg-dialog-body{margin:22px 21px 20px;padding:0;text-align:left;font-size:14px;color:#222;line-height:20px}div.login-captcha-dialog .dialog-captcha-tips{white-space:pre;line-height:20px;margin-top:14px}div.login-captcha-dialog .dialog-captcha-tips a{font-weight:550;font-size:14px;color:#0076ff;text-decoration:underline}div.login-captcha-dialog .mg-dialog-foot button{color:#6b6f77;font-size:16px;line-height:44px}div.login-captcha-dialog .mg-dialog-foot button:nth-child(2){background:#f03867;color:#fff}.mg-popup{position:fixed;z-index:5200;left:50%;top:50%;overflow:hidden;display:none;background-color:#fff;-webkit-box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);box-shadow:0 0 .08533rem .01707rem rgba(0,0,0,.3);padding:.06144rem;-o-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate(-50%,-50%)!important;transform:translate(-50%,-50%)!important;min-width:1.2288rem;min-height:.3072rem;line-height:1.5}.mg-dialog{font-size:.32rem;text-align:center;border-radius:6px;z-index:5500;left:50%!important}.mg-dialog .mg-dialog-title{font-size:18px;margin-top:.3rem;color:#222;width:100%;overflow:hidden;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis}.mg-dialog .mg-dialog-body{margin:.3rem 0;padding:0 1em}.mg-dialog .mg-dialog-body.left{text-align:left}.mg-dialog .mg-dialog-foot{border-top:1px solid #ebebeb;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.mg-dialog .mg-dialog-foot:empty{border:none}.mg-dialog .mg-dialog-foot button{display:block;color:#1b81fb;font-family:Microsoft Yahei,Helvetica Neue,Helvetica,STHeiTi,sans-serif;font-size:17px;border:none;outline:none;background-color:transparent;-webkit-box-flex:1;box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:44px;line-height:44px}.mg-dialog .mg-dialog-foot button:nth-child(2){border-left:1px solid #ebebeb}.mg-dialog .mg-dialog-foot button:active{background-color:#eee}.mg-dialog.bottom{background:none;padding:0;-webkit-box-shadow:none;box-shadow:none}.mg-dialog.bottom .mg-dialog-body{padding:.3rem;margin:.3rem;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-body .tips{color:#585c64;font-size:.24rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .title{color:#222;font-size:.36rem;line-height:.45rem}.mg-dialog.bottom .mg-dialog-body .time{color:#98989f;font-size:.2rem;line-height:.9rem}.mg-dialog.bottom .mg-dialog-foot{margin:.3rem;border:none;background-color:#fff;border-radius:.08rem}.mg-dialog.bottom .mg-dialog-foot button{color:#585c64;display:block;width:100%}.mg-dialog.supper_confirm_dialog button{display:block;width:100%} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/mars_wap.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/mars_wap.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..f4e529362d7aef80906fe902ecf6e788e7e05432 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/mars_wap.js.\344\270\213\350\275\275" @@ -0,0 +1,3 @@ +/*! mars 2022-02-17 10:02:02 */ +!function(){function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g-1?e(c):c}},{"./":2,"get-intrinsic":6}],2:[function(a,b,c){"use strict";var d=a("function-bind"),e=a("get-intrinsic"),f=e("%Function.prototype.apply%"),g=e("%Function.prototype.call%"),h=e("%Reflect.apply%",!0)||d.call(g,f),i=e("%Object.defineProperty%",!0);if(i)try{i({},"a",{value:1})}catch(a){i=null}b.exports=function(){return h(d,g,arguments)};var j=function(){return h(d,f,arguments)};i?i(b.exports,"apply",{value:j}):b.exports.apply=j},{"function-bind":5,"get-intrinsic":6}],3:[function(a,b,c){"use strict";var d=a("object-keys"),e="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),f=Object.prototype.toString,g=Array.prototype.concat,h=Object.defineProperty,i=function(a){return"function"==typeof a&&"[object Function]"===f.call(a)},j=function(){var a={};try{h(a,"x",{enumerable:!1,value:a});for(var b in a)return!1;return a.x===a}catch(a){return!1}},k=h&&j(),l=function(a,b,c,d){(!(b in a)||i(d)&&d())&&(k?h(a,b,{configurable:!0,enumerable:!1,value:c,writable:!0}):a[b]=c)},m=function(a,b){var c=arguments.length>2?arguments[2]:{},f=d(b);e&&(f=g.call(f,Object.getOwnPropertySymbols(b)));for(var h=0;h1&&"boolean"!=typeof b)throw new g('"allowMissing" argument must be a boolean');var c=B(a),f=c.length>0?c[0]:"",h=C("%"+f+"%",b),j=h.name,k=h.value,l=!1,m=h.alias;m&&(f=m[0],w(c,v([0,1],m)));for(var n=1,o=!0;n=c.length){var t=i(k,p);o=!!t,k=o&&"get"in t&&!("originalValue"in t.get)?t.get:k[p]}else o=u(k,p),k=k[p];o&&!l&&(r[j]=k)}}return k}},{"function-bind":5,has:9,"has-symbols":7}],7:[function(a,b,c){(function(c){"use strict";var d=c.Symbol,e=a("./shams");b.exports=function(){return"function"==typeof d&&("function"==typeof Symbol&&("symbol"==typeof d("foo")&&("symbol"==typeof Symbol("bar")&&e())))}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./shams":8}],8:[function(a,b,c){"use strict";b.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var a={},b=Symbol("test"),c=Object(b);if("string"==typeof b)return!1;if("[object Symbol]"!==Object.prototype.toString.call(b))return!1;if("[object Symbol]"!==Object.prototype.toString.call(c))return!1;var d=42;a[b]=d;for(b in a)return!1;if("function"==typeof Object.keys&&0!==Object.keys(a).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(a).length)return!1;var e=Object.getOwnPropertySymbols(a);if(1!==e.length||e[0]!==b)return!1;if(!Object.prototype.propertyIsEnumerable.call(a,b))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var f=Object.getOwnPropertyDescriptor(a,b);if(f.value!==d||f.enumerable!==!0)return!1}return!0}},{}],9:[function(a,b,c){"use strict";var d=a("function-bind");b.exports=d.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":5}],10:[function(a,b,c){"use strict";var d;if(!Object.keys){var e=Object.prototype.hasOwnProperty,f=Object.prototype.toString,g=a("./isArguments"),h=Object.prototype.propertyIsEnumerable,i=!h.call({toString:null},"toString"),j=h.call(function(){},"prototype"),k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],l=function(a){var b=a.constructor;return b&&b.prototype===a},m={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},n=function(){if("undefined"==typeof window)return!1;for(var a in window)try{if(!m["$"+a]&&e.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{l(window[a])}catch(a){return!0}}catch(a){return!0}return!1}(),o=function(a){if("undefined"==typeof window||!n)return l(a);try{return l(a)}catch(a){return!1}};d=function(a){var b=null!==a&&"object"==typeof a,c="[object Function]"===f.call(a),d=g(a),h=b&&"[object String]"===f.call(a),l=[];if(!b&&!c&&!d)throw new TypeError("Object.keys called on a non-object");var m=j&&c;if(h&&a.length>0&&!e.call(a,0))for(var n=0;n0)for(var p=0;p=0&&"[object Function]"===d.call(a.callee)),c}},{}],13:[function(a,b,c){"use strict";var d=a("object-keys"),e=function(a){return"undefined"!=typeof a&&null!==a},f=a("has-symbols/shams")(),g=a("call-bind/callBound"),h=Object,i=g("Array.prototype.push"),j=g("Object.prototype.propertyIsEnumerable"),k=f?Object.getOwnPropertySymbols:null;b.exports=function(a,b){if(!e(a))throw new TypeError("target must be an object");var c,g,l,m,n,o,p,q=h(a);for(c=1;ck?p:l}}}else g[e]={n:1,t:k,m:k,f:l}}b.entriesTotal=f.length,b.initiatorType=Mar.stringify(g)}return b},f=function(a,b){Mar.Request("/a?ps_nav="+a.navigation+"&ps_ule="+a.unloadEvent+"&ps_rd="+a.redirect+"&ps_dlu="+a.domainLookup+"&ps_con="+a.connect+"&ps_req="+a.request+"&ps_resp="+a.response+"&ps_dl="+a.domLoading+"&ps_di="+a.domInteractive+"&ps_dcl="+a.domContentLoaded+"&ps_dc="+a.domComplete+"&ps_le="+a.loadEvent+"&ps_ft="+a.fetch+"&ps_ty="+a.type+"&ps_ttfb="+a.timeTofirstByte+"&ps_ac="+a.appcache+"&ps_fp="+a.fp+"&ps_fcp="+a.fcp+"&ps_lcp="+a.lcp+"&ps_fmp=0&entry="+a.entriesTotal+"&enType="+a.initiatorType+"&isInit="+b||0)}},{}],21:[function(a,b,c){Mar.Random={guid:function(){for(var a=0,b=[];a<8;)b.push((65536*(1+Math.random())|0).toString(16).substring(1)),a++;return b.join("").toUpperCase()},guid2:function(){function a(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},guid3:function(){function a(a,c,d){var e=b(a,16),f=new Array,g="",h=0;for(h=0;h=0?d=setTimeout(j,b-k):(d=null,c||(h=a.apply(f,e),d||(f=e=null)))};return function(){f=this,e=arguments,g=i();var k=c&&!d;return d||(d=setTimeout(j,b)),k&&(h=a.apply(f,e),f=e=null),h}},getQueryStringByName:function(a,b){var c=b.match(new RegExp("[?&]"+a+"=([^&^#]+)","i"));return null==c||c.length<1?"":c[1]},getMetaByName:function(a){var b=document.getElementsByTagName("meta");for(i in b)if("undefined"!=typeof b[i].name&&b[i].name.toLowerCase()==a)return b[i].content;return null},isDetailPage:function(a){var b=!1;return!a||a.indexOf("shop.vipshop.com/detail")===-1&&a.indexOf("www.vip.com/detail")===-1&&a.indexOf("detail.vipglobal.hk")===-1||(b=!0),b},urlEncodedFormString:function(a){var b="";for(var c in a)Object.hasOwnProperty.call(a,c)&&(b=b+"&"+c+"="+a[c]);return b.replace(/^&/,"")},urlEncodedFormStringWithEncode:function(a){var b="";for(var c in a)Object.hasOwnProperty.call(a,c)&&(b=b+"&"+c+"="+encodeURIComponent(a[c]));return b.replace(/^&/,"")}}},{}],24:[function(a,b,c){!function(){Mar.PageIdIndex=0,Mar.PageId=Mar.PageId?Mar.PageId+"_"+ ++Mar.PageIdIndex:(new Date).getTime()+"_"+Mar.Random.guid3(),Mar._MyCid=null,Mar.Biz=function(){var a=Mar.Cookie,b=a.getAll,c=a.set,d=a.del,e=0,f=0,g=b(),h=g.mars_cid||g.cookie_id,i=g.mars_pid||g.page_id,j=g.mars_sid||Mar.Random.rand(),k=g.visit_id||Mar.Random.guid(),l=window.mars_var?Mar.stringify(window.mars_var):"-",m=g["WAP[p_wh]"],n=g["WAP[auth]"]||g.login_username,o=g["WAP[revision]"],p=g["WAP[p_wh]"],q=g.warehouse,r=g.WAP_ID,s=g["WAP[from]"],t=g.cps_u,u=g.m_vipruid;n&&(e=1),(!h||32!==(h+"").length&&46!==(h+"").length)&&(null!=Mar._MyCid?h=Mar._MyCid:(h=Mar.Util.encryptCid(Mar.Util.pad((new Date).getTime(),13)+"_"+Mar.Random.rand()),f=1,Mar._MyCid=h)),i=i||0,i++,d("cookie_id"),d("page_id"),c("mars_pid",i,732);var v=h.split("_")[0];return(new Date).getTime()+632448e5-v>0&&c("mars_cid",h,732),c("mars_sid",j,0),c("visit_id",k,.5/24),{cid:h,pid:i,sid:j,vid:k,wh:m,mvar:l,wapln:n,wapvs:o,wappwh:p,wapwh:q,wapid:r,wapfrom:s,cpsu:t,ruid:u,newbie:f,isLog:e,pageId:window.__mars_extend_object&&window.__mars_extend_object.tabPageId||Mar.PageId}},Mar.Biz._setupExtendObjectIfNeed=function(){window.__mars_extend_object||(window.__mars_extend_object={})},Mar.Biz._updateTabPageId=function(a){Mar.Biz._setupExtendObjectIfNeed(),window.__mars_extend_object.tabPageId=a}}()},{}],25:[function(a,b,c){!function(){a("object.assign").getPolyfill();Mar.Exposure=function(){var a,b=this,c="",d=encodeURIComponent(document.title),e=Mar.Util.getQueryStringByName("extra_banner",location.href),f=0,g=0,h=!1,i=0,j={},k=[],l={},m=[],n={},o=[],p=0,q=0,r=0;e=""==e?0:e,this.Exposure._request=function(a,b){var h="mst"==c||"h5"==c?"special_slide_expose":"wap_brand_expose",i={page:d,wap_id:f.toString(),special_id:g.toString(),banner_id:e.toString(),item_cnt:k.length.toString(),item_list:k.join(","),marsDataLen:m.length.toString(),mars_exposure_data:m,browse_length:"request"==a?"0":p.toString(),browse_time:"request"==a?"0":r.toString(),expose_time:Mar.Util.getTimeSpan().toString(),source:a};Mar.Seed._requestUsePathWithMethod("/bp","link","scroll",h,JSON.stringify(i),"post"),j={},k=[],l={},m=[],p=0,r=0},this.Exposure.afterGetData=function(a,b){(k.length>10||m.length>10)&&this._request(a,b),o.length>5&&(Mar.Seed.selfDefineRequest(o),o=[],n={})},this.Exposure.startTimer=function(){var b=this;a=setInterval(function(){(k.length>0||m.length>0)&&b._request("setInterval","0_0"),o.length>0&&(Mar.Seed.selfDefineRequest(o),o=[],n={})},2e3)},this.Exposure.endTimer=function(){clearInterval(a)},this.Exposure.getItemByArrModule=function(a,b){var d=!1,e={key:"",val:""},f=[],g=[];if(c=""==c?a[0]:c,""==c)return e;switch(c){case"wap":switch(a[1]){case"brands":g.push(0),g.push(a[6]?a[6]:""),d=!0;break;case"products":g.push(1),g.push(a[2]?a[2]:""),d=!0;break;case"specials":g.push(3),g.push(a[6]?a[6]:""),d=!0;break;case"operates":g.push(4),g.push(a[6]?a[6]:""),d=!0;break;case"adverts":g.push(5),g.push(a[6]?a[6]:""),d=!0}d&&g.push(b+1),g.push(a[7]?a[7].replace(new RegExp("_","gm"),"."):"");break;case"mst":case"h5":switch(a[1]){case"brands":g.push(0),g.push(a[2]?a[2]:""),a[5]&&f.push(a[5]),d=!0;break;case"products": +g.push(1),g.push(a[5]?a[5]:""),a[6]&&f.push(a[6]),d=!0;break;case"specials":g.push(3),g.push(a[2]?a[2]:""),d=!0;break;case"operates":g.push(4),g.push(a[2]?a[2]:""),a[4]&&f.push(a[4]),d=!0;break;case"adverts":g.push(5),g.push(a[2]?a[2]:""),d=!0;break;case"brandSn":g.push(6),g.push(a[2]?a[2]:""),d=!0;break;case"articles":g.push(7),g.push(a[2]?a[2]:""),d=!0;break;case"dOperates":g.push(8),g.push(a[2]?a[2]:""),d=!0;break;case"topic_in":g.push(9),g.push(a[2]?a[2]:""),d=!0;break;default:if(a[1].split("_")[1]&&(g.push(a[1].split("_")[1]),g.push(a[2]?a[2]:""),d=!0,a.length>=6))for(var h=5;h0&&(g=g.concat(f))}return d&&(e.key=g[1]+"&"+g[2],e.val=g.join("_")),e},this.Exposure.getDataList=function(a,b){var c=this;$("[mars_exposure_sead],[data-mars_exposure_sead]").each(function(d){var e,f=$(this).offset().top+$(this).height()/2,g=$(this);if(f>a&&f<=b){if(e=g.attr("mars_exposure_module")?g.attr("mars_exposure_module").split("|"):g.attr("data-mars_exposure_module")&&g.attr("data-mars_exposure_module").split("|"),!e)return;if("adverts"!=e[1]||"adverts"==e[1]&&g.hasClass("active")){var h=c.getItemByArrModule(e,d);""!=h.key&&void 0==j[h.key]&&(j[h.key]=h.val,k.push(h.val))}}}),$("[mars_exposure_data]").each(function(c){var d,e=$(this).offset().top+$(this).height()/2,f=$(this),g=f.attr("mars_exposure_data");if(e>a&&e<=b){if(d=g?JSON.parse(g):"",!d)return;void 0==l[g]&&(l[g]=1,m.push(d))}}),$("[mars_exposure_imptrackers]").each(function(c){var d,e=$(this).offset().top+$(this).height()/2,f=$(this),g=f.attr("mars_exposure_imptrackers");if(e>a&&e<=b){if(d=g?JSON.parse(g):"",!d)return;void 0==n[g]&&(n[g]=1,o=o.concat(d))}})},this.Exposure.requestAnimFrame=function(a){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a,b){window.setTimeout(a,1e3/60)}}().bind(window),this.Exposure.chunkByFrame=function(a,b,c){var d=this,e=function(b,c){var f=b+1;bc&&e<=d){var h=e>c?e:c,i=e+b.height()>d?d:e+b.height();j+=1;var k=function(){g.getDataList(h,i),j-=1,j<=0&&f()};window.requestIdleCallback?requestIdleCallback(k):g.chunkByFrame(k,j,10)}}):(g.getDataList(c,d),f())}},this.Exposure.request=function(b){function c(a,b){var c=d.getItemByArrModule(a,b);""!=c.key&&void 0==j[c.key]&&(j[c.key]=c.val,k.push(c.val))}var d=this;if(!h){if(h=!0,a&&d.endTimer(),i=Mar.Util.getTimeSpanMillisecond(),"string"==typeof b)c(b.split("|"),0);else for(var e=0,f=b.length;e100?a=this.winHeight:(a=this.ExposureDom.height(),this.winHeight=a),a},this.Exposure.isFirst=!0,this.Exposure.opt={hasExposureDom:!1},this.Exposure.init=function(){var a=this;if(this.winHeight=null,"MarConfig"in window&&window.MarConfig&&window.MarConfig.ExposureDom?(a.opt.hasExposureDom=!0,a.ExposureDom=$(window.MarConfig.ExposureDom)):a.ExposureDom=$(window),"config"in window&&window.config&&window.config.data){if(void 0==window.config.data.wapid){if(f=void 0==window.config.data.id?0:window.config.data.id,0!=f){var b=Mar.Util.parseURL(location.href).host;f=b.split(".")[0]+"_"+f}}else f=window.config.data.wapid;g=void 0==window.config.data.build_id?0:window.config.data.build_id}this.getWinHeight(),this.lastTop=0,this.lastScrollTop=Mar.getScroll(a.opt),this.lastDate=Mar.Util.getTimeSpanMillisecond();var c;this.ExposureDom.on("touchstart.mars",function(){c&&clearTimeout(c);var b=Mar.getScroll(a.opt);a.isFirst=!1,b!=a.lastTop?a.onScroll("touchstart"):a.lastDate=Mar.Util.getTimeSpanMillisecond()}).on("scroll.mars",Mar.Util.Debounce(function(){c&&clearTimeout(c),a.onScroll("scroll")},300)),c=setTimeout(function(){var b=Mar.getScroll(a.opt),c=b+a.getWinHeight();a.getData(b,b,c,"init")},2e3)},this.Exposure.onScroll=function(a){var b,c,d=this,e=Mar.getScroll(d.opt);if(e>this.lastScrollTop)b=this.lastTop,c=e+this.getWinHeight();else{if(!(!q&&e==this.lastScrollTop||e-1?"&":"?";if(h>-1&&(f=e.substr(0,h),g=e.substr(h)),window.localStorage)for(var j=0,k=c.length;j0&&a._request("setInterval")},this.config.frequency)},_request:function(a){var b="screen_expose",c=null==this.config.getScreenCount?Math.ceil(this.config.ExposureDom.height()/this.screenHeight):this.config.getScreenCount(),d={current_page_num:this.data.exposureIndex,total_page_num:c},e=JSON.stringify(d);Mar.Seed.request("link","screen",b,e),this.data.exposureIndex=[]}}},{}],30:[function(a,b,c){Mar.Seed={typeEnum:{inputbutton:"button",inputsubmit:"button",inputtext:"inputText",inputinput:"inputText",inputradio:"radio",inputcheckbox:"checkbox",adownload:"download",a:"link",span:"span",button:"button"},data:{page_type:"",page_id:""},init:function(){var a=this;return this.data.page_type=Mar.Util.getConfig("pageType"),""==this.data.page_type&&(this.data.page_type="unknown"),this.data.page_id=this.data.page_type+"_"+window.T0,$("body").delegate("[mars_sead]:not(select)","click",function(b){var c=$(this);a._onclick(c)}).delegate("select[mars_sead]","change",function(){a.request("select","change",$(this).attr("mars_sead"))}).delegate("[mars_exposure_clktrackers]","click",function(b){var c=$(this);a.selfDefineRequest(JSON.parse(c.attr("mars_exposure_clktrackers")))}),Mar},_onclick:function(a){var b,c,d,e=a[0].tagName.toLowerCase();"a"===e?(b=a.attr("href"),d=this.typeEnum[e+(b?this._isDownload(b.toLowerCase()):"")]):(b=a.attr("type"),c=this.typeEnum[e+(b?b.toLowerCase():"")],d=c?c:e),this.request(d,"click",a.attr("mars_sead"),a.attr("data_mars"))},updateTabPageId:function(a){Mar.Biz._updateTabPageId(a)},selfDefineRequest:function(a){Mar._Request.sendDefineRequest(a)},request:function(a,b,c,d){this._requestUsePathWithMethod("/bp",a,b,c,d,"post")},requestPost:function(a,b,c,d){this._requestUsePathWithMethod("/bp",a,b,c,d,"post")},requestUsePath:function(a,b,c,d,e){this._requestUsePathWithMethod(a,b,c,d,e,"get")},_requestUsePathWithMethod:function(a,b,c,d,e,f){var g=(new Date).getTime()-window.T0,h={at:g,et:b,ed:c,page_type:this.data.page_type,page_id:this.data.page_id,one:encodeURIComponent(d),data_mars:e||""};"post"===f?Mar._Request.sendPost(a,h,!0):Mar._Request.send(a,h,!0)},_isDownload:function(a){return/.*\.\w*$/.test(a)&&$.inArray(a.match(/\.(\w*)$/i)[1],["rar","zip","exe","doc","ppt","xls","docx","xlsx","pptx","sisx","apk"])!==-1?"download":""}}},{}]},{},[26]); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90(1).png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90(1).png" new file mode 100644 index 0000000000000000000000000000000000000000..726844833916989458165bad8d2f4042239f7f3d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90(1).png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90.png" new file mode 100644 index 0000000000000000000000000000000000000000..098a5996fec05729ce788a3a175e7154f5270471 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/primary_96x48_90.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/sign_wap.js.\344\270\213\350\275\275" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/sign_wap.js.\344\270\213\350\275\275" new file mode 100644 index 0000000000000000000000000000000000000000..3160e299fdff6a6191b697bdc0ea4f508acf7a78 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\224\257\345\223\201\344\274\232\346\211\213\346\234\272\350\264\255\347\211\251\346\255\243\345\223\201\345\225\206\345\237\216\357\274\232\345\223\201\347\211\214\347\211\271\345\215\226\346\211\213\346\234\272\347\211\210_files/sign_wap.js.\344\270\213\350\275\275" @@ -0,0 +1,183 @@ +/* + + Counter block mode compatible with Dr Brian Gladman fileenc.c + derived from CryptoJS.mode.CTR + Jan Hruby jhruby.web@gmail.com + + (c) 2012 by C?dric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'");}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0)rs=rs.substring(1);rs=this.sha1(rs);return rs},getSecret:function(param){var rs= +"";var _this=this;var enString=param.api_key&&_this.data.enString[param.api_key]?_this.data.enString[param.api_key]:"";return _this.aesDecrypt(enString,_this.data.secret)},aesEncrypt:function(msg,secret){return CryptoJS.AES.encrypt(msg,secret).toString()},aesDecrypt:function(msg,secret){var bytes=CryptoJS.AES.decrypt(msg,secret);return bytes.toString(CryptoJS.enc.Utf8)},sha1:function(msg){return CryptoJS.SHA1(msg).toString()},getCookie:function(name){var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); +if(arr=document.cookie.match(reg))if(arr[2])return unescape(arr[2]);return""}};module.exports=sign},{"crypto-js":11}],2:[function(require,module,exports){window.sign=require("./modules/Sign/index_wap.js");if(window.$&&(window.$.Listeners&&window.$.Listeners.pub))$.Listeners.pub("plugin.sign").success()},{"./modules/Sign/index_wap.js":1}],3:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"), +require("./md5"),require("./evpkdf"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var BlockCipher=C_lib.BlockCipher;var C_algo=C.algo;var SBOX=[];var INV_SBOX=[];var SUB_MIX_0=[];var SUB_MIX_1=[];var SUB_MIX_2=[];var SUB_MIX_3=[];var INV_SUB_MIX_0=[];var INV_SUB_MIX_1=[];var INV_SUB_MIX_2=[];var INV_SUB_MIX_3= +[];(function(){var d=[];for(var i=0;i<256;i++)if(i<128)d[i]=i<<1;else d[i]=i<<1^283;var x=0;var xi=0;for(var i=0;i<256;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^sx&255^99;SBOX[x]=sx;INV_SBOX[sx]=x;var x2=d[x];var x4=d[x2];var x8=d[x4];var t=d[sx]*257^sx*16843008;SUB_MIX_0[x]=t<<24|t>>>8;SUB_MIX_1[x]=t<<16|t>>>16;SUB_MIX_2[x]=t<<8|t>>>24;SUB_MIX_3[x]=t;var t=x8*16843009^x4*65537^x2*257^x*16843008;INV_SUB_MIX_0[sx]=t<<24|t>>>8;INV_SUB_MIX_1[sx]=t<<16|t>>>16;INV_SUB_MIX_2[sx]=t<<8|t>>>24;INV_SUB_MIX_3[sx]= +t;if(!x)x=xi=1;else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]]}}})();var RCON=[0,1,2,4,8,16,32,64,128,27,54];var AES=C_algo.AES=BlockCipher.extend({_doReset:function(){if(this._nRounds&&this._keyPriorReset===this._key)return;var key=this._keyPriorReset=this._key;var keyWords=key.words;var keySize=key.sigBytes/4;var nRounds=this._nRounds=keySize+6;var ksRows=(nRounds+1)*4;var keySchedule=this._keySchedule=[];for(var ksRow=0;ksRow>>24;t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[t&255];t^=RCON[ksRow/keySize|0]<<24}else if(keySize>6&&ksRow%keySize==4)t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[t&255];keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}var invKeySchedule=this._invKeySchedule=[];for(var invKsRow=0;invKsRow>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[t&255]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3];M[offset+3]=t;this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3, +INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3];M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){var nRounds=this._nRounds;var s0=M[offset]^keySchedule[0];var s1=M[offset+1]^keySchedule[1];var s2=M[offset+2]^keySchedule[2];var s3=M[offset+3]^keySchedule[3];var ksRow=4;for(var round=1;round>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[s3&255]^keySchedule[ksRow++];var t1=SUB_MIX_0[s1>>>24]^ +SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[s0&255]^keySchedule[ksRow++];var t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[s1&255]^keySchedule[ksRow++];var t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[s2&255]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[s3&255])^keySchedule[ksRow++];var t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[s0& +255])^keySchedule[ksRow++];var t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[s1&255])^keySchedule[ksRow++];var t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[s2&255])^keySchedule[ksRow++];M[offset]=t0;M[offset+1]=t1;M[offset+2]=t2;M[offset+3]=t3},keySize:256/32});C.AES=BlockCipher._createHelper(AES)})();return CryptoJS.AES})},{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}],4:[function(require,module,exports){(function(root,factory, +undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./evpkdf"));else if(typeof define==="function"&&define.amd)define(["./core","./evpkdf"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS;var C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm;var C_enc=C.enc;var Utf8=C_enc.Utf8;var Base64=C_enc.Base64;var C_algo=C.algo; +var EvpKDF=C_algo.EvpKDF;var Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg);this._xformMode=xformMode;this._key=key;this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this);this._doReset()},process:function(dataUpdate){this._append(dataUpdate); +return this._process()},finalize:function(dataUpdate){if(dataUpdate)this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){if(typeof key=="string")return PasswordBasedCipher;else return SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext, +key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()});var StreamCipher=C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!!"flush");return finalProcessedBlocks},blockSize:1});var C_mode=C.mode={};var BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher, +iv){this._cipher=cipher;this._iv=iv}});var CBC=C_mode.CBC=function(){var CBC=BlockCipherMode.extend();CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize);cipher.encryptBlock(words,offset);this._prevBlock=words.slice(offset,offset+blockSize)}});CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;var thisBlock=words.slice(offset, +offset+blockSize);cipher.decryptBlock(words,offset);xorBlock.call(this,words,offset,blockSize);this._prevBlock=thisBlock}});function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;i>>2]&255;data.sigBytes-=nPaddingBytes}};var BlockCipher=C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg;var iv=cfg.iv;var mode=cfg.mode; +if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}if(this._mode&&this._mode.__creator==modeCreator)this._mode.init(this,iv&&iv.words);else{this._mode=modeCreator.call(mode,this,iv&&iv.words);this._mode.__creator=modeCreator}},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data, +this.blockSize);var finalProcessedBlocks=this._process(!!"flush")}else{var finalProcessedBlocks=this._process(!!"flush");padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:128/32});var CipherParams=C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}});var C_format=C.format={};var OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext= +cipherParams.ciphertext;var salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr);var ciphertextWords=ciphertext.words;if(ciphertextWords[0]==1398893684&&ciphertextWords[1]==1701076831){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4);ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext, +salt:salt})}};var SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg);var ciphertext=encryptor.finalize(message);var cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher, +ciphertext,key,cfg){cfg=this.cfg.extend(cfg);ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){if(typeof ciphertext=="string")return format.parse(ciphertext,this);else return ciphertext}});var C_kdf=C.kdf={};var OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){if(!salt)salt=WordArray.random(64/8);var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password, +salt);var iv=WordArray.create(key.words.slice(keySize),ivSize*4);key.sigBytes=keySize*4;return CipherParams.create({key:key,iv:iv,salt:salt})}};var PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message, +derivedParams.key,cfg);ciphertext.mixIn(derivedParams);return ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg);ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}()})},{"./core":5,"./evpkdf":8}],5:[function(require,module,exports){(function(root, +factory){if(typeof exports==="object")module.exports=exports=factory();else if(typeof define==="function"&&define.amd)define([],factory);else root.CryptoJS=factory()})(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var create=Object.create||function(){function F(){}return function(obj){var subtype;F.prototype=obj;subtype=new F;F.prototype=null;return subtype}}();var C={};var C_lib=C.lib={};var Base=C_lib.Base=function(){return{extend:function(overrides){var subtype=create(this);if(overrides)subtype.mixIn(overrides); +if(!subtype.hasOwnProperty("init")||this.init===subtype.init)subtype.init=function(){subtype.$super.init.apply(this,arguments)};subtype.init.prototype=subtype;subtype.$super=this;return subtype},create:function(){var instance=this.extend();instance.init.apply(instance,arguments);return instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)if(properties.hasOwnProperty(propertyName))this[propertyName]=properties[propertyName];if(properties.hasOwnProperty("toString"))this.toString= +properties.toString},clone:function(){return this.init.prototype.extend(this)}}}();var WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[];if(sigBytes!=undefined)this.sigBytes=sigBytes;else this.sigBytes=words.length*4},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words;var thatWords=wordArray.words;var thisSigBytes=this.sigBytes;var thatSigBytes=wordArray.sigBytes;this.clamp();if(thisSigBytes% +4)for(var i=0;i>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else for(var i=0;i>>2]=thatWords[i>>>2];this.sigBytes+=thatSigBytes;return this},clamp:function(){var words=this.words;var sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8;words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);clone.words=this.words.slice(0);return clone}, +random:function(nBytes){var words=[];var r=function(m_w){var m_w=m_w;var m_z=987654321;var mask=4294967295;return function(){m_z=36969*(m_z&65535)+(m_z>>16)&mask;m_w=18E3*(m_w&65535)+(m_w>>16)&mask;var result=(m_z<<16)+m_w&mask;result/=4294967296;result+=0.5;return result*(Math.random()>0.5?1:-1)}};for(var i=0,rcache;i>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16));hexChars.push((bite&15).toString(16))}return hexChars.join("")},parse:function(hexStr){var hexStrLength=hexStr.length;var words=[];for(var i=0;i>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}};var Latin1=C_enc.Latin1= +{stringify:function(wordArray){var words=wordArray.words;var sigBytes=wordArray.sigBytes;var latin1Chars=[];for(var i=0;i>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){var latin1StrLength=latin1Str.length;var words=[];for(var i=0;i>>2]|=(latin1Str.charCodeAt(i)&255)<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}};var Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data"); +}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}};var BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init;this._nDataBytes=0},_append:function(data){if(typeof data=="string")data=Utf8.parse(data);this._data.concat(data);this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data;var dataWords=data.words;var dataSigBytes=data.sigBytes;var blockSize=this.blockSize;var blockSizeBytes= +blockSize*4;var nBlocksReady=dataSigBytes/blockSizeBytes;if(doFlush)nBlocksReady=Math.ceil(nBlocksReady);else nBlocksReady=Math.max((nBlocksReady|0)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize;var nBytesReady=Math.min(nWordsReady*4,dataSigBytes);if(nWordsReady){for(var offset=0;offset>>2]>>>24-i%4*8&255;var byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255;var byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255; +var triplet=byte1<<16|byte2<<8|byte3;for(var j=0;j<4&&i+j*0.75>>6*(3-j)&63))}var paddingChar=map.charAt(64);if(paddingChar)while(base64Chars.length%4)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length;var map=this._map;var reverseMap=this._reverseMap;if(!reverseMap){reverseMap=this._reverseMap=[];for(var j=0;j>>6-i%4*2;words[nBytes>>>2]|=(bits1| +bits2)<<24-nBytes%4*8;nBytes++}return WordArray.create(words,nBytes)}})();return CryptoJS.enc.Base64})},{"./core":5}],7:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var C_enc=C.enc;var Utf16BE=C_enc.Utf16=C_enc.Utf16BE= +{stringify:function(wordArray){var words=wordArray.words;var sigBytes=wordArray.sigBytes;var utf16Chars=[];for(var i=0;i>>2]>>>16-i%4*8&65535;utf16Chars.push(String.fromCharCode(codePoint))}return utf16Chars.join("")},parse:function(utf16Str){var utf16StrLength=utf16Str.length;var words=[];for(var i=0;i>>1]|=utf16Str.charCodeAt(i)<<16-i%2*16;return WordArray.create(words,utf16StrLength*2)}};C_enc.Utf16LE={stringify:function(wordArray){var words= +wordArray.words;var sigBytes=wordArray.sigBytes;var utf16Chars=[];for(var i=0;i>>2]>>>16-i%4*8&65535);utf16Chars.push(String.fromCharCode(codePoint))}return utf16Chars.join("")},parse:function(utf16Str){var utf16StrLength=utf16Str.length;var words=[];for(var i=0;i>>1]|=swapEndian(utf16Str.charCodeAt(i)<<16-i%2*16);return WordArray.create(words,utf16StrLength*2)}};function swapEndian(word){return word<<8&4278255360|word>>> +8&16711935}})();return CryptoJS.enc.Utf16})},{"./core":5}],8:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./sha1"),require("./hmac"));else if(typeof define==="function"&&define.amd)define(["./core","./sha1","./hmac"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var C_algo=C.algo;var MD5= +C_algo.MD5;var EvpKDF=C_algo.EvpKDF=Base.extend({cfg:Base.extend({keySize:128/32,hasher:MD5,iterations:1}),init:function(cfg){this.cfg=this.cfg.extend(cfg)},compute:function(password,salt){var cfg=this.cfg;var hasher=cfg.hasher.create();var derivedKey=WordArray.create();var derivedKeyWords=derivedKey.words;var keySize=cfg.keySize;var iterations=cfg.iterations;while(derivedKeyWords.lengthhasherBlockSizeBytes)key=hasher.finalize(key);key.clamp();var oKey=this._oKey=key.clone();var iKey=this._iKey=key.clone();var oKeyWords=oKey.words;var iKeyWords=iKey.words;for(var i=0;i>>2]|=typedArray[i]<<24-i%4*8;superInit.call(this,words,typedArrayByteLength)}else superInit.apply(this,arguments)};subInit.prototype=WordArray})();return CryptoJS.lib.WordArray})}, +{"./core":5}],13:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var T=[];(function(){for(var i=0;i<64;i++)T[i]=Math.abs(Math.sin(i+1))*4294967296|0})();var MD5=C_algo.MD5= +Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(M,offset){for(var i=0;i<16;i++){var offset_i=offset+i;var M_offset_i=M[offset_i];M[offset_i]=(M_offset_i<<8|M_offset_i>>>24)&16711935|(M_offset_i<<24|M_offset_i>>>8)&4278255360}var H=this._hash.words;var M_offset_0=M[offset+0];var M_offset_1=M[offset+1];var M_offset_2=M[offset+2];var M_offset_3=M[offset+3];var M_offset_4=M[offset+4];var M_offset_5=M[offset+5];var M_offset_6= +M[offset+6];var M_offset_7=M[offset+7];var M_offset_8=M[offset+8];var M_offset_9=M[offset+9];var M_offset_10=M[offset+10];var M_offset_11=M[offset+11];var M_offset_12=M[offset+12];var M_offset_13=M[offset+13];var M_offset_14=M[offset+14];var M_offset_15=M[offset+15];var a=H[0];var b=H[1];var c=H[2];var d=H[3];a=FF(a,b,c,d,M_offset_0,7,T[0]);d=FF(d,a,b,c,M_offset_1,12,T[1]);c=FF(c,d,a,b,M_offset_2,17,T[2]);b=FF(b,c,d,a,M_offset_3,22,T[3]);a=FF(a,b,c,d,M_offset_4,7,T[4]);d=FF(d,a,b,c,M_offset_5,12, +T[5]);c=FF(c,d,a,b,M_offset_6,17,T[6]);b=FF(b,c,d,a,M_offset_7,22,T[7]);a=FF(a,b,c,d,M_offset_8,7,T[8]);d=FF(d,a,b,c,M_offset_9,12,T[9]);c=FF(c,d,a,b,M_offset_10,17,T[10]);b=FF(b,c,d,a,M_offset_11,22,T[11]);a=FF(a,b,c,d,M_offset_12,7,T[12]);d=FF(d,a,b,c,M_offset_13,12,T[13]);c=FF(c,d,a,b,M_offset_14,17,T[14]);b=FF(b,c,d,a,M_offset_15,22,T[15]);a=GG(a,b,c,d,M_offset_1,5,T[16]);d=GG(d,a,b,c,M_offset_6,9,T[17]);c=GG(c,d,a,b,M_offset_11,14,T[18]);b=GG(b,c,d,a,M_offset_0,20,T[19]);a=GG(a,b,c,d,M_offset_5, +5,T[20]);d=GG(d,a,b,c,M_offset_10,9,T[21]);c=GG(c,d,a,b,M_offset_15,14,T[22]);b=GG(b,c,d,a,M_offset_4,20,T[23]);a=GG(a,b,c,d,M_offset_9,5,T[24]);d=GG(d,a,b,c,M_offset_14,9,T[25]);c=GG(c,d,a,b,M_offset_3,14,T[26]);b=GG(b,c,d,a,M_offset_8,20,T[27]);a=GG(a,b,c,d,M_offset_13,5,T[28]);d=GG(d,a,b,c,M_offset_2,9,T[29]);c=GG(c,d,a,b,M_offset_7,14,T[30]);b=GG(b,c,d,a,M_offset_12,20,T[31]);a=HH(a,b,c,d,M_offset_5,4,T[32]);d=HH(d,a,b,c,M_offset_8,11,T[33]);c=HH(c,d,a,b,M_offset_11,16,T[34]);b=HH(b,c,d,a,M_offset_14, +23,T[35]);a=HH(a,b,c,d,M_offset_1,4,T[36]);d=HH(d,a,b,c,M_offset_4,11,T[37]);c=HH(c,d,a,b,M_offset_7,16,T[38]);b=HH(b,c,d,a,M_offset_10,23,T[39]);a=HH(a,b,c,d,M_offset_13,4,T[40]);d=HH(d,a,b,c,M_offset_0,11,T[41]);c=HH(c,d,a,b,M_offset_3,16,T[42]);b=HH(b,c,d,a,M_offset_6,23,T[43]);a=HH(a,b,c,d,M_offset_9,4,T[44]);d=HH(d,a,b,c,M_offset_12,11,T[45]);c=HH(c,d,a,b,M_offset_15,16,T[46]);b=HH(b,c,d,a,M_offset_2,23,T[47]);a=II(a,b,c,d,M_offset_0,6,T[48]);d=II(d,a,b,c,M_offset_7,10,T[49]);c=II(c,d,a,b,M_offset_14, +15,T[50]);b=II(b,c,d,a,M_offset_5,21,T[51]);a=II(a,b,c,d,M_offset_12,6,T[52]);d=II(d,a,b,c,M_offset_3,10,T[53]);c=II(c,d,a,b,M_offset_10,15,T[54]);b=II(b,c,d,a,M_offset_1,21,T[55]);a=II(a,b,c,d,M_offset_8,6,T[56]);d=II(d,a,b,c,M_offset_15,10,T[57]);c=II(c,d,a,b,M_offset_6,15,T[58]);b=II(b,c,d,a,M_offset_13,21,T[59]);a=II(a,b,c,d,M_offset_4,6,T[60]);d=II(d,a,b,c,M_offset_11,10,T[61]);c=II(c,d,a,b,M_offset_2,15,T[62]);b=II(b,c,d,a,M_offset_9,21,T[63]);H[0]=H[0]+a|0;H[1]=H[1]+b|0;H[2]=H[2]+c|0;H[3]= +H[3]+d|0},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;var nBitsTotalH=Math.floor(nBitsTotal/4294967296);var nBitsTotalL=nBitsTotal;dataWords[(nBitsLeft+64>>>9<<4)+15]=(nBitsTotalH<<8|nBitsTotalH>>>24)&16711935|(nBitsTotalH<<24|nBitsTotalH>>>8)&4278255360;dataWords[(nBitsLeft+64>>>9<<4)+14]=(nBitsTotalL<<8|nBitsTotalL>>>24)&16711935|(nBitsTotalL<<24|nBitsTotalL>>>8)& +4278255360;data.sigBytes=(dataWords.length+1)*4;this._process();var hash=this._hash;var H=hash.words;for(var i=0;i<4;i++){var H_i=H[i];H[i]=(H_i<<8|H_i>>>24)&16711935|(H_i<<24|H_i>>>8)&4278255360}return hash},clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});function FF(a,b,c,d,x,s,t){var n=a+(b&c|~b&d)+x+t;return(n<>>32-s)+b}function GG(a,b,c,d,x,s,t){var n=a+(b&d|c&~d)+x+t;return(n<>>32-s)+b}function HH(a,b,c,d,x,s,t){var n=a+(b^c^d)+x+t; +return(n<>>32-s)+b}function II(a,b,c,d,x,s,t){var n=a+(c^(b|~d))+x+t;return(n<>>32-s)+b}C.MD5=Hasher._createHelper(MD5);C.HmacMD5=Hasher._createHmacHelper(MD5)})(Math);return CryptoJS.MD5})},{"./core":5}],14:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this, +function(CryptoJS){CryptoJS.mode.CFB=function(){var CFB=CryptoJS.lib.BlockCipherMode.extend();CFB.Encryptor=CFB.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;generateKeystreamAndEncrypt.call(this,words,offset,blockSize,cipher);this._prevBlock=words.slice(offset,offset+blockSize)}});CFB.Decryptor=CFB.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;var thisBlock=words.slice(offset,offset+blockSize); +generateKeystreamAndEncrypt.call(this,words,offset,blockSize,cipher);this._prevBlock=thisBlock}});function generateKeystreamAndEncrypt(words,offset,blockSize,cipher){var iv=this._iv;if(iv){var keystream=iv.slice(0);this._iv=undefined}else var keystream=this._prevBlock;cipher.encryptBlock(keystream,0);for(var i=0;i>24&255)===255){var b1=word>>16&255;var b2=word>>8&255;var b3=word&255;if(b1===255){b1=0;if(b2===255){b2=0;if(b3===255)b3=0;else++b3}else++b2}else++b1;word= +0;word+=b1<<16;word+=b2<<8;word+=b3}else word+=1<<24;return word}function incCounter(counter){if((counter[0]=incWord(counter[0]))===0)counter[1]=incWord(counter[1]);return counter}var Encryptor=CTRGladman.Encryptor=CTRGladman.extend({processBlock:function(words,offset){var cipher=this._cipher;var blockSize=cipher.blockSize;var iv=this._iv;var counter=this._counter;if(iv){counter=this._counter=iv.slice(0);this._iv=undefined}incCounter(counter);var keystream=counter.slice(0);cipher.encryptBlock(keystream, +0);for(var i=0;i>>2]|=nPaddingBytes<<24-lastBytePos%4*8;data.sigBytes+=nPaddingBytes},unpad:function(data){var nPaddingBytes=data.words[data.sigBytes-1>>>2]&255;data.sigBytes-=nPaddingBytes}};return CryptoJS.pad.Ansix923})},{"./cipher-core":4,"./core":5}],20:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core", +"./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.Iso10126={pad:function(data,blockSize){var blockSizeBytes=blockSize*4;var nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes;data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes-1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes<<24],1))},unpad:function(data){var nPaddingBytes=data.words[data.sigBytes-1>>>2]&255;data.sigBytes-=nPaddingBytes}};return CryptoJS.pad.Iso10126})},{"./cipher-core":4, +"./core":5}],21:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.Iso97971={pad:function(data,blockSize){data.concat(CryptoJS.lib.WordArray.create([2147483648],1));CryptoJS.pad.ZeroPadding.pad(data,blockSize)},unpad:function(data){CryptoJS.pad.ZeroPadding.unpad(data); +data.sigBytes--}};return CryptoJS.pad.Iso97971})},{"./cipher-core":4,"./core":5}],22:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}};return CryptoJS.pad.NoPadding})},{"./cipher-core":4, +"./core":5}],23:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){CryptoJS.pad.ZeroPadding={pad:function(data,blockSize){var blockSizeBytes=blockSize*4;data.clamp();data.sigBytes+=blockSizeBytes-(data.sigBytes%blockSizeBytes||blockSizeBytes)}, +unpad:function(data){var dataWords=data.words;var i=data.sigBytes-1;while(!(dataWords[i>>>2]>>>24-i%4*8&255))i--;data.sigBytes=i+1}};return CryptoJS.pad.ZeroPadding})},{"./cipher-core":4,"./core":5}],24:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./sha1"),require("./hmac"));else if(typeof define==="function"&&define.amd)define(["./core","./sha1","./hmac"],factory);else factory(root.CryptoJS)})(this, +function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var Base=C_lib.Base;var WordArray=C_lib.WordArray;var C_algo=C.algo;var SHA1=C_algo.SHA1;var HMAC=C_algo.HMAC;var PBKDF2=C_algo.PBKDF2=Base.extend({cfg:Base.extend({keySize:128/32,hasher:SHA1,iterations:1}),init:function(cfg){this.cfg=this.cfg.extend(cfg)},compute:function(password,salt){var cfg=this.cfg;var hmac=HMAC.create(cfg.hasher,password);var derivedKey=WordArray.create();var blockIndex=WordArray.create([1]);var derivedKeyWords= +derivedKey.words;var blockIndexWords=blockIndex.words;var keySize=cfg.keySize;var iterations=cfg.iterations;while(derivedKeyWords.length>>16,K[1],K[0]<<16|K[3]>>>16,K[2],K[1]<<16|K[0]>>>16,K[3],K[2]<<16|K[1]>>>16];var C=this._C=[K[2]<<16|K[2]>>> +16,K[0]&4294901760|K[1]&65535,K[3]<<16|K[3]>>>16,K[1]&4294901760|K[2]&65535,K[0]<<16|K[0]>>>16,K[2]&4294901760|K[3]&65535,K[1]<<16|K[1]>>>16,K[3]&4294901760|K[0]&65535];this._b=0;for(var i=0;i<4;i++)nextState.call(this);for(var i=0;i<8;i++)C[i]^=X[i+4&7];if(iv){var IV=iv.words;var IV_0=IV[0];var IV_1=IV[1];var i0=(IV_0<<8|IV_0>>>24)&16711935|(IV_0<<24|IV_0>>>8)&4278255360;var i2=(IV_1<<8|IV_1>>>24)&16711935|(IV_1<<24|IV_1>>>8)&4278255360;var i1=i0>>>16|i2&4294901760;var i3=i2<<16|i0&65535;C[0]^=i0; +C[1]^=i1;C[2]^=i2;C[3]^=i3;C[4]^=i0;C[5]^=i1;C[6]^=i2;C[7]^=i3;for(var i=0;i<4;i++)nextState.call(this)}},_doProcessBlock:function(M,offset){var X=this._X;nextState.call(this);S[0]=X[0]^X[5]>>>16^X[3]<<16;S[1]=X[2]^X[7]>>>16^X[5]<<16;S[2]=X[4]^X[1]>>>16^X[7]<<16;S[3]=X[6]^X[3]>>>16^X[1]<<16;for(var i=0;i<4;i++){S[i]=(S[i]<<8|S[i]>>>24)&16711935|(S[i]<<24|S[i]>>>8)&4278255360;M[offset+i]^=S[i]}},blockSize:128/32,ivSize:64/32});function nextState(){var X=this._X;var C=this._C;for(var i=0;i<8;i++)C_[i]= +C[i];C[0]=C[0]+1295307597+this._b|0;C[1]=C[1]+3545052371+(C[0]>>>0>>0?1:0)|0;C[2]=C[2]+886263092+(C[1]>>>0>>0?1:0)|0;C[3]=C[3]+1295307597+(C[2]>>>0>>0?1:0)|0;C[4]=C[4]+3545052371+(C[3]>>>0>>0?1:0)|0;C[5]=C[5]+886263092+(C[4]>>>0>>0?1:0)|0;C[6]=C[6]+1295307597+(C[5]>>>0>>0?1:0)|0;C[7]=C[7]+3545052371+(C[6]>>>0>>0?1:0)|0;this._b=C[7]>>>0>>0?1:0;for(var i=0;i<8;i++){var gx=X[i]+C[i];var ga=gx&65535;var gb=gx>>>16;var gh=((ga*ga>>>17)+ga*gb>>>15)+ +gb*gb;var gl=((gx&4294901760)*gx|0)+((gx&65535)*gx|0);G[i]=gh^gl}X[0]=G[0]+(G[7]<<16|G[7]>>>16)+(G[6]<<16|G[6]>>>16)|0;X[1]=G[1]+(G[0]<<8|G[0]>>>24)+G[7]|0;X[2]=G[2]+(G[1]<<16|G[1]>>>16)+(G[0]<<16|G[0]>>>16)|0;X[3]=G[3]+(G[2]<<8|G[2]>>>24)+G[1]|0;X[4]=G[4]+(G[3]<<16|G[3]>>>16)+(G[2]<<16|G[2]>>>16)|0;X[5]=G[5]+(G[4]<<8|G[4]>>>24)+G[3]|0;X[6]=G[6]+(G[5]<<16|G[5]>>>16)+(G[4]<<16|G[4]>>>16)|0;X[7]=G[7]+(G[6]<<8|G[6]>>>24)+G[5]|0}C.RabbitLegacy=StreamCipher._createHelper(RabbitLegacy)})();return CryptoJS.RabbitLegacy})}, +{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}],26:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"),require("./md5"),require("./evpkdf"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C= +CryptoJS;var C_lib=C.lib;var StreamCipher=C_lib.StreamCipher;var C_algo=C.algo;var S=[];var C_=[];var G=[];var Rabbit=C_algo.Rabbit=StreamCipher.extend({_doReset:function(){var K=this._key.words;var iv=this.cfg.iv;for(var i=0;i<4;i++)K[i]=(K[i]<<8|K[i]>>>24)&16711935|(K[i]<<24|K[i]>>>8)&4278255360;var X=this._X=[K[0],K[3]<<16|K[2]>>>16,K[1],K[0]<<16|K[3]>>>16,K[2],K[1]<<16|K[0]>>>16,K[3],K[2]<<16|K[1]>>>16];var C=this._C=[K[2]<<16|K[2]>>>16,K[0]&4294901760|K[1]&65535,K[3]<<16|K[3]>>>16,K[1]&4294901760| +K[2]&65535,K[0]<<16|K[0]>>>16,K[2]&4294901760|K[3]&65535,K[1]<<16|K[1]>>>16,K[3]&4294901760|K[0]&65535];this._b=0;for(var i=0;i<4;i++)nextState.call(this);for(var i=0;i<8;i++)C[i]^=X[i+4&7];if(iv){var IV=iv.words;var IV_0=IV[0];var IV_1=IV[1];var i0=(IV_0<<8|IV_0>>>24)&16711935|(IV_0<<24|IV_0>>>8)&4278255360;var i2=(IV_1<<8|IV_1>>>24)&16711935|(IV_1<<24|IV_1>>>8)&4278255360;var i1=i0>>>16|i2&4294901760;var i3=i2<<16|i0&65535;C[0]^=i0;C[1]^=i1;C[2]^=i2;C[3]^=i3;C[4]^=i0;C[5]^=i1;C[6]^=i2;C[7]^=i3; +for(var i=0;i<4;i++)nextState.call(this)}},_doProcessBlock:function(M,offset){var X=this._X;nextState.call(this);S[0]=X[0]^X[5]>>>16^X[3]<<16;S[1]=X[2]^X[7]>>>16^X[5]<<16;S[2]=X[4]^X[1]>>>16^X[7]<<16;S[3]=X[6]^X[3]>>>16^X[1]<<16;for(var i=0;i<4;i++){S[i]=(S[i]<<8|S[i]>>>24)&16711935|(S[i]<<24|S[i]>>>8)&4278255360;M[offset+i]^=S[i]}},blockSize:128/32,ivSize:64/32});function nextState(){var X=this._X;var C=this._C;for(var i=0;i<8;i++)C_[i]=C[i];C[0]=C[0]+1295307597+this._b|0;C[1]=C[1]+3545052371+(C[0]>>> +0>>0?1:0)|0;C[2]=C[2]+886263092+(C[1]>>>0>>0?1:0)|0;C[3]=C[3]+1295307597+(C[2]>>>0>>0?1:0)|0;C[4]=C[4]+3545052371+(C[3]>>>0>>0?1:0)|0;C[5]=C[5]+886263092+(C[4]>>>0>>0?1:0)|0;C[6]=C[6]+1295307597+(C[5]>>>0>>0?1:0)|0;C[7]=C[7]+3545052371+(C[6]>>>0>>0?1:0)|0;this._b=C[7]>>>0>>0?1:0;for(var i=0;i<8;i++){var gx=X[i]+C[i];var ga=gx&65535;var gb=gx>>>16;var gh=((ga*ga>>>17)+ga*gb>>>15)+gb*gb;var gl=((gx&4294901760)*gx|0)+((gx&65535)*gx|0);G[i]=gh^gl}X[0]= +G[0]+(G[7]<<16|G[7]>>>16)+(G[6]<<16|G[6]>>>16)|0;X[1]=G[1]+(G[0]<<8|G[0]>>>24)+G[7]|0;X[2]=G[2]+(G[1]<<16|G[1]>>>16)+(G[0]<<16|G[0]>>>16)|0;X[3]=G[3]+(G[2]<<8|G[2]>>>24)+G[1]|0;X[4]=G[4]+(G[3]<<16|G[3]>>>16)+(G[2]<<16|G[2]>>>16)|0;X[5]=G[5]+(G[4]<<8|G[4]>>>24)+G[3]|0;X[6]=G[6]+(G[5]<<16|G[5]>>>16)+(G[4]<<16|G[4]>>>16)|0;X[7]=G[7]+(G[6]<<8|G[6]>>>24)+G[5]|0}C.Rabbit=StreamCipher._createHelper(Rabbit)})();return CryptoJS.Rabbit})},{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}], +27:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"),require("./md5"),require("./evpkdf"),require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var StreamCipher=C_lib.StreamCipher;var C_algo=C.algo; +var RC4=C_algo.RC4=StreamCipher.extend({_doReset:function(){var key=this._key;var keyWords=key.words;var keySigBytes=key.sigBytes;var S=this._S=[];for(var i=0;i<256;i++)S[i]=i;for(var i=0,j=0;i<256;i++){var keyByteIndex=i%keySigBytes;var keyByte=keyWords[keyByteIndex>>>2]>>>24-keyByteIndex%4*8&255;j=(j+S[i]+keyByte)%256;var t=S[i];S[i]=S[j];S[j]=t}this._i=this._j=0},_doProcessBlock:function(M,offset){M[offset]^=generateKeystreamWord.call(this)},keySize:256/32,ivSize:0});function generateKeystreamWord(){var S= +this._S;var i=this._i;var j=this._j;var keystreamWord=0;for(var n=0;n<4;n++){i=(i+1)%256;j=(j+S[i])%256;var t=S[i];S[i]=S[j];S[j]=t;keystreamWord|=S[(S[i]+S[j])%256]<<24-n*8}this._i=i;this._j=j;return keystreamWord}C.RC4=StreamCipher._createHelper(RC4);var RC4Drop=C_algo.RC4Drop=RC4.extend({cfg:RC4.cfg.extend({drop:192}),_doReset:function(){RC4._doReset.call(this);for(var i=this.cfg.drop;i>0;i--)generateKeystreamWord.call(this)}});C.RC4Drop=StreamCipher._createHelper(RC4Drop)})();return CryptoJS.RC4})}, +{"./cipher-core":4,"./core":5,"./enc-base64":6,"./evpkdf":8,"./md5":13}],28:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var _zl=WordArray.create([0,1,2,3,4,5,6,7, +8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]);var _zr=WordArray.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]);var _sl=WordArray.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11, +13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]);var _sr=WordArray.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]);var _hl=WordArray.create([0,1518500249,1859775393,2400959708,2840853838]);var _hr=WordArray.create([1352829926,1548603684,1836072691,2053994217,0]);var RIPEMD160= +C_algo.RIPEMD160=Hasher.extend({_doReset:function(){this._hash=WordArray.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var i=0;i<16;i++){var offset_i=offset+i;var M_offset_i=M[offset_i];M[offset_i]=(M_offset_i<<8|M_offset_i>>>24)&16711935|(M_offset_i<<24|M_offset_i>>>8)&4278255360}var H=this._hash.words;var hl=_hl.words;var hr=_hr.words;var zl=_zl.words;var zr=_zr.words;var sl=_sl.words;var sr=_sr.words;var al,bl,cl,dl,el;var ar,br,cr,dr,er; +ar=al=H[0];br=bl=H[1];cr=cl=H[2];dr=dl=H[3];er=el=H[4];var t;for(var i=0;i<80;i+=1){t=al+M[offset+zl[i]]|0;if(i<16)t+=f1(bl,cl,dl)+hl[0];else if(i<32)t+=f2(bl,cl,dl)+hl[1];else if(i<48)t+=f3(bl,cl,dl)+hl[2];else if(i<64)t+=f4(bl,cl,dl)+hl[3];else t+=f5(bl,cl,dl)+hl[4];t=t|0;t=rotl(t,sl[i]);t=t+el|0;al=el;el=dl;dl=rotl(cl,10);cl=bl;bl=t;t=ar+M[offset+zr[i]]|0;if(i<16)t+=f5(br,cr,dr)+hr[0];else if(i<32)t+=f4(br,cr,dr)+hr[1];else if(i<48)t+=f3(br,cr,dr)+hr[2];else if(i<64)t+=f2(br,cr,dr)+hr[3];else t+= +f1(br,cr,dr)+hr[4];t=t|0;t=rotl(t,sr[i]);t=t+er|0;ar=er;er=dr;dr=rotl(cr,10);cr=br;br=t}t=H[1]+cl+dr|0;H[1]=H[2]+dl+er|0;H[2]=H[3]+el+ar|0;H[3]=H[4]+al+br|0;H[4]=H[0]+bl+cr|0;H[0]=t},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+64>>>9<<4)+14]=(nBitsTotal<<8|nBitsTotal>>>24)&16711935|(nBitsTotal<<24|nBitsTotal>>>8)&4278255360;data.sigBytes=(dataWords.length+ +1)*4;this._process();var hash=this._hash;var H=hash.words;for(var i=0;i<5;i++){var H_i=H[i];H[i]=(H_i<<8|H_i>>>24)&16711935|(H_i<<24|H_i>>>8)&4278255360}return hash},clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<>>32-n}C.RIPEMD160=Hasher._createHelper(RIPEMD160); +C.HmacRIPEMD160=Hasher._createHmacHelper(RIPEMD160)})(Math);return CryptoJS.RIPEMD160})},{"./core":5}],29:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var W=[];var SHA1= +C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){var H=this._hash.words;var a=H[0];var b=H[1];var c=H[2];var d=H[3];var e=H[4];for(var i=0;i<80;i++){if(i<16)W[i]=M[offset+i]|0;else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];if(i<20)t+=(b&c|~b&d)+1518500249;else if(i<40)t+=(b^c^d)+1859775393;else if(i<60)t+=(b&c|b&d|c&d)-1894007588;else t+=(b^ +c^d)-899497514;e=d;d=c;c=b<<30|b>>>2;b=a;a=t}H[0]=H[0]+a|0;H[1]=H[1]+b|0;H[2]=H[2]+c|0;H[3]=H[3]+d|0;H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296);dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal;data.sigBytes=dataWords.length*4;this._process();return this._hash},clone:function(){var clone= +Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});C.SHA1=Hasher._createHelper(SHA1);C.HmacSHA1=Hasher._createHmacHelper(SHA1)})();return CryptoJS.SHA1})},{"./core":5}],30:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./sha256"));else if(typeof define==="function"&&define.amd)define(["./core","./sha256"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C= +CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var C_algo=C.algo;var SHA256=C_algo.SHA256;var SHA224=C_algo.SHA224=SHA256.extend({_doReset:function(){this._hash=new WordArray.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var hash=SHA256._doFinalize.call(this);hash.sigBytes-=4;return hash}});C.SHA224=SHA256._createHelper(SHA224);C.HmacSHA224=SHA256._createHmacHelper(SHA224)})();return CryptoJS.SHA224})},{"./core":5,"./sha256":31}], +31:[function(require,module,exports){(function(root,factory){if(typeof exports==="object")module.exports=exports=factory(require("./core"));else if(typeof define==="function"&&define.amd)define(["./core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_algo=C.algo;var H=[];var K=[];(function(){function isPrime(n){var sqrtN=Math.sqrt(n);for(var factor=2;factor<=sqrtN;factor++)if(!(n% +factor))return false;return true}function getFractionalBits(n){return(n-(n|0))*4294967296|0}var n=2;var nPrime=0;while(nPrime<64){if(isPrime(n)){if(nPrime<8)H[nPrime]=getFractionalBits(Math.pow(n,1/2));K[nPrime]=getFractionalBits(Math.pow(n,1/3));nPrime++}n++}})();var W=[];var SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){var H=this._hash.words;var a=H[0];var b=H[1];var c=H[2];var d=H[3];var e=H[4];var f=H[5]; +var g=H[6];var h=H[7];for(var i=0;i<64;i++){if(i<16)W[i]=M[offset+i]|0;else{var gamma0x=W[i-15];var gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3;var gamma1x=W[i-2];var gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g;var maj=a&b^a&c^b&c;var sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22);var sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25);var t1=h+sigma1+ch+K[i]+W[i];var t2=sigma0+maj;h=g;g= +f;f=e;e=d+t1|0;d=c;c=b;b=a;a=t1+t2|0}H[0]=H[0]+a|0;H[1]=H[1]+b|0;H[2]=H[2]+c|0;H[3]=H[3]+d|0;H[4]=H[4]+e|0;H[5]=H[5]+f|0;H[6]=H[6]+g|0;H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296);dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal;data.sigBytes=dataWords.length*4;this._process();return this._hash}, +clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone}});C.SHA256=Hasher._createHelper(SHA256);C.HmacSHA256=Hasher._createHmacHelper(SHA256)})(Math);return CryptoJS.SHA256})},{"./core":5}],32:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./x64-core"));else if(typeof define==="function"&&define.amd)define(["./core","./x64-core"],factory);else factory(root.CryptoJS)})(this, +function(CryptoJS){(function(Math){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var Hasher=C_lib.Hasher;var C_x64=C.x64;var X64Word=C_x64.Word;var C_algo=C.algo;var RHO_OFFSETS=[];var PI_INDEXES=[];var ROUND_CONSTANTS=[];(function(){var x=1,y=0;for(var t=0;t<24;t++){RHO_OFFSETS[x+5*y]=(t+1)*(t+2)/2%64;var newX=y%5;var newY=(2*x+3*y)%5;x=newX;y=newY}for(var x=0;x<5;x++)for(var y=0;y<5;y++)PI_INDEXES[x+5*y]=y+(2*x+3*y)%5*5;var LFSR=1;for(var i=0;i<24;i++){var roundConstantMsw=0;var roundConstantLsw= +0;for(var j=0;j<7;j++){if(LFSR&1){var bitPosition=(1<>>24)&16711935|(M2i<<24|M2i>>>8)&4278255360;M2i1=(M2i1<<8|M2i1>>>24)&16711935|(M2i1<<24|M2i1>>>8)&4278255360;var lane=state[i];lane.high^=M2i1;lane.low^=M2i}for(var round=0;round<24;round++){for(var x=0;x<5;x++){var tMsw=0,tLsw=0;for(var y=0;y<5;y++){var lane= +state[x+5*y];tMsw^=lane.high;tLsw^=lane.low}var Tx=T[x];Tx.high=tMsw;Tx.low=tLsw}for(var x=0;x<5;x++){var Tx4=T[(x+4)%5];var Tx1=T[(x+1)%5];var Tx1Msw=Tx1.high;var Tx1Lsw=Tx1.low;var tMsw=Tx4.high^(Tx1Msw<<1|Tx1Lsw>>>31);var tLsw=Tx4.low^(Tx1Lsw<<1|Tx1Msw>>>31);for(var y=0;y<5;y++){var lane=state[x+5*y];lane.high^=tMsw;lane.low^=tLsw}}for(var laneIndex=1;laneIndex<25;laneIndex++){var lane=state[laneIndex];var laneMsw=lane.high;var laneLsw=lane.low;var rhoOffset=RHO_OFFSETS[laneIndex];if(rhoOffset< +32){var tMsw=laneMsw<>>32-rhoOffset;var tLsw=laneLsw<>>32-rhoOffset}else{var tMsw=laneLsw<>>64-rhoOffset;var tLsw=laneMsw<>>64-rhoOffset}var TPiLane=T[PI_INDEXES[laneIndex]];TPiLane.high=tMsw;TPiLane.low=tLsw}var T0=T[0];var state0=state[0];T0.high=state0.high;T0.low=state0.low;for(var x=0;x<5;x++)for(var y=0;y<5;y++){var laneIndex=x+5*y;var lane=state[laneIndex];var TLane=T[laneIndex];var Tx1Lane=T[(x+1)%5+5*y];var Tx2Lane= +T[(x+2)%5+5*y];lane.high=TLane.high^~Tx1Lane.high&Tx2Lane.high;lane.low=TLane.low^~Tx1Lane.low&Tx2Lane.low}var lane=state[0];var roundConstant=ROUND_CONSTANTS[round];lane.high^=roundConstant.high;lane.low^=roundConstant.low}},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;var blockSizeBits=this.blockSize*32;dataWords[nBitsLeft>>>5]|=1<<24-nBitsLeft%32;dataWords[(Math.ceil((nBitsLeft+1)/blockSizeBits)*blockSizeBits>>> +5)-1]|=128;data.sigBytes=dataWords.length*4;this._process();var state=this._state;var outputLengthBytes=this.cfg.outputLength/8;var outputLengthLanes=outputLengthBytes/8;var hashWords=[];for(var i=0;i>>24)&16711935|(laneMsw<<24|laneMsw>>>8)&4278255360;laneLsw=(laneLsw<<8|laneLsw>>>24)&16711935|(laneLsw<<24|laneLsw>>>8)&4278255360;hashWords.push(laneLsw);hashWords.push(laneMsw)}return new WordArray.init(hashWords, +outputLengthBytes)},clone:function(){var clone=Hasher.clone.call(this);var state=clone._state=this._state.slice(0);for(var i=0;i<25;i++)state[i]=state[i].clone();return clone}});C.SHA3=Hasher._createHelper(SHA3);C.HmacSHA3=Hasher._createHmacHelper(SHA3)})(Math);return CryptoJS.SHA3})},{"./core":5,"./x64-core":36}],33:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./x64-core"),require("./sha512")); +else if(typeof define==="function"&&define.amd)define(["./core","./x64-core","./sha512"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_x64=C.x64;var X64Word=C_x64.Word;var X64WordArray=C_x64.WordArray;var C_algo=C.algo;var SHA512=C_algo.SHA512;var SHA384=C_algo.SHA384=SHA512.extend({_doReset:function(){this._hash=new X64WordArray.init([new X64Word.init(3418070365,3238371032),new X64Word.init(1654270250,914150663),new X64Word.init(2438529370,812702999), +new X64Word.init(355462360,4144912697),new X64Word.init(1731405415,4290775857),new X64Word.init(2394180231,1750603025),new X64Word.init(3675008525,1694076839),new X64Word.init(1203062813,3204075428)])},_doFinalize:function(){var hash=SHA512._doFinalize.call(this);hash.sigBytes-=16;return hash}});C.SHA384=SHA512._createHelper(SHA384);C.HmacSHA384=SHA512._createHmacHelper(SHA384)})();return CryptoJS.SHA384})},{"./core":5,"./sha512":34,"./x64-core":36}],34:[function(require,module,exports){(function(root, +factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./x64-core"));else if(typeof define==="function"&&define.amd)define(["./core","./x64-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var Hasher=C_lib.Hasher;var C_x64=C.x64;var X64Word=C_x64.Word;var X64WordArray=C_x64.WordArray;var C_algo=C.algo;function X64Word_create(){return X64Word.create.apply(X64Word,arguments)}var K=[X64Word_create(1116352408, +3609767458),X64Word_create(1899447441,602891725),X64Word_create(3049323471,3964484399),X64Word_create(3921009573,2173295548),X64Word_create(961987163,4081628472),X64Word_create(1508970993,3053834265),X64Word_create(2453635748,2937671579),X64Word_create(2870763221,3664609560),X64Word_create(3624381080,2734883394),X64Word_create(310598401,1164996542),X64Word_create(607225278,1323610764),X64Word_create(1426881987,3590304994),X64Word_create(1925078388,4068182383),X64Word_create(2162078206,991336113), +X64Word_create(2614888103,633803317),X64Word_create(3248222580,3479774868),X64Word_create(3835390401,2666613458),X64Word_create(4022224774,944711139),X64Word_create(264347078,2341262773),X64Word_create(604807628,2007800933),X64Word_create(770255983,1495990901),X64Word_create(1249150122,1856431235),X64Word_create(1555081692,3175218132),X64Word_create(1996064986,2198950837),X64Word_create(2554220882,3999719339),X64Word_create(2821834349,766784016),X64Word_create(2952996808,2566594879),X64Word_create(3210313671, +3203337956),X64Word_create(3336571891,1034457026),X64Word_create(3584528711,2466948901),X64Word_create(113926993,3758326383),X64Word_create(338241895,168717936),X64Word_create(666307205,1188179964),X64Word_create(773529912,1546045734),X64Word_create(1294757372,1522805485),X64Word_create(1396182291,2643833823),X64Word_create(1695183700,2343527390),X64Word_create(1986661051,1014477480),X64Word_create(2177026350,1206759142),X64Word_create(2456956037,344077627),X64Word_create(2730485921,1290863460),X64Word_create(2820302411, +3158454273),X64Word_create(3259730800,3505952657),X64Word_create(3345764771,106217008),X64Word_create(3516065817,3606008344),X64Word_create(3600352804,1432725776),X64Word_create(4094571909,1467031594),X64Word_create(275423344,851169720),X64Word_create(430227734,3100823752),X64Word_create(506948616,1363258195),X64Word_create(659060556,3750685593),X64Word_create(883997877,3785050280),X64Word_create(958139571,3318307427),X64Word_create(1322822218,3812723403),X64Word_create(1537002063,2003034995),X64Word_create(1747873779, +3602036899),X64Word_create(1955562222,1575990012),X64Word_create(2024104815,1125592928),X64Word_create(2227730452,2716904306),X64Word_create(2361852424,442776044),X64Word_create(2428436474,593698344),X64Word_create(2756734187,3733110249),X64Word_create(3204031479,2999351573),X64Word_create(3329325298,3815920427),X64Word_create(3391569614,3928383900),X64Word_create(3515267271,566280711),X64Word_create(3940187606,3454069534),X64Word_create(4118630271,4000239992),X64Word_create(116418474,1914138554), +X64Word_create(174292421,2731055270),X64Word_create(289380356,3203993006),X64Word_create(460393269,320620315),X64Word_create(685471733,587496836),X64Word_create(852142971,1086792851),X64Word_create(1017036298,365543100),X64Word_create(1126000580,2618297676),X64Word_create(1288033470,3409855158),X64Word_create(1501505948,4234509866),X64Word_create(1607167915,987167468),X64Word_create(1816402316,1246189591)];var W=[];(function(){for(var i=0;i<80;i++)W[i]=X64Word_create()})();var SHA512=C_algo.SHA512= +Hasher.extend({_doReset:function(){this._hash=new X64WordArray.init([new X64Word.init(1779033703,4089235720),new X64Word.init(3144134277,2227873595),new X64Word.init(1013904242,4271175723),new X64Word.init(2773480762,1595750129),new X64Word.init(1359893119,2917565137),new X64Word.init(2600822924,725511199),new X64Word.init(528734635,4215389547),new X64Word.init(1541459225,327033209)])},_doProcessBlock:function(M,offset){var H=this._hash.words;var H0=H[0];var H1=H[1];var H2=H[2];var H3=H[3];var H4= +H[4];var H5=H[5];var H6=H[6];var H7=H[7];var H0h=H0.high;var H0l=H0.low;var H1h=H1.high;var H1l=H1.low;var H2h=H2.high;var H2l=H2.low;var H3h=H3.high;var H3l=H3.low;var H4h=H4.high;var H4l=H4.low;var H5h=H5.high;var H5l=H5.low;var H6h=H6.high;var H6l=H6.low;var H7h=H7.high;var H7l=H7.low;var ah=H0h;var al=H0l;var bh=H1h;var bl=H1l;var ch=H2h;var cl=H2l;var dh=H3h;var dl=H3l;var eh=H4h;var el=H4l;var fh=H5h;var fl=H5l;var gh=H6h;var gl=H6l;var hh=H7h;var hl=H7l;for(var i=0;i<80;i++){var Wi=W[i];if(i< +16){var Wih=Wi.high=M[offset+i*2]|0;var Wil=Wi.low=M[offset+i*2+1]|0}else{var gamma0x=W[i-15];var gamma0xh=gamma0x.high;var gamma0xl=gamma0x.low;var gamma0h=(gamma0xh>>>1|gamma0xl<<31)^(gamma0xh>>>8|gamma0xl<<24)^gamma0xh>>>7;var gamma0l=(gamma0xl>>>1|gamma0xh<<31)^(gamma0xl>>>8|gamma0xh<<24)^(gamma0xl>>>7|gamma0xh<<25);var gamma1x=W[i-2];var gamma1xh=gamma1x.high;var gamma1xl=gamma1x.low;var gamma1h=(gamma1xh>>>19|gamma1xl<<13)^(gamma1xh<<3|gamma1xl>>>29)^gamma1xh>>>6;var gamma1l=(gamma1xl>>>19| +gamma1xh<<13)^(gamma1xl<<3|gamma1xh>>>29)^(gamma1xl>>>6|gamma1xh<<26);var Wi7=W[i-7];var Wi7h=Wi7.high;var Wi7l=Wi7.low;var Wi16=W[i-16];var Wi16h=Wi16.high;var Wi16l=Wi16.low;var Wil=gamma0l+Wi7l;var Wih=gamma0h+Wi7h+(Wil>>>0>>0?1:0);var Wil=Wil+gamma1l;var Wih=Wih+gamma1h+(Wil>>>0>>0?1:0);var Wil=Wil+Wi16l;var Wih=Wih+Wi16h+(Wil>>>0>>0?1:0);Wi.high=Wih;Wi.low=Wil}var chh=eh&fh^~eh&gh;var chl=el&fl^~el≷var majh=ah&bh^ah&ch^bh&ch;var majl=al&bl^al&cl^bl&cl;var sigma0h= +(ah>>>28|al<<4)^(ah<<30|al>>>2)^(ah<<25|al>>>7);var sigma0l=(al>>>28|ah<<4)^(al<<30|ah>>>2)^(al<<25|ah>>>7);var sigma1h=(eh>>>14|el<<18)^(eh>>>18|el<<14)^(eh<<23|el>>>9);var sigma1l=(el>>>14|eh<<18)^(el>>>18|eh<<14)^(el<<23|eh>>>9);var Ki=K[i];var Kih=Ki.high;var Kil=Ki.low;var t1l=hl+sigma1l;var t1h=hh+sigma1h+(t1l>>>0>>0?1:0);var t1l=t1l+chl;var t1h=t1h+chh+(t1l>>>0>>0?1:0);var t1l=t1l+Kil;var t1h=t1h+Kih+(t1l>>>0>>0?1:0);var t1l=t1l+Wil;var t1h=t1h+Wih+(t1l>>>0>>0?1:0);var t2l= +sigma0l+majl;var t2h=sigma0h+majh+(t2l>>>0>>0?1:0);hh=gh;hl=gl;gh=fh;gl=fl;fh=eh;fl=el;el=dl+t1l|0;eh=dh+t1h+(el>>>0
    >>0?1:0)|0;dh=ch;dl=cl;ch=bh;cl=bl;bh=ah;bl=al;al=t1l+t2l|0;ah=t1h+t2h+(al>>>0>>0?1:0)|0}H0l=H0.low=H0l+al;H0.high=H0h+ah+(H0l>>>0>>0?1:0);H1l=H1.low=H1l+bl;H1.high=H1h+bh+(H1l>>>0>>0?1:0);H2l=H2.low=H2l+cl;H2.high=H2h+ch+(H2l>>>0>>0?1:0);H3l=H3.low=H3l+dl;H3.high=H3h+dh+(H3l>>>0
    >>0?1:0);H4l=H4.low=H4l+el;H4.high=H4h+eh+(H4l>>>0>>0?1:0);H5l=H5.low= +H5l+fl;H5.high=H5h+fh+(H5l>>>0>>0?1:0);H6l=H6.low=H6l+gl;H6.high=H6h+gh+(H6l>>>0>>0?1:0);H7l=H7.low=H7l+hl;H7.high=H7h+hh+(H7l>>>0>>0?1:0)},_doFinalize:function(){var data=this._data;var dataWords=data.words;var nBitsTotal=this._nDataBytes*8;var nBitsLeft=data.sigBytes*8;dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;dataWords[(nBitsLeft+128>>>10<<5)+30]=Math.floor(nBitsTotal/4294967296);dataWords[(nBitsLeft+128>>>10<<5)+31]=nBitsTotal;data.sigBytes=dataWords.length*4;this._process(); +var hash=this._hash.toX32();return hash},clone:function(){var clone=Hasher.clone.call(this);clone._hash=this._hash.clone();return clone},blockSize:1024/32});C.SHA512=Hasher._createHelper(SHA512);C.HmacSHA512=Hasher._createHmacHelper(SHA512)})();return CryptoJS.SHA512})},{"./core":5,"./x64-core":36}],35:[function(require,module,exports){(function(root,factory,undef){if(typeof exports==="object")module.exports=exports=factory(require("./core"),require("./enc-base64"),require("./md5"),require("./evpkdf"), +require("./cipher-core"));else if(typeof define==="function"&&define.amd)define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],factory);else factory(root.CryptoJS)})(this,function(CryptoJS){(function(){var C=CryptoJS;var C_lib=C.lib;var WordArray=C_lib.WordArray;var BlockCipher=C_lib.BlockCipher;var C_algo=C.algo;var PC1=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4];var PC2= +[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32];var BIT_SHIFTS=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28];var SBOX_P=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890, +671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0, +134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304, +218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288, +436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660, +7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0, +25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648, +589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648, +1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040, +45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040, +122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8, +896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616, +6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032, +368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728, +2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728, +2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}];var SBOX_MASK=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679];var DES=C_algo.DES=BlockCipher.extend({_doReset:function(){var key=this._key;var keyWords=key.words;var keyBits=[];for(var i=0;i<56;i++){var keyBitPos=PC1[i]-1;keyBits[i]=keyWords[keyBitPos>>>5]>>>31-keyBitPos%32&1}var subKeys=this._subKeys=[];for(var nSubKey= +0;nSubKey<16;nSubKey++){var subKey=subKeys[nSubKey]=[];var bitShift=BIT_SHIFTS[nSubKey];for(var i=0;i<24;i++){subKey[i/6|0]|=keyBits[(PC2[i]-1+bitShift)%28]<<31-i%6;subKey[4+(i/6|0)]|=keyBits[28+(PC2[i+24]-1+bitShift)%28]<<31-i%6}subKey[0]=subKey[0]<<1|subKey[0]>>>31;for(var i=1;i<7;i++)subKey[i]=subKey[i]>>>(i-1)*4+3;subKey[7]=subKey[7]<<5|subKey[7]>>>27}var invSubKeys=this._invSubKeys=[];for(var i=0;i<16;i++)invSubKeys[i]=subKeys[15-i]},encryptBlock:function(M,offset){this._doCryptBlock(M,offset, +this._subKeys)},decryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._invSubKeys)},_doCryptBlock:function(M,offset,subKeys){this._lBlock=M[offset];this._rBlock=M[offset+1];exchangeLR.call(this,4,252645135);exchangeLR.call(this,16,65535);exchangeRL.call(this,2,858993459);exchangeRL.call(this,8,16711935);exchangeLR.call(this,1,1431655765);for(var round=0;round<16;round++){var subKey=subKeys[round];var lBlock=this._lBlock;var rBlock=this._rBlock;var f=0;for(var i=0;i<8;i++)f|=SBOX_P[i][((rBlock^ +subKey[i])&SBOX_MASK[i])>>>0];this._lBlock=rBlock;this._rBlock=lBlock^f}var t=this._lBlock;this._lBlock=this._rBlock;this._rBlock=t;exchangeLR.call(this,1,1431655765);exchangeRL.call(this,8,16711935);exchangeRL.call(this,2,858993459);exchangeLR.call(this,16,65535);exchangeLR.call(this,4,252645135);M[offset]=this._lBlock;M[offset+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function exchangeLR(offset,mask){var t=(this._lBlock>>>offset^this._rBlock)&mask;this._rBlock^=t;this._lBlock^= +t<>>offset^this._lBlock)&mask;this._lBlock^=t;this._rBlock^=t<=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}},"+CM9":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("ot5s")(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n("NNrz")(o)),"Array",{indexOf:function(t){return a?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},"+E39":function(t,e,n){t.exports=!n("S82l")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"+MLA":function(t,e,n){var r=n("EqjI"),i=n("06OY").onFreeze;n("uqUo")("freeze",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},"+Mt+":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("7gX0"),o=n("OzIq"),a=n("7O1s"),s=n("nphH");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,i.Promise||o.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},"+ZMJ":function(t,e,n){var r=n("lOnJ");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},"+gg+":function(t,e,n){var r=n("TQ3y")["__core-js_shared__"];t.exports=r},"+tPU":function(t,e,n){n("xGkn");for(var r=n("7KvD"),i=n("hJx8"),o=n("/bQp"),a=n("dSzd")("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function p(t){return null==t?"":Array.isArray(t)||u(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function d(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}var g=Object.prototype.hasOwnProperty;function _(t,e){return g.call(t,e)}function b(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,x=b(function(t){return t.replace(w,function(t,e){return e?e.toUpperCase():""})}),S=b(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),k=/\B([A-Z])/g,C=b(function(t){return t.replace(k,"-$1").toLowerCase()});var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function E(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function O(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,J=G&&G.indexOf("edge/")>0,Z=(G&&G.indexOf("android"),G&&/iphone|ipad|ipod|ios/.test(G)||"ios"===Y),tt=(G&&/chrome\/\d+/.test(G),G&&/phantomjs/.test(G),G&&G.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(q)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,rt)}catch(t){}var it=function(){return void 0===V&&(V=!q&&!X&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),V},ot=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,ct="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);st="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=P,lt=0,ft=function(){this.id=lt++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){y(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(o&&!_(i,"default"))a=!1;else if(""===a||a===C(t)){var c=Ut(String,i.type);(c<0||s0&&(le((u=t(u,(n||"")+"_"+c))[0])&&le(f)&&(s[l]=gt(f.text+u[0].text),u.shift()),s.push.apply(s,u)):a(u)?le(f)?s[l]=gt(f.text+u):""!==u&&s.push(gt(u)):le(u)&&le(f)?s[l]=gt(f.text+u.text):(o(e._isVList)&&i(u.tag)&&r(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+c+"__"),s.push(u)));return s}(t):void 0}function le(t){return i(t)&&i(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=ct?Reflect.ownKeys(t):Object.keys(t),i=0;idocument.createEvent("Event").timeStamp&&(ln=function(){return performance.now()});var hn=0,pn=function(t,e,n,r,i){this.vm=t,i&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++hn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new st,this.newDepIds=new st,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!$.test(t)){var e=t.split(".");return function(t){for(var n=0;ncn&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);an||(an=!0,ee(fn))}}(this)},pn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||s(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Ht(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},pn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},pn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var dn={enumerable:!0,configurable:!0,get:P,set:P};function vn(t,e,n){dn.get=function(){return this[e][n]},dn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,dn)}function mn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[],o=!t.$parent;o||kt(!1);var a=function(o){i.push(o);var a=Nt(o,e,n,t);Et(r,o,a),o in t||vn(t,"_props",o)};for(var s in e)a(s);kt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?P:T(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;u(e=t._data="function"==typeof e?function(t,e){pt();try{return t.call(e,e)}catch(t){return Ht(t,e,"data()"),{}}finally{dt()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,i=(t.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&_(r,o)||U(o)||vn(t,"_data",o)}Tt(e,!0)}(t):Tt(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=it();for(var i in e){var o=e[i],a="function"==typeof o?o:o.get;0,r||(n[i]=new pn(t,a||P,P,yn)),i in t||gn(t,i,o)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function On(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var a=n[o];if(a){var s=Tn(a.componentOptions);s&&!e(s)&&An(n,o,r,i)}}}function An(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=xn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Rt(Sn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ke(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,r=t.$vnode=e._parentVnode,i=r&&r.context;t.$slots=he(e._renderChildren,i),t.$scopedSlots=n,t._c=function(e,n,r,i){return Ue(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Ue(t,e,n,r,i,!0)};var o=r&&r.data;Et(t,"$attrs",o&&o.attrs||n,null,!0),Et(t,"$listeners",e._parentListeners||n,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(kt(!1),Object.keys(e).forEach(function(n){Et(t,n,e[n])}),kt(!0))}(e),mn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(kn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Ot,t.prototype.$delete=At,t.prototype.$watch=function(t,e,n){if(u(e))return wn(this,t,e,n);(n=n||{}).user=!0;var r=new pn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Ht(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(kn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var i=0,o=t.length;i1?E(n):n;for(var r=E(arguments,1),i='event handler for "'+t+'"',o=0,a=n.length;oparseInt(this.max)&&An(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return B}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:O,mergeOptions:Rt,defineReactive:Et},t.set=Ot,t.delete=At,t.nextTick=ee,t.observable=function(t){return Tt(t),t},t.options=Object.create(null),F.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,O(t.options.components,Mn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Rt(this.options,t),this}}(t),Cn(t),function(t){F.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(kn),Object.defineProperty(kn.prototype,"$isServer",{get:it}),Object.defineProperty(kn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kn,"FunctionalRenderContext",{value:je}),kn.version="2.6.6";var jn=v("style,class"),In=v("input,textarea,option,select,progress"),Ln=v("contenteditable,draggable,spellcheck"),Dn=v("events,caret,typing,plaintext-only"),Rn=function(t,e){return Un(e)||"false"===e?"false":"contenteditable"===t&&Dn(e)?e:"true"},Fn=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Nn="http://www.w3.org/1999/xlink",Bn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},zn=function(t){return Bn(t)?t.slice(6,t.length):""},Un=function(t){return null==t||!1===t};function Hn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=$n(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=$n(e,n.data));return function(t,e){if(i(t)||i(e))return Vn(t,Wn(e));return""}(e.staticClass,e.class)}function $n(t,e){return{staticClass:Vn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Vn(t,e){return t?e?t+" "+e:t:e||""}function Wn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?dr(t,e,n):Fn(e)?Un(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Ln(e)?t.setAttribute(e,Rn(e,n)):Bn(e)?Un(n)?t.removeAttributeNS(Nn,zn(e)):t.setAttributeNS(Nn,e,n):dr(t,e,n)}function dr(t,e,n){if(Un(n))t.removeAttribute(e);else{if(K&&!Q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var vr={create:hr,update:hr};function mr(t,e){var n=e.elm,o=e.data,a=t.data;if(!(r(o.staticClass)&&r(o.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var s=Hn(e),c=n._transitionClasses;i(c)&&(s=Vn(s,Wn(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var yr,gr={create:mr,update:mr},_r="__r",br="__c";function wr(t,e,n){var r=yr;return function i(){null!==e.apply(null,arguments)&&kr(t,i,n,r)}}var xr=Xt&&!(tt&&Number(tt[1])<=53);function Sr(t,e,n,r){if(xr){var i=un,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||0===t.timeStamp||t.target.ownerDocument!==document)return o.apply(this,arguments)}}yr.addEventListener(t,e,nt?{capture:n,passive:r}:n)}function kr(t,e,n,r){(r||yr).removeEventListener(t,e._wrapper||e,n)}function Cr(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},o=t.data.on||{};yr=e.elm,function(t){if(i(t[_r])){var e=K?"change":"input";t[e]=[].concat(t[_r],t[e]||[]),delete t[_r]}i(t[br])&&(t.change=[].concat(t[br],t.change||[]),delete t[br])}(n),ae(n,o,Sr,kr,wr,e.context),yr=void 0}}var Tr,Er={create:Cr,update:Cr};function Or(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,o,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in i(c.__ob__)&&(c=e.data.domProps=O({},c)),s)r(c[n])&&(a[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n||o!==s[n])if("value"===n){a._value=o;var u=r(o)?"":String(o);Ar(a,u)&&(a.value=u)}else if("innerHTML"===n&&Yn(a.tagName)&&r(a.innerHTML)){(Tr=Tr||document.createElement("div")).innerHTML=""+o+"";for(var l=Tr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else a[n]=o}}}function Ar(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return d(n)!==d(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Pr={create:Or,update:Or},Mr=b(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function jr(t){var e=Ir(t.style);return t.staticStyle?O(t.staticStyle,e):e}function Ir(t){return Array.isArray(t)?A(t):"string"==typeof t?Mr(t):t}var Lr,Dr=/^--/,Rr=/\s*!important$/,Fr=function(t,e,n){if(Dr.test(e))t.style.setProperty(e,n);else if(Rr.test(n))t.style.setProperty(C(e),n.replace(Rr,""),"important");else{var r=Br(e);if(Array.isArray(n))for(var i=0,o=n.length;i-1?e.split(Hr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Vr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Hr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Wr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&O(e,qr(t.name||"v")),O(e,t),e}return"string"==typeof t?qr(t):void 0}}var qr=b(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Xr=q&&!Q,Yr="transition",Gr="animation",Kr="transition",Qr="transitionend",Jr="animation",Zr="animationend";Xr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Kr="WebkitTransition",Qr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Jr="WebkitAnimation",Zr="webkitAnimationEnd"));var ti=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function ei(t){ti(function(){ti(t)})}function ni(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),$r(t,e))}function ri(t,e){t._transitionClasses&&y(t._transitionClasses,e),Vr(t,e)}function ii(t,e,n){var r=ai(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Yr?Qr:Zr,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c0&&(n=Yr,l=a,f=o.length):e===Gr?u>0&&(n=Gr,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Yr:Gr:null)?n===Yr?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Yr&&oi.test(r[Kr+"Property"])}}function si(t,e){for(;t.length1}function pi(t,e){!0!==e.data.show&&ui(e)}var di=function(t){var e,n,s={},c=t.modules,u=t.nodeOps;for(e=0;ed?_(t,r(n[y+1])?null:n[y+1].elm,n,p,y,o):p>y&&w(0,e,h,d)}(h,v,y,n,l):i(y)?(i(t.text)&&u.setTextContent(h,""),_(h,null,y,0,y.length-1,n)):i(v)?w(0,v,0,v.length-1):i(t.text)&&u.setTextContent(h,""):t.text!==e.text&&u.setTextContent(h,e.text),i(d)&&i(p=d.hook)&&i(p=p.postpatch)&&p(t,e)}}}function C(t,e,n){if(o(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==o&&(a.selected=o);else if(I(_i(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function gi(t,e){return e.every(function(e){return!I(e,t)})}function _i(t){return"_value"in t?t._value:t.value}function bi(t){t.target.composing=!0}function wi(t){t.target.composing&&(t.target.composing=!1,xi(t.target,"input"))}function xi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Si(t){return!t.componentInstance||t.data&&t.data.transition?t:Si(t.componentInstance._vnode)}var ki={model:vi,show:{bind:function(t,e,n){var r=e.value,i=(n=Si(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,ui(n,function(){t.style.display=o})):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Si(n)).data&&n.data.transition?(n.data.show=!0,r?ui(n,function(){t.style.display=t.__vOriginalDisplay}):li(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}}},Ci={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ti(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ti(qe(e.children)):t}function Ei(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[x(o)]=i[o];return e}function Oi(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Ai=function(t){return t.tag||We(t)},Pi=function(t){return"show"===t.name},Mi={name:"transition",props:Ci,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Ai)).length){0;var r=this.mode;0;var i=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return i;var o=Ti(i);if(!o)return i;if(this._leaving)return Oi(t,i);var s="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?s+"comment":s+o.tag:a(o.key)?0===String(o.key).indexOf(s)?o.key:s+o.key:o.key;var c=(o.data||(o.data={})).transition=Ei(this),u=this._vnode,l=Ti(u);if(o.data.directives&&o.data.directives.some(Pi)&&(o.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,l)&&!We(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=O({},c);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Oi(t,i);if("in-out"===r){if(We(o))return u;var h,p=function(){h()};se(c,"afterEnter",p),se(c,"enterCancelled",p),se(f,"delayLeave",function(t){h=t})}}return i}}},ji=O({tag:String,moveClass:String},Ci);function Ii(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Li(t){t.data.newPos=t.elm.getBoundingClientRect()}function Di(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete ji.mode;var Ri={Transition:Mi,TransitionGroup:{props:ji,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var i=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Ei(this),s=0;s-1?Kn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Kn[t]=/HTMLUnknownElement/.test(e.toString())},O(kn.options.directives,ki),O(kn.options.components,Ri),kn.prototype.__patch__=q?di:P,kn.prototype.$mount=function(t,e){return function(t,e,n){return t.$el=e,t.$options.render||(t.$options.render=yt),en(t,"beforeMount"),new pn(t,function(){t._update(t._render(),n)},P,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&q?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},q&&setTimeout(function(){B.devtools&&ot&&ot.emit("init",kn)},0),e.a=kn}).call(e,n("DuR2"))},"/GnY":function(t,e,n){var r=n("HT7L"),i=n("W529"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))o.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"/bQp":function(t,e){t.exports={}},"/n6Q":function(t,e,n){n("zQR9"),n("+tPU"),t.exports=n("Kh4W").f("iterator")},"/ocq":function(t,e,n){"use strict"; +/*! + * vue-router v3.5.1 + * (c) 2021 Evan You + * @license MIT + */function r(t,e){0}function i(t,e){for(var n in e)t[n]=e[n];return t}var o=/[!'()*]/g,a=function(t){return"%"+t.charCodeAt(0).toString(16)},s=/%2C/g,c=function(t){return encodeURIComponent(t).replace(o,a).replace(s,",")};function u(t){try{return decodeURIComponent(t)}catch(t){0}return t}var l=function(t){return null==t||"object"==typeof t?t:String(t)};function f(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=u(n.shift()),i=n.length>0?u(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]}),e):e}function h(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return c(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(c(e)):r.push(c(e)+"="+c(t)))}),r.join("&")}return c(e)+"="+c(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var p=/\/?$/;function d(t,e,n,r){var i=r&&r.options.stringifyQuery,o=e.query||{};try{o=v(o)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:y(e,i),matched:t?function(t){var e=[];for(;t;)e.unshift(t),t=t.parent;return e}(t):[]};return n&&(a.redirectedFrom=y(n,i)),Object.freeze(a)}function v(t){if(Array.isArray(t))return t.map(v);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=v(t[n]);return e}return t}var m=d(null,{path:"/"});function y(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var i=t.hash;return void 0===i&&(i=""),(n||"/")+(e||h)(r)+i}function g(t,e,n){return e===m?t===e:!!e&&(t.path&&e.path?t.path.replace(p,"")===e.path.replace(p,"")&&(n||t.hash===e.hash&&_(t.query,e.query)):!(!t.name||!e.name)&&(t.name===e.name&&(n||t.hash===e.hash&&_(t.query,e.query)&&_(t.params,e.params))))}function _(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t).sort(),r=Object.keys(e).sort();return n.length===r.length&&n.every(function(n,i){var o=t[n];if(r[i]!==n)return!1;var a=e[n];return null==o||null==a?o===a:"object"==typeof o&&"object"==typeof a?_(o,a):String(o)===String(a)})}function b(t){for(var e=0;e=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}(o.path||""),h=e&&e.path||"/",p=u.path?S(u.path,h,n||o.append):h,d=function(t,e,n){void 0===e&&(e={});var r,i=n||f;try{r=i(t||"")}catch(t){r={}}for(var o in e){var a=e[o];r[o]=Array.isArray(a)?a.map(l):l(a)}return r}(u.query,o.query,r&&r.options.parseQuery),v=o.hash||u.hash;return v&&"#"!==v.charAt(0)&&(v="#"+v),{_normalized:!0,path:p,query:d,hash:v}}var V,W=[String,Object],q=[String,Array],X=function(){},Y={name:"RouterLink",props:{to:{type:W,required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:q,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),a=o.location,s=o.route,c=o.href,u={},l=n.options.linkActiveClass,f=n.options.linkExactActiveClass,h=null==l?"router-link-active":l,v=null==f?"router-link-exact-active":f,m=null==this.activeClass?h:this.activeClass,y=null==this.exactActiveClass?v:this.exactActiveClass,_=s.redirectedFrom?d(null,$(s.redirectedFrom),null,n):s;u[y]=g(r,_,this.exactPath),u[m]=this.exact||this.exactPath?u[y]:function(t,e){return 0===t.path.replace(p,"/").indexOf(e.path.replace(p,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,_);var b=u[y]?this.ariaCurrentValue:null,w=function(t){G(t)&&(e.replace?n.replace(a,X):n.push(a,X))},x={click:G};Array.isArray(this.event)?this.event.forEach(function(t){x[t]=w}):x[this.event]=w;var S={class:u},k=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:c,route:s,navigate:w,isActive:u[m],isExactActive:u[y]});if(k){if(1===k.length)return k[0];if(k.length>1||!k.length)return 0===k.length?t():t("span",{},k)}if("a"===this.tag)S.on=x,S.attrs={href:c,"aria-current":b};else{var C=function t(e){if(e)for(var n,r=0;r-1&&(s.params[h]=n.params[h]);return s.path=H(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var p=0;p=t.length?n():t[i]?e(t[i],function(){r(i+1)}):r(i+1)};r(0)}var wt={redirected:2,aborted:4,cancelled:8,duplicated:16};function xt(t,e){return kt(t,e,wt.redirected,'Redirected when going from "'+t.fullPath+'" to "'+function(t){if("string"==typeof t)return t;if("path"in t)return t.path;var e={};return Ct.forEach(function(n){n in t&&(e[n]=t[n])}),JSON.stringify(e,null,2)}(e)+'" via a navigation guard.')}function St(t,e){return kt(t,e,wt.cancelled,'Navigation cancelled from "'+t.fullPath+'" to "'+e.fullPath+'" with a new navigation.')}function kt(t,e,n,r){var i=new Error(r);return i._isRouter=!0,i.from=t,i.to=e,i.type=n,i}var Ct=["params","query","hash"];function Tt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Et(t,e){return Tt(t)&&t._isRouter&&(null==e||t.type===e)}function Ot(t){return function(e,n,r){var i=!1,o=0,a=null;At(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){i=!0,o++;var c,u=jt(function(e){var i;((i=e).__esModule||Mt&&"Module"===i[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:V.extend(e),n.components[s]=e,--o<=0&&r()}),l=jt(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Tt(t)?t:new Error(e),r(a))});try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var f=c.component;f&&"function"==typeof f.then&&f.then(u,l)}}}),i||r()}}function At(t,e){return Pt(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function Pt(t){return Array.prototype.concat.apply([],t)}var Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function jt(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var It=function(t,e){this.router=t,this.base=function(t){if(!t)if(Q){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=m,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Lt(t,e,n,r){var i=At(t,function(t,r,i,o){var a=function(t,e){"function"!=typeof t&&(t=V.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,i,o)}):n(a,r,i,o)});return Pt(r?i.reverse():i)}function Dt(t,e){if(e)return function(){return t.apply(e,arguments)}}It.prototype.listen=function(t){this.cb=t},It.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},It.prototype.onError=function(t){this.errorCbs.push(t)},It.prototype.transitionTo=function(t,e,n){var r,i=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach(function(e){e(t)}),t}var o=this.current;this.confirmTransition(r,function(){i.updateRoute(r),e&&e(r),i.ensureURL(),i.router.afterHooks.forEach(function(t){t&&t(r,o)}),i.ready||(i.ready=!0,i.readyCbs.forEach(function(t){t(r)}))},function(t){n&&n(t),t&&!i.ready&&(Et(t,wt.redirected)&&o===m||(i.ready=!0,i.readyErrorCbs.forEach(function(e){e(t)})))})},It.prototype.confirmTransition=function(t,e,n){var i=this,o=this.current;this.pending=t;var a,s,c=function(t){!Et(t)&&Tt(t)&&(i.errorCbs.length?i.errorCbs.forEach(function(e){e(t)}):r()),n&&n(t)},u=t.matched.length-1,l=o.matched.length-1;if(g(t,o)&&u===l&&t.matched[u]===o.matched[l])return this.ensureURL(),c(((s=kt(a=o,t,wt.duplicated,'Avoided redundant navigation to current location: "'+a.fullPath+'".')).name="NavigationDuplicated",s));var f=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=yt&&n;r&&this.listeners.push(st());var i=function(){var n=t.current,i=Ft(t.base);t.current===m&&i===t._startLocation||t.transitionTo(i,function(t){r&&ct(e,t,n,!0)})};window.addEventListener("popstate",i),this.listeners.push(function(){window.removeEventListener("popstate",i)})}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){gt(k(r.base+t.fullPath)),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){_t(k(r.base+t.fullPath)),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(Ft(this.base)!==this.current.fullPath){var e=k(this.base+this.current.fullPath);t?gt(e):_t(e)}},e.prototype.getCurrentLocation=function(){return Ft(this.base)},e}(It);function Ft(t){var e=window.location.pathname;return t&&0===e.toLowerCase().indexOf(t.toLowerCase())&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Nt=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ft(t);if(!/^\/#/.test(e))return window.location.replace(k(t+"/#"+e)),!0}(this.base)||Bt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=yt&&e;n&&this.listeners.push(st());var r=function(){var e=t.current;Bt()&&t.transitionTo(zt(),function(r){n&&ct(t.router,r,e,!0),yt||$t(r.fullPath)})},i=yt?"popstate":"hashchange";window.addEventListener(i,r),this.listeners.push(function(){window.removeEventListener(i,r)})}},e.prototype.push=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){Ht(t.fullPath),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){$t(t.fullPath),ct(r.router,t,i,!1),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;zt()!==e&&(t?Ht(e):$t(e))},e.prototype.getCurrentLocation=function(){return zt()},e}(It);function Bt(){var t=zt();return"/"===t.charAt(0)||($t("/"+t),!1)}function zt(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Ut(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ht(t){yt?gt(Ut(t)):window.location.hash=t}function $t(t){yt?_t(Ut(t)):window.location.replace(Ut(t))}var Vt=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach(function(e){e&&e(r,t)})},function(t){Et(t,wt.duplicated)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(It),Wt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Z(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!yt&&!1!==t.fallback,this.fallback&&(e="hash"),Q||(e="abstract"),this.mode=e,e){case"history":this.history=new Rt(this,t.base);break;case"hash":this.history=new Nt(this,t.base,this.fallback);break;case"abstract":this.history=new Vt(this,t.base);break;default:0}},qt={currentRoute:{configurable:!0}};function Xt(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Wt.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},qt.currentRoute.get=function(){return this.history&&this.history.current},Wt.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()}),!this.app){this.app=t;var n=this.history;if(n instanceof Rt||n instanceof Nt){var r=function(t){n.setupListeners(),function(t){var r=n.current,i=e.options.scrollBehavior;yt&&i&&"fullPath"in t&&ct(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Wt.prototype.beforeEach=function(t){return Xt(this.beforeHooks,t)},Wt.prototype.beforeResolve=function(t){return Xt(this.resolveHooks,t)},Wt.prototype.afterEach=function(t){return Xt(this.afterHooks,t)},Wt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Wt.prototype.onError=function(t){this.history.onError(t)},Wt.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},Wt.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},Wt.prototype.go=function(t){this.history.go(t)},Wt.prototype.back=function(){this.go(-1)},Wt.prototype.forward=function(){this.go(1)},Wt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Wt.prototype.resolve=function(t,e,n){var r=$(t,e=e||this.history.current,n,this),i=this.match(r,e),o=i.redirectedFrom||i.fullPath;return{location:r,route:i,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?k(t+"/"+r):r}(this.history.base,o,this.mode),normalizedTo:r,resolved:i}},Wt.prototype.getRoutes=function(){return this.matcher.getRoutes()},Wt.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Wt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==m&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Wt.prototype,qt),Wt.install=K,Wt.version="3.5.1",Wt.isNavigationFailure=Et,Wt.NavigationFailureType=wt,Wt.START_LOCATION=m,Q&&window.Vue&&window.Vue.use(Wt),e.a=Wt},"/whu":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"06OY":function(t,e,n){var r=n("3Eo+")("meta"),i=n("EqjI"),o=n("D2L2"),a=n("evD5").f,s=0,c=Object.isExtensible||function(){return!0},u=!n("S82l")(function(){return c(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!c(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!o(t,r)){if(!c(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return u&&f.NEED&&c(t)&&!o(t,r)&&l(t),t}}},"07k+":function(t,e,n){for(var r,i=n("OzIq"),o=n("2p1q"),a=n("ulTY"),s=a("typed_array"),c=a("view"),u=!(!i.ArrayBuffer||!i.DataView),l=u,f=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");f<9;)(r=i[h[f++]])?(o(r.prototype,s,!0),o(r.prototype,c,!0)):l=!1;t.exports={ABV:u,CONSTR:l,TYPED:s,VIEW:c}},"09Qt":function(t,e,n){var r=n("uIr7"),i=n("vi0E"),o=n("l9Lx"),a=n("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)r(e,o(t)),t=i(t);return e}:a;t.exports=s},"0Rih":function(t,e,n){"use strict";var r=n("OzIq"),i=n("Ds5P"),o=n("R3AP"),a=n("A16L"),s=n("1aA0"),c=n("vmSO"),u=n("9GpA"),l=n("UKM+"),f=n("zgIt"),h=n("qkyc"),p=n("yYvK"),d=n("kic5");t.exports=function(t,e,n,v,m,y){var g=r[t],_=g,b=m?"set":"add",w=_&&_.prototype,x={},S=function(t){var e=w[t];o(w,t,"delete"==t?function(t){return!(y&&!l(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(y&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return y&&!l(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof _&&(y||w.forEach&&!f(function(){(new _).entries().next()}))){var k=new _,C=k[b](y?{}:-0,1)!=k,T=f(function(){k.has(1)}),E=h(function(t){new _(t)}),O=!y&&f(function(){for(var t=new _,e=5;e--;)t[b](e,e);return!t.has(-0)});E||((_=e(function(e,n){u(e,_,t);var r=d(new g,e,_);return void 0!=n&&c(n,m,r[b],r),r})).prototype=w,w.constructor=_),(T||O)&&(S("delete"),S("has"),m&&S("get")),(O||C)&&S(b),y&&w.clear&&delete w.clear}else _=v.getConstructor(e,t,m,b),a(_.prototype,n),s.NEED=!0;return p(_,t),x[t]=_,i(i.G+i.W+i.F*(_!=g),x),y||v.setStrong(_,t,m),_}},"0j1G":function(t,e,n){"use strict";var r=n("Ds5P");t.exports=function(t){r(r.S,t,{of:function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)}})}},"0pGU":function(t,e,n){"use strict";var r=n("DIVP");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0uX4":function(t,e,n){var r=n("NkRn"),i=r?r.prototype:void 0,o=i?i.valueOf:void 0;t.exports=function(t){return o?Object(o.call(t)):{}}},"1A13":function(t,e,n){"use strict";var r=n("49qz")(!0);n("uc2A")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},"1ETD":function(t,e,n){var r=n("kkCw")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(t){}}return!0}},"1QDk":function(t,e,n){var r=n("tv3T"),i=n("09Qt");t.exports=function(t,e){return r(t,i(t),e)}},"1Yb9":function(t,e,n){var r=n("mgnk"),i=n("UnEC"),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return i(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1aA0":function(t,e,n){var r=n("ulTY")("meta"),i=n("UKM+"),o=n("WBcL"),a=n("lDLk").f,s=0,c=Object.isExtensible||function(){return!0},u=!n("zgIt")(function(){return c(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!c(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!o(t,r)){if(!c(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return u&&f.NEED&&c(t)&&!o(t,r)&&l(t),t}}},"1ip3":function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},"1kS7":function(t,e){e.f=Object.getOwnPropertySymbols},"1uLP":function(t,e,n){var r=n("Ds5P");r(r.G+r.W+r.F*!n("07k+").ABV,{DataView:n("LrcN").DataView})},"21It":function(t,e,n){"use strict";var r=n("FtD3");t.exports=function(t,e,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?e(r("Request failed with status code "+n.status,n.config,null,n.request,n)):t(n)}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,n){var r=n("imBK");t.exports=function(t){return r(this.__data__,t)>-1}},"2KxR":function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},"2VSL":function(t,e,n){var r=n("BbyF"),i=n("xAdt"),o=n("/whu");t.exports=function(t,e,n,a){var s=String(o(t)),c=s.length,u=void 0===n?" ":String(n),l=r(e);if(l<=c||""==u)return s;var f=l-c,h=i.call(u,Math.ceil(f/u.length));return h.length>f&&(h=h.slice(0,f)),a?h+s:s+h}},"2p1q":function(t,e,n){var r=n("lDLk"),i=n("fU25");t.exports=n("bUqO")?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},"32VL":function(t,e,n){"use strict";var r,i,o=n("0pGU"),a=RegExp.prototype.exec,s=String.prototype.replace,c=a,u=(r=/a/,i=/b*/g,a.call(r,"a"),a.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),l=void 0!==/()??/.exec("")[1];(u||l)&&(c=function(t){var e,n,r,i,c=this;return l&&(n=new RegExp("^"+c.source+"$(?!\\s)",o.call(c))),u&&(e=c.lastIndex),r=a.call(c,t),u&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(i=1;i=u?t?"":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536}}},"4IZP":function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},"4M2W":function(t,e,n){n("A0n/"),n("i68Q"),n("QzLV"),n("Hhm4"),n("C+4B"),n("W4Z6"),n("tJwI"),n("eC2H"),n("VTn2"),n("W/IU"),n("Y5ex"),n("WpPb"),n("+yjc"),n("gPva"),n("n12u"),n("nRs1"),n("jrHM"),n("gYYG"),n("3QrE"),n("EuXz"),n("PbPd"),n("S+E/"),n("EvFb"),n("QBuC"),n("QWLi"),n("ZRJK"),n("Stuz"),n("yuXV"),n("XtiL"),n("LG56"),n("A1ng"),n("WiIn"),n("aJ2J"),n("altv"),n("dULJ"),n("v2lb"),n("7Jvp"),n("lyhN"),n("kBOG"),n("xONB"),n("LlNE"),n("9xIj"),n("m6Yj"),n("wrs0"),n("Lqg1"),n("1ip3"),n("pWGb"),n("N4KQ"),n("Hl+4"),n("MjHD"),n("SRCy"),n("H0mh"),n("bqOW"),n("F3sI"),n("mhn7"),n("1A13"),n("Racj"),n("Y1S0"),n("Gh7F"),n("tqSY"),n("CvWX"),n("8Np7"),n("R4pa"),n("4RlI"),n("iM2X"),n("J+j9"),n("82of"),n("X/Hz"),n("eVIH"),n("UJiG"),n("SU+a"),n("5iw+"),n("EWrS"),n("J2ob"),n("QaEu"),n("8fhx"),n("UbXY"),n("Rk41"),n("4Q0w"),n("IMUI"),n("beEN"),n("xMpm"),n("j42X"),n("81dZ"),n("uDYd"),n("CEO+"),n("w6W7"),n("fOdq"),n("wVdn"),n("Nkrw"),n("wnRD"),n("lkT3"),n("+CM9"),n("oHKp"),n("9vc3"),n("No4x"),n("WpTh"),n("U6qc"),n("Q/CP"),n("WgSQ"),n("lnZN"),n("Jbuy"),n("FaZr"),n("pd+2"),n("MfeA"),n("VjuZ"),n("qwQ3"),n("mJx5"),n("y9m4"),n("MsuQ"),n("dSUw"),n("ZDXm"),n("V/H1"),n("9mmO"),n("1uLP"),n("52Wt"),n("TFWu"),n("MyjO"),n("qtRy"),n("THnP"),n("K0JP"),n("NfZy"),n("dTzs"),n("+vXH"),n("CVR+"),n("vmSu"),n("4ZU1"),n("yx1U"),n("X7aK"),n("SPtU"),n("A52B"),n("PuTd"),n("dm+7"),n("JG34"),n("Rw4K"),n("9mGU"),n("bUY0"),n("mTp7"),n("gbyG"),n("oF0V"),n("v90c"),n("+2+s"),n("smQ+"),n("m8F4"),n("xn9I"),n("LRL/"),n("sc7i"),n("9Yib"),n("vu/c"),n("zmx7"),n("YVn/"),n("FKfb"),n("oYp4"),n("dxQb"),n("xCpI"),n("AkTE"),n("h7Xi"),n("arGp"),n("JJ3w"),n("qZb+"),n("La7N"),n("BOYP"),n("4rmF"),n("Ygg6"),n("6Xxs"),n("qdHU"),n("DQfQ"),n("j/Lv"),n("U+VG"),n("X6NR"),n("W0pi"),n("taNN"),n("vnWP"),n("R3KI"),n("6iMJ"),n("B3Xn"),n("3s83"),n("F1ui"),n("uEEG"),n("i039"),n("H7zx"),n("+Mt+"),n("QcWB"),n("yJ2x"),n("3q4u"),n("NHaJ"),n("v3hU"),n("zZHq"),n("vsh6"),n("8WbS"),n("yOtE"),n("EZ+5"),n("aM0T"),n("nh2o"),n("v8VU"),n("dich"),n("fx22"),t.exports=n("7gX0")},"4Q0w":function(t,e,n){var r=n("kkCw")("toPrimitive"),i=Date.prototype;r in i||n("2p1q")(i,r,n("jB26"))},"4RlI":function(t,e,n){"use strict";n("y325")("blink",function(t){return function(){return t(this,"blink","","")}})},"4ZU1":function(t,e,n){var r=n("lDLk"),i=n("Ds5P"),o=n("DIVP"),a=n("s4j0");i(i.S+i.F*n("zgIt")(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){o(t),e=a(e,!0),o(n);try{return r.f(t,e,n),!0}catch(t){return!1}}})},"4mcu":function(t,e){t.exports=function(){}},"4rmF":function(t,e,n){n("iKpr")("Map")},"5/Qr":function(t,e,n){var r=n("Kzd6"),i=n("6Git"),o=n("WyC4"),a=n("0uX4"),s=n("Ilb/"),c="[object Boolean]",u="[object Date]",l="[object Map]",f="[object Number]",h="[object RegExp]",p="[object Set]",d="[object String]",v="[object Symbol]",m="[object ArrayBuffer]",y="[object DataView]",g="[object Float32Array]",_="[object Float64Array]",b="[object Int8Array]",w="[object Int16Array]",x="[object Int32Array]",S="[object Uint8Array]",k="[object Uint8ClampedArray]",C="[object Uint16Array]",T="[object Uint32Array]";t.exports=function(t,e,n){var E=t.constructor;switch(e){case m:return r(t);case c:case u:return new E(+t);case y:return i(t,n);case g:case _:case b:case w:case x:case S:case k:case C:case T:return s(t,n);case l:return new E;case f:case d:return new E(t);case h:return o(t);case p:return new E;case v:return a(t)}}},"52Wt":function(t,e,n){n("77Ug")("Int8",1,function(t){return function(e,n,r){return t(this,e,n,r)}})},"52gC":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"5K15":function(t,e,n){ +/** + * vue-meta-info v0.1.7 + * (c) 2018 monkeyWang + * @license MIT + */var r;r=function(){"use strict";var t="data-vue-meta-info";function e(){var e=document.getElementsByTagName("head")[0];return{setMetaInfo:function(n){var r=function(r){"title"!==r?n.hasOwnProperty(r)&&n[r].forEach(function(n){var i=document.createElement(r);!function(e,n){for(var r in e.setAttribute(t,!0),n)n.hasOwnProperty(r)&&e.setAttribute(r,n[r])}(i,n),e.appendChild(i)}):document.title=n.title};for(var i in n)r(i)},removeMetaInfo:function(){!function(e){for(var n=e.querySelectorAll("["+t+"]"),r=n.length-1;r>-1;r--)"true"===n[r].getAttribute(t)&&e.removeChild(n[r])}(e)}}}function n(t){e().removeMetaInfo(),e().setMetaInfo(t)}var r=function(){};return r.install=function(t){t.mixin({beforeCreate:function(){var t=this;if(void 0!==this.$options.metaInfo){var e=typeof this.$options.metaInfo;this._hasMetaInfo=!0,void 0===this.$options.computed&&(this.$options.computed={}),this.$options.computed.$metaInfo="function"===e?this.$options.metaInfo:function(){return t.$options.metaInfo}}},created:function(){!function(t,e){var n=this;t&&e&&(t.title=e.title||"",t.render={},Object.keys(e).forEach(function(r){"title"!==r&&(t.render[r]=function(){var t="";return e[r]&&e[r].forEach(function(e){var n="<"+r+' data-vue-meta-info="true"';Object.keys(e).forEach(function(t){n+=t+'="'+e[t]+'"'}),t+=n+=">\n"}),t}.bind(n))}))}(this.$ssrContext,this.$metaInfo)},beforeMount:function(){this._hasMetaInfo&&n(this.$metaInfo)},mounted:function(){var t=this;this._hasMetaInfo&&this.$watch("$metaInfo",function(){n(t.$metaInfo)})},activated:function(){this._hasMetaInfo&&n(this.$metaInfo)},deactivated:function(){this._hasMetaInfo&&n(this.$metaInfo)}})},r},t.exports=r()},"5N57":function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Set");t.exports=r},"5PlU":function(t,e,n){var r=n("RY/4"),i=n("dSzd")("iterator"),o=n("/bQp");t.exports=n("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||o.hasOwnProperty(r(e))}},"5QVw":function(t,e,n){t.exports={default:n("BwfY"),__esModule:!0}},"5VQ+":function(t,e,n){"use strict";var r=n("cGG2");t.exports=function(t,e){r.forEach(t,function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])})}},"5iw+":function(t,e,n){"use strict";n("y325")("strike",function(t){return function(){return t(this,"strike","","")}})},"5zde":function(t,e,n){n("zQR9"),n("qyJz"),t.exports=n("FeBl").Array.from},"6+Wl":function(t,e,n){"use strict";var r,i=n("mvHQ"),o=n.n(i),a=n("bOdI"),s=n.n(a),c=null;r=window,c=function(t,e){if(!t.jWeixin){var n,r,i={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress"},a=function(){var t={};for(var e in i)t[i[e]]=e;return t}(),c=t.document,u=c.title,l=navigator.userAgent.toLowerCase(),f=navigator.platform.toLowerCase(),h=!(!f.match("mac")&&!f.match("win")),p=-1!=l.indexOf("wxdebugger"),d=-1!=l.indexOf("micromessenger"),v=-1!=l.indexOf("android"),m=-1!=l.indexOf("iphone")||-1!=l.indexOf("ipad"),y=(r=l.match(/micromessenger\/(\d+\.\d+\.\d+)/)||l.match(/micromessenger\/(\d+\.\d+)/))?r[1]:"",g={initStartTime:D(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},_={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:m?1:v?2:-1,clientVersion:y,url:encodeURIComponent(location.href)},b={},w={_completes:[]},x={state:0,data:{}};R(function(){g.initEndTime=D()});var S=!1,k=[],C=(n={config:function(e){L("config",b=e);var n=!1!==b.check;R(function(){if(n)O(i.config,{verifyJsApiList:I(b.jsApiList),verifyOpenTagList:I(b.openTagList)},function(){w._complete=function(t){g.preVerifyEndTime=D(),x.state=1,x.data=t},w.success=function(t){_.isPreVerifyOk=0},w.fail=function(t){w._fail?w._fail(t):x.state=-1};var t=w._completes;return t.push(function(){!function(){if(!(h||p||b.debug||y<"6.0.2"||_.systemType<0)){var t=new Image;_.appId=b.appId,_.initTime=g.initEndTime-g.initStartTime,_.preVerifyTime=g.preVerifyEndTime-g.preVerifyStartTime,C.getNetworkType({isInnerInvoke:!0,success:function(e){_.networkType=e.networkType;var n="https://open.weixin.qq.com/sdk/report?v="+_.version+"&o="+_.isPreVerifyOk+"&s="+_.systemType+"&c="+_.clientVersion+"&a="+_.appId+"&n="+_.networkType+"&i="+_.initTime+"&p="+_.preVerifyTime+"&u="+_.url;t.src=n}})}}()}),w.complete=function(e){for(var n=0,r=t.length;n>>0,o=n>>>0;return(e>>>0)-(r>>>0)-((~i&o|~(i^o)&i-o>>>0)>>>31)|0}})},"73qY":function(t,e,n){t.exports=n("VWgF")("native-function-to-string",Function.toString)},"77Pl":function(t,e,n){var r=n("EqjI");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},"77Ug":function(t,e,n){"use strict";if(n("bUqO")){var r=n("V3l/"),i=n("OzIq"),o=n("zgIt"),a=n("Ds5P"),s=n("07k+"),c=n("LrcN"),u=n("rFzY"),l=n("9GpA"),f=n("fU25"),h=n("2p1q"),p=n("A16L"),d=n("oeih"),v=n("BbyF"),m=n("8D8H"),y=n("zo/l"),g=n("s4j0"),_=n("WBcL"),b=n("wC1N"),w=n("UKM+"),x=n("FryR"),S=n("9vb1"),k=n("7ylX"),C=n("KOrd"),T=n("WcO1").f,E=n("SHe9"),O=n("ulTY"),A=n("kkCw"),P=n("LhTa"),M=n("ot5s"),j=n("7O1s"),I=n("WgSQ"),L=n("bN1p"),D=n("qkyc"),R=n("CEne"),F=n("zCYm"),N=n("DPsE"),B=n("lDLk"),z=n("x9zv"),U=B.f,H=z.f,$=i.RangeError,V=i.TypeError,W=i.Uint8Array,q=Array.prototype,X=c.ArrayBuffer,Y=c.DataView,G=P(0),K=P(2),Q=P(3),J=P(4),Z=P(5),tt=P(6),et=M(!0),nt=M(!1),rt=I.values,it=I.keys,ot=I.entries,at=q.lastIndexOf,st=q.reduce,ct=q.reduceRight,ut=q.join,lt=q.sort,ft=q.slice,ht=q.toString,pt=q.toLocaleString,dt=A("iterator"),vt=A("toStringTag"),mt=O("typed_constructor"),yt=O("def_constructor"),gt=s.CONSTR,_t=s.TYPED,bt=s.VIEW,wt=P(1,function(t,e){return Tt(j(t,t[yt]),e)}),xt=o(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),St=!!W&&!!W.prototype.set&&o(function(){new W(1).set({})}),kt=function(t,e){var n=d(t);if(n<0||n%e)throw $("Wrong offset!");return n},Ct=function(t){if(w(t)&&_t in t)return t;throw V(t+" is not a typed array!")},Tt=function(t,e){if(!(w(t)&&mt in t))throw V("It is not a typed array constructor!");return new t(e)},Et=function(t,e){return Ot(j(t,t[yt]),e)},Ot=function(t,e){for(var n=0,r=e.length,i=Tt(t,r);r>n;)i[n]=e[n++];return i},At=function(t,e,n){U(t,e,{get:function(){return this._d[n]}})},Pt=function(t){var e,n,r,i,o,a,s=x(t),c=arguments.length,l=c>1?arguments[1]:void 0,f=void 0!==l,h=E(s);if(void 0!=h&&!S(h)){for(a=h.call(s),r=[],e=0;!(o=a.next()).done;e++)r.push(o.value);s=r}for(f&&c>2&&(l=u(l,arguments[2],2)),e=0,n=v(s.length),i=Tt(this,n);n>e;e++)i[e]=f?l(s[e],e):s[e];return i},Mt=function(){for(var t=0,e=arguments.length,n=Tt(this,e);e>t;)n[t]=arguments[t++];return n},jt=!!W&&o(function(){pt.call(new W(1))}),It=function(){return pt.apply(jt?ft.call(Ct(this)):Ct(this),arguments)},Lt={copyWithin:function(t,e){return N.call(Ct(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return J(Ct(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return F.apply(Ct(this),arguments)},filter:function(t){return Et(this,K(Ct(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Z(Ct(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){G(Ct(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(Ct(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ut.apply(Ct(this),arguments)},lastIndexOf:function(t){return at.apply(Ct(this),arguments)},map:function(t){return wt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return st.apply(Ct(this),arguments)},reduceRight:function(t){return ct.apply(Ct(this),arguments)},reverse:function(){for(var t,e=Ct(this).length,n=Math.floor(e/2),r=0;r1?arguments[1]:void 0)},sort:function(t){return lt.call(Ct(this),t)},subarray:function(t,e){var n=Ct(this),r=n.length,i=y(t,r);return new(j(n,n[yt]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,v((void 0===e?r:y(e,r))-i))}},Dt=function(t,e){return Et(this,ft.call(Ct(this),t,e))},Rt=function(t){Ct(this);var e=kt(arguments[1],1),n=this.length,r=x(t),i=v(r.length),o=0;if(i+e>n)throw $("Wrong length!");for(;o255?255:255&r),i.v[p](n*e+i.o,r,xt)}(this,n,t)},enumerable:!0})};_?(d=n(function(t,n,r,i){l(t,d,u,"_d");var o,a,s,c,f=0,p=0;if(w(n)){if(!(n instanceof X||"ArrayBuffer"==(c=b(n))||"SharedArrayBuffer"==c))return _t in n?Ot(d,n):Pt.call(d,n);o=n,p=kt(r,e);var y=n.byteLength;if(void 0===i){if(y%e)throw $("Wrong length!");if((a=y-p)<0)throw $("Wrong length!")}else if((a=v(i)*e)+p>y)throw $("Wrong length!");s=a/e}else s=m(n),o=new X(a=s*e);for(h(t,"_d",{b:o,o:p,l:a,e:s,v:new Y(o)});f0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},"7KvD":function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"7O1s":function(t,e,n){var r=n("DIVP"),i=n("XSOZ"),o=n("kkCw")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[o])?e:i(n)}},"7UMu":function(t,e,n){var r=n("R9M2");t.exports=Array.isArray||function(t){return"Array"==r(t)}},"7YkW":function(t,e,n){var r=n("YeCl"),i=n("Cskv"),o=n("aQOO");function a(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new r;++edocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[o[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=c(),void 0===e?n:i(n,e)}},"8++/":function(t,e){t.exports=function(t){return t!=t}},"81dZ":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("d075"),o=n("ydD5"),a=n("zo/l"),s=n("BbyF"),c=[].slice;r(r.P+r.F*n("zgIt")(function(){i&&c.call(i)}),"Array",{slice:function(t,e){var n=s(this.length),r=o(this);if(e=void 0===e?n:e,"Array"==r)return c.call(this,t,e);for(var i=a(t,n),u=a(e,n),l=s(u-i),f=new Array(l),h=0;hi;)X(t,n=r[i++],e[n]);return t},G=function(t){var e=R.call(this,t=w(t,!0));return!(this===z&&i(N,t)&&!i(B,t))&&(!(e||!i(this,t)||!i(N,t)||i(this,L)&&this[L][t])||e)},K=function(t,e){if(t=b(t),e=w(e,!0),t!==z||!i(N,e)||i(B,e)){var n=O(t,e);return!n||!i(N,e)||i(t,L)&&t[L][e]||(n.enumerable=!0),n}},Q=function(t){for(var e,n=P(b(t)),r=[],o=0;n.length>o;)i(N,e=n[o++])||e==L||e==c||r.push(e);return r},J=function(t){for(var e,n=t===z,r=P(n?B:b(t)),o=[],a=0;r.length>a;)!i(N,e=r[a++])||n&&!i(z,e)||o.push(N[e]);return o};U||(s((M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(B,n),i(this,L)&&i(this[L],t)&&(this[L][t]=!1),V(this,t,x(1,n))};return o&&$&&V(z,t,{configurable:!0,set:e}),W(t)}).prototype,"toString",function(){return this._k}),C.f=K,T.f=X,n("WcO1").f=k.f=Q,n("Y1aA").f=G,n("Y1N3").f=J,o&&!n("V3l/")&&s(z,"propertyIsEnumerable",G,!0),d.f=function(t){return W(p(t))}),a(a.G+a.W+a.F*!U,{Symbol:M});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Z.length>tt;)p(Z[tt++]);for(var et=E(p.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!U,"Symbol",{for:function(t){return i(F,t+="")?F[t]:F[t]=M(t)},keyFor:function(t){if(!q(t))throw TypeError(t+" is not a symbol!");for(var e in F)if(F[e]===t)return e},useSetter:function(){$=!0},useSimple:function(){$=!1}}),a(a.S+a.F*!U,"Object",{create:function(t,e){return void 0===e?S(t):Y(S(t),e)},defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:K,getOwnPropertyNames:Q,getOwnPropertySymbols:J}),j&&a(a.S+a.F*(!U||u(function(){var t=M();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(_(e)||void 0!==t)&&!q(t))return y(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!q(e))return e}),r[1]=e,I.apply(j,r)}}),M.prototype[D]||n("2p1q")(M.prototype,D,M.prototype.valueOf),f(M,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},A16L:function(t,e,n){var r=n("R3AP");t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},A1ng:function(t,e,n){var r=n("Ds5P"),i=n("n982"),o=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},A52B:function(t,e,n){var r=n("x9zv"),i=n("Ds5P"),o=n("DIVP");i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(o(t),e)}})},A9mX:function(t,e,n){var r=n("pTUa");t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AkTE:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FryR"),o=n("s4j0"),a=n("KOrd"),s=n("x9zv").f;n("bUqO")&&r(r.P+n("dm6P"),"Object",{__lookupSetter__:function(t){var e,n=i(this),r=o(t,!0);do{if(e=s(n,r))return e.set}while(n=a(n))}})},B3Xn:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{imulh:function(t,e){var n=+t,r=+e,i=65535&n,o=65535&r,a=n>>16,s=r>>16,c=(a*o>>>0)+(i*o>>>16);return a*s+(c>>16)+((i*s>>>0)+(65535&c)>>16)}})},BO1k:function(t,e,n){t.exports={default:n("fxRn"),__esModule:!0}},BOYP:function(t,e,n){n("0j1G")("WeakSet")},BbyF:function(t,e,n){var r=n("oeih"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},BwfY:function(t,e,n){n("fWfb"),n("M6a0"),n("OYls"),n("QWe/"),t.exports=n("FeBl").Symbol},"C+4B":function(t,e,n){var r=n("PHqh"),i=n("x9zv").f;n("3i66")("getOwnPropertyDescriptor",function(){return function(t,e){return i(r(t),e)}})},"C+Ps":function(t,e,n){var r=n("Qh14"),i=n("Y1N3"),o=n("Y1aA");t.exports=function(t){var e=r(t),n=i.f;if(n)for(var a,s=n(t),c=o.f,u=0;s.length>u;)c.call(t,a=s[u++])&&e.push(a);return e}},C0hh:function(t,e){t.exports=function(){return[]}},C4MV:function(t,e,n){t.exports={default:n("9bBU"),__esModule:!0}},"CEO+":function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(0),o=n("NNrz")([].forEach,!0);r(r.P+r.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},CEne:function(t,e,n){"use strict";var r=n("OzIq"),i=n("lDLk"),o=n("bUqO"),a=n("kkCw")("species");t.exports=function(t){var e=r[t];o&&e&&!e[a]&&i.f(e,a,{configurable:!0,get:function(){return this}})}},"CVR+":function(t,e,n){var r=n("Ds5P"),i=n("XSOZ"),o=n("DIVP"),a=(n("OzIq").Reflect||{}).apply,s=Function.apply;r(r.S+r.F*!n("zgIt")(function(){a(function(){})}),"Reflect",{apply:function(t,e,n){var r=i(t),c=o(n);return a?a(r,e,c):s.call(r,e,c)}})},CW5P:function(t,e,n){var r=n("T/bE"),i=n("duB3"),o=n("POb3");t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||i),string:new r}}},CXw9:function(t,e,n){"use strict";var r,i,o,a,s=n("O4g8"),c=n("7KvD"),u=n("+ZMJ"),l=n("RY/4"),f=n("kM2E"),h=n("EqjI"),p=n("lOnJ"),d=n("2KxR"),v=n("NWt+"),m=n("t8x9"),y=n("L42u").set,g=n("82Mu")(),_=n("qARP"),b=n("dNDb"),w=n("iUbK"),x=n("fJUb"),S=c.TypeError,k=c.process,C=k&&k.versions,T=C&&C.v8||"",E=c.Promise,O="process"==l(k),A=function(){},P=i=_.f,M=!!function(){try{var t=E.resolve(1),e=(t.constructor={})[n("dSzd")("species")]=function(t){t(A,A)};return(O||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==T.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(t){}}(),j=function(t){var e;return!(!h(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;g(function(){for(var r=t._v,i=1==t._s,o=0,a=function(e){var n,o,a,s=i?e.ok:e.fail,c=e.resolve,u=e.reject,l=e.domain;try{s?(i||(2==t._h&&R(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?u(S("Promise-chain cycle")):(o=j(n))?o.call(n,c,u):c(n)):u(r)}catch(t){l&&!a&&l.exit(),u(t)}};n.length>o;)a(n[o++]);t._c=[],t._n=!1,e&&!t._h&&L(t)})}},L=function(t){y.call(c,function(){var e,n,r,i=t._v,o=D(t);if(o&&(e=b(function(){O?k.emit("unhandledRejection",i,t):(n=c.onunhandledrejection)?n({promise:t,reason:i}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",i)}),t._h=O||D(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},D=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){y.call(c,function(){var e;O?k.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=j(t))?g(function(){var r={_w:n,_d:!1};try{e.call(t,u(N,r,1),u(F,r,1))}catch(t){F.call(r,t)}}):(n._v=t,n._s=1,I(n,!1))}catch(t){F.call({_w:n,_d:!1},t)}}};M||(E=function(t){d(this,E,"Promise","_h"),p(t),r.call(this);try{t(u(N,this,1),u(F,this,1))}catch(t){F.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("xH/j")(E.prototype,{then:function(t,e){var n=P(m(this,E));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=O?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=u(N,t,1),this.reject=u(F,t,1)},_.f=P=function(t){return t===E||t===a?new o(t):i(t)}),f(f.G+f.W+f.F*!M,{Promise:E}),n("e6n0")(E,"Promise"),n("bRrM")("Promise"),a=n("FeBl").Promise,f(f.S+f.F*!M,"Promise",{reject:function(t){var e=P(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!M),"Promise",{resolve:function(t){return x(s&&this===a?E:this,t)}}),f(f.S+f.F*!(M&&n("dY0y")(function(t){E.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=P(e),r=n.resolve,i=n.reject,o=b(function(){var n=[],o=0,a=1;v(t,!1,function(t){var s=o++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},i)}),--a||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,i=b(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},Cdx3:function(t,e,n){var r=n("sB3e"),i=n("lktj");n("uqUo")("keys",function(){return function(t){return i(r(t))}})},Cskv:function(t,e){var n="__lodash_hash_undefined__";t.exports=function(t){return this.__data__.set(t,n),this}},CvWX:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("BbyF"),o=n("kqpo"),a="".startsWith;r(r.P+r.F*n("1ETD")("startsWith"),"String",{startsWith:function(t){var e=o(this,t,"startsWith"),n=i(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},CwSZ:function(t,e,n){"use strict";var r=n("p8xL"),i=n("XgCd"),o={brackets:function(t){return t+"[]"},indices:function(t,e){return t+"["+e+"]"},repeat:function(t){return t}},a=Date.prototype.toISOString,s={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(t){return a.call(t)},skipNulls:!1,strictNullHandling:!1},c=function t(e,n,i,o,a,c,u,l,f,h,p,d){var v=e;if("function"==typeof u)v=u(n,v);else if(v instanceof Date)v=h(v);else if(null===v){if(o)return c&&!d?c(n,s.encoder):n;v=""}if("string"==typeof v||"number"==typeof v||"boolean"==typeof v||r.isBuffer(v))return c?[p(d?n:c(n,s.encoder))+"="+p(c(v,s.encoder))]:[p(n)+"="+p(String(v))];var m,y=[];if(void 0===v)return y;if(Array.isArray(u))m=u;else{var g=Object.keys(v);m=l?g.sort(l):g}for(var _=0;_0?E+T:""}},D2L2:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},DDCP:function(t,e,n){"use strict";var r=n("p8xL"),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(t,e,n){if(t){var r=n.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,o=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),s=a?r.slice(0,a.index):r,c=[];if(s){if(!n.plainObjects&&i.call(Object.prototype,s)&&!n.allowPrototypes)return;c.push(s)}for(var u=0;null!==(a=o.exec(r))&&u=0;--i){var o,a=t[i];if("[]"===a)o=(o=[]).concat(r);else{o=n.plainObjects?Object.create(null):{};var s="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,c=parseInt(s,10);!isNaN(c)&&a!==s&&String(c)===s&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(o=[])[c]=r:o[s]=r}r=o}return r}(c,e,n)}};t.exports=function(t,e){var n=e?r.assign({},e):{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.ignoreQueryPrefix=!0===n.ignoreQueryPrefix,n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=!1!==n.parseArrays,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===t||null===t||void 0===t)return n.plainObjects?Object.create(null):{};for(var s="string"==typeof t?function(t,e){for(var n={},r=e.ignoreQueryPrefix?t.replace(/^\?/,""):t,a=e.parameterLimit===1/0?void 0:e.parameterLimit,s=r.split(e.delimiter,a),c=0;c2?arguments[2]:void 0,l=Math.min((void 0===u?a:i(u,a))-c,a-s),f=1;for(c0;)c in n?n[s]=n[c]:delete n[s],s+=f,c+=f;return n}},DQCr:function(t,e,n){"use strict";var r=n("cGG2");function i(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,n){if(!e)return t;var o;if(n)o=n(e);else if(r.isURLSearchParams(e))o=e.toString();else{var a=[];r.forEach(e,function(t,e){null!==t&&void 0!==t&&(r.isArray(t)?e+="[]":t=[t],r.forEach(t,function(t){r.isDate(t)?t=t.toISOString():r.isObject(t)&&(t=JSON.stringify(t)),a.push(i(e)+"="+i(t))}))}),o=a.join("&")}return o&&(t+=(-1===t.indexOf("?")?"?":"&")+o),t}},DQfQ:function(t,e,n){var r=n("Ds5P");r(r.G,{global:n("OzIq")})},Dc0G:function(t,e,n){(function(t){var r=n("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,o=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=o&&o.exports===i&&r.process,s=function(){try{var t=o&&o.require&&o.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=s}).call(e,n("3IRH")(t))},Dd8w:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("woOf"),o=(r=i)&&r.__esModule?r:{default:r};e.default=o.default||function(t){for(var e=1;e1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!m(d(this,e),t)}}),h&&r(l.prototype,"size",{get:function(){return d(this,e)[v]}}),l},def:function(t,e,n){var r,i,o=m(t,e);return o?o.v=n:(t._l=o={i:i=p(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=o),r&&(r.n=o),t[v]++,"F"!==i&&(t._i[i]=o)),t},getEntry:m,setStrong:function(t,e,n){u(t,e,function(t,n){this._t=d(t,e),this._k=n,this._l=void 0},function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?l(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),f(e)}}},Ds5P:function(t,e,n){var r=n("OzIq"),i=n("7gX0"),o=n("2p1q"),a=n("R3AP"),s=n("rFzY"),c=function(t,e,n){var u,l,f,h,p=t&c.F,d=t&c.G,v=t&c.S,m=t&c.P,y=t&c.B,g=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,_=d?i:i[e]||(i[e]={}),b=_.prototype||(_.prototype={});for(u in d&&(n=e),n)f=((l=!p&&g&&void 0!==g[u])?g:n)[u],h=y&&l?s(f,r):m&&"function"==typeof f?s(Function.call,f):f,g&&a(g,u,f,t&c.U),_[u]!=f&&o(_,u,h),m&&b[u]!=f&&(b[u]=f)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},DuR2:function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},Dv2r:function(t,e,n){var r=n("pTUa");t.exports=function(t,e){var n=r(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},EGZi:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},EWrS:function(t,e,n){"use strict";n("y325")("sub",function(t){return function(){return t(this,"sub","","")}})},"EZ+5":function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=n("XSOZ"),a=r.key,s=r.set;r.exp({metadata:function(t,e){return function(n,r){s(t,e,(void 0!==r?i:o)(n),a(r))}}})},EqBC:function(t,e,n){"use strict";var r=n("kM2E"),i=n("FeBl"),o=n("7KvD"),a=n("t8x9"),s=n("fJUb");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,i.Promise||o.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},EqjI:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},EuXz:function(t,e,n){var r=n("lDLk").f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||n("bUqO")&&r(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},EvFb:function(t,e,n){var r=n("Ds5P"),i=n("8t38");r(r.G+r.F*(parseFloat!=i),{parseFloat:i})},ExBf:function(t,e,n){"use strict";var r=n("Zx67"),i=n.n(r),o=n("aFK5"),a=n.n(o),s=n("fZjL"),c=n.n(s),u=n("Zrlr"),l=n.n(u),f=n("wxAW"),h=n.n(f),p=n("mvHQ"),d=n.n(p),v=n("pFYg"),m=n.n(v),y=null;function g(){return!!("undefined"==typeof window&&"undefined"==typeof document&&y&&y.env&&y.cdv)}function _(){return y}function b(){var t={};return((g()?_().env.url.split("?")[1]:location.search.substring(1)).split("&")||[]).forEach(function(e){var n=e.split("=");t[n[0]]=n[1]}),t}function w(t){var e="object"===(void 0===t?"undefined":m()(t))&&"Object"===Object.prototype.toString.call(t).slice(-7,-1);if(!t||!e)return"";var n="";return c()(t).forEach(function(e){t[e]=encodeURIComponent(decodeURIComponent(t[e])),n+=e+"="+t[e]+"&"}),n.length&&(n=n.slice(0,-1)),n}var x="appCommonParam";function S(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.split(".");return 4!==n.length&&5!==n.length||!/^\s*8\./.test(t)||n.splice(0,1),e?n:n.join(".")}function k(t,e){return function(t,e,n){var r=S(t,!0),i=S(e,!0);if(r.length!==i.length)for(var o=r.lengthf)return!1;if(r[c]!==i[c])return!0}return!1}(t,e,!1)}var C=n("zwoO"),T=n.n(C),E=n("Pf15"),O=n.n(E),A=function(){function t(e){l()(this,t),this._core=e,this.event=null,this.adapter=null,this.isReady=!1,this.readyCallback=null,this.supportProtocol={}}return h()(t,[{key:"init",value:function(){}},{key:"onEngineReady",value:function(t){this.readyCallback=t}},{key:"exec",value:function(t,e,n,r,i){}},{key:"checkSupport",value:function(t,e){return this.supportProtocol[t]&&this.supportProtocol[t][e]}},{key:"checkAdapter",value:function(t,e){return this.adapter&&this.adapter[t]&&this.adapter[t][e]}}]),t}(),P={android:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/1/android/cordova.js",iOS:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/1/ios/cordova.js",iOS2:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/2/ios/cordova.js",windows:"//h2.vipstatic.com/h5.vipstatic.com/js/lib/cordova/1/windows/cordova.js"},M="android",j="androidpad",I="iphone",L="ipad",D="windowsphone",R="windowspad";function F(){var t=arguments.length;return"object"===m()(arguments.length<=0?void 0:arguments[0])?{param:arguments.length<=0?void 0:arguments[0],success:t>1?arguments.length<=1?void 0:arguments[1]:void 0,fail:t>2?arguments.length<=2?void 0:arguments[2]:void 0}:{param:void 0,success:t>0?arguments.length<=0?void 0:arguments[0]:void 0,fail:t>1?arguments.length<=1?void 0:arguments[1]:void 0}}function N(t){return a()(t).forEach(function(e){"number"==typeof t[e]&&(t[e]=t[e].toString())}),t}var B=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(){var t=F.apply(void 0,arguments),e=t.param,n=t.success,r=t.fail;this._exec("shopping","goHome",n,r,e)}},{key:"showGoodsDetail",value:function(t,e,n){var r=this,i=this._core.platform;if(this.utils.versionLT("6.15")&&!i.isWXKe){var o=!1,a=!1,s="jsonp_callback_"+Math.random().toString(36).slice(2),c=document.createElement("script");c.src="//sink.vip.com/merchandise/mapping?callback="+s+"&mids="+t.goodsId,c.onload=c.onerror=function(){c.parentNode.removeChild(c),c=c.onload=c.onerror=null,o&&!a||n&&n({code:-301,msg:"绯荤粺绻佸繖锛岃绋嶅悗鍐嶈瘯"})},window[s]=function(i){!a&&200===i.code&&i.data[t.goodsId]&&(o=!0,window[s]=null,t.goodsId=i.data[t.goodsId],r._exec("shopping","showGoodsDetail",e,n,t))},setTimeout(function(){c&&!o&&(a=!0,c.onerror())},3e3),document.head.appendChild(c)}else this._exec("shopping","showGoodsDetail",e,n,t)}}]),t}(),z=n("//Fk"),U=n.n(z),H=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t,e,n){var r=this;if(t.jsFunction="fake_event_type_add_cart",r.event.mockJSFunctionCallback("fake_event_type_add_cart",function(t){return{code:t}},e),r.utils.versionLT("6.15")){var i={mid:"/merchandise/mapping",sizeid:"/merchandiseitem/mapping"},o={url:"https://sink.vip.com"+i.mid,params:{mids:t.productId}},a={url:"https://sink.vip.com"+i.sizeid,params:{sizeids:t.sizeId}};U.a.all([r.utils.jsonpKit(o),r.utils.jsonpKit(a)]).then(function(i){var o=i[1]&&i[1].data&&i[1].data[t.sizeId],a=i[0]&&i[0].data&&i[0].data[t.productId];t.sizeId=o,t.productId=a,r._exec("cart","addCart",e,n,t)}).catch(function(){r.ui.showToast({content:"缃戠粶寮灏忓樊鍟︼紝璇风◢鍚庡啀璇曞摝~"})})}else r._exec("cart","addCart",e,n,t)}}]),t}(),$=function(){function t(){l()(this,t)}return h()(t,[{key:"shareSpecial",value:function(t,e,n){"android"===this._core.appInfo.client&&this.utils.versionGT("5.28.4")&&this.utils.versionLT("5.28.10")?(t.shareUrl=t.specialUrl||"",this.share.shareVirtualProduct(t,e,n)):this._exec("share","shareSpecial",null,n,t)}}]),t}(),V={code:-100,msg:"涓嶆敮鎸佽鍗忚"},W={code:-101,msg:"娌℃湁闄嶇骇鏂规"},q={code:-102,msg:"瓒呮椂"},X={code:-103,msg:"鑾峰彇web绔矾鐢辫〃澶辫触"},Y={code:0,msg:"hercules宸插氨缁"},G=function(){function t(){l()(this,t)}return h()(t,[{key:"routeTo",value:function(t,e,n){var r=this;this._exec("base","check",function(i){"1"===String(i.data[t.name])?r._exec("base","routeTo",e,n,t):n&&n(V)},function(){n&&n(V)},{pages:[t.name]})}}]),t}(),K=function(){function t(){l()(this,t)}return h()(t,[{key:"addFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_add_favourite",this.event.mockJSFunctionCallback("fake_event_type_add_favourite",function(t){return{code:t}},e),this._exec("user","addFavourite",e,n,t)}},{key:"delFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_del_favourite",this.event.mockJSFunctionCallback("fake_event_type_del_favourite",function(t){return{code:t}},e),this._exec("user","delFavourite",e,n,t)}},{key:"goToOnlineService",value:function(){var t=F.apply(void 0,arguments),e=t.param,n=t.success,r=t.fail;this._exec("user","goToOnlineService",n,r,e)}}]),t}();function Q(){return g()?new Function("return this")():window}var J=function(){function t(e){l()(this,t),this.herculesInst=e,this.isApp=e._core.platform.isApp,this.platform=e._core.platform,this.liteAppType=e._core.liteAppType,this.appInfo=e._core.appInfo}return h()(t,[{key:"redirect",value:function(t){if(this.isApp){var e=document.createElement("a"),n=document.createEvent("MouseEvents");document.body.appendChild(e),n.initEvent("click",!0,!1),e.href=t,e.dispatchEvent(n),document.body.removeChild(e)}else this.platform.isWXLite||this.platform.isQuickApp?location.href=this.wrapCommonParams(t):this.platform.isBkNative?this.herculesInst._core.doCall("base","routeTo",function(){},function(){},{name:"webview/specialpage",params:{url:encodeURIComponent(t)}}):location.href=t}},{key:"wrapCommonParams",value:function(t){var e=["width","height","area_id","fdc_area_id","oxo_province_id","net","vipruid","app_name","source","warehouse","app_version","client","mars_cid","mobile_platform","mobile_channel"];this.platform.isApp&&(e=e.concat(["oxo_city_id","oxo_district_id","tab_page_id","deeplink_cps","other_cps","idfv","protocol_version"])),this.platform.isQuickApp&&(e=e.concat(["f"]));var n=location.search.slice(1),r=e.map(function(e){var r=new RegExp(e+"=([^&]+)"),i=t.match(r);if(!i||2!==i.length){var o=n.match(r);return o&&2===o.length?e+"="+o[1]:void 0}}).filter(function(t){return t}).join("&");return r?t.indexOf("?")>0?t+"&"+r:t+"?"+r:t}},{key:"getAppVersion",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.appInfo.app_version||"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.split(".");return 4!==n.length&&5!==n.length||!/^\s*8\./.test(t)||n.splice(0,1),e?n:n.join(".")}},{key:"versionLT",value:function(t){return this._versionComp(this.getAppVersion(),t,!1)}},{key:"versionGT",value:function(t){return this._versionComp(this.getAppVersion(),t,!0)}},{key:"_versionComp",value:function(t,e,n){var r=this.getAppVersion(t,!0),i=this.getAppVersion(e,!0);if(r.length!==i.length)for(var o=r.lengthf)return!1;if(r[c]!==i[c])return!0}return!1}},{key:"jsonpKit",value:function(t){return new U.a(function(e,n){var r=!1,i=!1,o=void 0,a="jsonp_callback_"+Math.random().toString(36).slice(2),s=document.createElement("script");if(t.params=t.params||"","object"===m()(t.params)){var c=[];for(var u in t.params)c.push(u+"="+t.params[u]);o=c.join("&")}s.src=t.url+"?callback="+a+"&"+o,document.head.appendChild(s),window[a]=function(t){i||200!==t.code?n({code:-301,msg:"绯荤粺绻佸繖锛岃绋嶅悗鍐嶈瘯"}):(r=!0,window[a]=null,e(t)),document.body.removeChild(s)},s.onload=s.onerror=function(){s.parentNode.removeChild(s),s=s.onload=s.onerror=null,r&&!i||n({code:-301,msg:"绯荤粺绻佸繖锛岃绋嶅悗鍐嶈瘯"})},setTimeout(function(){s&&!r&&(i=!0,s.onerror())},3e3)})}}]),t}(),Z=function(){function t(e){l()(this,t),this.globalCallbackFuncName="__hercules_event_dispatcher",this.core=e,this.compatibleList={},this.getCallbackObject=Q}return h()(t,[{key:"registerCommonEventCallback",value:function(t){this.getCallbackObject()[this.globalCallbackFuncName]=t}},{key:"subscribe",value:function(t){}},{key:"unsubscribe",value:function(t){}},{key:"mockOnCallbackObject",value:function(t,e){var n=this.getCallbackObject();n[t]&&this.compatibleList[t],n[t]&&!this.compatibleList[t]||(this.compatibleList[t]=!0,n[t]=e)}},{key:"mockJSFunctionCallback",value:function(t,e,n){var r=this;this.core.event.off(t).on(t,n),this.mockOnCallbackObject(t,function(){for(var n=arguments.length,i=Array(n),o=0;o2&&void 0!==arguments[2]?arguments[2]:100;if((new Date).getTime()%(100/n)==0){var r=w(e),i="//stat.vipstatic.com/h5front/report?type="+t+"&_t="+(new Date).getTime()+"&"+r.substring(0,1500);if(g())_().net.request({url:"https:"+i});else{var o=new XMLHttpRequest;o.open("GET",i,!0),o.send()}}}var nt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new tt(t),n.appInfo=t.appInfo,n.adapter={shopping:new B,base:new G,cart:new H,share:new $,user:new K},n}return O()(e,t),h()(e,[{key:"init",value:function(){var t=this;document.addEventListener("deviceready",function(){clearTimeout(t.devicereadyTimeout);try{"android"===t.appInfo.client&&cordova.exec.setNativeToJsBridgeMode(cordova.exec.nativeToJsModes.LOAD_URL),t._getSupportedModule()}catch(t){et("devicereadyCatch",{msg:t})}}),this._loadScript()}},{key:"exec",value:function(t,e,n,r,i){cordova.exec(n,r,t,e,[i])}},{key:"_loadScript",value:function(){var t=this;try{var e=document.createElement("script");e.async=!0;var n=this.appInfo.client;if(n===M||n===j)e.src=P.android;else if(n===I||n===L){var r=this.appInfo.protocol_version.split(".")[0];Number(r)>=2?e.src=P.iOS2:e.src=P.iOS}else n===D||n===R?e.src=P.windows:et("canNotFindCordovaJs",{client:n});if(e.src){try{var i=setTimeout(function(){et("loadCordovaPending",{src:e.src})},15e3);e.onerror=function(t){clearTimeout(i),et("loadCordovaError",{type:t.type,src:t.target&&t.target.src})},e.onload=function(){clearTimeout(i);var n=!!window.cordova;if(!n){var r=new XMLHttpRequest;r.open("GET",e.src,!0),r.onload=function(){et("getTheCordovaText",{text:r.responseText.length>100?r.responseText.substring(r.responseText.length-100):r.responseText})},r.send(),et("loadCordovaButHasNoCordova",{hasCordova:n})}t.devicereadyTimeout=setTimeout(function(){et("devicereadyTimeout",{hasExec:!(!window.cordova||!window.cordova.exec)})},1e4)}}catch(t){et("cordovaScriptMonitorError",{msg:t})}document.head.appendChild(e)}else et("noCordovaSrc",{android:P.android,ios2:P.iOS2,ios:P.iOS})}catch(t){et("loadCordovaCatch",{msg:t})}}},{key:"_getSupportedModule",value:function(){var t=this;this.exec("base","getSupportModule",function(e){try{e&&e.data&&e.data.length>0||et("hasNotSupportModule",{msg:d()(e)})}catch(t){}t._getSupportedModuleInterface(e.data)},function(e){t._initSupportFail("getSupportModule",e)})}},{key:"_getSupportedModuleInterface",value:function(t){var e=this;this.exec("base","getModuleSupportApi",function(t){try{t&&t.data&&t.data.length>0||et("hasNotSupportApi",{msg:d()(t)})}catch(t){}e._setSupportedInterface(t),e.isReady=!0,e.readyCallback()},function(t){e._initSupportFail("getModuleSupportApi",t)},{plugin:t})}},{key:"_initSupportFail",value:function(t,e){this.isReady=!0,this.readyCallback();try{et("faillBackWhenGetSupportList",{methodName:t,data:d()(e)})}catch(t){}}},{key:"_setSupportedInterface",value:function(t){var e=this;t.data.forEach(function(t){a()(t).forEach(function(n){e.supportProtocol[n]=e.supportProtocol[n]||{},t[n].forEach(function(t){e.supportProtocol[n][t]=!0})})})}}]),e}(A),rt=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t,e,n){t.jsFunction="fake_event_type_add_cart",this.event.mockJSFunctionCallback("fake_event_type_add_cart",function(t){return{code:t}},e),this._exec(null,"addCart",null,null,t)}}]),t}(),it=function(){function t(){l()(this,t)}return h()(t,[{key:"shareActivity",value:function(t,e,n){t.callbackId="event_type_menu_share_activity",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_activity",e),this._exec(null,"shareActivity",null,null,t)}},{key:"shareSpecial",value:function(t,e,n){t.callbackId="event_type_menu_share_special",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_special",e),this._exec(null,"shareSpecial",null,null,t)}},{key:"shareVirtualProduct",value:function(t,e,n){t.callbackId="event_type_menu_share_virtual_product",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_virtual_product",e),this._exec(null,"shareVirtualProduct",null,null,t)}},{key:"shareVis",value:function(t,e,n){t.callbackId="event_type_menu_share_vis",this.event.mockJSBridgeObj("onCallback","event_type_menu_share_vis",e),this._exec(null,"shareVis",null,null,t)}},{key:"autoShare",value:function(t,e,n){t.type&&(t.type=t.type.toString()),this.event.mockJSBridgeObj("callH5","onShareClick",e),this._exec(null,"autoShare",null,null,t)}}]),t}(),ot=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(){var t=F.apply(void 0,arguments),e=t.param;t.success,t.fail;this._exec(null,"goHome",null,null,e)}}]),t}(),at=function(){function t(){l()(this,t)}return h()(t,[{key:"addFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_add_favourite",this.event.mockJSFunctionCallback("fake_event_type_add_favourite",function(t){return{code:t}},e),this._exec(null,"addFavourite",null,null,t)}},{key:"delFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_del_favourite",this.event.mockJSFunctionCallback("fake_event_type_del_favourite",function(t){return{code:t}},e),this._exec(null,"delFavourite",null,null,t)}}]),t}(),st=function(){function t(){l()(this,t)}return h()(t,[{key:"startObservingShake",value:function(t,e){this._exec(null,"startObservingShake")}},{key:"stopObservingShake",value:function(t,e){this._exec(null,"stopObservingShake")}},{key:"downloadApk",value:function(t,e,n){this._exec(null,"downloadApk",null,null,t)}},{key:"goPrePage",value:function(t,e){this._exec(null,"goPrePage",t,e)}},{key:"goH5",value:function(t,e,n){this._exec(null,"goH5",null,null,t)}},{key:"smsSend",value:function(t,e,n){this._exec(null,"smsSend",null,null,t)}},{key:"playVideo",value:function(t,e,n){this._exec(null,"playVideo",null,null,t)}},{key:"permitVideo",value:function(t,e){var n={callbackId:"fake_event_type_permitVideo"};this.event.mockJSBridgeObj("onCallback",n.callbackId,function(e){t({code:1,data:{isPermit:e.code}})}),this._exec(null,"permitVideo",null,null,n)}}]),t}(),ct=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t,e,n){this._exec(null,"showOrder",null,null,t)}}]),t}(),ut=function(){function t(){l()(this,t)}return h()(t,[{key:"goPay",value:function(t,e,n){this._exec(null,"goPay",null,null,t)}},{key:"checkPaymentApps",value:function(t,e,n){this.event.mockOnCallbackObject("checkPaymentApps",function(t){e({code:1,data:t})}),this._exec(null,"checkPaymentApps")}}]),t}(),lt=n("yEsh"),ft=n.n(lt),ht=function(t){function e(){return l()(this,e),T()(this,(e.__proto__||i()(e)).apply(this,arguments))}return O()(e,t),h()(e,[{key:"mockJSBridgeObj",value:function(t,e,n){var r=this;this.core.event.off(e).on(e,n),window.JSBridge=window.JSBridge||{},window.JSBridge[t]||(window.JSBridge[t]=function(t,e){window[r.globalCallbackFuncName]({eventType:t,data:e})},this.compatibleList[t]=!0)}},{key:"bindToolMethod",value:function(t){ft()(e.prototype.__proto__||i()(e.prototype),"bindToolMethod",this).call(this,t),t.mockJSBridgeObj=this.mockJSBridgeObj.bind(this)}}]),e}(Z),pt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new ht(t),n.isReady=!0,n.adapter={base:new st,shopping:new ot,cart:new rt,order:new ct,share:new it,payment:new ut,user:new at},n}return O()(e,t),h()(e,[{key:"init",value:function(){this._initSupportProtocol(),this.readyCallback()}},{key:"exec",value:function(t,e,n,r,i){var o="vipshop://"+e;i&&(o=o+"?"+w(i)),location.href=o}},{key:"_initSupportProtocol",value:function(){var t=this;c()(this.adapter).forEach(function(e){t.supportProtocol[e]={},a()(i()(t.adapter[e])).forEach(function(n){t.supportProtocol[e][n]=!0})})}}]),e}(A),dt={jsSdk:{wx:"https://res.wx.qq.com/open/js/jweixin-1.5.0.js",swan:"https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.4.js",tt:"https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js",qq:"https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"},signatureUrl:"https://weixin-api.vip.com/v2/jsSdk/getSignature",supportJSAPILIST:["onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareWeibo","onMenuShareQZone","startRecord","stopRecord","onVoiceRecordEnd","playVoice","pauseVoice","stopVoice","onVoicePlayEnd","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage","translateVoice","getNetworkType","openLocation","getLocation","hideOptionMenu","showOptionMenu","hideMenuItems","showMenuItems","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","closeWindow","scanQRCode","chooseWXPay","openProductSpecificView","addCard","chooseCard","openCard"],supportProtocols:{shopping:{goHome:!0,showBrandProducts:!0,showGoodsDetail:!0,openAdver:!1,brandCategoryGoods:!1,categoryGoodsList:!0,brandCategoryGoodsList:!1,showCommentEditor:!1,goToAR:!1,showFootShapeDetail:!1,addFootShapeData:!1},user:{login:!0,registerUser:!1,goVIPCurrency:!0,showFavourable:!0,addFavourite:!1,delFavourite:!1,goToMyCenter:!0,informationGathering:!1,goToOnlineService:!1,gotoBabyEdit:!1,challengeSysResult:!0,goToSetPayPwd:!1,goToBindPhone:!1,getWeChatLoginInfo:!1},share:{shareActivity:!1,shareSpecial:!1,shareVirtualProduct:!1,shareVis:!1,autoShare:!1,shareImg:!1,shareSendGift:!1},order:{showOrder:!0,showBookOrder:!0},payment:{goPay:!1,checkPaymentApps:!1,fastOrderAdd:!1,callNativePayment:!1,livenessFaceDetect:!1,getTongdunBlackBox:!1,getTouchIDToken:!1},base:{check:!0,_routeToPage:!0,routeTo:!0,startObservingShake:!1,stopObservingShake:!1,downloadApk:!1,goPrePage:!0,goH5:!1,webview:!1,getProtocolVersion:!1,getAppVersion:!1,getAppBaseInfo:!1,smsSend:!1,playVideo:!1,playVideoV2:!1,permitVideo:!1,getUserLocation:!1,saveImgGallery:!1,showActivity:!0,goNativePageResult:!1,emitEvent:!0,goToExternalBrowser:!1,copy2clipboard:!1,getNotificationEnable:!1,isAppInstalled:!1,sendUri:!1,openCamera:!1,closeCamera:!1},cart:{addCart:!1},ui:{showToast:!1,showLoading:!1,hideLoading:!1,showDialog:!1,showMenu:!1,hideMenu:!1,setMenuTitle:!0,showMenuButton:!1,hideMenuButton:!1,showFloatView:!1,showFloatViewV2:!1,enablePullRefresh:!1,showMenuButtonV2:!1,setMenuButton:!1,setMenuSearchBar:!1},utils:{redirect:!1,getAppVersion:!1,versionLT:!1,versionGT:!1}},router:{wx:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js",swan:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js",tt:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js",qq:"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/wxlite_routeto.js"}},vt=Z;var mt=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(){var t=F.apply(void 0,arguments),e=t.param,n=t.success,r=t.fail,i=w(e)?"/pages/index/index?"+w(e):"/pages/index/index";this._exec("miniProgram","reLaunch",{url:i,success:n,fail:r})}},{key:"showBrandProducts",value:function(t,e,n){var r=w(t)?"/pages/brand/brand?"+w(t):"/pages/brand/brand";this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}},{key:"showGoodsDetail",value:function(t,e,n){var r=w(t)?"/pages/productDetail/productDetail?"+w(t):"/pages/productDetail/productDetail";this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}},{key:"categoryGoodsList",value:function(t,e,n){var r=w(t)?"/pages/classifyList/classifyList?"+w(t):"/pages/classifyList/classifyList";this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}}]),t}(),yt=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t,e,n){var r={order_sn:(t=t||{}).sn,order_type:t.isPrevSell||"",source:t.sourceType||""},i=w(r)?"/pages/order/detail/index?"+w(r):"/pages/order/detail/index",o="1"!==r.source&&"2"!==r.source?"redirectTo":"navigateTo";this._exec("miniProgram",o,{url:i,success:e,fail:n})}},{key:"showBookOrder",value:function(t,e){this._exec("miniProgram","redirectTo",{url:"/pages/orderList/orderList?status=prepay",success:t,fail:e})}}]),t}(),gt=n("Dd8w"),_t=n.n(gt);function bt(t,e){function n(){t.call(e,new Date,"l")}try{var r=new XMLHttpRequest;r.open("GET","/favicon.ico?t="+parseInt((new Date).getTime()/3e5),!0),r.send(),r.onreadystatechange=function(){if(4===r.readyState){var i=r.getResponseHeader("date");if(i){var o=new Date(i);t.call(e,o,"s")}else n()}}}catch(t){n()}}function wt(t){var e=_t()({},t),n=e.url,r=e.dateNow,i=e.dateType,o=e.cacheTime;return n+"?v="+i+(3*parseInt(r/o)).toString(16)+"&d="+encodeURIComponent(location.hostname)}function xt(t){return"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/vcspRouter/"+t.bizType+"_"+t.platform+".js"}var St=2,kt=1;function Ct(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=void 0,i=n.timeout,o=void 0===i?3e4:i,a=n.timeToRefresh,s=n.retry,c=void 0===s?0:s,u=n.retryUrl,l=!1,f=c;function h(){clearTimeout(r),r=null}u=u||function(){return t},function n(){var i=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).isRetry,s=f-c,p=i?u({oUrl:t,retry:s}):t,d=document.createElement("script");d.type="text/javascript",d.async=!0,d.onerror=function(t){h(),l||(d.parentNode.removeChild(d),c<1?(l=!0,e({code:St,info:t,url:p})):(i&&et("retry-fail",{retry:s,url:p}),c--,n({isRetry:!0})))},d.onload=function(){h(),l||(l=!0,e())},a&&(p=function(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}(p,"v="+Math.floor(new Date/a))),o>0&&(r&&h(),r=setTimeout(function(){l||e({code:kt,info:"loadScriptTimeout",url:p})},o)),d.src=p,document.getElementsByTagName("head")[0].appendChild(d)}()}function Tt(t,e){return Object.prototype.toString.call(t).slice(8,-1).toLocaleLowerCase()===e}function Et(t){for(var e=!0,n=0;n-1}).map(function(n,r){var i=n,o=t[n];return e.map&&e.map[n]&&e.map[n].key&&(i=e.map[n].key,void 0!==e.map[n].value[o]&&(o=e.map[n].value[o])),i+"="+encodeURIComponent(o)}).join("&")}function Pt(t,e,n){var r=_t()({},n),i=r.timeout,o=void 0===i?1e4:i,a=r.timeToRefresh,s=void 0===a?864e5:a,c=r.retry,u=r.retryUrl;bt(function(n,r){Ct(wt({url:t,dateNow:n,dateType:r,cacheTime:s}),e,{timeout:o,retry:c,retryUrl:u})})}function Mt(t,e){function n(t,e){return t?("string"==typeof e&&(e=e.split(".")),0==e.length?void 0===t?"":function(t){return Tt(t,"string")||Tt(t,"number")?t:""}(t):n(t[e[0]],e.slice(1))):""}return r=e,t.replace(/\$\{(.+?)\}/g,function(t,e){return n(r,e)});var r}var jt=function(){function t(){l()(this,t)}return h()(t,[{key:"showActivity",value:function(t,e,n){var r=void 0;switch(t.name){case"home_search":var i=t.params?{keyword:t.params.search_word||""}:{};r=w(i)?"/pages/searchSuggest/searchSuggest?"+w(i):"/pages/searchSuggest/searchSuggest";break;case"my_collection":r="/pages/favouriteList/favouriteList?"+w({type:t.params&&t.params.page_type});break;default:return void(n&&n(V))}this._exec("miniProgram","navigateTo",{url:r,success:e,fail:n})}},{key:"_routeToPage",value:function(t,e,n){var r=t.url,i="navigateTo";switch(t.navType){case"1":i="navigateTo";break;case"2":i="redirectTo";break;case"3":i="reLaunch";break;case"4":i="switchTab";break;default:i="navigateTo"}this._exec("miniProgram",i,{url:r,success:e,fail:n})}},{key:"routeTo",value:function(t,e,n){var r=t.navType,i="navigateTo",o=window.__wxLiteRouteToMap[t.name];if(o&&!0===o.tested){var a=void 0;switch(m()(o.t)){case"string":a=Mt(o.t,t.params);break;case"function":a=Mt(o.t(t.params,null,{setParam:w}),t.params);break;default:return void(n&&n(V))}switch(r){case"1":i="navigateTo";break;case"2":i="redirectTo";break;case"3":i="reLaunch";break;case"4":i="switchTab";break;default:i="navigateTo"}this._exec("miniProgram",i,{url:a,success:e,fail:n})}else n&&n(V)}},{key:"check",value:function(t,e,n){var r={code:"1",msg:"success",data:{}};t.pages.forEach(function(t){r.data[t]=window.__wxLiteRouteToMap[t]&&window.__wxLiteRouteToMap[t].tested?1:0}),e&&e(r)}},{key:"goPrePage",value:function(){this._exec("miniProgram","navigateBack",{delta:1})}},{key:"emitEvent",value:function(t,e){this._exec("miniProgram","postMessage",{data:t}),e&&e()}}]),t}(),It=function(){function t(){l()(this,t)}return h()(t,[{key:"login",value:function(t,e){var n="/pages/loginWx/loginWx?callbackUrl="+encodeURIComponent(window.location.href);this._exec("miniProgram","redirectTo",{url:n,success:t,fail:e})}},{key:"goToMyCenter",value:function(t,e){this._exec("miniProgram","switchTab",{url:"/pages/userCenter/userCenter",success:t,fail:e})}},{key:"challengeSysResult",value:function(t,e,n){if("postMsg"===t.jumpType){var r={type:"login_challenge_result",data:t};this._exec("miniProgram","postMessage",{data:r}),this._exec("miniProgram","navigateBack",{delta:1})}else{var i="/pages/vipRouter/vipRouter?"+w({router:"challengeSysResult",params:d()(t)});this._exec("miniProgram","navigateTo",{url:i,success:e,fail:n})}}},{key:"showFavourable",value:function(t,e){this._exec("miniProgram","navigateTo",{url:"/vipshop/user/pages/myCoupon/myCoupon",success:t,fail:e})}},{key:"goVIPCurrency",value:function(t,e){this._exec("miniProgram","navigateTo",{url:"/vipshop/user/pages/myVipcoin/myVipcoin",success:t,fail:e})}}]),t}(),Lt=function(){function t(){l()(this,t)}return h()(t,[{key:"setMenuTitle",value:function(t,e,n){var r=(t=t||{}).title||"";try{var i=document.body;document.title=r;var o=document.createElement("iframe");o.style.display="none",o.onload=function(){setTimeout(function(){i.removeChild(o),"function"==typeof e&&e()},0)},o.src="/favicon.ico?_v_=1",i.appendChild(o)}catch(t){"function"==typeof n&&n(t)}}}]),t}(),Dt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.supportProtocol=dt.supportProtocols,n.event=new vt(t),n.wx={},n.adapter={shopping:new mt,user:new It,order:new yt,base:new jt,ui:new Lt},n.liteAppType=t.liteAppType,n}return O()(e,t),h()(e,[{key:"_isFunction",value:function(t){return t&&"[object Function]"==={}.toString.call(t)}},{key:"init",value:function(){bt(function(t,e){var n=this,r=this._core.opts.bizType,i=r?xt({platform:"wxlite",bizType:r}):"";for(var o in dt.router)dt.router[o]=wt({url:i||dt.router[o],dateNow:t,dateType:e,cacheTime:3e5});"function"==typeof window.define&&(window.define.amd||window.define.cmd)&&window.require?this.liteAppType.isWx?window.require([dt.jsSdk.wx,dt.router.wx],function(t){n.wx=t,n._registerWxEnv()}):this.liteAppType.isQq?window.require([dt.jsSdk.qq,dt.router.qq],function(t){n.wx=t,n.isReady=!0,n.readyCallback()}):this.liteAppType.isSwan?window.require([dt.jsSdk.swan,dt.router.swan],function(){n.wx=window.swan,n.isReady=!0,n.readyCallback()}):this.liteAppType.isTt&&window.require([dt.jsSdk.tt,dt.router.tt],function(){n.wx=window.tt,n.isReady=!0,n.readyCallback()}):this._loadScript()},this)}},{key:"_loadScript",value:function(){var t=this,e=0,n=void 0,r=void 0,i=void 0;this.liteAppType.isWx?(n="wx",r=dt.router.wx,i=function(){t.wx=window.wx,t._registerWxEnv()}):this.liteAppType.isSwan?(n="swan",r=dt.router.swan,i=function(){t.wx=window.swan,t.isReady=!0,t.readyCallback()}):this.liteAppType.isTt?(n="tt",r=dt.router.tt,i=function(){t.wx=window.tt,t.isReady=!0,t.readyCallback()}):this.liteAppType.isQq&&(n="qq",r=dt.router.qq,i=function(){t.wx=window.qq,t.isReady=!0,t.readyCallback()});var o={};function a(t,e){var n=t.code,r=t.url,i=e+"-"+n;if(!o[i])switch(o[i]=!0,n){case St:et(e+"-load-error",{url:r});break;case kt:et(e+"-load-timeout",{url:r})}}function s(){++e>=2&&i&&i()}var c=dt.jsSdk[n];c&&(Ct(c,function(t){t?a(t,"sdk"):s()},{timeout:1e4,retry:1,retryUrl:function(){var t,e=(t=c.match(/\/([^\/?#]+)[^\/]*$/)).length>1?t[1]:null;return"https://h2bak.vipstatic.com/h5rsc.vipstatic.com/hercules_static/mpsdk/"+n+"/"+e}}),r&&Ct(r,function(t){t?a(t,"router"):s()},{timeout:1e4,retry:1,retryUrl:function(t){return t.oUrl.replace("h2.vipstatic.com","h2bak.vipstatic.com")}}))}},{key:"_registerWxEnv",value:function(){var t=this,e="signatureUrl"+(new Date).getTime(),n=document.createElement("script"),r=dt.signatureUrl+"?url="+encodeURIComponent(location.href)+"&jsonp="+e,i=window.VH_BIZ_WX_HASH;i&&(r+="&fs="+i),n.src=r,window[e]=function(e){Number(e.code)?t._initSupportFail("绛惧悕鎺ュ彛"):(t.wx.config({debug:!1,appId:e.data.appid,timestamp:e.data.timestamp,nonceStr:e.data.noncestr,signature:e.data.signature,jsApiList:dt.supportJSAPILIST}),t.wx.ready(function(){t.isReady=!0,t.readyCallback()}),t.wx.error(function(){t._initSupportFail("wx.config")}))},document.head.appendChild(n)}},{key:"_initSupportFail",value:function(t){this.isReady=!0,this.readyCallback()}},{key:"exec",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.wx&&this.isReady){var r=t?this.liteAppType.isSwan?this.wx.webView:this.wx[t]:this.wx;window.setTimeout(function(){r[e](n)},200)}else n.fail&&n.fail(V)}}]),e}(A),Rt=Z,Ft=function(t,e){var n=_t()({},t),r=n.params,i=void 0===r?{}:r,o=n.success,a=void 0===o?function(){}:o,s=n.fail,c=void 0===s?function(){}:s,u={code:"1",msg:"success",data:{}};e.routeMap?(i.pages.forEach(function(t){u.data[t]=e.routeMap[t]&&e.routeMap[t].tested?1:0}),a(u)):(i.pages.forEach(function(t){u.data[t]=0}),c(X))},Nt=-9003,Bt=-9004,zt=-9005,Ut=!1,Ht=!1,$t=null,Vt=null,Wt=void 0;function qt(t,e){Ut?$t=t:window.loginDeal&&window.loginDeal.go?t&&t():(Ut=!0,Pt("//mlogin.vip.com/asserts/js/login-deal.min.js",function(n){if(Ut=!1,n)e({code:Nt,msg:"鍔犺浇login-deal鏃跺彂鐢熼敊璇"}),et("load_mlogin_failed",{platform:encodeURIComponent(d()(Wt.event.core.platform))});else{if(!document.getElementById("J-mlogin-plugin-css")){var r=document.createElement("link");r.rel="stylesheet",r.id="J-mlogin-plugin-css",r.href="//mlogin.vip.com/asserts/css/login.css",document.body.appendChild(r)}$t?$t():t&&t()}$t=null}))}function Xt(){var t=window.location.href.split("#"),e=Math.random().toString().replace(".","");/(?:[\?&])(_t=[^&]+)/.test(t[0])?t[0]=t[0].replace(/([\?&])(_t=[^&]+)/,"$1_t="+e):t[0].indexOf("?")>0?t[0]+="&_t="+e:t[0]+="?_t="+e,window.location.replace(t.join("#"))}function Yt(t,e,n){try{n?window.loginDeal&&window.loginDeal.go({onWinLogin:function(t){!0===t.success&&Xt()},openid:n.openid,unionid:n.unionid,headimgurl:n.headimgurl,nickname:n.nickname,isChangeWeixinBind:n.isChangeWeixinBind||!1}):window.loginDeal&&window.loginDeal.go({onWinLogin:function(t){!0===t.success&&Xt()}}),t({code:0,msg:"success"})}catch(t){e({code:Bt,msg:"鏉ヨ嚜loginDeal鐨勬湭鐭ラ敊璇"})}}var Gt={base:{routeTo:!0,check:!0,getModuleSupportApi:!0,getSupportModule:!0},user:{login:!0}},Kt={base:{routeTo:function(t,e){var n=_t()({},t),r=n.params,i=void 0===r?{}:r,o=(n.success,n.fail),a=void 0===o?function(){}:o;Ft({params:{pages:[i.name]},success:function(t){if(1===t.data[i.name])try{var n=function(t,e,n,r){var i=_t()({},n),o=i.name,a=i.params,s=void 0===a?{}:a,c=t[o];if(!(o&&c&&c.t))throw{code:-1,message:"[getUrlFromPathName] notFound"};if(c&&c.t)try{var u="";return Tt(c.t,"string")?u=Mt(c.t,s):Tt(c.t,"function")&&(u=Mt(c.t(s,r,{every:Et,getParamQueries:At,merge:Ot}),s)),u}catch(t){throw{code:-2,message:t.message||"[parseTemplate] parse fail"}}}(e.routeMap,i.name,i,{platform:e.event.core.platform,core:e.event.core});e.event.core._hercules.utils.redirect(n)}catch(t){a(_t()({},V,{info:{msg:"[webEngine] 閫氳繃閰嶇疆鑾峰彇url澶辫触锛岃纭畾閰嶇疆鎴栧叆鍙傜殑姝g‘鎬",code:-9001,extraInfo:{params:i,routeMap:e.routeMap,error:t}}}))}else a(_t()({},V,{info:{msg:"[webEngine] 璇ヨ矾鐢眜rl鏈畾涔夛紝璇疯仈绯籧offee.huang or guangyao.huang",code:-9002,extraInfo:i.name}}))},fail:a},e)},check:Ft,getModuleSupportApi:function(t,e){var n=_t()({},t),r=n.success,i=void 0===r?function(){}:r,o=n.fail,a=void 0===o?function(){}:o,s=n.params,c=void 0===s?{}:s,u={code:1,data:[]};try{c.plugin.forEach(function(t){if(e.supportProtocol&&e.supportProtocol[t]){var n=e.supportProtocol[t],r={};for(var i in r[t]=[],n)!0===n[i]&&r[t].push(i);u.data.push(r)}}),i(u)}catch(t){u.code=-9006,u.msg="杩愯鏃堕敊璇細"+t,a(u),et("getModuleSupportApiError runtime error锛"+t,{platform:encodeURIComponent(d()(e.event.core.platform))})}},getSupportModule:function(t,e){var n=_t()({},t),r=n.success,i=void 0===r?function(){}:r,o=n.fail,a=void 0===o?function(){}:o,s=(n.params,{code:1,data:[]});try{if(e.supportProtocol)for(var c in e.supportProtocol)s.data.push(c);i(s)}catch(t){s.code=-9007,s.msg="杩愯鏃堕敊璇細"+t,a(s),et("getSupportModule runtime error锛"+t,{platform:encodeURIComponent(d()(e.event.core.platform))})}}},user:{login:function(t,e){var n=_t()({},t),r=n.success,i=void 0===r?function(){}:r,o=n.fail,a=void 0===o?function(){}:o,s=n.params,c=void 0===s?{}:s;qt((Wt=e).event.core.platform.isWebWeixin?function(){!function(t,e){if(window.onGetUserInfo=function(n){var r=n.data||{};switch(n.code){case 0:Vt?Vt(r):t&&t(r);break;case-33:var i=n.data.redirectUrl+"?type="+n.data.type+"&src="+encodeURIComponent(location.href);window.location.href=i;break;default:e({code:zt,msg:"鑾峰彇寰俊鐢ㄦ埛淇℃伅鏃跺彂鐢熼敊璇細"+n.msg}),et("getUserInfo_failed",{platform:encodeURIComponent(d()(Wt.event.core.platform))})}},Ht)Vt=t;else{Ht=!0;var n="//weixin-api.vip.com/user/getUserInfo?jsonp=onGetUserInfo&source=source&type=3&_t="+(new Date).getTime(),r=window.VH_BIZ_WX_HASH;r&&(n+="&fs="+r),Pt(n,function(t){Ht=!1,t&&e({code:zt,msg:"鑾峰彇寰俊鐢ㄦ埛淇℃伅鏃跺彂鐢熺綉缁滈敊璇"}),Vt=null})}}(function(t){t.isChangeWeixinBind=c.isChangeWeixinBind,Yt(i,a,t)},a)}:function(){Yt(i,a)},a)}}},Qt=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.supportProtocol=Gt,n.routeMap=null,n.event=new Rt(t),n}return O()(e,t),h()(e,[{key:"init",value:function(){var t=this,e=this._core.opts.bizType;Pt(e?xt({platform:"web",bizType:e}):"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/web_routeto.js",function(e){if(e){if(e&&e.code===kt)return;et("web route file load failed",{mName:"",iName:"",platform:encodeURIComponent(d()(t.event.core.platform)),params:""}),t.isReady=!0,t.readyCallback()}else t.routeMap=window.__h5herculesRouteToMap||{},t.isReady=!0,t.readyCallback()},{timeToRefresh:3e5,retry:1,retryUrl:function(t){return t.oUrl.replace("h2.vipstatic.com","h2bak.vipstatic.com")}})}},{key:"exec",value:function(t,e,n,r,i){this._webInternalExec(t,e,{success:n,fail:r,params:i})}},{key:"_webInternalExec",value:function(t,e,n){var r=_t()({},n).fail,i=void 0===r?function(){}:r,o=Kt[t]||{};if(o[e])try{o[e](n,this)}catch(r){i(_t()({},V,{info:{code:-9e3,msg:'璋冪敤鍐呴儴鏂规硶"'+t+"."+e+'"鍑洪敊',extraInfo:{error:r,option:n}}})),et("error invoking internal modules interface",{mName:t,iName:e,platform:encodeURIComponent(d()(this.event.core.platform)),params:encodeURIComponent(d()(n))})}}}]),e}(A),Jt=Z,Zt=function(){function t(){l()(this,t)}return h()(t,[{key:"routeTo",value:function(t,e,n){var r=window.__quickAppRouteToMap[t.name];if(r&&!0===r.tested){var i=void 0;switch(m()(r.t)){case"string":i=Mt(r.t,t.params);break;case"function":i=Mt(r.t(t.params,null,{setParam:w}),t.params);break;default:return void(n&&n(V))}this._exec({url:i})}else n&&n(V)}},{key:"showActivity",value:function(t,e,n){var r=void 0;switch(t.name){case"home_search":var i={},o=t.params;o&&(o.url?i.suggest_word=d()({type:"2",showWord:o.search_word||"",typeValue:o.url}):o.search_word&&(i.keyword=encodeURIComponent(o.search_word))),r=w(i)?"/pages/searchSuggest?"+w(i):"/pages/searchSuggest";break;default:return void(n&&n(V))}this._exec({url:r})}},{key:"goPrePage",value:function(){window.history&&window.history.go(-1)}}]),t}(),te=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t){t.sn&&(t.sn=t.sn.split(",")[0]);var e="/subPages/order/orderDetail?order_sn="+t.sn;t.isPrevSell&&(e+="&order_type="+t.isPrevSell),this._exec({url:e})}},{key:"showBookOrder",value:function(){this._exec({url:"/subPages/order/orderList?status=all&selectedIndex=1"})}}]),t}(),ee=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(t){var e=w(t)?"/pages/index?"+w(t):"/pages/index";this._exec({url:e})}},{key:"showBrandProducts",value:function(t){var e=w(t)?"/pages/brand?"+w(t):"/pages/brand";this._exec({url:e})}},{key:"showGoodsDetail",value:function(t){var e=w(t)?"/pages/product/detail?"+w(t):"/pages/product/detail";this._exec({url:e})}},{key:"brandCategoryGoodsList",value:function(t){var e=t.parentCategoryId?"&hierarchy_id="+t.parentCategoryId:"",n=t.is_warmup?"&iswarmup="+t.is_warmup:"",r="//m.vip.com/classify-brand-0-0-0-0-0-1-20.html?brand_store_sn="+t.brandSN+e+n+"&title="+t.brandName+"&source_tag="+(t.source_tag||"");this.utils.redirect(r)}},{key:"categoryGoodsList",value:function(t){var e=w(t)?"/pages/classify/classifyList?"+w(t):"/pages/classify/classifyList";this._exec({url:e})}}]),t}(),ne=function(){function t(){l()(this,t)}return h()(t,[{key:"login",value:function(){this._exec({url:"/pages/loginPhone"})}},{key:"challengeSysResult",value:function(t){window.location.href="https://defend.vip.com/Index/app/?r=verification.exchange.index&challengeSysResult="+encodeURIComponent(d()(t))}},{key:"goToMyCenter",value:function(t,e){this._exec({url:"/pages/index?toolbarCode=userCenter"})}}]),t}(),re=function(){function t(){l()(this,t)}return h()(t,[{key:"fastOrderAdd",value:function(t){var e=w(t)?"/pages/checkout?"+w({brand_id:t.brandId,product_id:t.productId,size_id:t.sizeId,size_num:t.sizeNum,configure_id:t.configureId,act_id:t.groupId,act_no:t.actNo,buy_type:t.buyType}):"/pages/checkout";this._exec({url:e})}},{key:"callNativePayment",value:function(t,e,n){system.onmessage=function(t){e({code:1,data:JSON.parse(t)})};var r={action:"callNativePayment",data:t};system.postMessage(d()(r))}},{key:"checkPaymentApps",value:function(t,e,n){system.onmessage=function(t){e({code:1,data:JSON.parse(t)})};var r={action:"checkPaymentApps",data:t};system.postMessage(d()(r))}}]),t}(),ie=n("woOf"),oe=n.n(ie),ae=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t){var e=w(t)?"/pages/product/detail?"+w(oe()(t,{goodsId:t.productId})):"/pages/product/detail";this._exec({url:e}),this._exec({url:e})}}]),t}(),se=function(){function t(){l()(this,t)}return h()(t,[{key:"shareSpecial",value:function(t){var e={action:"share",data:{shareId:t.shareId,url:t.specialUrl}};system.postMessage(d()(e))}}]),t}(),ce=function(){function t(){l()(this,t)}return h()(t,[{key:"showAddDesktopIcon",value:function(t){var e={action:"AddDesktopIcon",data:{dialog:t.dialog,position:t.position}};system.postMessage(d()(e))}},{key:"setMenuButton",value:function(t){system.onmessage=function(e){"shareSpecial"==JSON.parse(e).action&&t.menus[0].clickEventMethod({code:200,msg:"ok"})};var e={action:"setMenuTitle",data:{dialog:t.dialog,position:t.position}};system.postMessage(d()(e))}}]),t}(),ue=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new Jt(t),n.adapter={base:new Zt,order:new te,shopping:new ee,user:new ne,payment:new re,cart:new ae,share:new se,ui:new ce},n}return O()(e,t),h()(e,[{key:"init",value:function(){var t=this;bt(function(e,n){var r=t._core.opts.bizType,i=wt({url:r?xt({platform:"quickapp",bizType:r}):"https://h2.vipstatic.com/h5rsc.vipstatic.com/hercules_static/config/quickapp_routeto.js",dateNow:e,dateType:n,cacheTime:3e5});t._loadScript(i,function(e){e&&e.code===kt||(t._initSupportProtocol(),t.isReady=!0,t.readyCallback())})},t)}},{key:"exec",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};window.system&&this.isReady&&window.system.go(t.url)}},{key:"_loadScript",value:function(t,e){Ct(t,e,{retry:1,retryUrl:function(t){return t.oUrl.replace("h2.vipstatic.com","h2bak.vipstatic.com")}})}},{key:"_initSupportProtocol",value:function(){var t=this;c()(this.adapter).forEach(function(e){t.supportProtocol[e]={},a()(i()(t.adapter[e])).forEach(function(n){t.supportProtocol[e][n]=!0})})}}]),e}(A),le=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.doCall=t.doCall.bind(t),n}return O()(e,t),h()(e,[{key:"subscribe",value:function(t){this.doCall("base","registerService",null,null,{eventtype:t,jsmethod:this.globalCallbackFuncName})}}]),e}(Z),fe=function(t){function e(t){l()(this,e);var n=T()(this,(e.__proto__||i()(e)).call(this,t));return n.event=new le(t),n.appInfo=t.appInfo,n}return O()(e,t),h()(e,[{key:"init",value:function(){this._getSupportedModule()}},{key:"exec",value:function(t,e,n,r,i){var o=_();o.cdv&&o.cdv.exec({module:t,method:e,params:i,success:function(t,e){n&&n(e)},fail:function(t,e){r&&r(e)}})}},{key:"_getSupportedModule",value:function(){var t=this;this.exec("base","getSupportModule",function(e){try{e&&e.data&&e.data.length>0?t._getSupportedModuleInterface(e.data):et("hasNotSupportModule",{msg:d()(e)})}catch(t){}},function(e){t._initSupportFail("getSupportModule",e)})}},{key:"_getSupportedModuleInterface",value:function(t){var e=this;this.exec("base","getModuleSupportApi",function(t){try{t&&t.data&&t.data.length>0||et("hasNotSupportApi",{msg:d()(t)})}catch(t){}e._setSupportedInterface(t),e.isReady=!0,e.readyCallback()},function(t){e._initSupportFail("getModuleSupportApi",t)},{plugin:t})}},{key:"_initSupportFail",value:function(t,e){this.isReady=!0,this.readyCallback();try{et("faillBackWhenGetSupportList",{methodName:t,data:d()(e)})}catch(t){}}},{key:"_setSupportedInterface",value:function(t){var e=this;t.data.forEach(function(t){a()(t).forEach(function(n){e.supportProtocol[n]=e.supportProtocol[n]||{},t[n].forEach(function(t){e.supportProtocol[n][t]=!0})})})}}]),e}(A),he={deviceBack:"event_type_deviceback",comingsoonBack:"event_type_comingsoonback",navBack:"event_type_back",resume:"event_type_appresume",pause:"event_type_apppause",payResult:"event_type_payment_result",huaweiPayType:"event_type_huawei_pay_support_result",shake:"event_type_customer_shaked_mobilephone",menuButtonClick:"event_type_menu_button_click",babyFileUpdate:"event_type_notify_baby_update",autoShareV2Click:"event_type_menu_autoshare_click",bindPhoneSuccess:"event_type_bind_phone_result",setPayPwdSuccess:"event_type_set_pay_pwd_result",tabInactive:"event_type_tab_inactive",tabActive:"event_type_tab_active",snapshotShare:"event_type_snapshot_share",saveCommentSuccess:"event_type_save_comment",faceDetectResult:"event_type_facedetect_result",handleCalendarResult:"event_type_calendar_event_result",tenvideoLoginResult:"event_type_get_tenvideo_login_info_result",handleBatchCalendarResult:"event_type_batch_calendar_event_result",cardIdentificationResult:"event_type_cardIdentification_result",evokeFacedetectResult:"event_type_evoke_facedetect_result",faceIdentification:"event_type_faceIdentification_result",securityVerificationResult:"event_type_securityVerification_result"},pe=function(){function t(e){l()(this,t),this.eventEngine=e,this.globalCallbackFuncName=e.globalCallbackFuncName,this._eventHandlers={},this.type=he,this._registerCallback(),this.eventEngine.bindToolMethod(this)}return h()(t,[{key:"once",value:function(t,e){return this._listen(t,e,!0),this}},{key:"on",value:function(t,e){return this._listen(t,e,!1),this}},{key:"off",value:function(t,e){return this._eventHandlers[t]&&(this._eventHandlers[t]=e?this._eventHandlers[t].filter(function(t){return t!==e}):[],this._eventHandlers[t]&&this.eventEngine.unsubscribe(t)),this}},{key:"_registerCallback",value:function(){var t=this;this.eventEngine.registerCommonEventCallback(function(e){t._eventHandlers[e.eventType]=(t._eventHandlers[e.eventType]||[]).filter(function(t){return t.handler&&t.handler(e.data),!t.once})})}},{key:"_addToList",value:function(t,e,n){this._eventHandlers[t]=this._eventHandlers[t]||[],this._eventHandlers[t].push({once:n,handler:e})}},{key:"_listen",value:function(t,e,n){this._eventHandlers[t]&&0!=this._eventHandlers[t].length||this.eventEngine.subscribe(t);var r=t===this.type.tenvideoLoginResult?function(){et("vh_event_log",{detail:d()(arguments)}),e.apply(null,arguments)}:e;this._addToList(t,r,n)}}]),t}();function de(){var t=navigator&&navigator.userAgent||"";return"miniprogram"===window.__wxjs_environment&&!window.__qqjs_environment||/MicroMessenger/i.test(t)&&/miniProgram/.test(t)}var ve=function(){function t(e){l()(this,t),this._engineMap={cordova:nt,wxLiteApp:Dt,vipshop:pt,web:Qt},this._hercules=e,this.opts=e.opts,this.platform={isRN:!1,isApp:!1,isWXLite:!1,isWXKe:!1,isQuickApp:!1,isWeb:!1,isWebWeixin:!1,isBkNative:!1},this.liteAppType={isWx:!1,isSwan:!1,isTt:!1,isQq:!1},this.appInfo={},this.taskQueue=[],this.degradePlugin={},this._initPlatform(),this.engine=this._getEngineInstance(),this._onEngineChange()}return h()(t,[{key:"doCall",value:function(t,e,n,r,i){var o=this,a=this;function s(n){r&&r(n),et("doCallFail",{mName:t,iName:e,platform:encodeURIComponent(d()(a.platform)),params:encodeURIComponent(d()(i)),failMsg:encodeURIComponent(d()(n))})}if(this.engine.isReady)this.engine.checkSupport(t,e)?(et("protocol-supported",{mName:t,iName:e,platform:encodeURIComponent(d()(this.platform)),params:encodeURIComponent(d()(i))},10),this.engine.checkAdapter(t,e)?this.engine.adapter[t][e].call(this._hercules,i,n,s):this.engine.exec(t,e,n,s,i)):this._customDegrade(t,e,n,s,i);else{var c=arguments;this.taskQueue.push(c),setTimeout(function(){var t=o.taskQueue.indexOf(c);t>-1&&o.taskQueue.splice(t,1),!0!==c.hasCall&&s&&s(q)},1e4)}}},{key:"register",value:function(t){var e=this;a()(t).forEach(function(n){var r=e.degradePlugin[n]=e.degradePlugin[n]||{};a()(t[n]).forEach(function(e){var i=t[n][e];"function"==typeof i&&(r[e]=i)})})}},{key:"onEngineReady",value:function(){this._cleanTaskQueue()}},{key:"setEngine",value:function(t){this.engine=new this._engineMap[t](this),this._onEngineChange()}},{key:"_onEngineChange",value:function(){var t=this;this.engine.onEngineReady(t.onEngineReady.bind(t)),this.exec=this.engine.exec.bind(this.engine),this.adapter=this.engine.adapter,this.event=new pe(this.engine.event),this.engine.init()}},{key:"_cleanTaskQueue",value:function(){var t=this,e=this.taskQueue;this.taskQueue=[],e.forEach(function(e){t.doCall.apply(t,e),e.hasCall=!0})}},{key:"_customDegrade",value:function(t,e,n,r,i){this.degradePlugin[t]&&this.degradePlugin[t][e]?i?this.degradePlugin[t][e](i,n,r):this.degradePlugin[t][e](n,r):"vh"===t&&"ready"===e?n&&n(Y):(et("protocol-not-support",{mName:t,iName:e,platform:encodeURIComponent(d()(this.platform)),params:encodeURIComponent(d()(i))}),this.platform.isApp||this.platform.isBkNative?r&&r(V):r&&r(W))}},{key:"_initPlatform",value:function(){this._initAppInfo();var t=this.appInfo,e=t.app_version?t.app_version.split("."):[],n=4===e.length&&8===e[3].length,r=-1!==(t.client||"").indexOf("wechat_mini_program"),i=navigator&&navigator.userAgent||"",o=de(),a=b();g()?this.platform.isBkNative=!0:t.app_version&&(n||r)&&/MicroMessenger/i.test(i)||o?(this.platform.isWXLite=!0,this.liteAppType.isWx=!0,o&&(t._confirmWxLite=!0)):t.app_version&&n&&/swan/i.test(i)||"swan"===window.__swanjs_environment?(this.platform.isWXLite=!0,this.liteAppType.isSwan=!0):t.app_version&&n&&/toutiaomicroapp/i.test(i.toLowerCase())||"microapp"===window.__ttjsenv__?(this.platform.isWXLite=!0,this.liteAppType.isTt=!0):/miniprogram/i.test(i)&&/qq/i.test(i)&&!/MicroMessenger/i.test(i)||"miniprogram"===window.__qqjs_environment?(this.platform.isWXLite=!0,this.liteAppType.isQq=!0):t.app_version&&/VIPQuickAPP/i.test(i)&&window.system?this.platform.isQuickApp=!0:t.app_version?a.app_name&&a.app_name.indexOf("weixiangke")>-1?k(t.app_version,"6.2.0")?this.platform.isWeb=!0:(this.platform.isApp=!0,this.platform.isWXKe=!0):this.platform.isApp=!0:"undefined"!=typeof GLOBAL?this.platform.isRN=!0:(this.platform.isWeb=!0,/MicroMessenger/i.test(i)&&(this.platform.isWebWeixin=!0)),this.platform.isWXLite&&t.app_version&&setInterval(function(){!function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:864e5,n=new Date((new Date).getTime()+e);document.cookie=x+"="+encodeURIComponent(t)+"; expires="+n.toGMTString()+"; path=/;domain=.vip.com"}(d()(t),1e4)},3e3)}},{key:"_initAppInfo",value:function(){var t,e,n,r=b(),i=g()?{}:JSON.parse((t=new RegExp("(?:^|;+|\\s+)"+x+"=([^;]*)"),((e=document.cookie.match(t))?decodeURIComponent(e[1]):"")||"{}")),o=g()?{}:null!==(n=window.navigator.userAgent.match(/VIPSHOP\/([.0-9]+)\s\(([^;]+);\s([^;]+);\s([^\)]+)\)/))?{app_version:n[1],protocol_version:n[3],client:n[2]}:{app_version:null,protocol_version:null,client:null},a=!(i._confirmWxLite&&!de());this.appInfo={app_version:o.app_version||a&&i.app_version||r.app_version,protocol_version:o.protocol_version||a&&i.protocol_version||r.protocol_version,client:o.client||a&&i.client||r.client,_confirmWxLite:a&&i._confirmWxLite||!1}}},{key:"_getEngineInstance",value:function(){var t={init:function(){},onEngineReady:function(){},onDegrade:function(){},exec:function(){},event:{bindToolMethod:function(){},subscribe:function(){},unsubscribe:function(){},registerCommonEventCallback:function(){}}};return this.platform.isApp?t=this.appInfo.protocol_version?new this._engineMap.cordova(this):new this._engineMap.vipshop(this):this.platform.isRN||(t=this.platform.isQuickApp?new ue(this):this.platform.isWXLite?new this._engineMap.wxLiteApp(this):this.platform.isBkNative?new fe(this):new this._engineMap.web(this)),t}}]),t}(),me=function(){function t(){l()(this,t)}return h()(t,[{key:"goHome",value:function(t,e,n){return this.doCall("shopping","goHome",e,n,t)}},{key:"showBrandProducts",value:function(t,e,n){this.doCall("shopping","showBrandProducts",e,n,t)}},{key:"showGoodsDetail",value:function(t,e,n){this.doCall("shopping","showGoodsDetail",e,n,t)}},{key:"openAdver",value:function(t,e,n){this.doCall("shopping","openAdver",e,n,t)}},{key:"brandCategoryGoods",value:function(t,e,n){this.doCall("shopping","brandCategoryGoods",e,n,t)}},{key:"categoryGoodsList",value:function(t,e,n){this.doCall("shopping","categoryGoodsList",e,n,N(t))}},{key:"brandCategoryGoodsList",value:function(t,e,n){this.doCall("shopping","brandCategoryGoodsList",e,n,N(t))}},{key:"showCommentEditor",value:function(t,e,n){this.doCall("shopping","showCommentEditor",e,n,t)}},{key:"goToAR",value:function(t,e,n){this.doCall("shopping","goToAR",e,n,t)}},{key:"showFootShapeDetail",value:function(t,e,n){this.doCall("shopping","showFootShapeDetail",e,n,t)}},{key:"addFootShapeData",value:function(t,e){this.doCall("shopping","addFootShapeData",t,e,{})}},{key:"showSkuModule",value:function(t,e,n){this.doCall("shopping","showSkuModule",e,n,t)}},{key:"batchCalendarEvent",value:function(t,e,n){this.doCall("shopping","batchCalendarEvent",e,n,t)}},{key:"publishNotes",value:function(t,e,n){this.doCall("shopping","publishNotes",e,n,t)}}]),t}(),ye=function(){function t(){l()(this,t)}return h()(t,[{key:"login",value:function(t,e,n){"function"==typeof t&&(n=e,e=t,t=null),this._core.platform.isWebWeixin&&t?this.doCall("user","login",e,n,{isChangeWeixinBind:t.isChangeWeixinBind}):this.doCall("user","login",e,n)}},{key:"registerUser",value:function(t,e){this.doCall("user","registerUser",t,e)}},{key:"goVIPCurrency",value:function(t,e){this.doCall("user","goVIPCurrency",t,e)}},{key:"showFavourable",value:function(t,e){this.doCall("user","showFavourable",t,e)}},{key:"addFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_add_favourite",this.event.mockJSFunctionCallback("fake_event_type_add_favourite",function(t){return{code:t}},e),this.doCall("user","addFavourite",e,n,t)}},{key:"delFavourite",value:function(t,e,n){t.jsFunction="fake_event_type_del_favourite",this.event.mockJSFunctionCallback("fake_event_type_del_favourite",function(t){return{code:t}},e),this.doCall("user","delFavourite",e,n,t)}},{key:"goToMyCenter",value:function(t,e){this.doCall("user","goToMyCenter",t,e)}},{key:"informationGathering",value:function(t,e,n){this.doCall("user","informationGathering",e,n,t)}},{key:"goToOnlineService",value:function(t,e,n){this.doCall("user","goToOnlineService",e,n,t)}},{key:"gotoBabyEdit",value:function(t,e,n){this.doCall("user","gotoBabyEdit",e,n,t)}},{key:"challengeSysResult",value:function(t,e,n){this.doCall("user","challengeSysResult",e,n,t)}},{key:"goToSetPayPwd",value:function(t,e){this.doCall("user","goToSetPayPwd",t,e)}},{key:"goToBindPhone",value:function(t,e){this.doCall("user","goToBindPhone",t,e)}},{key:"getWeChatLoginInfo",value:function(t,e){this.event.off("event_type_get_wechat_login_info_result").on("event_type_get_wechat_login_info_result",t),this.doCall("user","getWeChatLoginInfo",null,e)}}]),t}(),ge=function(){function t(){l()(this,t)}return h()(t,[{key:"shareActivity",value:function(t,e,n){this.event.off("event_type_menu_share_activity").on("event_type_menu_share_activity",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareActivity",null,n,t)}},{key:"shareSpecial",value:function(t,e,n){this.event.off("event_type_menu_share_special").on("event_type_menu_share_special",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareSpecial",null,n,t)}},{key:"shareVirtualProduct",value:function(t,e,n){this.event.off("event_type_menu_share_virtual_product").on("event_type_menu_share_virtual_product",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareVirtualProduct",null,n,t)}},{key:"shareVis",value:function(t,e,n){this.event.off("event_type_menu_share_vis").on("event_type_menu_share_vis",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareVis",null,n,t)}},{key:"shareImg",value:function(t,e,n){this.doCall("share","shareImg",e,n,t)}},{key:"shareSendGift",value:function(t,e,n){this.doCall("share","shareSendGift",e,n,t)}},{key:"shareProduct",value:function(t,e,n){this.event.off("event_type_menu_share_product").on("event_type_menu_share_product",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareProduct",e,n,t)}},{key:"shareBrand",value:function(t,e,n){this.event.off("event_type_menu_share_brand").on("event_type_menu_share_brand",e),t.jsMethod=this.event.globalCallbackFuncName,t.callbackId=this.event.globalCallbackFuncName,this.doCall("share","shareBrand",e,n,t)}},{key:"shareUnity",value:function(t,e,n){this.doCall("share","shareUnity",e,n,t)}}]),t}(),_e=function(){function t(){l()(this,t)}return h()(t,[{key:"showOrder",value:function(t,e,n){this.doCall("order","showOrder",e,n,t)}},{key:"showBookOrder",value:function(t,e){this.doCall("order","showBookOrder",t,e)}}]),t}(),be=function(){function t(){l()(this,t)}return h()(t,[{key:"goPay",value:function(t,e,n){this.doCall("payment","goPay",e,n,t)}},{key:"checkPaymentApps",value:function(t,e,n){this.doCall("payment","checkPaymentApps",e,n,t)}},{key:"fastOrderAdd",value:function(t,e,n){this.doCall("payment","fastOrderAdd",e,n,t)}},{key:"callNativePayment",value:function(t,e,n){this.doCall("payment","callNativePayment",e,n,t)}},{key:"livenessFaceDetect",value:function(t,e,n){this.doCall("payment","livenessFaceDetect",e,n,t)}},{key:"getTongdunBlackBox",value:function(t,e){this.doCall("payment","getTongdunBlackBox",t,e)}},{key:"getTouchIDToken",value:function(t,e){this.doCall("payment","getTouchIDToken",t,e)}},{key:"cardIdentification",value:function(t,e,n){this.doCall("payment","cardIdentification",e,n,t)}},{key:"evokeFaceDetect",value:function(t,e,n){this.doCall("payment","evokeFaceDetect",e,n,t)}},{key:"faceIdentification",value:function(t,e,n){this.doCall("payment","faceIdentification",e,n,t)}},{key:"securityVerification",value:function(t,e,n){this.doCall("payment","securityVerification",e,n,t)}},{key:"evokeWxpayScoreUse",value:function(t,e,n){this.doCall("payment","evokeWxpayScoreUse",e,n,t)}}]),t}(),we=function(){function t(){l()(this,t)}return h()(t,[{key:"startObservingShake",value:function(t,e){this.doCall("base","startObservingShake",t,e)}},{key:"stopObservingShake",value:function(t,e){this.doCall("base","stopObservingShake",t,e)}},{key:"downloadApk",value:function(t,e,n){this.doCall("base","downloadApk",e,n,t)}},{key:"goPrePage",value:function(t,e){this.doCall("base","goPrePage",t,e)}},{key:"goH5",value:function(t,e,n){this.doCall("base","goH5",e,n,t)}},{key:"check",value:function(t,e,n){this.doCall("base","check",e,n,t)}},{key:"_routeToPage",value:function(t,e,n){t=t||{},this.doCall("base","_routeToPage",e,n,t)}},{key:"routeTo",value:function(t,e,n){if("string"==typeof t){var r=t.match(/viprouter\:\/\/([^\?]+)[\?]*([^#]*)/);if(t={},r.length&&r[1])if(t.name=r[1],t.params={},r[2])r[2].split("&").forEach(function(e){e.indexOf("=")>0&&(e=e.split("="),t.params[e[0]]=e[1])})}(t=t||{}).params||(t.params={}),this.doCall("base","routeTo",e,n,t)}},{key:"webview",value:function(t,e,n){this.doCall("base","webview",e,n,t)}},{key:"registerService",value:function(t,e,n){this.doCall("base","registerService",e,n,t)}},{key:"getSupportModule",value:function(t,e){this.doCall("base","getSupportModule",t,e)}},{key:"getModuleSupportApi",value:function(t,e,n){this.doCall("base","getModuleSupportApi",e,n,t)}},{key:"checkSupportApi",value:function(t,e,n){this.doCall("base","checkSupportApi",e,n,t)}},{key:"getProtocolVersion",value:function(t,e){this.doCall("base","getProtocolVersion",t,e)}},{key:"getAppVersion",value:function(t,e){this.doCall("base","getAppVersion",t,e)}},{key:"getAppBaseInfo",value:function(t,e,n){this.doCall("base","getAppBaseInfo",e,n,t)}},{key:"smsSend",value:function(t,e,n){this.doCall("base","smsSend",e,n,t)}},{key:"playVideo",value:function(t,e,n){this.doCall("base","playVideo",e,n,t)}},{key:"playVideoV2",value:function(t,e,n){this.doCall("base","playVideoV2",e,n,t)}},{key:"permitVideo",value:function(t,e){this.doCall("base","permitVideo",t,e)}},{key:"getUserLocation",value:function(t,e){this.doCall("base","getUserLocation",t,e)}},{key:"saveImgGallery",value:function(t,e,n){t.image=encodeURIComponent(t.image),this.doCall("base","saveImgGallery",e,n,t)}},{key:"showActivity",value:function(t,e,n){(t=t||{}).params=t.params||{},this.doCall("base","showActivity",e,n,t)}},{key:"goNativePageResult",value:function(t,e,n){var r={action:t.action,result:t.result};"object"===m()(r.result)&&(r.result=d()(r.result)),this.doCall("base","goNativePageResult",e,n,r)}},{key:"emitEvent",value:function(t,e,n){this.doCall("base","emitEvent",e,n,t)}},{key:"goToExternalBrowser",value:function(t,e,n){this.doCall("base","goToExternalBrowser",e,n,t)}},{key:"copy2clipboard",value:function(t,e,n){this.doCall("base","copy2clipboard",e,n,t)}},{key:"getNotificationEnable",value:function(t,e){this.doCall("base","getNotificationEnable",t,e)}},{key:"isAppInstalled",value:function(t,e,n){var r="",i=this._core.appInfo.client;i===M||i===j?r=t.androidPid:i!==I&&i!==L||(r=t.iOSPid),this.doCall("base","isAppInstalled",e,n,{pid:r})}},{key:"sendUri",value:function(t,e,n){var r=null,i=null;t.schemaFullPath?(r=encodeURIComponent(t.schemaFullPath),t.callbackUrl&&(i=encodeURIComponent(t.callbackUrl))):r="vipjr://showWebView?body="+encodeURIComponent(d()(t)),this.doCall("base","sendUri",e,n,{uri:r,callbackUrl:i})}},{key:"openCamera",value:function(t,e,n){this.doCall("base","openCamera",e,n,t)}},{key:"closeCamera",value:function(t,e){this.doCall("base","closeCamera",t,e)}},{key:"calendarEvent",value:function(t,e,n){this.doCall("base","calendarEvent",e,n,t)}},{key:"selectImages",value:function(t,e,n){this.event.off("event_type_select_images_result").on("event_type_select_images_result",e),this.doCall("base","selectImages",null,n,t)}},{key:"launchWXMiniProgram",value:function(t,e,n){this.doCall("base","launchWXMiniProgram",e,n,t)}}]),t}(),xe=function(){function t(){l()(this,t)}return h()(t,[{key:"addCart",value:function(t,e,n){this.doCall("cart","addCart",e,n,t)}}]),t}(),Se=function(){function t(){l()(this,t)}return h()(t,[{key:"showToast",value:function(t,e,n){this.doCall("ui","showToast",e,n,t)}},{key:"showLoading",value:function(t,e){this.doCall("ui","showLoading",t,e)}},{key:"hideLoading",value:function(t,e){this.doCall("ui","hideLoading",t,e)}},{key:"showDialog",value:function(t,e,n){if("BUTTON_TYPE_CENTER"===t.buttonType){var r=t.buttonCenterEventMethod;if(!t.buttonCenterText)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_CENTER蹇呴』浼犲叆buttonCenterText");if("function"!=typeof r)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_CENTER蹇呴』浼犲叆buttonCenterEventMethod锛岀被鍨嬩负function");t.buttonCenterEventMethod=this.event.globalCallbackFuncName;var i="event_type_dialog_button_center";this.event.off(i).on(i,r)}else{if("BUTTON_TYPE_LEFTRIGHT"!==t.buttonType)throw new Error("[Hercules]锛歜uttonType涓嶆纭紝璇蜂紶鍏UTTON_TYPE_CENTER鎴朆UTTON_TYPE_LEFTRIGHT");var o=t.buttonLeftEventMethod,a=t.buttonRightEventMethod;if(!t.buttonLeftText)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonLeftText");if(!t.buttonRightText)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonRightText");if("function"!=typeof o)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonLeftEventMethod锛岀被鍨嬩负function");t.buttonLeftEventMethod=this.event.globalCallbackFuncName;if(this.event.off("event_type_dialog_button_left").on("event_type_dialog_button_left",o),"function"!=typeof a)throw new Error("[Hercules]锛氭寜閽被鍨婤UTTON_TYPE_LEFTRIGHT蹇呴』浼犲叆buttonRightEventMethod锛岀被鍨嬩负function");t.buttonRightEventMethod=this.event.globalCallbackFuncName;this.event.off("event_type_dialog_button_right").on("event_type_dialog_button_right",a)}this.doCall("ui","showDialog",e,n,t)}},{key:"showMenu",value:function(t,e){this.doCall("ui","showMenu",t,e)}},{key:"hideMenu",value:function(t,e){this.doCall("ui","hideMenu",t,e)}},{key:"setMenuTitle",value:function(t,e,n){this.doCall("ui","setMenuTitle",e,n,t)}},{key:"hideMenuButton",value:function(t,e,n){this.doCall("ui","hideMenuButton",e,n,t)}},{key:"showFloatView",value:function(t,e,n){this.doCall("ui","showFloatView",e,n,t)}},{key:"enablePullRefresh",value:function(t,e,n){this.doCall("ui","enablePullRefresh",e,n,t)}},{key:"showFloatViewV2",value:function(t,e,n){this.doCall("ui","showFloatViewV2",e,n,t)}},{key:"setMenuButton",value:function(t,e,n){if(this._core.platform.isQuickApp)this.doCall("ui","setMenuButton",e,n,t);else{for(var r={},i=0,o=t.menus.length;i0&&void 0!==arguments[0]?arguments[0]:{}).bk;return function(t){y=t}(void 0===t?{}:t),new ke};e.a=Ce},F1ui:function(t,e,n){var r=n("Ds5P"),i=Math.PI/180;r(r.S,"Math",{radians:function(t){return t*i}})},F3sI:function(t,e,n){var r=n("Ds5P"),i=n("PHqh"),o=n("BbyF");r(r.S,"String",{raw:function(t){for(var e=i(t.raw),n=o(e.length),r=arguments.length,a=[],s=0;n>s;)a.push(String(e[s++])),s=0:f>h;h+=p)h in l&&(s=e(s,l[h],h,u));return s}},Fkvj:function(t,e,n){var r=n("bJWQ"),i=n("PqYH"),o=n("i4ON"),a=n("jD7S"),s=n("py9u"),c=n("mKB/"),u=n("hrPF"),l=n("Nkkh"),f=n("1QDk"),h=n("MoMe"),p=n("xond"),d=n("gHOb"),v=n("UfSK"),m=n("5/Qr"),y=n("WQFf"),g=n("NGEn"),_=n("ggOT"),b=n("dwsC"),w=n("yCNF"),x=n("SGXn"),S=n("ktak"),k=1,C=2,T=4,E="[object Arguments]",O="[object Function]",A="[object GeneratorFunction]",P="[object Object]",M={};M[E]=M["[object Array]"]=M["[object ArrayBuffer]"]=M["[object DataView]"]=M["[object Boolean]"]=M["[object Date]"]=M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Map]"]=M["[object Number]"]=M[P]=M["[object RegExp]"]=M["[object Set]"]=M["[object String]"]=M["[object Symbol]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M["[object Error]"]=M[O]=M["[object WeakMap]"]=!1,t.exports=function t(e,n,j,I,L,D){var R,F=n&k,N=n&C,B=n&T;if(j&&(R=L?j(e,I,L,D):j(e)),void 0!==R)return R;if(!w(e))return e;var z=g(e);if(z){if(R=v(e),!F)return u(e,R)}else{var U=d(e),H=U==O||U==A;if(_(e))return c(e,F);if(U==P||U==E||H&&!L){if(R=N||H?{}:y(e),!F)return N?f(e,s(R,e)):l(e,a(R,e))}else{if(!M[U])return L?e:{};R=m(e,U,F)}}D||(D=new r);var $=D.get(e);if($)return $;if(D.set(e,R),x(e))return e.forEach(function(r){R.add(t(r,n,j,r,e,D))}),R;if(b(e))return e.forEach(function(r,i){R.set(i,t(r,n,j,i,e,D))}),R;var V=B?N?p:h:N?keysIn:S,W=z?void 0:V(e);return i(W||e,function(r,i){W&&(r=e[i=r]),o(R,i,t(r,n,j,i,e,D))}),R}},FryR:function(t,e,n){var r=n("/whu");t.exports=function(t){return Object(r(t))}},FtD3:function(t,e,n){"use strict";var r=n("t8qj");t.exports=function(t,e,n,i,o){var a=new Error(t);return r(a,e,n,i,o)}},G0Wc:function(t,e,n){var r=n("yCNF"),i=n("HT7L"),o=n("8gK5"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return o(t);var e=i(t),n=[];for(var s in t)("constructor"!=s||!e&&a.call(t,s))&&n.push(s);return n}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},"G5/o":function(t,e,n){n("uqUo")("getOwnPropertyNames",function(){return n("Rrel").f})},G8ar:function(t,e,n){var r=n("cdq7"),i=n("8++/"),o=n("i6nN");t.exports=function(t,e,n){return e==e?o(t,e,n):r(t,i,n)}},GHBc:function(t,e,n){"use strict";var r=n("cGG2");t.exports=r.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=i(window.location.href),function(e){var n=r.isString(e)?i(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0}},GQaK:function(t,e,n){"use strict"; +/*! + * better-normal-scroll v1.15.1 + * (c) 2016-2019 ustbhuangyi + * Released under the MIT License. + */function r(t,e){for(;e+10;function l(){return window.performance&&window.performance.now?window.performance.now()+window.performance.timing.navigationStart:+new Date}function f(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:"click",n=void 0;"mouseup"===t.type||"mousecancel"===t.type?n=t:"touchend"!==t.type&&"touchcancel"!==t.type||(n=t.changedTouches[0]);var r={};n&&(r.screenX=n.screenX||0,r.screenY=n.screenY||0,r.clientX=n.clientX||0,r.clientY=n.clientY||0);var i=void 0,o=!0,a=!0;if("undefined"!=typeof MouseEvent)try{i=new MouseEvent(e,f({bubbles:o,cancelable:a},r))}catch(t){s()}else s();function s(){(i=document.createEvent("Event")).initEvent(e,o,a),f(i,r)}i.forwardedTouchEvent=!0,i._constructed=!0,t.target.dispatchEvent(i)}function L(t,e){t.removeChild(e)}var D={startX:0,startY:0,scrollX:!1,scrollY:!0,freeScroll:!1,directionLockThreshold:5,eventPassthrough:"",click:!1,tap:!1,bounce:!0,bounceTime:800,momentum:!0,momentumLimitTime:300,momentumLimitDistance:15,swipeTime:2500,swipeBounceTime:500,deceleration:.0015,flickLimitTime:200,flickLimitDistance:100,resizePolling:60,probeType:0,preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT|AUDIO)$/},HWCompositing:!0,useTransition:!0,useTransform:!0,bindToWrapper:!1,disableMouse:C,disableTouch:!C,observeDOM:!0,autoBlur:!0,wheel:!1,snap:!1,scrollbar:!1,pullDownRefresh:!1,pullUpLoad:!1,mouseWheel:!1,stopPropagation:!1,zoom:!1,infinity:!1,dblclick:!1};var R={swipe:{style:"cubic-bezier(0.23, 1, 0.32, 1)",fn:function(t){return 1+--t*t*t*t*t}},swipeBounce:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(t){return t*(2-t)}},bounce:{style:"cubic-bezier(0.165, 0.84, 0.44, 1)",fn:function(t){return 1- --t*t*t*t}}};function F(t,e,n,r,i,o,a,s){var c=t-e,u=Math.abs(c)/n,l=a.deceleration,f=a.itemHeight,h=a.swipeBounceTime,p=a.wheel,d=a.swipeTime,v=p?4:15,m=t+u/l*(c<0?-1:1);return p&&f&&(m=s._findNearestValidWheel(m).y),mi&&(m=o?Math.min(i+o/4,i+o/v*u):i,d=h),{destination:Math.round(m),duration:d}}function N(){}var B=a?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||function(t){return window.setTimeout(t,(t.interval||100/60)/2)}:N,z=a?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||function(t){window.clearTimeout(t)}:N,U=1,H=-1,$=1,V=-1,W=1,q=3;function X(t,e){if(!t)throw new Error("[BScroll] "+e)}function Y(t){var e=document.createElement("div"),n=document.createElement("div");return e.style.cssText="position:absolute;z-index:9999;pointerEvents:none",n.style.cssText="box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px;",n.className="bscroll-indicator","horizontal"===t?(e.style.cssText+=";height:7px;left:2px;right:2px;bottom:0",n.style.height="100%",e.className="bscroll-horizontal-scrollbar"):(e.style.cssText+=";width:7px;bottom:2px;top:2px;right:1px",n.style.width="100%",e.className="bscroll-vertical-scrollbar"),e.style.cssText+=";overflow:hidden",e.appendChild(n),e}function G(t,e){this.wrapper=e.el,this.wrapperStyle=this.wrapper.style,this.indicator=this.wrapper.children[0],this.indicatorStyle=this.indicator.style,this.scroller=t,this.direction=e.direction,e.fade?(this.visible=0,this.wrapperStyle.opacity="0"):this.visible=1,this.sizeRatioX=1,this.sizeRatioY=1,this.maxPosX=0,this.maxPosY=0,this.x=0,this.y=0,e.interactive&&this._addDOMEvents()}G.prototype.handleEvent=function(t){switch(t.type){case"touchstart":case"mousedown":this._start(t);break;case"touchmove":case"mousemove":this._move(t);break;case"touchend":case"mouseup":case"touchcancel":case"mousecancel":this._end(t)}},G.prototype.refresh=function(){this._shouldShow()&&(this.transitionTime(),this._calculate(),this.updatePosition())},G.prototype.fade=function(t,e){var n=this;if(!e||this.visible){var r=t?250:500;t=t?"1":"0",this.wrapperStyle[O.transitionDuration]=r+"ms",clearTimeout(this.fadeTimeout),this.fadeTimeout=setTimeout(function(){n.wrapperStyle.opacity=t,n.visible=+t},0)}},G.prototype.updatePosition=function(){if("vertical"===this.direction){var t=Math.round(this.sizeRatioY*this.scroller.y);if(t<0){this.transitionTime(500);var e=Math.max(this.indicatorHeight+3*t,8);this.indicatorStyle.height=e+"px",t=0}else if(t>this.maxPosY){this.transitionTime(500);var n=Math.max(this.indicatorHeight-3*(t-this.maxPosY),8);this.indicatorStyle.height=n+"px",t=this.maxPosY+this.indicatorHeight-n}else this.indicatorStyle.height=this.indicatorHeight+"px";this.y=t,this.scroller.options.useTransform?this.indicatorStyle[O.transform]="translateY("+t+"px)"+this.scroller.translateZ:this.indicatorStyle.top=t+"px"}else{var r=Math.round(this.sizeRatioX*this.scroller.x);if(r<0){this.transitionTime(500);var i=Math.max(this.indicatorWidth+3*r,8);this.indicatorStyle.width=i+"px",r=0}else if(r>this.maxPosX){this.transitionTime(500);var o=Math.max(this.indicatorWidth-3*(r-this.maxPosX),8);this.indicatorStyle.width=o+"px",r=this.maxPosX+this.indicatorWidth-o}else this.indicatorStyle.width=this.indicatorWidth+"px";this.x=r,this.scroller.options.useTransform?this.indicatorStyle[O.transform]="translateX("+r+"px)"+this.scroller.translateZ:this.indicatorStyle.left=r+"px"}},G.prototype.transitionTime=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.indicatorStyle[O.transitionDuration]=t+"ms"},G.prototype.transitionTimingFunction=function(t){this.indicatorStyle[O.transitionTimingFunction]=t},G.prototype.destroy=function(){this._removeDOMEvents(),this.wrapper.parentNode.removeChild(this.wrapper)},G.prototype._start=function(t){var e=t.touches?t.touches[0]:t;t.preventDefault(),t.stopPropagation(),this.transitionTime(),this.initiated=!0,this.moved=!1,this.lastPointX=e.pageX,this.lastPointY=e.pageY,this.startTime=l(),this._handleMoveEvents(y),this.scroller.trigger("beforeScrollStart")},G.prototype._move=function(t){var e=t.touches?t.touches[0]:t;t.preventDefault(),t.stopPropagation(),this.moved||this.scroller.trigger("scrollStart"),this.moved=!0;var n=e.pageX-this.lastPointX;this.lastPointX=e.pageX;var r=e.pageY-this.lastPointY;this.lastPointY=e.pageY;var i=this.x+n,o=this.y+r;this._pos(i,o)},G.prototype._end=function(t){if(this.initiated){this.initiated=!1,t.preventDefault(),t.stopPropagation(),this._handleMoveEvents(g);var e=this.scroller.options.snap;if(e){var n=e.speed,r=e.easing,i=void 0===r?R.bounce:r,o=this.scroller._nearestSnap(this.scroller.x,this.scroller.y),a=n||Math.max(Math.max(Math.min(Math.abs(this.scroller.x-o.x),1e3),Math.min(Math.abs(this.scroller.y-o.y),1e3)),300);this.scroller.x===o.x&&this.scroller.y===o.y||(this.scroller.directionX=0,this.scroller.directionY=0,this.scroller.currentPage=o,this.scroller.scrollTo(o.x,o.y,a,i))}this.moved&&this.scroller.trigger("scrollEnd",{x:this.scroller.x,y:this.scroller.y})}},G.prototype._pos=function(t,e){t<0?t=0:t>this.maxPosX&&(t=this.maxPosX),e<0?e=0:e>this.maxPosY&&(e=this.maxPosY),t=Math.round(t/this.sizeRatioX),e=Math.round(e/this.sizeRatioY),this.scroller.scrollTo(t,e),this.scroller.trigger("scroll",{x:this.scroller.x,y:this.scroller.y})},G.prototype._shouldShow=function(){return"vertical"===this.direction&&this.scroller.hasVerticalScroll||"horizontal"===this.direction&&this.scroller.hasHorizontalScroll?(this.wrapper.style.display="",!0):(this.wrapper.style.display="none",!1)},G.prototype._calculate=function(){if("vertical"===this.direction){var t=this.wrapper.clientHeight;this.indicatorHeight=Math.max(Math.round(t*t/(this.scroller.scrollerHeight||t||1)),8),this.indicatorStyle.height=this.indicatorHeight+"px",this.maxPosY=t-this.indicatorHeight,this.sizeRatioY=this.maxPosY/this.scroller.maxScrollY}else{var e=this.wrapper.clientWidth;this.indicatorWidth=Math.max(Math.round(e*e/(this.scroller.scrollerWidth||e||1)),8),this.indicatorStyle.width=this.indicatorWidth+"px",this.maxPosX=e-this.indicatorWidth,this.sizeRatioX=this.maxPosX/this.scroller.maxScrollX}},G.prototype._addDOMEvents=function(){var t=y;this._handleDOMEvents(t)},G.prototype._removeDOMEvents=function(){var t=g;this._handleDOMEvents(t),this._handleMoveEvents(t)},G.prototype._handleMoveEvents=function(t){this.scroller.options.disableTouch||t(window,"touchmove",this),this.scroller.options.disableMouse||t(window,"mousemove",this)},G.prototype._handleDOMEvents=function(t){this.scroller.options.disableTouch||(t(this.indicator,"touchstart",this),t(window,"touchend",this)),this.scroller.options.disableMouse||(t(this.indicator,"mousedown",this),t(window,"mouseup",this))};var K=2e3;function Q(t){if(t&&t.classList)return t.classList.contains("tombstone")}function J(t,e){var n=this;this.options=e,X("function"==typeof this.options.createTombstone,"Infinite scroll need createTombstone Function to create tombstone"),X("function"==typeof this.options.fetch,"Infinite scroll need fetch Function to fetch new data."),X("function"==typeof this.options.render,"Infinite scroll need render Function to render each item."),this.firstAttachedItem=0,this.lastAttachedItem=0,this.anchorScrollTop=0,this.anchorItem={index:0,offset:0},this.tombstoneHeight=0,this.tombstoneWidth=0,this.tombstones=[],this.tombstonesAnimationHandlers=[],this.items=[],this.loadedItems=0,this.requestInProgress=!1,this.hasMore=!0,this.scroller=t,this.wrapperEl=this.scroller.wrapper,this.scrollerEl=this.scroller.scroller,this.scroller.on("resize",function(){n.onResize()}),this.scroller.on("destroy",function(){n.destroy()}),this._onResizeHandler=setTimeout(function(){n.onResize(),n.scroller.on("scroll",function(){n.onScroll()})})}function Z(t,e){this.wrapper="string"==typeof t?document.querySelector(t):t,this.wrapper,this.scroller=this.wrapper.children[0],this.scroller,this.scrollerStyle=this.scroller.style,this._init(e)}J.prototype.destroy=function(){var t=this;clearTimeout(this._onResizeHandler),this.tombstonesAnimationHandlers.forEach(function(t){clearTimeout(t)}),this.tombstonesAnimationHandlers=null,this.items.forEach(function(e){e.node&&(t.scrollerEl.removeChild(e.node),e.node=null)}),this.scroller.infiniteScroller=null,this.scroller=null,this.wrapperEl=null,this.scrollerEl=null,this.items=null,this.tombstones=null},J.prototype.onScroll=function(){var t=-this.scroller.y,e=t-this.anchorScrollTop;this.anchorItem=0===t?{index:0,offset:0}:this._calculateAnchoredItem(this.anchorItem,e),this.anchorScrollTop=t;var n=this._calculateAnchoredItem(this.anchorItem,this.scroller.wrapperHeight),r=this.anchorItem.index,i=n.index;e<0?(r-=30,i+=10):(r-=10,i+=30),this.fill(r,i),this.maybeRequestContent()},J.prototype.onResize=function(){var t=this.options.createTombstone();t.style.position="absolute",this.scrollerEl.appendChild(t),t.style.display="",this.tombstoneHeight=t.offsetHeight,this.tombstoneWidth=t.offsetWidth,this.scrollerEl.removeChild(t);for(var e=0;ethis.firstAttachedItem;)e-=this.items[n-1].height||this.tombstoneHeight,n--;return e},J.prototype._setupAnimations=function(t,e){var n=this;for(var r in t){var i=t[r];this.items[r].node.style[O.transform]="translateY("+(this.anchorScrollTop+i[1])+"px) scale("+this.tombstoneWidth/this.items[r].width+", "+this.tombstoneHeight/this.items[r].height+")",this.items[r].node.offsetTop,i[0].offsetTop,this.items[r].node.style[O.transition]=w+"transform 200ms"}for(var o=this.firstAttachedItem;o0&&this.items[n-1].height;)e+=this.items[n-1].height,n--;r=Math.max(-n,Math.ceil(Math.min(e,0)/this.tombstoneHeight))}else{for(;e>0&&n=this.items.length||!this.items[n].height)&&(r=Math.floor(Math.max(e,0)/this.tombstoneHeight))}return{index:n+=r,offset:e-=r*this.tombstoneHeight}},function(t){t.prototype._init=function(t){this._handleOptions(t),this._events={},this.x=0,this.y=0,this.directionX=0,this.directionY=0,this.setScale(1),this._addDOMEvents(),this._initExtFeatures(),this._watchTransition(),this.options.observeDOM&&this._initDOMObserver(),this.options.autoBlur&&this._handleAutoBlur(),this.refresh(),this.options.snap||this.scrollTo(this.options.startX,this.options.startY),this.enable()},t.prototype.setScale=function(t){this.lastScale=h(this.scale)?t:this.scale,this.scale=t},t.prototype._handleOptions=function(t){this.options=f({},D,t),this.translateZ=this.options.HWCompositing&&k?" translateZ(0)":"",this.options.useTransition=this.options.useTransition&&E,this.options.useTransform=this.options.useTransform&&T,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollX="horizontal"!==this.options.eventPassthrough&&this.options.scrollX,this.options.scrollY="vertical"!==this.options.eventPassthrough&&this.options.scrollY,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,!0===this.options.tap&&(this.options.tap="tap")},t.prototype._addDOMEvents=function(){var t=y;this._handleDOMEvents(t)},t.prototype._removeDOMEvents=function(){var t=g;this._handleDOMEvents(t)},t.prototype._handleDOMEvents=function(t){var e=this.options.bindToWrapper?this.wrapper:window;t(window,"orientationchange",this),t(window,"resize",this),this.options.click&&t(this.wrapper,"click",this,!0),this.options.disableMouse||(t(this.wrapper,"mousedown",this),t(e,"mousemove",this),t(e,"mousecancel",this),t(e,"mouseup",this)),C&&!this.options.disableTouch&&(t(this.wrapper,"touchstart",this),t(e,"touchmove",this),t(e,"touchcancel",this),t(e,"touchend",this)),t(this.scroller,O.transitionEnd,this)},t.prototype._initExtFeatures=function(){this.options.snap&&this._initSnap(),this.options.scrollbar&&this._initScrollbar(),this.options.pullUpLoad&&this._initPullUp(),this.options.pullDownRefresh&&this._initPullDown(),this.options.wheel&&this._initWheel(),this.options.mouseWheel&&this._initMouseWheel(),this.options.zoom&&this._initZoom(),this.options.infinity&&this._initInfinite()},t.prototype._watchTransition=function(){if("function"==typeof Object.defineProperty){var t=this,e=!1,n=this.options.useTransition?"isInTransition":"isAnimating";Object.defineProperty(this,n,{get:function(){return e},set:function(n){e=n;for(var r=t.scroller.children.length?t.scroller.children:[t.scroller],i=e&&!t.pulling?"none":"auto",o=0;othis.minScrollX||this.xthis.minScrollY||this.y1&&this._zoomStart(t);break;case"touchmove":case"mousemove":this.options.zoom&&t.touches&&t.touches.length>1?this._zoom(t):this._move(t);break;case"touchend":case"mouseup":case"touchcancel":case"mousecancel":this.scaled?this._zoomEnd(t):this._end(t);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(t);break;case"click":this.enabled&&!t._constructed&&(j(t.target,this.options.preventDefaultException)||(t.preventDefault(),t.stopPropagation()));break;case"wheel":case"DOMMouseScroll":case"mousewheel":this._onMouseWheel(t)}},t.prototype.refresh=function(){var t="static"===window.getComputedStyle(this.wrapper,null).position,e=M(this.wrapper);this.wrapperWidth=e.width,this.wrapperHeight=e.height;var n=M(this.scroller);this.scrollerWidth=Math.round(n.width*this.scale),this.scrollerHeight=Math.round(n.height*this.scale),this.relativeX=n.left,this.relativeY=n.top,t&&(this.relativeX-=e.left,this.relativeY-=e.top),this.minScrollX=0,this.minScrollY=0;var r=this.options.wheel;r?(this.items=this.scroller.children,this._checkWheelAllDisabled(),this.options.itemHeight=this.itemHeight=this.items.length?this.scrollerHeight/this.items.length:0,void 0===this.selectedIndex&&(this.selectedIndex=r.selectedIndex||0),this.options.startY=-this.selectedIndex*this.itemHeight,this.maxScrollX=0,this.maxScrollY=-this.itemHeight*(this.items.length-1)):(this.maxScrollX=this.wrapperWidth-this.scrollerWidth,this.options.infinity||(this.maxScrollY=this.wrapperHeight-this.scrollerHeight),this.maxScrollX<0?(this.maxScrollX-=this.relativeX,this.minScrollX=-this.relativeX):this.scale>1&&(this.maxScrollX=this.maxScrollX/2-this.relativeX,this.minScrollX=this.maxScrollX),this.maxScrollY<0?(this.maxScrollY-=this.relativeY,this.minScrollY=-this.relativeY):this.scale>1&&(this.maxScrollY=this.maxScrollY/2-this.relativeY,this.minScrollY=this.maxScrollY)),this.hasHorizontalScroll=this.options.scrollX&&this.maxScrollXthis.options.momentumLimitTime&&!this.moved&&oo+this.options.directionLockThreshold?this.directionLocked="h":o>=i+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"===this.directionLocked){if("vertical"===this.options.eventPassthrough)t.preventDefault();else if("horizontal"===this.options.eventPassthrough)return void(this.initiated=!1);r=0}else if("v"===this.directionLocked){if("horizontal"===this.options.eventPassthrough)t.preventDefault();else if("vertical"===this.options.eventPassthrough)return void(this.initiated=!1);n=0}n=this.hasHorizontalScroll?n:0,r=this.hasVerticalScroll?r:0,this.movingDirectionX=n>0?V:n<0?$:0,this.movingDirectionY=r>0?H:r<0?U:0;var s=this.x+n,c=this.y+r,u=!1,f=!1,h=!1,p=!1,d=this.options.bounce;!1!==d&&(u=void 0===d.top||d.top,f=void 0===d.bottom||d.bottom,h=void 0===d.left||d.left,p=void 0===d.right||d.right),(s>this.minScrollX||sthis.minScrollX&&h||sthis.minScrollX?this.minScrollX:this.maxScrollX),(c>this.minScrollY||cthis.minScrollY&&u||cthis.minScrollY?this.minScrollY:this.maxScrollY),this.moved||(this.moved=!0,this.trigger("scrollStart")),this._translate(s,c),a-this.startTime>this.options.momentumLimitTime&&(this.startTime=a,this.startX=this.x,this.startY=this.y,this.options.probeType===W&&this.trigger("scroll",{x:this.x,y:this.y})),this.options.probeType>W&&this.trigger("scroll",{x:this.x,y:this.y});var v=document.documentElement.scrollLeft||window.pageXOffset||document.body.scrollLeft,m=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop,y=this.pointX-v,g=this.pointY-m;(y>document.documentElement.clientWidth-this.options.momentumLimitDistance||ydocument.documentElement.clientHeight-this.options.momentumLimitDistance)&&this._end(t)}}},t.prototype._end=function(t){if(this.enabled&&!this.destroyed&&P[t.type]===this.initiated){this.initiated=!1,this.options.preventDefault&&!j(t.target,this.options.preventDefaultException)&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.trigger("touchEnd",{x:this.x,y:this.y}),this.isInTransition=!1;var e=Math.round(this.x),n=Math.round(this.y),r=e-this.absStartX,i=n-this.absStartY;if(this.directionX=r>0?V:r<0?$:0,this.directionY=i>0?H:i<0?U:0,!this.options.pullDownRefresh||!this._checkPullDown())if(this._checkClick(t))this.trigger("scrollCancel");else if(!this.resetPosition(this.options.bounceTime,R.bounce)){this._translate(e,n),this.endTime=l();var o=this.endTime-this.startTime,a=Math.abs(e-this.startX),s=Math.abs(n-this.startY);if(this._events.flick&&othis.options.momentumLimitDistance||a>this.options.momentumLimitDistance)){var u=!1,f=!1,h=!1,p=!1,d=this.options.bounce;!1!==d&&(u=void 0===d.top||d.top,f=void 0===d.bottom||d.bottom,h=void 0===d.left||d.left,p=void 0===d.right||d.right);var v=this.directionX===V&&h||this.directionX===$&&p?this.wrapperWidth:0,m=this.directionY===H&&u||this.directionY===U&&f?this.wrapperHeight:0,y=this.hasHorizontalScroll?F(this.x,this.startX,o,this.maxScrollX,this.minScrollX,v,this.options,this):{destination:e,duration:0},g=this.hasVerticalScroll?F(this.y,this.startY,o,this.maxScrollY,this.minScrollY,m,this.options,this):{destination:n,duration:0};e=y.destination,n=g.destination,c=Math.max(y.duration,g.duration),this.isInTransition=!0}else this.options.wheel&&(n=this._findNearestValidWheel(n).y,c=this.options.wheel.adjustTime||400);var _=R.swipe;if(this.options.snap){var b=this._nearestSnap(e,n);this.currentPage=b,c=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(e-b.x),1e3),Math.min(Math.abs(n-b.y),1e3)),300),e=b.x,n=b.y,this.directionX=0,this.directionY=0,_=this.options.snap.easing||R.bounce}if(e!==this.x||n!==this.y)return(e>this.minScrollX||ethis.minScrollY||n0&&void 0!==arguments[0]?arguments[0]:0;if(this.scrollerStyle[O.transitionDuration]=t+"ms",this.options.wheel)for(var e=0;e=f)return i.isAnimating=!1,i._translate(t,e,c),i.trigger("scroll",{x:i.x,y:i.y}),void(i.pulling||i.resetPosition(i.options.bounceTime)||i.trigger("scrollEnd",{x:i.x,y:i.y}));var d=r(p=(p-u)/n),v=(t-o)*d+o,m=(e-a)*d+a,y=(c-s)*d+s;i._translate(v,m,y),i.isAnimating&&(i.animateTimer=B(h)),i.options.probeType===q&&i.trigger("scroll",{x:i.x,y:i.y})}()},t.prototype.scrollBy=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:R.bounce;t=this.x+t,e=this.y+e,this.scrollTo(t,e,n,r)},t.prototype.scrollTo=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:R.bounce,i=arguments[4];if(this.options.wheel&&(e=this._findNearestValidWheel(e).y),this.isInTransition=this.options.useTransition&&n>0&&(this.x!==t||this.y!==e),!n||this.options.useTransition){if(this._transitionTimingFunction(r.style),this._transitionTime(n),this._translate(t,e),n&&this.options.probeType===q&&this._startProbe(),!n&&!i){if(this.options.zoom)return;this.trigger("scroll",{x:t,y:e}),this._reflow=document.body.offsetHeight,this.resetPosition(this.options.bounceTime,R.bounce)||this.trigger("scrollEnd",{x:t,y:e})}this.options.wheel&&(this.selectedIndex=this._findNearestValidWheel(e).index)}else this._animate(t,e,n,r.fn)},t.prototype.scrollToElement=function(t,e,n,r,i){if(t&&(t=t.nodeType?t:this.scroller.querySelector(t),!this.options.wheel||t.classList.contains(this.options.wheel.wheelItemClass))){var o=_(t);o.left-=this.wrapperOffset.left,o.top-=this.wrapperOffset.top,!0===n&&(n=Math.round(t.offsetWidth/2-this.wrapper.offsetWidth/2)),!0===r&&(r=Math.round(t.offsetHeight/2-this.wrapper.offsetHeight/2)),o.left-=n||0,o.top-=r||0,o.left=o.left>this.minScrollX?this.minScrollX:o.leftthis.minScrollY?this.minScrollY:o.top0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:R.bounce,n=this.x,r=Math.round(n);!this.hasHorizontalScroll||r>this.minScrollX?n=this.minScrollX:rthis.minScrollY?i=this.minScrollY:o2&&void 0!==arguments[2]?arguments[2]:this;this._events[t]||(this._events[t]=[]),this._events[t].push([e,n])},t.prototype.once=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this;function r(){this.off(t,r),e.apply(n,arguments)}r.fn=e,this.on(t,r)},t.prototype.off=function(t,e){var n=this._events[t];if(n)for(var i=n.length;i--;)(n[i][0]===e||n[i][0]&&n[i][0].fn===e)&&r(n,i)},t.prototype.trigger=function(t){var e=this._events[t];if(e)for(var n=e.length,r=[].concat(o(e)),a=0;a1?(function(t,e){e.firstChild?function(t,e){e.parentNode.insertBefore(t,e)}(t,e.firstChild):e.appendChild(t)}(n[n.length-1].cloneNode(!0),this.scroller),this.scroller.appendChild(n[1].cloneNode(!0))):e.loop=!1}var r=e.el;"string"==typeof r&&(r=this.scroller.querySelectorAll(r)),this.on("refresh",function(){if(t.pages=[],t.wrapperWidth&&t.wrapperHeight&&t.scrollerWidth&&t.scrollerHeight){var n=e.stepX||t.wrapperWidth,i=e.stepY||t.wrapperHeight,o=0,a=void 0,s=void 0,c=void 0,u=0,l=void 0,f=0,h=void 0,p=void 0;if(r)for(l=r.length,h=-1;ut.maxScrollX&&f++;else for(s=Math.round(n/2),c=Math.round(i/2);o>-t.scrollerWidth;){for(t.pages[u]=[],l=0,a=0;a>-t.scrollerHeight;)t.pages[u][l]={x:Math.max(o,t.maxScrollX),y:Math.max(a,t.maxScrollY),width:n,height:i,cx:o-s,cy:a-c},a-=i,l++;o-=n,u++}t._checkSnapLoop();var d=e._loopX?1:0,v=e._loopY?1:0;t._goToPage(t.currentPage.pageX||d,t.currentPage.pageY||v,0,void 0,!0);var m=e.threshold;m%1==0?(t.snapThresholdX=m,t.snapThresholdY=m):(t.snapThresholdX=Math.round(t.pages[t.currentPage.pageX][t.currentPage.pageY].width*m),t.snapThresholdY=Math.round(t.pages[t.currentPage.pageX][t.currentPage.pageY].height*m))}}),this.on("scrollEnd",function(){e.loop&&(e._loopX?(0===t.currentPage.pageX&&t._goToPage(t.pages.length-2,t.currentPage.pageY,0,void 0,!0),t.currentPage.pageX===t.pages.length-1&&t._goToPage(1,t.currentPage.pageY,0,void 0,!0)):(0===t.currentPage.pageY&&t._goToPage(t.currentPage.pageX,t.pages[0].length-2,0,void 0,!0),t.currentPage.pageY===t.pages[0].length-1&&t._goToPage(t.currentPage.pageX,1,0,void 0,!0)))}),!1!==e.listenFlick&&this.on("flick",function(){var n=e.speed||Math.max(Math.max(Math.min(Math.abs(t.x-t.startX),1e3),Math.min(Math.abs(t.y-t.startY),1e3)),300);t._goToPage(t.currentPage.pageX+t.directionX,t.currentPage.pageY+t.directionY,n)}),this.on("destroy",function(){if(e.loop){var n=t.scroller.children;n.length>2&&(L(t.scroller,n[n.length-1]),L(t.scroller,n[0]))}})},t.prototype._checkSnapLoop=function(){var t=this.options.snap;t.loop&&this.pages&&this.pages.length&&(this.pages.length>1&&(t._loopX=!0),this.pages[0]&&this.pages[0].length>1&&(t._loopY=!0),t._loopX&&t._loopY)},t.prototype._nearestSnap=function(t,e){if(!this.pages.length)return{x:0,y:0,pageX:0,pageY:0};var n=0;if(Math.abs(t-this.absStartX)<=this.snapThresholdX&&Math.abs(e-this.absStartY)<=this.snapThresholdY)return this.currentPage;t>this.minScrollX?t=this.minScrollX:tthis.minScrollY?e=this.minScrollY:e=this.pages[n][0].cx){t=this.pages[n][0].x;break}r=this.pages[n].length;for(var i=0;i=this.pages[0][i].cy){e=this.pages[0][i].y;break}return n===this.currentPage.pageX&&((n+=this.directionX)<0?n=0:n>=this.pages.length&&(n=this.pages.length-1),t=this.pages[n][0].x),i===this.currentPage.pageY&&((i+=this.directionY)<0?i=0:i>=this.pages[0].length&&(i=this.pages[0].length-1),e=this.pages[0][i].y),{x:t,y:e,pageX:n,pageY:i}},t.prototype._goToPage=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments[2],r=arguments[3],i=arguments[4],o=this.options.snap;if(o&&this.pages&&this.pages.length&&(r=r||o.easing||R.bounce,t>=this.pages.length?t=this.pages.length-1:t<0&&(t=0),this.pages[t])){e>=this.pages[t].length?e=this.pages[t].length-1:e<0&&(e=0);var a=this.pages[t][e].x,s=this.pages[t][e].y;n=void 0===n?o.speed||Math.max(Math.max(Math.min(Math.abs(a-this.x),1e3),Math.min(Math.abs(s-this.y),1e3)),300):n,this.currentPage={x:a,y:s,pageX:t,pageY:e},this.scrollTo(a,s,n,r,i)}},t.prototype.goToPage=function(t,e,n,r){var i=this.options.snap;if(i&&this.pages&&this.pages.length){if(i.loop){var o=void 0;i._loopX?(t>=(o=this.pages.length-2)?t=o-1:t<0&&(t=0),t+=1):(e>=(o=this.pages[0].length-2)?e=o-1:e<0&&(e=0),e+=1)}this._goToPage(t,e,n,r)}},t.prototype.next=function(t,e){if(this.options.snap){var n=this.currentPage.pageX,r=this.currentPage.pageY;++n>=this.pages.length&&this.hasVerticalScroll&&(n=0,r++),this._goToPage(n,r,t,e)}},t.prototype.prev=function(t,e){if(this.options.snap){var n=this.currentPage.pageX,r=this.currentPage.pageY;--n<0&&this.hasVerticalScroll&&(n=0,r--),this._goToPage(n,r,t,e)}},t.prototype.getCurrentPage=function(){var t=this.options.snap;return t?t.loop?t._loopX?f({},this.currentPage,{pageX:this.currentPage.pageX-1}):f({},this.currentPage,{pageY:this.currentPage.pageY-1}):this.currentPage:null}}(Z),function(t){t.prototype.wheelTo=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.options.wheel){var e=-t*this.itemHeight;this.scrollTo(0,e)}},t.prototype.getSelectedIndex=function(){return this.options.wheel&&this.selectedIndex},t.prototype._initWheel=function(){var t=this.options.wheel;t.wheelWrapperClass||(t.wheelWrapperClass="wheel-scroll"),t.wheelItemClass||(t.wheelItemClass="wheel-item"),t.wheelDisabledItemClass||(t.wheelDisabledItemClass="wheel-disabled-item"),void 0===t.selectedIndex&&(t.selectedIndex=0)},t.prototype._findNearestValidWheel=function(t){t=t>0?0:t=0&&-1!==i[n].className.indexOf(e.wheelDisabledItemClass);)n--;if(n<0)for(n=r;n<=i.length-1&&-1!==i[n].className.indexOf(e.wheelDisabledItemClass);)n++;return n===i.length&&(n=r),{index:this.wheelItemsAllDisabled?-1:n,y:-n*this.itemHeight}},t.prototype._checkWheelAllDisabled=function(){var t=this.options.wheel,e=this.items;this.wheelItemsAllDisabled=!0;for(var n=0;n0&&void 0!==arguments[0])||arguments[0];this.options.pullDownRefresh=t,this._initPullDown()},t.prototype.closePullDown=function(){this.options.pullDownRefresh=!1},t.prototype.autoPullDownRefresh=function(){var t=this.options.pullDownRefresh,e=t.threshold,n=void 0===e?90:e,r=t.stop,i=void 0===r?40:r;this.pulling||(this.pulling=!0,this.scrollTo(this.x,n),this.trigger("pullingDown"),this.scrollTo(this.x,i,this.options.bounceTime,R.bounce))}}(Z),function(t){t.prototype._initPullUp=function(){this.options.probeType=q,this.pullupWatching=!1,this._watchPullUp()},t.prototype._watchPullUp=function(){this.pullupWatching||(this.pullupWatching=!0,this.on("scroll",this._checkToEnd))},t.prototype._checkToEnd=function(t){var e=this,n=this.options.pullUpLoad.threshold,r=void 0===n?0:n;this.movingDirectionY===U&&t.y<=this.maxScrollY+r&&(this.once("scrollEnd",function(){e.pullupWatching=!1}),this.trigger("pullingUp"),this.off("scroll",this._checkToEnd))},t.prototype.finishPullUp=function(){var t=this;this.pullupWatching?this.once("scrollEnd",function(){t._watchPullUp()}):this._watchPullUp()},t.prototype.openPullUp=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.options.pullUpLoad=t,this._initPullUp()},t.prototype.closePullUp=function(){this.options.pullUpLoad=!1,this.pullupWatching&&(this.pullupWatching=!1,this.off("scroll",this._checkToEnd))}}(Z),function(t){t.prototype._initMouseWheel=function(){var t=this;this._handleMouseWheelEvent(y),this.on("destroy",function(){clearTimeout(t.mouseWheelTimer),clearTimeout(t.mouseWheelEndTimer),t._handleMouseWheelEvent(g)}),this.firstWheelOpreation=!0},t.prototype._handleMouseWheelEvent=function(t){t(this.wrapper,"wheel",this),t(this.wrapper,"mousewheel",this),t(this.wrapper,"DOMMouseScroll",this)},t.prototype._onMouseWheel=function(t){var e=this;if(this.enabled){t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.firstWheelOpreation&&this.trigger("scrollStart"),this.firstWheelOpreation=!1;var n=this.options.mouseWheel,r=n.speed,i=void 0===r?20:r,o=n.invert,a=void 0!==o&&o,s=n.easeTime,c=void 0===s?300:s;clearTimeout(this.mouseWheelTimer),this.mouseWheelTimer=setTimeout(function(){e.options.snap||c||e.trigger("scrollEnd",{x:e.x,y:e.y}),e.firstWheelOpreation=!0},400);var u=void 0,l=void 0;switch(!0){case"deltaX"in t:1===t.deltaMode?(u=-t.deltaX*i,l=-t.deltaY*i):(u=-t.deltaX,l=-t.deltaY);break;case"wheelDeltaX"in t:u=t.wheelDeltaX/120*i,l=t.wheelDeltaY/120*i;break;case"wheelDelta"in t:u=l=t.wheelDelta/120*i;break;case"detail"in t:u=l=-t.detail/3*i;break;default:return}var f=a?-1:1;u*=f,l*=f,this.hasVerticalScroll||(u=l,l=0);var h=void 0,p=void 0;if(this.options.snap)return h=this.currentPage.pageX,p=this.currentPage.pageY,u>0?h--:u<0&&h++,l>0?p--:l<0&&p++,void this._goToPage(h,p);h=this.x+Math.round(this.hasHorizontalScroll?u:0),p=this.y+Math.round(this.hasVerticalScroll?l:0),this.movingDirectionX=this.directionX=u>0?-1:u<0?1:0,this.movingDirectionY=this.directionY=l>0?-1:l<0?1:0,h>this.minScrollX?h=this.minScrollX:hthis.minScrollY?p=this.minScrollY:pthis.minScrollX?o=this.minScrollX:othis.minScrollY?a=this.minScrollY:ac&&(r=2*c*Math.pow(.5,c/r));var u=r/this.startScale,l=this.startX-(this.originX-this.relativeX)*(u-1),f=this.startY-(this.originY-this.relativeY)*(u-1);this.setScale(r),this.scrollTo(l,f,0)}},t.prototype._zoomEnd=function(t){if(this.enabled&&!this.destroyed&&P[t.type]===this.initiated){this.options.preventDefault&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.isInTransition=!1,this.isAnimating=!1,this.initiated=0;var e=this.options.zoom,n=e.min,r=void 0===n?1:n,i=e.max,o=void 0===i?4:i,a=this.scale>o?o:this.scale1?arguments[1]:void 0)}})},Gu7T:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("c/Tr"),o=(r=i)&&r.__esModule?r:{default:r};e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e0?Math.floor:Math.ceil)(t)}})},H7zx:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{signbit:function(t){return(t=+t)!=t?t:0==t?1/t==1/0:t>0}})},HT7L:function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},Hhm4:function(t,e,n){var r=n("Ds5P");r(r.S+r.F*!n("bUqO"),"Object",{defineProperties:n("twxM")})},"Hl+4":function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{sign:n("cwmK")})},ICSD:function(t,e,n){var r=n("ITwD"),i=n("mTAn");t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},IFpc:function(t,e,n){"use strict";var r=n("XO1R"),i=n("UKM+"),o=n("BbyF"),a=n("rFzY"),s=n("kkCw")("isConcatSpreadable");t.exports=function t(e,n,c,u,l,f,h,p){for(var d,v,m=l,y=0,g=!!h&&a(h,p,3);y0)m=t(e,n,d,o(d.length),m,f-1)-1;else{if(m>=9007199254740991)throw TypeError();e[m]=d}m++}y++}return m}},IMUI:function(t,e,n){var r=n("Ds5P");r(r.S,"Array",{isArray:n("XO1R")})},IRJ3:function(t,e,n){"use strict";var r=n("7ylX"),i=n("fU25"),o=n("yYvK"),a={};n("2p1q")(a,n("kkCw")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},ITwD:function(t,e,n){var r=n("gGqR"),i=n("eFps"),o=n("yCNF"),a=n("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,h=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!o(t)||i(t))&&(r(t)?h:s).test(a(t))}},Ibhu:function(t,e,n){var r=n("D2L2"),i=n("TcQ7"),o=n("vFc/")(!1),a=n("ax3d")("IE_PROTO");t.exports=function(t,e){var n,s=i(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},"Ilb/":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},"J+j9":function(t,e,n){"use strict";n("y325")("fixed",function(t){return function(){return t(this,"tt","","")}})},J2ob:function(t,e,n){"use strict";n("y325")("sup",function(t){return function(){return t(this,"sup","","")}})},JBvZ:function(t,e,n){var r=n("imBK");t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},JG34:function(t,e,n){var r=n("Ds5P"),i=n("DIVP"),o=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},JJ3w:function(t,e,n){n("0j1G")("Map")},"JP+z":function(t,e,n){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r-1}},Jbuy:function(t,e,n){"use strict";var r=n("32VL");n("Ds5P")({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},K0JP:function(t,e,n){n("77Ug")("Int32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},K6ED:function(t,e,n){t.exports={default:n("cnlX"),__esModule:!0}},KB1o:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},KCLY:function(t,e,n){"use strict";(function(e){var r=n("cGG2"),i=n("5VQ+"),o={"Content-Type":"application/x-www-form-urlencoded"};function a(t,e){!r.isUndefined(t)&&r.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var s,c={adapter:("undefined"!=typeof XMLHttpRequest?s=n("7GwW"):void 0!==e&&(s=n("7GwW")),s),transformRequest:[function(t,e){return i(e,"Content-Type"),r.isFormData(t)||r.isArrayBuffer(t)||r.isBuffer(t)||r.isStream(t)||r.isFile(t)||r.isBlob(t)?t:r.isArrayBufferView(t)?t.buffer:r.isURLSearchParams(t)?(a(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):r.isObject(t)?(a(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300}};c.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(t){c.headers[t]={}}),r.forEach(["post","put","patch"],function(t){c.headers[t]=r.merge(o)}),t.exports=c}).call(e,n("W2nU"))},KOrd:function(t,e,n){var r=n("WBcL"),i=n("FryR"),o=n("mZON")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},Kh4W:function(t,e,n){e.f=n("dSzd")},Kh5d:function(t,e,n){var r=n("sB3e"),i=n("PzxK");n("uqUo")("getPrototypeOf",function(){return function(t){return i(r(t))}})},KmWZ:function(t,e,n){var r=n("duB3");t.exports=function(){this.__data__=new r,this.size=0}},Kzd6:function(t,e,n){var r=n("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},L42u:function(t,e,n){var r,i,o,a=n("+ZMJ"),s=n("knuC"),c=n("RPLV"),u=n("ON07"),l=n("7KvD"),f=l.process,h=l.setImmediate,p=l.clearImmediate,d=l.MessageChannel,v=l.Dispatch,m=0,y={},g=function(){var t=+this;if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},_=function(t){g.call(t.data)};h&&p||(h=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return y[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},p=function(t){delete y[t]},"process"==n("R9M2")(f)?r=function(t){f.nextTick(a(g,t,1))}:v&&v.now?r=function(t){v.now(a(g,t,1))}:d?(o=(i=new d).port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",_,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),g.call(t)}}:function(t){setTimeout(a(g,t,1),0)}),t.exports={set:h,clear:p}},LG56:function(t,e,n){var r=n("Ds5P");r(r.S,"Number",{isNaN:function(t){return t!=t}})},LKZe:function(t,e,n){var r=n("NpIQ"),i=n("X8DO"),o=n("TcQ7"),a=n("MmMw"),s=n("D2L2"),c=n("SfB7"),u=Object.getOwnPropertyDescriptor;e.f=n("+E39")?u:function(t,e){if(t=o(t),e=a(e,!0),c)try{return u(t,e)}catch(t){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},"LRL/":function(t,e,n){"use strict";n("Ymdd")("trimRight",function(t){return function(){return t(this,2)}},"trimEnd")},La7N:function(t,e,n){n("0j1G")("WeakMap")},LhTa:function(t,e,n){var r=n("rFzY"),i=n("Q6Nf"),o=n("FryR"),a=n("BbyF"),s=n("plSV");t.exports=function(t,e){var n=1==t,c=2==t,u=3==t,l=4==t,f=6==t,h=5==t||f,p=e||s;return function(e,s,d){for(var v,m,y=o(e),g=i(y),_=r(s,d,3),b=a(g.length),w=0,x=n?p(e,b):c?p(e,0):void 0;b>w;w++)if((h||w in g)&&(m=_(v=g[w],w,y),t))if(n)x[w]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:x.push(v)}else if(l)return!1;return f?-1:u||l?l:x}}},LlNE:function(t,e,n){var r=n("Ds5P"),i=Math.exp;r(r.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},Lqg1:function(t,e,n){var r=n("Ds5P"),i=Math.imul;r(r.S+r.F*n("zgIt")(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function(t,e){var n=+t,r=+e,i=65535&n,o=65535&r;return 0|i*o+((65535&n>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},LrcN:function(t,e,n){"use strict";var r=n("OzIq"),i=n("bUqO"),o=n("V3l/"),a=n("07k+"),s=n("2p1q"),c=n("A16L"),u=n("zgIt"),l=n("9GpA"),f=n("oeih"),h=n("BbyF"),p=n("8D8H"),d=n("WcO1").f,v=n("lDLk").f,m=n("zCYm"),y=n("yYvK"),g="prototype",_="Wrong index!",b=r.ArrayBuffer,w=r.DataView,x=r.Math,S=r.RangeError,k=r.Infinity,C=b,T=x.abs,E=x.pow,O=x.floor,A=x.log,P=x.LN2,M=i?"_b":"buffer",j=i?"_l":"byteLength",I=i?"_o":"byteOffset";function L(t,e,n){var r,i,o,a=new Array(n),s=8*n-e-1,c=(1<>1,l=23===e?E(2,-24)-E(2,-77):0,f=0,h=t<0||0===t&&1/t<0?1:0;for((t=T(t))!=t||t===k?(i=t!=t?1:0,r=c):(r=O(A(t)/P),t*(o=E(2,-r))<1&&(r--,o*=2),(t+=r+u>=1?l/o:l*E(2,1-u))*o>=2&&(r++,o/=2),r+u>=c?(i=0,r=c):r+u>=1?(i=(t*o-1)*E(2,e),r+=u):(i=t*E(2,u-1)*E(2,e),r=0));e>=8;a[f++]=255&i,i/=256,e-=8);for(r=r<0;a[f++]=255&r,r/=256,s-=8);return a[--f]|=128*h,a}function D(t,e,n){var r,i=8*n-e-1,o=(1<>1,s=i-7,c=n-1,u=t[c--],l=127&u;for(u>>=7;s>0;l=256*l+t[c],c--,s-=8);for(r=l&(1<<-s)-1,l>>=-s,s+=e;s>0;r=256*r+t[c],c--,s-=8);if(0===l)l=1-a;else{if(l===o)return r?NaN:u?-k:k;r+=E(2,e),l-=a}return(u?-1:1)*r*E(2,l-e)}function R(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function F(t){return[255&t]}function N(t){return[255&t,t>>8&255]}function B(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function z(t){return L(t,52,8)}function U(t){return L(t,23,4)}function H(t,e,n){v(t[g],e,{get:function(){return this[n]}})}function $(t,e,n,r){var i=p(+n);if(i+e>t[j])throw S(_);var o=t[M]._b,a=i+t[I],s=o.slice(a,a+e);return r?s:s.reverse()}function V(t,e,n,r,i,o){var a=p(+n);if(a+e>t[j])throw S(_);for(var s=t[M]._b,c=a+t[I],u=r(+i),l=0;lY;)(W=X[Y++])in b||s(b,W,C[W]);o||(q.constructor=b)}var G=new w(new b(2)),K=w[g].setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||c(w[g],{setInt8:function(t,e){K.call(this,t,e<<24>>24)},setUint8:function(t,e){K.call(this,t,e<<24>>24)}},!0)}else b=function(t){l(this,b,"ArrayBuffer");var e=p(t);this._b=m.call(new Array(e),0),this[j]=e},w=function(t,e,n){l(this,w,"DataView"),l(t,b,"DataView");var r=t[j],i=f(e);if(i<0||i>r)throw S("Wrong offset!");if(i+(n=void 0===n?r-i:h(n))>r)throw S("Wrong length!");this[M]=t,this[I]=i,this[j]=n},i&&(H(b,"byteLength","_l"),H(w,"buffer","_b"),H(w,"byteLength","_l"),H(w,"byteOffset","_o")),c(w[g],{getInt8:function(t){return $(this,1,t)[0]<<24>>24},getUint8:function(t){return $(this,1,t)[0]},getInt16:function(t){var e=$(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=$(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return R($(this,4,t,arguments[1]))},getUint32:function(t){return R($(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return D($(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return D($(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){V(this,1,t,F,e)},setUint8:function(t,e){V(this,1,t,F,e)},setInt16:function(t,e){V(this,2,t,N,e,arguments[2])},setUint16:function(t,e){V(this,2,t,N,e,arguments[2])},setInt32:function(t,e){V(this,4,t,B,e,arguments[2])},setUint32:function(t,e){V(this,4,t,B,e,arguments[2])},setFloat32:function(t,e){V(this,4,t,U,e,arguments[2])},setFloat64:function(t,e){V(this,8,t,z,e,arguments[2])}});y(b,"ArrayBuffer"),y(w,"DataView"),s(w[g],a.VIEW,!0),e.ArrayBuffer=b,e.DataView=w},M4fF:function(t,e,n){(function(t,r){var i; +/** + * @license + * Lodash + * Copyright JS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(){var o,a=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",u="__lodash_hash_undefined__",l=500,f="__lodash_placeholder__",h=1,p=2,d=4,v=1,m=2,y=1,g=2,_=4,b=8,w=16,x=32,S=64,k=128,C=256,T=512,E=30,O="...",A=800,P=16,M=1,j=2,I=1/0,L=9007199254740991,D=1.7976931348623157e308,R=NaN,F=4294967295,N=F-1,B=F>>>1,z=[["ary",k],["bind",y],["bindKey",g],["curry",b],["curryRight",w],["flip",T],["partial",x],["partialRight",S],["rearg",C]],U="[object Arguments]",H="[object Array]",$="[object AsyncFunction]",V="[object Boolean]",W="[object Date]",q="[object DOMException]",X="[object Error]",Y="[object Function]",G="[object GeneratorFunction]",K="[object Map]",Q="[object Number]",J="[object Null]",Z="[object Object]",tt="[object Proxy]",et="[object RegExp]",nt="[object Set]",rt="[object String]",it="[object Symbol]",ot="[object Undefined]",at="[object WeakMap]",st="[object WeakSet]",ct="[object ArrayBuffer]",ut="[object DataView]",lt="[object Float32Array]",ft="[object Float64Array]",ht="[object Int8Array]",pt="[object Int16Array]",dt="[object Int32Array]",vt="[object Uint8Array]",mt="[object Uint8ClampedArray]",yt="[object Uint16Array]",gt="[object Uint32Array]",_t=/\b__p \+= '';/g,bt=/\b(__p \+=) '' \+/g,wt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,xt=/&(?:amp|lt|gt|quot|#39);/g,St=/[&<>"']/g,kt=RegExp(xt.source),Ct=RegExp(St.source),Tt=/<%-([\s\S]+?)%>/g,Et=/<%([\s\S]+?)%>/g,Ot=/<%=([\s\S]+?)%>/g,At=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Pt=/^\w*$/,Mt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,jt=/[\\^$.*+?()[\]{}|]/g,It=RegExp(jt.source),Lt=/^\s+|\s+$/g,Dt=/^\s+/,Rt=/\s+$/,Ft=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Nt=/\{\n\/\* \[wrapped with (.+)\] \*/,Bt=/,? & /,zt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ut=/\\(\\)?/g,Ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,$t=/\w*$/,Vt=/^[-+]0x[0-9a-f]+$/i,Wt=/^0b[01]+$/i,qt=/^\[object .+?Constructor\]$/,Xt=/^0o[0-7]+$/i,Yt=/^(?:0|[1-9]\d*)$/,Gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Kt=/($^)/,Qt=/['\n\r\u2028\u2029\\]/g,Jt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Zt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",te="[\\ud800-\\udfff]",ee="["+Zt+"]",ne="["+Jt+"]",re="\\d+",ie="[\\u2700-\\u27bf]",oe="[a-z\\xdf-\\xf6\\xf8-\\xff]",ae="[^\\ud800-\\udfff"+Zt+re+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",se="\\ud83c[\\udffb-\\udfff]",ce="[^\\ud800-\\udfff]",ue="(?:\\ud83c[\\udde6-\\uddff]){2}",le="[\\ud800-\\udbff][\\udc00-\\udfff]",fe="[A-Z\\xc0-\\xd6\\xd8-\\xde]",he="(?:"+oe+"|"+ae+")",pe="(?:"+fe+"|"+ae+")",de="(?:"+ne+"|"+se+")"+"?",ve="[\\ufe0e\\ufe0f]?"+de+("(?:\\u200d(?:"+[ce,ue,le].join("|")+")[\\ufe0e\\ufe0f]?"+de+")*"),me="(?:"+[ie,ue,le].join("|")+")"+ve,ye="(?:"+[ce+ne+"?",ne,ue,le,te].join("|")+")",ge=RegExp("['鈥橾","g"),_e=RegExp(ne,"g"),be=RegExp(se+"(?="+se+")|"+ye+ve,"g"),we=RegExp([fe+"?"+oe+"+(?:['鈥橾(?:d|ll|m|re|s|t|ve))?(?="+[ee,fe,"$"].join("|")+")",pe+"+(?:['鈥橾(?:D|LL|M|RE|S|T|VE))?(?="+[ee,fe+he,"$"].join("|")+")",fe+"?"+he+"+(?:['鈥橾(?:d|ll|m|re|s|t|ve))?",fe+"+(?:['鈥橾(?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",re,me].join("|"),"g"),xe=RegExp("[\\u200d\\ud800-\\udfff"+Jt+"\\ufe0e\\ufe0f]"),Se=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ke=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ce=-1,Te={};Te[lt]=Te[ft]=Te[ht]=Te[pt]=Te[dt]=Te[vt]=Te[mt]=Te[yt]=Te[gt]=!0,Te[U]=Te[H]=Te[ct]=Te[V]=Te[ut]=Te[W]=Te[X]=Te[Y]=Te[K]=Te[Q]=Te[Z]=Te[et]=Te[nt]=Te[rt]=Te[at]=!1;var Ee={};Ee[U]=Ee[H]=Ee[ct]=Ee[ut]=Ee[V]=Ee[W]=Ee[lt]=Ee[ft]=Ee[ht]=Ee[pt]=Ee[dt]=Ee[K]=Ee[Q]=Ee[Z]=Ee[et]=Ee[nt]=Ee[rt]=Ee[it]=Ee[vt]=Ee[mt]=Ee[yt]=Ee[gt]=!0,Ee[X]=Ee[Y]=Ee[at]=!1;var Oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ae=parseFloat,Pe=parseInt,Me="object"==typeof t&&t&&t.Object===Object&&t,je="object"==typeof self&&self&&self.Object===Object&&self,Ie=Me||je||Function("return this")(),Le="object"==typeof e&&e&&!e.nodeType&&e,De=Le&&"object"==typeof r&&r&&!r.nodeType&&r,Re=De&&De.exports===Le,Fe=Re&&Me.process,Ne=function(){try{var t=De&&De.require&&De.require("util").types;return t||Fe&&Fe.binding&&Fe.binding("util")}catch(t){}}(),Be=Ne&&Ne.isArrayBuffer,ze=Ne&&Ne.isDate,Ue=Ne&&Ne.isMap,He=Ne&&Ne.isRegExp,$e=Ne&&Ne.isSet,Ve=Ne&&Ne.isTypedArray;function We(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function qe(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i-1}function Je(t,e,n){for(var r=-1,i=null==t?0:t.length;++r-1;);return n}function wn(t,e){for(var n=t.length;n--&&cn(e,t[n],0)>-1;);return n}var xn=pn({"脌":"A","脕":"A","脗":"A","脙":"A","脛":"A","脜":"A","脿":"a","谩":"a","芒":"a","茫":"a","盲":"a","氓":"a","脟":"C","莽":"c","脨":"D","冒":"d","脠":"E","脡":"E","脢":"E","脣":"E","猫":"e","茅":"e","锚":"e","毛":"e","脤":"I","脥":"I","脦":"I","脧":"I","矛":"i","铆":"i","卯":"i","茂":"i","脩":"N","帽":"n","脪":"O","脫":"O","脭":"O","脮":"O","脰":"O","脴":"O","貌":"o","贸":"o","么":"o","玫":"o","枚":"o","酶":"o","脵":"U","脷":"U","脹":"U","脺":"U","霉":"u","煤":"u","没":"u","眉":"u","脻":"Y","媒":"y","每":"y","脝":"Ae","忙":"ae","脼":"Th","镁":"th","脽":"ss","膧":"A","膫":"A","膭":"A","膩":"a","膬":"a","膮":"a","膯":"C","膱":"C","膴":"C","膶":"C","膰":"c","膲":"c","膵":"c","膷":"c","膸":"D","膼":"D","膹":"d","膽":"d","膾":"E","臄":"E","臇":"E","臉":"E","臍":"E","膿":"e","臅":"e","臈":"e","臋":"e","臎":"e","臏":"G","臑":"G","臓":"G","蘑":"G","臐":"g","臒":"g","摹":"g","模":"g","膜":"H","摩":"H","磨":"h","魔":"h","抹":"I","莫":"I","默":"I","漠":"I","陌":"I","末":"i","墨":"i","沫":"i","寞":"i","谋":"i","拇":"J","牡":"j","亩":"K","姆":"k","母":"k","墓":"L","幕":"L","慕":"L","目":"L","艁":"L","暮":"l","募":"l","木":"l","艀":"l","艂":"l","艃":"N","艆":"N","艊":"N","艎":"N","艅":"n","艈":"n","艌":"n","艐":"n","艑":"O","艓":"O","艕":"O","艒":"o","艔":"o","艖":"o","艛":"R","艝":"R","艠":"R","艜":"r","艞":"r","艡":"r","艢":"S","艤":"S","艦":"S","艩":"S","艣":"s","艥":"s","艧":"s","拧":"s","泞":"T","扭":"T","纽":"T","牛":"t","钮":"t","脓":"t","浓":"U","弄":"U","努":"U","女":"U","虐":"U","挪":"U","农":"u","奴":"u","怒":"u","暖":"u","疟":"u","懦":"u","糯":"W","诺":"w","哦":"Y","欧":"y","鸥":"Y","殴":"Z","呕":"Z","沤":"Z","藕":"z","偶":"z","啪":"z","牟":"IJ","某":"ij","艗":"Oe","艙":"oe","艍":"'n","趴":"s"}),Sn=pn({"&":"&","<":"<",">":">",'"':""","'":"'"});function kn(t){return"\\"+Oe[t]}function Cn(t){return xe.test(t)}function Tn(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}function En(t,e){return function(n){return t(e(n))}}function On(t,e){for(var n=-1,r=t.length,i=0,o=[];++n",""":'"',"'":"'"});var Ln=function t(e){var n,r=(e=null==e?Ie:Ln.defaults(Ie.Object(),e,Ln.pick(Ie,ke))).Array,i=e.Date,Jt=e.Error,Zt=e.Function,te=e.Math,ee=e.Object,ne=e.RegExp,re=e.String,ie=e.TypeError,oe=r.prototype,ae=Zt.prototype,se=ee.prototype,ce=e["__core-js_shared__"],ue=ae.toString,le=se.hasOwnProperty,fe=0,he=(n=/[^.]+$/.exec(ce&&ce.keys&&ce.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",pe=se.toString,de=ue.call(ee),ve=Ie._,me=ne("^"+ue.call(le).replace(jt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ye=Re?e.Buffer:o,be=e.Symbol,xe=e.Uint8Array,Oe=ye?ye.allocUnsafe:o,Me=En(ee.getPrototypeOf,ee),je=ee.create,Le=se.propertyIsEnumerable,De=oe.splice,Fe=be?be.isConcatSpreadable:o,Ne=be?be.iterator:o,on=be?be.toStringTag:o,pn=function(){try{var t=Bo(ee,"defineProperty");return t({},"",{}),t}catch(t){}}(),Dn=e.clearTimeout!==Ie.clearTimeout&&e.clearTimeout,Rn=i&&i.now!==Ie.Date.now&&i.now,Fn=e.setTimeout!==Ie.setTimeout&&e.setTimeout,Nn=te.ceil,Bn=te.floor,zn=ee.getOwnPropertySymbols,Un=ye?ye.isBuffer:o,Hn=e.isFinite,$n=oe.join,Vn=En(ee.keys,ee),Wn=te.max,qn=te.min,Xn=i.now,Yn=e.parseInt,Gn=te.random,Kn=oe.reverse,Qn=Bo(e,"DataView"),Jn=Bo(e,"Map"),Zn=Bo(e,"Promise"),tr=Bo(e,"Set"),er=Bo(e,"WeakMap"),nr=Bo(ee,"create"),rr=er&&new er,ir={},or=fa(Qn),ar=fa(Jn),sr=fa(Zn),cr=fa(tr),ur=fa(er),lr=be?be.prototype:o,fr=lr?lr.valueOf:o,hr=lr?lr.toString:o;function pr(t){if(Os(t)&&!ys(t)&&!(t instanceof yr)){if(t instanceof mr)return t;if(le.call(t,"__wrapped__"))return ha(t)}return new mr(t)}var dr=function(){function t(){}return function(e){if(!Es(e))return{};if(je)return je(e);t.prototype=e;var n=new t;return t.prototype=o,n}}();function vr(){}function mr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=o}function yr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=F,this.__views__=[]}function gr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Dr(t,e,n,r,i,a){var s,c=e&h,u=e&p,l=e&d;if(n&&(s=i?n(t,r,i,a):n(t)),s!==o)return s;if(!Es(t))return t;var f=ys(t);if(f){if(s=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&le.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!c)return no(t,s)}else{var v=Ho(t),m=v==Y||v==G;if(ws(t))return Ki(t,c);if(v==Z||v==U||m&&!i){if(s=u||m?{}:Vo(t),!c)return u?function(t,e){return ro(t,Uo(t),e)}(t,function(t,e){return t&&ro(e,oc(e),t)}(s,t)):function(t,e){return ro(t,zo(t),e)}(t,Mr(s,t))}else{if(!Ee[v])return i?t:{};s=function(t,e,n){var r,i,o,a=t.constructor;switch(e){case ct:return Qi(t);case V:case W:return new a(+t);case ut:return function(t,e){var n=e?Qi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case lt:case ft:case ht:case pt:case dt:case vt:case mt:case yt:case gt:return Ji(t,n);case K:return new a;case Q:case rt:return new a(t);case et:return(o=new(i=t).constructor(i.source,$t.exec(i))).lastIndex=i.lastIndex,o;case nt:return new a;case it:return r=t,fr?ee(fr.call(r)):{}}}(t,v,c)}}a||(a=new xr);var y=a.get(t);if(y)return y;if(a.set(t,s),Is(t))return t.forEach(function(r){s.add(Dr(r,e,n,r,t,a))}),s;if(As(t))return t.forEach(function(r,i){s.set(i,Dr(r,e,n,i,t,a))}),s;var g=f?o:(l?u?jo:Mo:u?oc:ic)(t);return Xe(g||t,function(r,i){g&&(r=t[i=r]),Or(s,i,Dr(r,e,n,i,t,a))}),s}function Rr(t,e,n){var r=n.length;if(null==t)return!r;for(t=ee(t);r--;){var i=n[r],a=e[i],s=t[i];if(s===o&&!(i in t)||!a(s))return!1}return!0}function Fr(t,e,n){if("function"!=typeof t)throw new ie(c);return ia(function(){t.apply(o,n)},e)}function Nr(t,e,n,r){var i=-1,o=Qe,s=!0,c=t.length,u=[],l=e.length;if(!c)return u;n&&(e=Ze(e,yn(n))),r?(o=Je,s=!1):e.length>=a&&(o=_n,s=!1,e=new wr(e));t:for(;++i-1},_r.prototype.set=function(t,e){var n=this.__data__,r=Ar(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},br.prototype.clear=function(){this.size=0,this.__data__={hash:new gr,map:new(Jn||_r),string:new gr}},br.prototype.delete=function(t){var e=Fo(this,t).delete(t);return this.size-=e?1:0,e},br.prototype.get=function(t){return Fo(this,t).get(t)},br.prototype.has=function(t){return Fo(this,t).has(t)},br.prototype.set=function(t,e){var n=Fo(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},wr.prototype.add=wr.prototype.push=function(t){return this.__data__.set(t,u),this},wr.prototype.has=function(t){return this.__data__.has(t)},xr.prototype.clear=function(){this.__data__=new _r,this.size=0},xr.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},xr.prototype.get=function(t){return this.__data__.get(t)},xr.prototype.has=function(t){return this.__data__.has(t)},xr.prototype.set=function(t,e){var n=this.__data__;if(n instanceof _r){var r=n.__data__;if(!Jn||r.length0&&n(s)?e>1?Vr(s,e-1,n,r,i):tn(i,s):r||(i[i.length]=s)}return i}var Wr=so(),qr=so(!0);function Xr(t,e){return t&&Wr(t,e,ic)}function Yr(t,e){return t&&qr(t,e,ic)}function Gr(t,e){return Ke(e,function(e){return ks(t[e])})}function Kr(t,e){for(var n=0,r=(e=qi(e,t)).length;null!=t&&ne}function ti(t,e){return null!=t&&le.call(t,e)}function ei(t,e){return null!=t&&e in ee(t)}function ni(t,e,n){for(var i=n?Je:Qe,a=t[0].length,s=t.length,c=s,u=r(s),l=1/0,f=[];c--;){var h=t[c];c&&e&&(h=Ze(h,yn(e))),l=qn(h.length,l),u[c]=!n&&(e||a>=120&&h.length>=120)?new wr(c&&h):o}h=t[0];var p=-1,d=u[0];t:for(;++p=s)return c;var u=n[r];return c*("desc"==u?-1:1)}}return t.index-e.index}(t,e,n)})}function gi(t,e,n){for(var r=-1,i=e.length,o={};++r-1;)s!==t&&De.call(s,c,1),De.call(t,c,1);return t}function bi(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;qo(i)?De.call(t,i,1):Ni(t,i)}}return t}function wi(t,e){return t+Bn(Gn()*(e-t+1))}function xi(t,e){var n="";if(!t||e<1||e>L)return n;do{e%2&&(n+=t),(e=Bn(e/2))&&(t+=t)}while(e);return n}function Si(t,e){return oa(ta(t,e,Pc),t+"")}function ki(t){return kr(pc(t))}function Ci(t,e){var n=pc(t);return ca(n,Lr(e,0,n.length))}function Ti(t,e,n,r){if(!Es(t))return t;for(var i=-1,a=(e=qi(e,t)).length,s=a-1,c=t;null!=c&&++io?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var a=r(o);++i>>1,a=t[o];null!==a&&!Ds(a)&&(n?a<=e:a=a){var l=e?null:So(t);if(l)return An(l);s=!1,i=_n,u=new wr}else u=e?[]:c;t:for(;++r=r?t:Pi(t,e,n)}var Gi=Dn||function(t){return Ie.clearTimeout(t)};function Ki(t,e){if(e)return t.slice();var n=t.length,r=Oe?Oe(n):new t.constructor(n);return t.copy(r),r}function Qi(t){var e=new t.constructor(t.byteLength);return new xe(e).set(new xe(t)),e}function Ji(t,e){var n=e?Qi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Zi(t,e){if(t!==e){var n=t!==o,r=null===t,i=t==t,a=Ds(t),s=e!==o,c=null===e,u=e==e,l=Ds(e);if(!c&&!l&&!a&&t>e||a&&s&&u&&!c&&!l||r&&s&&u||!n&&u||!i)return 1;if(!r&&!a&&!l&&t1?n[i-1]:o,s=i>2?n[2]:o;for(a=t.length>3&&"function"==typeof a?(i--,a):o,s&&Xo(n[0],n[1],s)&&(a=i<3?o:a,i=1),e=ee(e);++r-1?i[a?e[s]:s]:o}}function ho(t){return Po(function(e){var n=e.length,r=n,i=mr.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if("function"!=typeof a)throw new ie(c);if(i&&!s&&"wrapper"==Lo(a))var s=new mr([],!0)}for(r=s?r:n;++r1&&b.reverse(),h&&lc))return!1;var l=a.get(t);if(l&&a.get(e))return l==e;var f=-1,h=!0,p=n&m?new wr:o;for(a.set(t,e),a.set(e,t);++f-1&&t%1==0&&t1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Ft,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Xe(z,function(n){var r="_."+n[0];e&n[1]&&!Qe(t,r)&&t.push(r)}),t.sort()}(function(t){var e=t.match(Nt);return e?e[1].split(Bt):[]}(r),n)))}function sa(t){var e=0,n=0;return function(){var r=Xn(),i=P-(r-n);if(n=r,i>0){if(++e>=A)return arguments[0]}else e=0;return t.apply(o,arguments)}}function ca(t,e){var n=-1,r=t.length,i=r-1;for(e=e===o?r:e;++n1?t[e-1]:o;return ja(t,n="function"==typeof n?(t.pop(),n):o)});function Ba(t){var e=pr(t);return e.__chain__=!0,e}function za(t,e){return e(t)}var Ua=Po(function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,i=function(e){return Ir(e,t)};return!(e>1||this.__actions__.length)&&r instanceof yr&&qo(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:za,args:[i],thisArg:o}),new mr(r,this.__chain__).thru(function(t){return e&&!t.length&&t.push(o),t})):this.thru(i)});var Ha=io(function(t,e,n){le.call(t,n)?++t[n]:jr(t,n,1)});var $a=fo(ma),Va=fo(ya);function Wa(t,e){return(ys(t)?Xe:Br)(t,Ro(e,3))}function qa(t,e){return(ys(t)?Ye:zr)(t,Ro(e,3))}var Xa=io(function(t,e,n){le.call(t,n)?t[n].push(e):jr(t,n,[e])});var Ya=Si(function(t,e,n){var i=-1,o="function"==typeof e,a=_s(t)?r(t.length):[];return Br(t,function(t){a[++i]=o?We(e,t,n):ri(t,e,n)}),a}),Ga=io(function(t,e,n){jr(t,n,e)});function Ka(t,e){return(ys(t)?Ze:hi)(t,Ro(e,3))}var Qa=io(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]});var Ja=Si(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Xo(t,e[0],e[1])?e=[]:n>2&&Xo(e[0],e[1],e[2])&&(e=[e[0]]),yi(t,Vr(e,1),[])}),Za=Rn||function(){return Ie.Date.now()};function ts(t,e,n){return e=n?o:e,e=t&&null==e?t.length:e,Co(t,k,o,o,o,o,e)}function es(t,e){var n;if("function"!=typeof e)throw new ie(c);return t=Us(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=o),n}}var ns=Si(function(t,e,n){var r=y;if(n.length){var i=On(n,Do(ns));r|=x}return Co(t,r,e,n,i)}),rs=Si(function(t,e,n){var r=y|g;if(n.length){var i=On(n,Do(rs));r|=x}return Co(e,r,t,n,i)});function is(t,e,n){var r,i,a,s,u,l,f=0,h=!1,p=!1,d=!0;if("function"!=typeof t)throw new ie(c);function v(e){var n=r,a=i;return r=i=o,f=e,s=t.apply(a,n)}function m(t){var n=t-l;return l===o||n>=e||n<0||p&&t-f>=a}function y(){var t=Za();if(m(t))return g(t);u=ia(y,function(t){var n=e-(t-l);return p?qn(n,a-(t-f)):n}(t))}function g(t){return u=o,d&&r?v(t):(r=i=o,s)}function _(){var t=Za(),n=m(t);if(r=arguments,i=this,l=t,n){if(u===o)return function(t){return f=t,u=ia(y,e),h?v(t):s}(l);if(p)return u=ia(y,e),v(l)}return u===o&&(u=ia(y,e)),s}return e=$s(e)||0,Es(n)&&(h=!!n.leading,a=(p="maxWait"in n)?Wn($s(n.maxWait)||0,e):a,d="trailing"in n?!!n.trailing:d),_.cancel=function(){u!==o&&Gi(u),f=0,r=l=i=u=o},_.flush=function(){return u===o?s:g(Za())},_}var os=Si(function(t,e){return Fr(t,1,e)}),as=Si(function(t,e,n){return Fr(t,$s(e)||0,n)});function ss(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ie(c);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(ss.Cache||br),n}function cs(t){if("function"!=typeof t)throw new ie(c);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}ss.Cache=br;var us=Xi(function(t,e){var n=(e=1==e.length&&ys(e[0])?Ze(e[0],yn(Ro())):Ze(Vr(e,1),yn(Ro()))).length;return Si(function(r){for(var i=-1,o=qn(r.length,n);++i=e}),ms=ii(function(){return arguments}())?ii:function(t){return Os(t)&&le.call(t,"callee")&&!Le.call(t,"callee")},ys=r.isArray,gs=Be?yn(Be):function(t){return Os(t)&&Jr(t)==ct};function _s(t){return null!=t&&Ts(t.length)&&!ks(t)}function bs(t){return Os(t)&&_s(t)}var ws=Un||$c,xs=ze?yn(ze):function(t){return Os(t)&&Jr(t)==W};function Ss(t){if(!Os(t))return!1;var e=Jr(t);return e==X||e==q||"string"==typeof t.message&&"string"==typeof t.name&&!Ms(t)}function ks(t){if(!Es(t))return!1;var e=Jr(t);return e==Y||e==G||e==$||e==tt}function Cs(t){return"number"==typeof t&&t==Us(t)}function Ts(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=L}function Es(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Os(t){return null!=t&&"object"==typeof t}var As=Ue?yn(Ue):function(t){return Os(t)&&Ho(t)==K};function Ps(t){return"number"==typeof t||Os(t)&&Jr(t)==Q}function Ms(t){if(!Os(t)||Jr(t)!=Z)return!1;var e=Me(t);if(null===e)return!0;var n=le.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&ue.call(n)==de}var js=He?yn(He):function(t){return Os(t)&&Jr(t)==et};var Is=$e?yn($e):function(t){return Os(t)&&Ho(t)==nt};function Ls(t){return"string"==typeof t||!ys(t)&&Os(t)&&Jr(t)==rt}function Ds(t){return"symbol"==typeof t||Os(t)&&Jr(t)==it}var Rs=Ve?yn(Ve):function(t){return Os(t)&&Ts(t.length)&&!!Te[Jr(t)]};var Fs=bo(fi),Ns=bo(function(t,e){return t<=e});function Bs(t){if(!t)return[];if(_s(t))return Ls(t)?jn(t):no(t);if(Ne&&t[Ne])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Ne]());var e=Ho(t);return(e==K?Tn:e==nt?An:pc)(t)}function zs(t){return t?(t=$s(t))===I||t===-I?(t<0?-1:1)*D:t==t?t:0:0===t?t:0}function Us(t){var e=zs(t),n=e%1;return e==e?n?e-n:e:0}function Hs(t){return t?Lr(Us(t),0,F):0}function $s(t){if("number"==typeof t)return t;if(Ds(t))return R;if(Es(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Es(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Lt,"");var n=Wt.test(t);return n||Xt.test(t)?Pe(t.slice(2),n?2:8):Vt.test(t)?R:+t}function Vs(t){return ro(t,oc(t))}function Ws(t){return null==t?"":Ri(t)}var qs=oo(function(t,e){if(Qo(e)||_s(e))ro(e,ic(e),t);else for(var n in e)le.call(e,n)&&Or(t,n,e[n])}),Xs=oo(function(t,e){ro(e,oc(e),t)}),Ys=oo(function(t,e,n,r){ro(e,oc(e),t,r)}),Gs=oo(function(t,e,n,r){ro(e,ic(e),t,r)}),Ks=Po(Ir);var Qs=Si(function(t,e){t=ee(t);var n=-1,r=e.length,i=r>2?e[2]:o;for(i&&Xo(e[0],e[1],i)&&(r=1);++n1),e}),ro(t,jo(t),n),r&&(n=Dr(n,h|p|d,Oo));for(var i=e.length;i--;)Ni(n,e[i]);return n});var uc=Po(function(t,e){return null==t?{}:function(t,e){return gi(t,e,function(e,n){return tc(t,n)})}(t,e)});function lc(t,e){if(null==t)return{};var n=Ze(jo(t),function(t){return[t]});return e=Ro(e),gi(t,n,function(t,n){return e(t,n[0])})}var fc=ko(ic),hc=ko(oc);function pc(t){return null==t?[]:gn(t,ic(t))}var dc=uo(function(t,e,n){return e=e.toLowerCase(),t+(n?vc(e):e)});function vc(t){return Sc(Ws(t).toLowerCase())}function mc(t){return(t=Ws(t))&&t.replace(Gt,xn).replace(_e,"")}var yc=uo(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),gc=uo(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),_c=co("toLowerCase");var bc=uo(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()});var wc=uo(function(t,e,n){return t+(n?" ":"")+Sc(e)});var xc=uo(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),Sc=co("toUpperCase");function kc(t,e,n){return t=Ws(t),(e=n?o:e)===o?function(t){return Se.test(t)}(t)?function(t){return t.match(we)||[]}(t):function(t){return t.match(zt)||[]}(t):t.match(e)||[]}var Cc=Si(function(t,e){try{return We(t,o,e)}catch(t){return Ss(t)?t:new Jt(t)}}),Tc=Po(function(t,e){return Xe(e,function(e){e=la(e),jr(t,e,ns(t[e],t))}),t});function Ec(t){return function(){return t}}var Oc=ho(),Ac=ho(!0);function Pc(t){return t}function Mc(t){return ci("function"==typeof t?t:Dr(t,h))}var jc=Si(function(t,e){return function(n){return ri(n,t,e)}}),Ic=Si(function(t,e){return function(n){return ri(t,n,e)}});function Lc(t,e,n){var r=ic(e),i=Gr(e,r);null!=n||Es(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Gr(e,ic(e)));var o=!(Es(n)&&"chain"in n&&!n.chain),a=ks(t);return Xe(i,function(n){var r=e[n];t[n]=r,a&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=no(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,tn([this.value()],arguments))})}),t}function Dc(){}var Rc=yo(Ze),Fc=yo(Ge),Nc=yo(rn);function Bc(t){return Yo(t)?hn(la(t)):function(t){return function(e){return Kr(e,t)}}(t)}var zc=_o(),Uc=_o(!0);function Hc(){return[]}function $c(){return!1}var Vc=mo(function(t,e){return t+e},0),Wc=xo("ceil"),qc=mo(function(t,e){return t/e},1),Xc=xo("floor");var Yc,Gc=mo(function(t,e){return t*e},1),Kc=xo("round"),Qc=mo(function(t,e){return t-e},0);return pr.after=function(t,e){if("function"!=typeof e)throw new ie(c);return t=Us(t),function(){if(--t<1)return e.apply(this,arguments)}},pr.ary=ts,pr.assign=qs,pr.assignIn=Xs,pr.assignInWith=Ys,pr.assignWith=Gs,pr.at=Ks,pr.before=es,pr.bind=ns,pr.bindAll=Tc,pr.bindKey=rs,pr.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return ys(t)?t:[t]},pr.chain=Ba,pr.chunk=function(t,e,n){e=(n?Xo(t,e,n):e===o)?1:Wn(Us(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var a=0,s=0,c=r(Nn(i/e));ai?0:i+n),(r=r===o||r>i?i:Us(r))<0&&(r+=i),r=n>r?0:Hs(r);n>>0)?(t=Ws(t))&&("string"==typeof e||null!=e&&!js(e))&&!(e=Ri(e))&&Cn(t)?Yi(jn(t),0,n):t.split(e,n):[]},pr.spread=function(t,e){if("function"!=typeof t)throw new ie(c);return e=null==e?0:Wn(Us(e),0),Si(function(n){var r=n[e],i=Yi(n,0,e);return r&&tn(i,r),We(t,this,i)})},pr.tail=function(t){var e=null==t?0:t.length;return e?Pi(t,1,e):[]},pr.take=function(t,e,n){return t&&t.length?Pi(t,0,(e=n||e===o?1:Us(e))<0?0:e):[]},pr.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?Pi(t,(e=r-(e=n||e===o?1:Us(e)))<0?0:e,r):[]},pr.takeRightWhile=function(t,e){return t&&t.length?zi(t,Ro(e,3),!1,!0):[]},pr.takeWhile=function(t,e){return t&&t.length?zi(t,Ro(e,3)):[]},pr.tap=function(t,e){return e(t),t},pr.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new ie(c);return Es(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),is(t,e,{leading:r,maxWait:e,trailing:i})},pr.thru=za,pr.toArray=Bs,pr.toPairs=fc,pr.toPairsIn=hc,pr.toPath=function(t){return ys(t)?Ze(t,la):Ds(t)?[t]:no(ua(Ws(t)))},pr.toPlainObject=Vs,pr.transform=function(t,e,n){var r=ys(t),i=r||ws(t)||Rs(t);if(e=Ro(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:Es(t)&&ks(o)?dr(Me(t)):{}}return(i?Xe:Xr)(t,function(t,r,i){return e(n,t,r,i)}),n},pr.unary=function(t){return ts(t,1)},pr.union=Oa,pr.unionBy=Aa,pr.unionWith=Pa,pr.uniq=function(t){return t&&t.length?Fi(t):[]},pr.uniqBy=function(t,e){return t&&t.length?Fi(t,Ro(e,2)):[]},pr.uniqWith=function(t,e){return e="function"==typeof e?e:o,t&&t.length?Fi(t,o,e):[]},pr.unset=function(t,e){return null==t||Ni(t,e)},pr.unzip=Ma,pr.unzipWith=ja,pr.update=function(t,e,n){return null==t?t:Bi(t,e,Wi(n))},pr.updateWith=function(t,e,n,r){return r="function"==typeof r?r:o,null==t?t:Bi(t,e,Wi(n),r)},pr.values=pc,pr.valuesIn=function(t){return null==t?[]:gn(t,oc(t))},pr.without=Ia,pr.words=kc,pr.wrap=function(t,e){return ls(Wi(e),t)},pr.xor=La,pr.xorBy=Da,pr.xorWith=Ra,pr.zip=Fa,pr.zipObject=function(t,e){return $i(t||[],e||[],Or)},pr.zipObjectDeep=function(t,e){return $i(t||[],e||[],Ti)},pr.zipWith=Na,pr.entries=fc,pr.entriesIn=hc,pr.extend=Xs,pr.extendWith=Ys,Lc(pr,pr),pr.add=Vc,pr.attempt=Cc,pr.camelCase=dc,pr.capitalize=vc,pr.ceil=Wc,pr.clamp=function(t,e,n){return n===o&&(n=e,e=o),n!==o&&(n=(n=$s(n))==n?n:0),e!==o&&(e=(e=$s(e))==e?e:0),Lr($s(t),e,n)},pr.clone=function(t){return Dr(t,d)},pr.cloneDeep=function(t){return Dr(t,h|d)},pr.cloneDeepWith=function(t,e){return Dr(t,h|d,e="function"==typeof e?e:o)},pr.cloneWith=function(t,e){return Dr(t,d,e="function"==typeof e?e:o)},pr.conformsTo=function(t,e){return null==e||Rr(t,e,ic(e))},pr.deburr=mc,pr.defaultTo=function(t,e){return null==t||t!=t?e:t},pr.divide=qc,pr.endsWith=function(t,e,n){t=Ws(t),e=Ri(e);var r=t.length,i=n=n===o?r:Lr(Us(n),0,r);return(n-=e.length)>=0&&t.slice(n,i)==e},pr.eq=ps,pr.escape=function(t){return(t=Ws(t))&&Ct.test(t)?t.replace(St,Sn):t},pr.escapeRegExp=function(t){return(t=Ws(t))&&It.test(t)?t.replace(jt,"\\$&"):t},pr.every=function(t,e,n){var r=ys(t)?Ge:Ur;return n&&Xo(t,e,n)&&(e=o),r(t,Ro(e,3))},pr.find=$a,pr.findIndex=ma,pr.findKey=function(t,e){return an(t,Ro(e,3),Xr)},pr.findLast=Va,pr.findLastIndex=ya,pr.findLastKey=function(t,e){return an(t,Ro(e,3),Yr)},pr.floor=Xc,pr.forEach=Wa,pr.forEachRight=qa,pr.forIn=function(t,e){return null==t?t:Wr(t,Ro(e,3),oc)},pr.forInRight=function(t,e){return null==t?t:qr(t,Ro(e,3),oc)},pr.forOwn=function(t,e){return t&&Xr(t,Ro(e,3))},pr.forOwnRight=function(t,e){return t&&Yr(t,Ro(e,3))},pr.get=Zs,pr.gt=ds,pr.gte=vs,pr.has=function(t,e){return null!=t&&$o(t,e,ti)},pr.hasIn=tc,pr.head=_a,pr.identity=Pc,pr.includes=function(t,e,n,r){t=_s(t)?t:pc(t),n=n&&!r?Us(n):0;var i=t.length;return n<0&&(n=Wn(i+n,0)),Ls(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&cn(t,e,n)>-1},pr.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Us(n);return i<0&&(i=Wn(r+i,0)),cn(t,e,i)},pr.inRange=function(t,e,n){return e=zs(e),n===o?(n=e,e=0):n=zs(n),function(t,e,n){return t>=qn(e,n)&&t=-L&&t<=L},pr.isSet=Is,pr.isString=Ls,pr.isSymbol=Ds,pr.isTypedArray=Rs,pr.isUndefined=function(t){return t===o},pr.isWeakMap=function(t){return Os(t)&&Ho(t)==at},pr.isWeakSet=function(t){return Os(t)&&Jr(t)==st},pr.join=function(t,e){return null==t?"":$n.call(t,e)},pr.kebabCase=yc,pr.last=Sa,pr.lastIndexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r;return n!==o&&(i=(i=Us(n))<0?Wn(r+i,0):qn(i,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,i):sn(t,ln,i,!0)},pr.lowerCase=gc,pr.lowerFirst=_c,pr.lt=Fs,pr.lte=Ns,pr.max=function(t){return t&&t.length?Hr(t,Pc,Zr):o},pr.maxBy=function(t,e){return t&&t.length?Hr(t,Ro(e,2),Zr):o},pr.mean=function(t){return fn(t,Pc)},pr.meanBy=function(t,e){return fn(t,Ro(e,2))},pr.min=function(t){return t&&t.length?Hr(t,Pc,fi):o},pr.minBy=function(t,e){return t&&t.length?Hr(t,Ro(e,2),fi):o},pr.stubArray=Hc,pr.stubFalse=$c,pr.stubObject=function(){return{}},pr.stubString=function(){return""},pr.stubTrue=function(){return!0},pr.multiply=Gc,pr.nth=function(t,e){return t&&t.length?mi(t,Us(e)):o},pr.noConflict=function(){return Ie._===this&&(Ie._=ve),this},pr.noop=Dc,pr.now=Za,pr.pad=function(t,e,n){t=Ws(t);var r=(e=Us(e))?Mn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return go(Bn(i),n)+t+go(Nn(i),n)},pr.padEnd=function(t,e,n){t=Ws(t);var r=(e=Us(e))?Mn(t):0;return e&&re){var r=t;t=e,e=r}if(n||t%1||e%1){var i=Gn();return qn(t+i*(e-t+Ae("1e-"+((i+"").length-1))),e)}return wi(t,e)},pr.reduce=function(t,e,n){var r=ys(t)?en:dn,i=arguments.length<3;return r(t,Ro(e,4),n,i,Br)},pr.reduceRight=function(t,e,n){var r=ys(t)?nn:dn,i=arguments.length<3;return r(t,Ro(e,4),n,i,zr)},pr.repeat=function(t,e,n){return e=(n?Xo(t,e,n):e===o)?1:Us(e),xi(Ws(t),e)},pr.replace=function(){var t=arguments,e=Ws(t[0]);return t.length<3?e:e.replace(t[1],t[2])},pr.result=function(t,e,n){var r=-1,i=(e=qi(e,t)).length;for(i||(i=1,t=o);++rL)return[];var n=F,r=qn(t,F);e=Ro(e),t-=F;for(var i=mn(r,e);++n=a)return t;var c=n-Mn(r);if(c<1)return r;var u=s?Yi(s,0,c).join(""):t.slice(0,c);if(i===o)return u+r;if(s&&(c+=u.length-c),js(i)){if(t.slice(c).search(i)){var l,f=u;for(i.global||(i=ne(i.source,Ws($t.exec(i))+"g")),i.lastIndex=0;l=i.exec(f);)var h=l.index;u=u.slice(0,h===o?c:h)}}else if(t.indexOf(Ri(i),c)!=c){var p=u.lastIndexOf(i);p>-1&&(u=u.slice(0,p))}return u+r},pr.unescape=function(t){return(t=Ws(t))&&kt.test(t)?t.replace(xt,In):t},pr.uniqueId=function(t){var e=++fe;return Ws(t)+e},pr.upperCase=xc,pr.upperFirst=Sc,pr.each=Wa,pr.eachRight=qa,pr.first=_a,Lc(pr,(Yc={},Xr(pr,function(t,e){le.call(pr.prototype,e)||(Yc[e]=t)}),Yc),{chain:!1}),pr.VERSION="4.17.11",Xe(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){pr[t].placeholder=pr}),Xe(["drop","take"],function(t,e){yr.prototype[t]=function(n){n=n===o?1:Wn(Us(n),0);var r=this.__filtered__&&!e?new yr(this):this.clone();return r.__filtered__?r.__takeCount__=qn(n,r.__takeCount__):r.__views__.push({size:qn(n,F),type:t+(r.__dir__<0?"Right":"")}),r},yr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Xe(["filter","map","takeWhile"],function(t,e){var n=e+1,r=n==M||3==n;yr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Ro(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}}),Xe(["head","last"],function(t,e){var n="take"+(e?"Right":"");yr.prototype[t]=function(){return this[n](1).value()[0]}}),Xe(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");yr.prototype[t]=function(){return this.__filtered__?new yr(this):this[n](1)}}),yr.prototype.compact=function(){return this.filter(Pc)},yr.prototype.find=function(t){return this.filter(t).head()},yr.prototype.findLast=function(t){return this.reverse().find(t)},yr.prototype.invokeMap=Si(function(t,e){return"function"==typeof t?new yr(this):this.map(function(n){return ri(n,t,e)})}),yr.prototype.reject=function(t){return this.filter(cs(Ro(t)))},yr.prototype.slice=function(t,e){t=Us(t);var n=this;return n.__filtered__&&(t>0||e<0)?new yr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==o&&(n=(e=Us(e))<0?n.dropRight(-e):n.take(e-t)),n)},yr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},yr.prototype.toArray=function(){return this.take(F)},Xr(yr.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=pr[r?"take"+("last"==e?"Right":""):e],a=r||/^find/.test(e);i&&(pr.prototype[e]=function(){var e=this.__wrapped__,s=r?[1]:arguments,c=e instanceof yr,u=s[0],l=c||ys(e),f=function(t){var e=i.apply(pr,tn([t],s));return r&&h?e[0]:e};l&&n&&"function"==typeof u&&1!=u.length&&(c=l=!1);var h=this.__chain__,p=!!this.__actions__.length,d=a&&!h,v=c&&!p;if(!a&&l){e=v?e:new yr(this);var m=t.apply(e,s);return m.__actions__.push({func:za,args:[f],thisArg:o}),new mr(m,h)}return d&&v?t.apply(this,s):(m=this.thru(f),d?r?m.value()[0]:m.value():m)})}),Xe(["pop","push","shift","sort","splice","unshift"],function(t){var e=oe[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);pr.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(ys(i)?i:[],t)}return this[n](function(n){return e.apply(ys(n)?n:[],t)})}}),Xr(yr.prototype,function(t,e){var n=pr[e];if(n){var r=n.name+"";(ir[r]||(ir[r]=[])).push({name:e,func:n})}}),ir[po(o,g).name]=[{name:"wrapper",func:o}],yr.prototype.clone=function(){var t=new yr(this.__wrapped__);return t.__actions__=no(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=no(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=no(this.__views__),t},yr.prototype.reverse=function(){if(this.__filtered__){var t=new yr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},yr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=ys(t),r=e<0,i=n?t.length:0,o=function(t,e,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:t,value:t?o:this.__values__[this.__index__++]}},pr.prototype.plant=function(t){for(var e,n=this;n instanceof vr;){var r=ha(n);r.__index__=0,r.__values__=o,e?i.__wrapped__=r:e=r;var i=r;n=n.__wrapped__}return i.__wrapped__=t,e},pr.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof yr){var e=t;return this.__actions__.length&&(e=new yr(this)),(e=e.reverse()).__actions__.push({func:za,args:[Ea],thisArg:o}),new mr(e,this.__chain__)}return this.thru(Ea)},pr.prototype.toJSON=pr.prototype.valueOf=pr.prototype.value=function(){return Ui(this.__wrapped__,this.__actions__)},pr.prototype.first=pr.prototype.head,Ne&&(pr.prototype[Ne]=function(){return this}),pr}();Ie._=Ln,(i=function(){return Ln}.call(e,n,e,r))===o||(r.exports=i)}).call(this)}).call(e,n("DuR2"),n("3IRH")(t))},M6a0:function(t,e){},M8WE:function(t,e,n){e.f=n("kkCw")},MU5D:function(t,e,n){var r=n("R9M2");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},MfeA:function(t,e,n){"use strict";var r=n("DIVP"),i=n("BbyF"),o=n("TwzQ"),a=n("9Dx1");n("Vg1y")("match",1,function(t,e,n,s){return[function(n){var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=s(n,t,this);if(e.done)return e.value;var c=r(t),u=String(this);if(!c.global)return a(c,u);var l=c.unicode;c.lastIndex=0;for(var f,h=[],p=0;null!==(f=a(c,u));){var d=String(f[0]);h[p]=d,""===d&&(c.lastIndex=o(u,i(c.lastIndex),l)),p++}return 0===p?null:h}]})},Mhyx:function(t,e,n){var r=n("/bQp"),i=n("dSzd")("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},MjHD:function(t,e,n){var r=n("Ds5P"),i=n("x78i"),o=Math.exp;r(r.S+r.F*n("zgIt")(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},MmMw:function(t,e,n){var r=n("EqjI");t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},MoMe:function(t,e,n){var r=n("FCuZ"),i=n("l9Lx"),o=n("ktak");t.exports=function(t){return r(t,o,i)}},MsuQ:function(t,e,n){"use strict";var r=n("Dgii"),i=n("zq/X");t.exports=n("0Rih")("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=r.getEntry(i(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(i(this,"Map"),0===t?0:t,e)}},r,!0)},MyjO:function(t,e,n){n("77Ug")("Uint8",1,function(t){return function(e,n,r){return t(this,e,n,r)}},!0)},N2Ao:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){var e=n("woOf"),r=n.n(e),i=n("C4MV"),o=n.n(i),a=n("pFYg"),s=n.n(a);!function(e,r){if("object"===("undefined"==typeof exports?"undefined":s()(exports))&&"object"===s()(t))t.exports=r();else if("function"==typeof define&&n("nErl"))define([],r);else{var i=r();for(var o in i)("object"===("undefined"==typeof exports?"undefined":s()(exports))?exports:e)[o]=i[o]}}(this,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||o()(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=2)}([function(t,e,n){e.__esModule=!0,e.genImageSrc=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.isHttp2,a=e.http2Hostname;t=t.replace(/[?&]x_vip_host=[^&#]+/,"");var s=(0,r.genLocation)(t);if(n&&a&&-1!=s.origin.indexOf(a)){var c=s.href.replace(s.protocol+"//"+s.hostname,o);return c}var u=s.href.replace(s.protocol+"//"+s.hostname,i);return s.search.length>0?u+"&x_vip_host="+s.hostname:u+"?x_vip_host="+s.hostname};var r=n(1),i="//bak.appsimg.com",o="//h2bak.appsimg.com"},function(t,e,n){function r(t,e){var n=new RegExp("(\\s|^)"+e+"(\\s|$)");return n.test(t.getAttribute("class")||"")&&n}e.__esModule=!0,e.hasClass=r,e.addClass=function(t,e){r(t,e)||t.setAttribute("class",(t.getAttribute("class")||"").trim()+" "+e)},e.genLocation=function(t){var e=document.createElement("a");return e.href=t,e}},function(t,e,n){var r=n(0),i=n(3);t.exports={genImageSrc:r.genImageSrc,observer:i.run}},function(t,e,n){e.__esModule=!0,e.run=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u=(c=r()({},c,t)).imgClass?document.getElementsByClassName(c.imgClass):document.getElementsByTagName("img");var e=function(){l(t)};window.MutationObserver?new MutationObserver(e).observe(s,{childList:!0,subtree:!0,attributes:!0}):(s.addEventListener("DOMNodeInserted",e,!0),s.addEventListener("DOMAttrModified",e,!0),setInterval(e,999))},n(4);var i=n(1),o=n(0),a=n(5),s=document.documentElement,c={imgClass:"",imgBackUpClass:"dns-image-error"},u=null,l=function(t){for(var e=0,n=u.length;e_;_++)if((m=e?g(a(d=t[_])[0],d[1]):g(t[_]))===u||m===l)return m}else for(v=y.call(t);!(d=v.next()).done;)if((m=i(v,g,d.value,e))===u||m===l)return m}).BREAK=u,e.RETURN=l},NYxO:function(t,e,n){"use strict";(function(t){n.d(e,"c",function(){return w}),n.d(e,"b",function(){return x});var r=("undefined"!=typeof window?window:void 0!==t?t:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function i(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function o(t){return null!==t&&"object"==typeof t}var a=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},s={namespaced:{configurable:!0}};s.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(t,e){this._children[t]=e},a.prototype.removeChild=function(t){delete this._children[t]},a.prototype.getChild=function(t){return this._children[t]},a.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},a.prototype.forEachChild=function(t){i(this._children,t)},a.prototype.forEachGetter=function(t){this._rawModule.getters&&i(this._rawModule.getters,t)},a.prototype.forEachAction=function(t){this._rawModule.actions&&i(this._rawModule.actions,t)},a.prototype.forEachMutation=function(t){this._rawModule.mutations&&i(this._rawModule.mutations,t)},Object.defineProperties(a.prototype,s);var c=function(t){this.register([],t,!1)};c.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},c.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")},"")},c.prototype.update=function(t){!function t(e,n,r){0;n.update(r);if(r.modules)for(var i in r.modules){if(!n.getChild(i))return void 0;t(e.concat(i),n.getChild(i),r.modules[i])}}([],this.root,t)},c.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var o=new a(e,n);0===t.length?this.root=o:this.get(t.slice(0,-1)).addChild(t[t.length-1],o);e.modules&&i(e.modules,function(e,i){r.register(t.concat(i),e,n)})},c.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var u;var l=function(t){var e=this;void 0===t&&(t={}),!u&&"undefined"!=typeof window&&window.Vue&&g(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var i=t.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new c(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var o=this,a=this.dispatch,s=this.commit;this.dispatch=function(t,e){return a.call(o,t,e)},this.commit=function(t,e,n){return s.call(o,t,e,n)},this.strict=i;var l=this._modules.root.state;v(this,l,[],this._modules.root),d(this,l),n.forEach(function(t){return t(e)}),(void 0!==t.devtools?t.devtools:u.config.devtools)&&function(t){r&&(t._devtoolHook=r,r.emit("vuex:init",t),r.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){r.emit("vuex:mutation",t,e)}))}(this)},f={state:{configurable:!0}};function h(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function p(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;v(t,n,[],t._modules.root,!0),d(t,n,e)}function d(t,e,n){var r=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var o={};i(t._wrappedGetters,function(e,n){o[n]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,t._vm=new u({data:{$$state:e},computed:o}),u.config.silent=a,t.strict&&function(t){t._vm.$watch(function(){return this._data.$$state},function(){0},{deep:!0,sync:!0})}(t),r&&(n&&t._withCommit(function(){r._data.$$state=null}),u.nextTick(function(){return r.$destroy()}))}function v(t,e,n,r,i){var o=!n.length,a=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[a],t._modulesNamespaceMap[a]=r),!o&&!i){var s=m(e,n.slice(0,-1)),c=n[n.length-1];t._withCommit(function(){u.set(s,c,r.state)})}var l=r.context=function(t,e,n){var r=""===e,i={dispatch:r?t.dispatch:function(n,r,i){var o=y(n,r,i),a=o.payload,s=o.options,c=o.type;return s&&s.root||(c=e+c),t.dispatch(c,a)},commit:r?t.commit:function(n,r,i){var o=y(n,r,i),a=o.payload,s=o.options,c=o.type;s&&s.root||(c=e+c),t.commit(c,a,s)}};return Object.defineProperties(i,{getters:{get:r?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},r=e.length;Object.keys(t.getters).forEach(function(i){if(i.slice(0,r)===e){var o=i.slice(r);Object.defineProperty(n,o,{get:function(){return t.getters[i]},enumerable:!0})}}),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return m(t.state,n)}}}),i}(t,a,n);r.forEachMutation(function(e,n){!function(t,e,n,r){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,r.state,e)})}(t,a+n,e,l)}),r.forEachAction(function(e,n){var r=e.root?n:a+n,i=e.handler||e;!function(t,e,n,r){(t._actions[e]||(t._actions[e]=[])).push(function(e){var i,o=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e);return(i=o)&&"function"==typeof i.then||(o=Promise.resolve(o)),t._devtoolHook?o.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):o})}(t,r,i,l)}),r.forEachGetter(function(e,n){!function(t,e,n,r){if(t._wrappedGetters[e])return void 0;t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)}}(t,a+n,e,l)}),r.forEachChild(function(r,o){v(t,e,n.concat(o),r,i)})}function m(t,e){return e.reduce(function(t,e){return t[e]},t)}function y(t,e,n){return o(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function g(t){u&&t===u|| +/** + * vuex v3.1.3 + * (c) 2020 Evan You + * @license MIT + */ +function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(u=t)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(t){0},l.prototype.commit=function(t,e,n){var r=this,i=y(t,e,n),o=i.type,a=i.payload,s=(i.options,{type:o,payload:a}),c=this._mutations[o];c&&(this._withCommit(function(){c.forEach(function(t){t(a)})}),this._subscribers.slice().forEach(function(t){return t(s,r.state)}))},l.prototype.dispatch=function(t,e){var n=this,r=y(t,e),i=r.type,o=r.payload,a={type:i,payload:o},s=this._actions[i];if(s){try{this._actionSubscribers.slice().filter(function(t){return t.before}).forEach(function(t){return t.before(a,n.state)})}catch(t){0}return(s.length>1?Promise.all(s.map(function(t){return t(o)})):s[0](o)).then(function(t){try{n._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(a,n.state)})}catch(t){0}return t})}},l.prototype.subscribe=function(t){return h(t,this._subscribers)},l.prototype.subscribeAction=function(t){return h("function"==typeof t?{before:t}:t,this._actionSubscribers)},l.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},l.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},l.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),v(this,this.state,t,this._modules.get(t),n.preserveState),d(this,this.state)},l.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=m(e.state,t.slice(0,-1));u.delete(n,t[t.length-1])}),p(this)},l.prototype.hotUpdate=function(t){this._modules.update(t),p(this,!0)},l.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(l.prototype,f);var _=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=C(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof i?i.call(this,e,n):e[i]},n[r].vuex=!0}),n}),b=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var o=C(this.$store,"mapMutations",t);if(!o)return;r=o.context.commit}return"function"==typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}}),n}),w=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;i=t+i,n[r]=function(){if(!t||C(this.$store,"mapGetters",t))return this.$store.getters[i]},n[r].vuex=!0}),n}),x=k(function(t,e){var n={};return S(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var o=C(this.$store,"mapActions",t);if(!o)return;r=o.context.dispatch}return"function"==typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}}),n});function S(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function k(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function C(t,e,n){return t._modulesNamespaceMap[n]}var T={Store:l,install:g,version:"3.1.3",mapState:_,mapMutations:b,mapGetters:w,mapActions:x,createNamespacedHelpers:function(t){return{mapState:_.bind(null,t),mapGetters:w.bind(null,t),mapMutations:b.bind(null,t),mapActions:x.bind(null,t)}}};e.a=T}).call(e,n("DuR2"))},NfZy:function(t,e,n){n("77Ug")("Uint32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},NkRn:function(t,e,n){var r=n("TQ3y").Symbol;t.exports=r},Nkkh:function(t,e,n){var r=n("tv3T"),i=n("l9Lx");t.exports=function(t,e){return r(t,i(t),e)}},Nkrw:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(4);r(r.P+r.F*!n("NNrz")([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},No4x:function(t,e,n){var r=n("Ds5P");r(r.P,"Array",{fill:n("zCYm")}),n("RhFG")("fill")},NpIQ:function(t,e){e.f={}.propertyIsEnumerable},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},O4Lo:function(t,e,n){var r=n("yCNF"),i=n("RVHk"),o=n("kxzG"),a="Expected a function",s=Math.max,c=Math.min;t.exports=function(t,e,n){var u,l,f,h,p,d,v=0,m=!1,y=!1,g=!0;if("function"!=typeof t)throw new TypeError(a);function _(e){var n=u,r=l;return u=l=void 0,v=e,h=t.apply(r,n)}function b(t){var n=t-d;return void 0===d||n>=e||n<0||y&&t-v>=f}function w(){var t=i();if(b(t))return x(t);p=setTimeout(w,function(t){var n=e-(t-d);return y?c(n,f-(t-v)):n}(t))}function x(t){return p=void 0,g&&u?_(t):(u=l=void 0,h)}function S(){var t=i(),n=b(t);if(u=arguments,l=this,d=t,n){if(void 0===p)return function(t){return v=t,p=setTimeout(w,e),m?_(t):h}(d);if(y)return p=setTimeout(w,e),_(d)}return void 0===p&&(p=setTimeout(w,e)),h}return e=o(e)||0,r(n)&&(m=!!n.leading,f=(y="maxWait"in n)?s(o(n.maxWait)||0,e):f,g="trailing"in n?!!n.trailing:g),S.cancel=function(){void 0!==p&&clearTimeout(p),v=0,u=d=l=p=void 0},S.flush=function(){return void 0===p?h:x(i())},S}},O4R0:function(t,e,n){n("+MLA"),t.exports=n("FeBl").Object.freeze},O4g8:function(t,e){t.exports=!0},ON07:function(t,e,n){var r=n("EqjI"),i=n("7KvD").document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},OYls:function(t,e,n){n("crlp")("asyncIterator")},OgTs:function(t,e,n){var r=n("OzIq").parseInt,i=n("Ymdd").trim,o=n("Xduv"),a=/^[-+]?0[xX]/;t.exports=8!==r(o+"08")||22!==r(o+"0x16")?function(t,e){var n=i(String(t),3);return r(n,e>>>0||(a.test(n)?16:10))}:r},OvRC:function(t,e,n){t.exports={default:n("oM7Q"),__esModule:!0}},OzIq:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},PHCx:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},PHqh:function(t,e,n){var r=n("Q6Nf"),i=n("/whu");t.exports=function(t){return r(i(t))}},POb3:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Map");t.exports=r},PbPd:function(t,e,n){"use strict";var r=n("UKM+"),i=n("KOrd"),o=n("kkCw")("hasInstance"),a=Function.prototype;o in a||n("lDLk").f(a,o,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},Pf15:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("kiBT")),i=a(n("OvRC")),o=a(n("pFYg"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,o.default)(e)));t.prototype=(0,i.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(r.default?(0,r.default)(t,e):t.__proto__=e)}},PqYH:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n2){var n,r,i,o=(e=y?e.trim():h(e,3)).charCodeAt(0);if(43===o||45===o){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+e}for(var a,c=e.slice(2),u=0,l=c.length;ui)return NaN;return parseInt(c,r)}}return+e};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof p&&(m?c(function(){v.valueOf.call(n)}):"Number"!=o(n))?a(new d(g(e)),n,p):g(e)};for(var _,b=n("bUqO")?u(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;b.length>w;w++)i(d,_=b[w])&&!i(p,_)&&f(p,_,l(d,_));p.prototype=v,v.constructor=p,n("R3AP")(r,"Number",p)}},QG7u:function(t,e,n){var r=n("vmSO");t.exports=function(t,e){var n=[];return r(t,!1,n.push,n,e),n}},QKXm:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},QRG4:function(t,e,n){var r=n("UuGF"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},QWLi:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("oeih"),o=n("fS0v"),a=n("xAdt"),s=1..toFixed,c=Math.floor,u=[0,0,0,0,0,0],l="Number.toFixed: incorrect invocation!",f=function(t,e){for(var n=-1,r=e;++n<6;)r+=t*u[n],u[n]=r%1e7,r=c(r/1e7)},h=function(t){for(var e=6,n=0;--e>=0;)n+=u[e],u[e]=c(n/t),n=n%t*1e7},p=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==u[t]){var n=String(u[t]);e=""===e?n:e+a.call("0",7-n.length)+n}return e},d=function(t,e,n){return 0===e?n:e%2==1?d(t,e-1,n*t):d(t*t,e/2,n)};r(r.P+r.F*(!!s&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n("zgIt")(function(){s.call({})})),"Number",{toFixed:function(t){var e,n,r,s,c=o(this,l),u=i(t),v="",m="0";if(u<0||u>20)throw RangeError(l);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(v="-",c=-c),c>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(c*d(2,69,1))-69)<0?c*d(2,-e,1):c/d(2,e,1),n*=4503599627370496,(e=52-e)>0){for(f(0,n),r=u;r>=7;)f(1e7,0),r-=7;for(f(d(10,r,1),0),r=e-1;r>=23;)h(1<<23),r-=23;h(1<0?v+((s=m.length)<=u?"0."+a.call("0",u-s)+m:m.slice(0,s-u)+"."+m.slice(s-u)):v+m}})},"QWe/":function(t,e,n){n("crlp")("observable")},QaEu:function(t,e,n){var r=n("Ds5P");r(r.S,"Date",{now:function(){return(new Date).getTime()}})},QcWB:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("w6Dh"),o=n("SDXa");r(r.S,"Promise",{try:function(t){var e=i.f(this),n=o(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}})},Qh14:function(t,e,n){var r=n("ReGu"),i=n("QKXm");t.exports=Object.keys||function(t){return r(t,i)}},QzLV:function(t,e,n){var r=n("Ds5P");r(r.S+r.F*!n("bUqO"),"Object",{defineProperty:n("lDLk").f})},R3AP:function(t,e,n){var r=n("OzIq"),i=n("2p1q"),o=n("WBcL"),a=n("ulTY")("src"),s=n("73qY"),c=(""+s).split("toString");n("7gX0").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var u="function"==typeof n;u&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(u&&(o(n,a)||i(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},R3KI:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{iaddh:function(t,e,n,r){var i=t>>>0,o=n>>>0;return(e>>>0)+(r>>>0)+((i&o|(i|o)&~(i+o>>>0))>>>31)|0}})},R4pa:function(t,e,n){"use strict";n("y325")("big",function(t){return function(){return t(this,"big","","")}})},R4wc:function(t,e,n){var r=n("kM2E");r(r.S+r.F,"Object",{assign:n("To3L")})},R9M2:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},RGrk:function(t,e,n){var r=n("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:i.call(e,t)}},RPLV:function(t,e,n){var r=n("7KvD").document;t.exports=r&&r.documentElement},RVHk:function(t,e,n){var r=n("TQ3y");t.exports=function(){return r.Date.now()}},"RY/4":function(t,e,n){var r=n("R9M2"),i=n("dSzd")("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},Racj:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("49qz")(!1);r(r.P,"String",{codePointAt:function(t){return i(this,t)}})},Re3r:function(t,e){function n(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)} +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +t.exports=function(t){return null!=t&&(n(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},ReGu:function(t,e,n){var r=n("WBcL"),i=n("PHqh"),o=n("ot5s")(!1),a=n("mZON")("IE_PROTO");t.exports=function(t,e){var n,s=i(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},Rh28:function(t,e){var n=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}},RhFG:function(t,e,n){var r=n("kkCw")("unscopables"),i=Array.prototype;void 0==i[r]&&n("2p1q")(i,r,{}),t.exports=function(t){i[r][t]=!0}},Rk41:function(t,e,n){var r=Date.prototype,i=r.toString,o=r.getTime;new Date(NaN)+""!="Invalid Date"&&n("R3AP")(r,"toString",function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"})},Rrel:function(t,e,n){var r=n("TcQ7"),i=n("n0T6").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return a.slice()}}(t):i(r(t))}},Rw4K:function(t,e,n){var r=n("Ds5P");r(r.S,"Reflect",{ownKeys:n("YUr7")})},Rz2z:function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},"S+E/":function(t,e,n){var r=n("Ds5P"),i=n("OgTs");r(r.G+r.F*(parseInt!=i),{parseInt:i})},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},S82l:function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},SDXa:function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},SGXn:function(t,e,n){var r=n("eP4g"),i=n("S7p9"),o=n("Dc0G"),a=o&&o.isSet,s=a?i(a):r;t.exports=s},SHe9:function(t,e,n){var r=n("wC1N"),i=n("kkCw")("iterator"),o=n("bN1p");t.exports=n("7gX0").getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[r(t)]}},SPtU:function(t,e,n){var r=n("x9zv"),i=n("KOrd"),o=n("WBcL"),a=n("Ds5P"),s=n("UKM+"),c=n("DIVP");a(a.S,"Reflect",{get:function t(e,n){var a,u,l=arguments.length<3?e:arguments[2];return c(e)===l?e[n]:(a=r.f(e,n))?o(a,"value")?a.value:void 0!==a.get?a.get.call(l):void 0:s(u=i(e))?t(u,n,l):void 0}})},SRCy:function(t,e,n){var r=n("Ds5P"),i=n("x78i"),o=Math.exp;r(r.S,"Math",{tanh:function(t){var e=i(t=+t),n=i(-t);return e==1/0?1:n==1/0?-1:(e-n)/(o(t)+o(-t))}})},"SU+a":function(t,e,n){"use strict";n("y325")("small",function(t){return function(){return t(this,"small","","")}})},Sejc:function(t,e,n){var r,i,o,a=n("rFzY"),s=n("PHCx"),c=n("d075"),u=n("jhxf"),l=n("OzIq"),f=l.process,h=l.setImmediate,p=l.clearImmediate,d=l.MessageChannel,v=l.Dispatch,m=0,y={},g=function(){var t=+this;if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},_=function(t){g.call(t.data)};h&&p||(h=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return y[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},p=function(t){delete y[t]},"process"==n("ydD5")(f)?r=function(t){f.nextTick(a(g,t,1))}:v&&v.now?r=function(t){v.now(a(g,t,1))}:d?(o=(i=new d).port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",_,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),g.call(t)}}:function(t){setTimeout(a(g,t,1),0)}),t.exports={set:h,clear:p}},SfB7:function(t,e,n){t.exports=!n("+E39")&&!n("S82l")(function(){return 7!=Object.defineProperty(n("ON07")("div"),"a",{get:function(){return 7}}).a})},SldL:function(t,e){!function(e){"use strict";var n,r=Object.prototype,i=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag",u="object"==typeof t,l=e.regeneratorRuntime;if(l)u&&(t.exports=l);else{(l=e.regeneratorRuntime=u?t.exports:{}).wrap=b;var f="suspendedStart",h="suspendedYield",p="executing",d="completed",v={},m={};m[a]=function(){return this};var y=Object.getPrototypeOf,g=y&&y(y(M([])));g&&g!==r&&i.call(g,a)&&(m=g);var _=k.prototype=x.prototype=Object.create(m);S.prototype=_.constructor=k,k.constructor=S,k[c]=S.displayName="GeneratorFunction",l.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===S||"GeneratorFunction"===(e.displayName||e.name))},l.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,k):(t.__proto__=k,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(_),t},l.awrap=function(t){return{__await:t}},C(T.prototype),T.prototype[s]=function(){return this},l.AsyncIterator=T,l.async=function(t,e,n,r){var i=new T(b(t,e,n,r));return l.isGeneratorFunction(e)?i:i.next().then(function(t){return t.done?t.value:i.next()})},C(_),_[c]="Generator",_[a]=function(){return this},_.toString=function(){return"[object Generator]"},l.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},l.values=M,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(A),!t)for(var e in this)"t"===e.charAt(0)&&i.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,i){return s.type="throw",s.arg=t,e.next=r,i&&(e.method="next",e.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;A(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:M(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function b(t,e,n,r){var i=e&&e.prototype instanceof x?e:x,o=Object.create(i.prototype),a=new P(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===d){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=w(t,e,n);if("normal"===c.type){if(r=n.done?d:h,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=d,n.method="throw",n.arg=c.arg)}}}(t,n,a),o}function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function x(){}function S(){}function k(){}function C(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function T(t){var e;this._invoke=function(n,r){function o(){return new Promise(function(e,o){!function e(n,r,o,a){var s=w(t[n],t,r);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&i.call(u,"__await")?Promise.resolve(u.__await).then(function(t){e("next",t,o,a)},function(t){e("throw",t,o,a)}):Promise.resolve(u).then(function(t){c.value=t,o(c)},a)}a(s.arg)}(n,r,e,o)})}return e=e?e.then(o,o):o()}}function E(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,E(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=w(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,v;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function M(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++ru;)for(var h,p=s(arguments[u++]),d=l?r(p).concat(l(p)):r(p),v=d.length,m=0;v>m;)f.call(p,h=d[m++])&&(n[h]=p[h]);return n}:c},Tvex:function(t,e,n){var r=n("7YkW"),i=n("JUs9"),o=n("s96k"),a=n("dmQx"),s=n("V3Yo"),c=n("octw"),u=200;t.exports=function(t,e,n){var l=-1,f=i,h=t.length,p=!0,d=[],v=d;if(n)p=!1,f=o;else if(h>=u){var m=e?null:s(t);if(m)return c(m);p=!1,f=a,v=new r}else v=e?[]:d;t:for(;++l1?arguments[1]:void 0)}}),n("RhFG")(o)},UJiG:function(t,e,n){"use strict";n("y325")("link",function(t){return function(e){return t(this,"a","href",e)}})},"UKM+":function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},UbXY:function(t,e,n){var r=n("Ds5P"),i=n("Y7Tz");r(r.P+r.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},UfSK:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(r.index=t.index,r.input=t.input),r}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UuGF:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},"V/H1":function(t,e,n){"use strict";var r=n("fJSx"),i=n("zq/X");n("0Rih")("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(i(this,"WeakSet"),t,!0)}},r,!1,!0)},V3Yo:function(t,e,n){var r=n("5N57"),i=n("qrdl"),o=n("octw"),a=r&&1/o(new r([,-0]))[1]==1/0?function(t){return new r(t)}:i;t.exports=a},"V3l/":function(t,e){t.exports=!1},V3tA:function(t,e,n){n("R4wc"),t.exports=n("FeBl").Object.assign},VORN:function(t,e,n){var r=n("yCNF"),i=Object.create,o=function(){function t(){}return function(e){if(!r(e))return{};if(i)return i(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=o},VTn2:function(t,e,n){var r=n("UKM+"),i=n("1aA0").onFreeze;n("3i66")("freeze",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},"VU/8":function(t,e){t.exports=function(t,e,n,r,i,o){var a,s=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(a=t,s=t.default);var u,l="function"==typeof s?s.options:s;if(e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId=i),o?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=u):r&&(u=r),u){var f=l.functional,h=f?l.render:l.beforeCreate;f?(l._injectStyles=u,l.render=function(t,e){return u.call(e),h(t,e)}):l.beforeCreate=h?[].concat(h,u):[u]}return{esModule:a,exports:s,options:l}}},VWgF:function(t,e,n){var r=n("7gX0"),i=n("OzIq"),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n("V3l/")?"pure":"global",copyright:"漏 2019 Denis Pushkarev (zloirock.ru)"})},Vg1y:function(t,e,n){"use strict";n("Jbuy");var r=n("R3AP"),i=n("2p1q"),o=n("zgIt"),a=n("/whu"),s=n("kkCw"),c=n("32VL"),u=s("species"),l=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var h=s(t),p=!o(function(){var e={};return e[h]=function(){return 7},7!=""[t](e)}),d=p?!o(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[u]=function(){return n}),n[h](""),!e}):void 0;if(!p||!d||"replace"===t&&!l||"split"===t&&!f){var v=/./[h],m=n(a,h,""[t],function(t,e,n,r,i){return e.exec===c?p&&!i?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),y=m[0],g=m[1];r(String.prototype,t,y),i(RegExp.prototype,h,2==e?function(t,e){return g.call(t,this,e)}:function(t){return g.call(t,this)})}}},VjuZ:function(t,e,n){"use strict";var r=n("DIVP"),i=n("FryR"),o=n("BbyF"),a=n("oeih"),s=n("TwzQ"),c=n("9Dx1"),u=Math.max,l=Math.min,f=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;n("Vg1y")("replace",2,function(t,e,n,d){return[function(r,i){var o=t(this),a=void 0==r?void 0:r[e];return void 0!==a?a.call(r,o,i):n.call(String(o),r,i)},function(t,e){var i=d(n,t,this,e);if(i.done)return i.value;var f=r(t),h=String(this),p="function"==typeof e;p||(e=String(e));var m=f.global;if(m){var y=f.unicode;f.lastIndex=0}for(var g=[];;){var _=c(f,h);if(null===_)break;if(g.push(_),!m)break;""===String(_[0])&&(f.lastIndex=s(h,o(f.lastIndex),y))}for(var b,w="",x=0,S=0;S=x&&(w+=h.slice(x,C)+P,x=C+k.length)}return w+h.slice(x)}];function v(t,e,r,o,a,s){var c=r+t.length,u=o.length,l=p;return void 0!==a&&(a=i(a),l=h),n.call(s,l,function(n,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":s=a[i.slice(1,-1)];break;default:var l=+i;if(0===l)return n;if(l>u){var h=f(l/10);return 0===h?n:h<=u?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):n}s=o[l-1]}return void 0===s?"":s})}})},"W/IU":function(t,e,n){var r=n("UKM+"),i=n("1aA0").onFreeze;n("3i66")("seal",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},W0pi:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{DEG_PER_RAD:Math.PI/180})},W2nU:function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var c,u=[],l=!1,f=-1;function h(){l&&c&&(l=!1,c.length?u=c.concat(u):f=-1,u.length&&p())}function p(){if(!l){var t=s(h);l=!0;for(var e=u.length;e;){for(c=u,u=[];++f1)for(var n=1;n=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},WiIn:function(t,e,n){var r=n("Ds5P");r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},WpPb:function(t,e,n){var r=n("UKM+");n("3i66")("isFrozen",function(t){return function(e){return!r(e)||!!t&&t(e)}})},WpTh:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n("RhFG")("find")},Wwne:function(t,e,n){n("r2E/"),t.exports=n("7gX0").RegExp.escape},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},"X/Hz":function(t,e,n){"use strict";n("y325")("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},X6NR:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{clamp:function(t,e,n){return Math.min(n,Math.max(e,t))}})},X7aK:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("DIVP"),o=function(t){this._t=i(t),this._i=0;var e,n=this._k=[];for(e in t)n.push(e)};n("IRJ3")(o,"Object",function(){var t,e=this._k;do{if(this._i>=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}}),r(r.S,"Reflect",{enumerate:function(t){return new o(t)}})},X8DO:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},XO1R:function(t,e,n){var r=n("ydD5");t.exports=Array.isArray||function(t){return"Array"==r(t)}},XSOZ:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},XXBo:function(t,e,n){var r=n("wC1N"),i=n("QG7u");t.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");return i(this)}}},Xc4G:function(t,e,n){var r=n("lktj"),i=n("1kS7"),o=n("NpIQ");t.exports=function(t){var e=r(t),n=i.f;if(n)for(var a,s=n(t),c=o.f,u=0;s.length>u;)c.call(t,a=s[u++])&&e.push(a);return e}},Xd32:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("5PlU")},Xduv:function(t,e){t.exports="\t\n\v\f\r 聽釟釥庘鈥佲傗冣勨呪嗏団堚夆娾仧銆\u2028\u2029\ufeff"},XgCd:function(t,e,n){"use strict";var r=String.prototype.replace,i=/%20/g;t.exports={default:"RFC3986",formatters:{RFC1738:function(t){return r.call(t,i,"+")},RFC3986:function(t){return t}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},XmWM:function(t,e,n){"use strict";var r=n("KCLY"),i=n("cGG2"),o=n("fuGk"),a=n("xLtR");function s(t){this.defaults=t,this.interceptors={request:new o,response:new o}}s.prototype.request=function(t){"string"==typeof t&&(t=i.merge({url:arguments[0]},arguments[1])),(t=i.merge(r,{method:"get"},this.defaults,t)).method=t.method.toLowerCase();var e=[a,void 0],n=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)n=n.then(e.shift(),e.shift());return n},i.forEach(["delete","get","head","options"],function(t){s.prototype[t]=function(e,n){return this.request(i.merge(n||{},{method:t,url:e}))}}),i.forEach(["post","put","patch"],function(t){s.prototype[t]=function(e,n,r){return this.request(i.merge(r||{},{method:t,url:e,data:n}))}}),t.exports=s},XtiL:function(t,e,n){var r=n("Ds5P");r(r.S,"Number",{isInteger:n("n982")})},XvUs:function(t,e,n){var r=n("DIVP");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},Xxa5:function(t,e,n){t.exports=n("jyFz")},Y1N3:function(t,e){e.f=Object.getOwnPropertySymbols},Y1S0:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("BbyF"),o=n("kqpo"),a="".endsWith;r(r.P+r.F*n("1ETD")("endsWith"),"String",{endsWith:function(t){var e=o(this,t,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=i(e.length),s=void 0===n?r:Math.min(i(n),r),c=String(t);return a?a.call(e,c,s):e.slice(s-c.length,s)===c}})},Y1aA:function(t,e){e.f={}.propertyIsEnumerable},Y5ex:function(t,e,n){var r=n("UKM+"),i=n("1aA0").onFreeze;n("3i66")("preventExtensions",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},Y7Tz:function(t,e,n){"use strict";var r=n("zgIt"),i=Date.prototype.getTime,o=Date.prototype.toISOString,a=function(t){return t>9?t:"0"+t};t.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!r(function(){o.call(new Date(NaN))})?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+("00000"+Math.abs(e)).slice(r?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}:o},YUr7:function(t,e,n){var r=n("WcO1"),i=n("Y1N3"),o=n("DIVP"),a=n("OzIq").Reflect;t.exports=a&&a.ownKeys||function(t){var e=r.f(o(t)),n=i.f;return n?e.concat(n(t)):e}},"YVn/":function(t,e,n){var r=n("Ds5P"),i=n("lKE8")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},YeCl:function(t,e,n){var r=n("CW5P"),i=n("A9mX"),o=n("v8Dt"),a=n("agim"),s=n("Dv2r");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++edocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[o[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=c(),void 0===e?n:i(n,e)}},YsVG:function(t,e,n){var r=n("z4hc"),i=n("S7p9"),o=n("Dc0G"),a=o&&o.isTypedArray,s=a?i(a):r;t.exports=s},Z2pD:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?i:e,this}},ZDXm:function(t,e,n){"use strict";var r,i=n("OzIq"),o=n("LhTa")(0),a=n("R3AP"),s=n("1aA0"),c=n("oYd7"),u=n("fJSx"),l=n("UKM+"),f=n("zq/X"),h=n("zq/X"),p=!i.ActiveXObject&&"ActiveXObject"in i,d=s.getWeak,v=Object.isExtensible,m=u.ufstore,y=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(t){if(l(t)){var e=d(t);return!0===e?m(f(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return u.def(f(this,"WeakMap"),t,e)}},_=t.exports=n("0Rih")("WeakMap",y,g,u,!0,!0);h&&p&&(c((r=u.getConstructor(y,"WeakMap")).prototype,g),s.NEED=!0,o(["delete","has","get","set"],function(t){var e=_.prototype,n=e[t];a(e,t,function(e,i){if(l(e)&&!v(e)){this._f||(this._f=new r);var o=this._f[t](e,i);return"set"==t?this:o}return n.call(this,e,i)})}))},ZGh9:function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?n:e)&&("number"==i||"symbol"!=i&&r.test(t))&&t>-1&&t%1==0&&t1?arguments[1]:void 0,m=void 0!==v,y=0,g=l(h);if(m&&(v=r(v,d>2?arguments[2]:void 0,2)),void 0==g||p==Array&&s(g))for(n=new p(e=c(h.length));e>y;y++)u(n,y,m?v(h[y],y):h[y]);else for(f=g.call(h),n=new p;!(i=f.next()).done;y++)u(n,y,m?a(f,v,[i.value,y],!0):i.value);return n.length=y,n}})},blYT:function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n("DuR2"))},boo2:function(t,e,n){var r=n("UKM+"),i=n("XO1R"),o=n("kkCw")("species");t.exports=function(t){var e;return i(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!i(e.prototype)||(e=void 0),r(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},bqOW:function(t,e,n){var r=n("Ds5P"),i=n("zo/l"),o=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],i(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?o(e):o(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},"c/Tr":function(t,e,n){t.exports={default:n("5zde"),__esModule:!0}},cGG2:function(t,e,n){"use strict";var r=n("JP+z"),i=n("Re3r"),o=Object.prototype.toString;function a(t){return"[object Array]"===o.call(t)}function s(t){return null!==t&&"object"==typeof t}function c(t){return"[object Function]"===o.call(t)}function u(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),a(t))for(var n=0,r=t.length;n-1?t.splice(n,1):void 0}}function o(t,e){if("IMG"===t.tagName&&t.getAttribute("data-srcset")){var n=t.getAttribute("data-srcset"),r=[],i=t.parentNode.offsetWidth*e,o=void 0,a=void 0,s=void 0;(n=n.trim().split(",")).map(function(t){t=t.trim(),-1===(o=t.lastIndexOf(" "))?(a=t,s=999998):(a=t.substr(0,o),s=parseInt(t.substr(o+1,t.length-o-2),10)),r.push([s,a])}),r.sort(function(t,e){if(t[0]e[0])return 1;if(t[0]===e[0]){if(-1!==e[1].indexOf(".webp",e[1].length-5))return 1;if(-1!==t[1].indexOf(".webp",t[1].length-5))return-1}return 0});for(var c="",u=void 0,l=r.length,f=0;f=i){c=u[1];break}return c}}function a(t,e){for(var n=void 0,r=0,i=t.length;r0&&void 0!==arguments[0]?arguments[0]:1;return m&&window.devicePixelRatio||t},w=function(){if(m){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}}(),x={on:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];w?t.addEventListener(e,n,{capture:r,passive:!0}):t.addEventListener(e,n,r)},off:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t.removeEventListener(e,n,r)}},S=function(t,e,n){var r=new Image;r.src=t.src,r.onload=function(){e({naturalHeight:r.naturalHeight,naturalWidth:r.naturalWidth,src:r.src})},r.onerror=function(t){n(t)}},k=function(t,e){return"undefined"!=typeof getComputedStyle?getComputedStyle(t,null).getPropertyValue(e):t.style[e]},C=function(t){return k(t,"overflow")+k(t,"overflow-y")+k(t,"overflow-x")},T={},E=function(){function t(e){var n=e.el,r=e.src,i=e.error,o=e.loading,a=e.bindType,s=e.$parent,c=e.options,l=e.elRenderer;u(this,t),this.el=n,this.src=r,this.error=i,this.loading=o,this.bindType=a,this.attempt=0,this.naturalHeight=0,this.naturalWidth=0,this.options=c,this.rect=null,this.$parent=s,this.elRenderer=l,this.performanceData={init:Date.now(),loadStart:0,loadEnd:0},this.filter(),this.initState(),this.render("loading",!1)}return l(t,[{key:"initState",value:function(){"dataset"in this.el?this.el.dataset.src=this.src:this.el.setAttribute("data-src",this.src),this.state={error:!1,loaded:!1,rendered:!1}}},{key:"record",value:function(t){this.performanceData[t]=Date.now()}},{key:"update",value:function(t){var e=t.src,n=t.loading,r=t.error,i=this.src;this.src=e,this.loading=n,this.error=r,this.filter(),i!==this.src&&(this.attempt=0,this.initState())}},{key:"getRect",value:function(){this.rect=this.el.getBoundingClientRect()}},{key:"checkInView",value:function(){return this.getRect(),this.rect.topthis.options.preLoadTop&&this.rect.left0}},{key:"filter",value:function(){var t=this;(function(t){if(!(t instanceof Object))return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e})(this.options.filter).map(function(e){t.options.filter[e](t,t.options)})}},{key:"renderLoading",value:function(t){var e=this;S({src:this.loading},function(n){e.render("loading",!1),t()},function(){t(),e.options.silent})}},{key:"load",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s;return this.attempt>this.options.attempt-1&&this.state.error?(this.options.silent,void e()):this.state.loaded||T[this.src]?(this.state.loaded=!0,e(),this.render("loaded",!0)):void this.renderLoading(function(){t.attempt++,t.record("loadStart"),S({src:t.src},function(n){t.naturalHeight=n.naturalHeight,t.naturalWidth=n.naturalWidth,t.state.loaded=!0,t.state.error=!1,t.record("loadEnd"),t.render("loaded",!1),T[t.src]=1,e()},function(e){t.options.silent,t.state.error=!0,t.state.loaded=!1,t.render("error",!1)})})}},{key:"render",value:function(t,e){this.elRenderer(this,t,e)}},{key:"performance",value:function(){var t="loading",e=0;return this.state.loaded&&(t="loaded",e=(this.performanceData.loadEnd-this.performanceData.loadStart)/1e3),this.state.error&&(t="error"),{src:this.src,state:t,time:e}}},{key:"destroy",value:function(){this.el=null,this.src=null,this.error=null,this.loading=null,this.bindType=null,this.attempt=0}}]),t}(),O="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",A=["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],P={rootMargin:"0px",threshold:0},M=function(t){return function(){function e(t){var n=t.preLoad,r=t.error,i=t.throttleWait,o=t.preLoadTop,a=t.dispatchEvent,s=t.loading,c=t.attempt,l=t.silent,f=void 0===l||l,h=t.scale,p=t.listenEvents,d=(t.hasbind,t.filter),v=t.adapter,y=t.observer,_=t.observerOptions;u(this,e),this.version="1.2.6",this.mode=g.event,this.ListenerQueue=[],this.TargetIndex=0,this.TargetQueue=[],this.options={silent:f,dispatchEvent:!!a,throttleWait:i||200,preLoad:n||1.3,preLoadTop:o||0,error:r||O,loading:s||O,attempt:c||3,scale:h||b(h),ListenEvents:p||A,hasbind:!1,supportWebp:function(){if(!m)return!1;var t=!0,e=document;try{var n=e.createElement("object");n.type="image/webp",n.style.visibility="hidden",n.innerHTML="!",e.body.appendChild(n),t=!n.offsetWidth,e.body.removeChild(n)}catch(e){t=!1}return t}(),filter:d||{},adapter:v||{},observer:!!y,observerOptions:_||P},this._initEvent(),this.lazyLoadHandler=function(t,e){var n=null,r=0;return function(){if(!n){var i=this,o=arguments,a=function(){r=Date.now(),n=!1,t.apply(i,o)};Date.now()-r>=e?a():n=setTimeout(a,e)}}}(this._lazyLoadHandler.bind(this),this.options.throttleWait),this.setMode(this.options.observer?g.observer:g.event)}return l(e,[{key:"config",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v(this.options,t)}},{key:"performance",value:function(){var t=[];return this.ListenerQueue.map(function(e){t.push(e.performance())}),t}},{key:"addLazyBox",value:function(t){this.ListenerQueue.push(t),m&&(this._addListenerTarget(window),this._observer&&this._observer.observe(t.el),t.$el&&t.$el.parentNode&&this._addListenerTarget(t.$el.parentNode))}},{key:"add",value:function(e,n,r){var i=this;if(function(t,e){for(var n=!1,r=0,i=t.length;r1&&void 0!==arguments[1]?arguments[1]:{},n=new(M(t))(e),r=new j({lazy:n}),i="2"===t.version.split(".")[0];t.prototype.$Lazyload=n,e.lazyComponent&&t.component("lazy-component",function(t){return{props:{tag:{type:String,default:"div"}},render:function(t){return!1===this.show?t(this.tag):t(this.tag,null,this.$slots.default)},data:function(){return{el:null,state:{loaded:!1},rect:{},show:!1}},mounted:function(){this.el=this.$el,t.addLazyBox(this),t.lazyLoadHandler()},beforeDestroy:function(){t.removeComponent(this)},methods:{getRect:function(){this.rect=this.$el.getBoundingClientRect()},checkInView:function(){return this.getRect(),m&&this.rect.top0&&this.rect.left0},load:function(){this.show=!0,this.state.loaded=!0,this.$emit("show",this)}}}}(n)),e.lazyImage&&t.component("lazy-image",function(t){return{props:{src:[String,Object],tag:{type:String,default:"img"}},render:function(t){return t(this.tag,{attrs:{src:this.renderSrc}},this.$slots.default)},data:function(){return{el:null,options:{src:"",error:"",loading:"",attempt:t.options.attempt},state:{loaded:!1,error:!1,attempt:0},rect:{},renderSrc:""}},watch:{src:function(){this.init(),t.addLazyBox(this),t.lazyLoadHandler()}},created:function(){this.init(),this.renderSrc=this.options.loading},mounted:function(){this.el=this.$el,t.addLazyBox(this),t.lazyLoadHandler()},beforeDestroy:function(){t.removeComponent(this)},methods:{init:function(){var e=t._valueFormatter(this.src),n=e.src,r=e.loading,i=e.error;this.state.loaded=!1,this.options.src=n,this.options.error=i,this.options.loading=r,this.renderSrc=this.options.loading},getRect:function(){this.rect=this.$el.getBoundingClientRect()},checkInView:function(){return this.getRect(),m&&this.rect.top0&&this.rect.left0},load:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s;if(this.state.attempt>this.options.attempt-1&&this.state.error)return t.options.silent,void n();var r=this.options.src;S({src:r},function(t){var n=t.src;e.renderSrc=n,e.state.loaded=!0},function(t){e.state.attempt++,e.renderSrc=e.options.error,e.state.error=!0})}}}}(n)),i?(t.directive("lazy",{bind:n.add.bind(n),update:n.update.bind(n),componentUpdated:n.lazyLoadHandler.bind(n),unbind:n.remove.bind(n)}),t.directive("lazy-container",{bind:r.bind.bind(r),update:r.update.bind(r),unbind:r.unbind.bind(r)})):(t.directive("lazy",{bind:n.lazyLoadHandler.bind(n),update:function(t,e){v(this.vm.$refs,this.vm.$els),n.add(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){n.remove(this.el)}}),t.directive("lazy-container",{update:function(t,e){r.update(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){r.unbind(this.el)}}))}}},t.exports=r()},cWxy:function(t,e,n){"use strict";var r=n("dVOP");function i(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(t){e=t});var n=this;t(function(t){n.reason||(n.reason=new r(t),e(n.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var t;return{token:new i(function(e){t=e}),cancel:t}},t.exports=i},cdq7:function(t,e){t.exports=function(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o0?arguments[0]:void 0)}},{add:function(t){return r.def(i(this,"Set"),t=0===t?0:t,t)}},r)},dSzd:function(t,e,n){var r=n("e8AB")("wks"),i=n("3Eo+"),o=n("7KvD").Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},dTzs:function(t,e,n){n("77Ug")("Float32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},dULJ:function(t,e,n){var r=n("Ds5P"),i=n("OgTs");r(r.S+r.F*(Number.parseInt!=i),"Number",{parseInt:i})},dVOP:function(t,e,n){"use strict";function r(t){this.message=t}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,t.exports=r},dY0y:function(t,e,n){var r=n("dSzd")("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},deUO:function(t,e,n){var r=n("imBK");t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},dich:function(t,e,n){var r=n("Ds5P"),i=n("Sejc");r(r.G+r.B,{setImmediate:i.set,clearImmediate:i.clear})},"dm+7":function(t,e,n){var r=n("Ds5P");r(r.S,"Reflect",{has:function(t,e){return e in t}})},dm6P:function(t,e,n){"use strict";t.exports=n("V3l/")||!n("zgIt")(function(){var t=Math.random();__defineSetter__.call(null,t,function(){}),delete n("OzIq")[t]})},dmQx:function(t,e){t.exports=function(t,e){return t.has(e)}},du7g:function(t,e,n){var r=n("TQ3y").isFinite;t.exports=function(t){return"number"==typeof t&&r(t)}},duB3:function(t,e,n){var r=n("WxI4"),i=n("dFpP"),o=n("JBvZ"),a=n("2Hvv"),s=n("deUO");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++ei;)X(t,n=r[i++],e[n]);return t},G=function(t){var e=R.call(this,t=w(t,!0));return!(this===z&&i(N,t)&&!i(B,t))&&(!(e||!i(this,t)||!i(N,t)||i(this,L)&&this[L][t])||e)},K=function(t,e){if(t=b(t),e=w(e,!0),t!==z||!i(N,e)||i(B,e)){var n=O(t,e);return!n||!i(N,e)||i(t,L)&&t[L][e]||(n.enumerable=!0),n}},Q=function(t){for(var e,n=P(b(t)),r=[],o=0;n.length>o;)i(N,e=n[o++])||e==L||e==c||r.push(e);return r},J=function(t){for(var e,n=t===z,r=P(n?B:b(t)),o=[],a=0;r.length>a;)!i(N,e=r[a++])||n&&!i(z,e)||o.push(N[e]);return o};U||(s((M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(B,n),i(this,L)&&i(this[L],t)&&(this[L][t]=!1),V(this,t,x(1,n))};return o&&$&&V(z,t,{configurable:!0,set:e}),W(t)}).prototype,"toString",function(){return this._k}),C.f=K,T.f=X,n("n0T6").f=k.f=Q,n("NpIQ").f=G,n("1kS7").f=J,o&&!n("O4g8")&&s(z,"propertyIsEnumerable",G,!0),d.f=function(t){return W(p(t))}),a(a.G+a.W+a.F*!U,{Symbol:M});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Z.length>tt;)p(Z[tt++]);for(var et=E(p.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!U,"Symbol",{for:function(t){return i(F,t+="")?F[t]:F[t]=M(t)},keyFor:function(t){if(!q(t))throw TypeError(t+" is not a symbol!");for(var e in F)if(F[e]===t)return e},useSetter:function(){$=!0},useSimple:function(){$=!1}}),a(a.S+a.F*!U,"Object",{create:function(t,e){return void 0===e?S(t):Y(S(t),e)},defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:K,getOwnPropertyNames:Q,getOwnPropertySymbols:J}),j&&a(a.S+a.F*(!U||u(function(){var t=M();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(_(e)||void 0!==t)&&!q(t))return y(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!q(e))return e}),r[1]=e,I.apply(j,r)}}),M.prototype[D]||n("hJx8")(M.prototype,D,M.prototype.valueOf),f(M,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},fZOM:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},fZjL:function(t,e,n){t.exports={default:n("jFbC"),__esModule:!0}},fkB2:function(t,e,n){var r=n("UuGF"),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},fuGk:function(t,e,n){"use strict";var r=n("cGG2");function i(){this.handlers=[]}i.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.forEach=function(t){r.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=i},fx22:function(t,e,n){for(var r=n("WgSQ"),i=n("Qh14"),o=n("R3AP"),a=n("OzIq"),s=n("2p1q"),c=n("bN1p"),u=n("kkCw"),l=u("iterator"),f=u("toStringTag"),h=c.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=i(p),v=0;vs||n!=n?u*(1/0):u*n}},g36u:function(t,e,n){var r=n("OzIq"),i=n("Sejc").set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,c="process"==n("ydD5")(a);t.exports=function(){var t,e,n,u=function(){var r,i;for(c&&(r=a.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(u)};else if(!o||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var l=s.resolve(void 0);n=function(){l.then(u)}}else n=function(){i.call(r,u)};else{var f=!0,h=document.createTextNode("");new o(u).observe(h,{characterData:!0}),n=function(){h.data=f=!f}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}},g8Ux:function(t,e,n){var r=n("77Pl"),i=n("3fs2");t.exports=n("FeBl").getIterator=function(t){var e=i(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return r(e.call(t))}},gAsd:function(t,e,n){n("G5/o");var r=n("FeBl").Object;t.exports=function(t){return r.getOwnPropertyNames(t)}},gGqR:function(t,e,n){var r=n("aCM0"),i=n("yCNF"),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=r(t);return e==a||e==s||e==o||e==c}},gHOb:function(t,e,n){var r=n("d4US"),i=n("POb3"),o=n("bO0Y"),a=n("5N57"),s=n("bIbi"),c=n("aCM0"),u=n("Ai/T"),l=u(r),f=u(i),h=u(o),p=u(a),d=u(s),v=c;(r&&"[object DataView]"!=v(new r(new ArrayBuffer(1)))||i&&"[object Map]"!=v(new i)||o&&"[object Promise]"!=v(o.resolve())||a&&"[object Set]"!=v(new a)||s&&"[object WeakMap]"!=v(new s))&&(v=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?u(n):"";if(r)switch(r){case l:return"[object DataView]";case f:return"[object Map]";case h:return"[object Promise]";case p:return"[object Set]";case d:return"[object WeakMap]"}return e}),t.exports=v},gPva:function(t,e,n){var r=n("UKM+");n("3i66")("isExtensible",function(t){return function(e){return!!r(e)&&(!t||t(e))}})},gRE1:function(t,e,n){t.exports={default:n("TmV0"),__esModule:!0}},gYYG:function(t,e,n){"use strict";var r=n("wC1N"),i={};i[n("kkCw")("toStringTag")]="z",i+""!="[object z]"&&n("R3AP")(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},gbyG:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("ot5s")(!0);r(r.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n("RhFG")("includes")},ggOT:function(t,e,n){(function(t){var r=n("TQ3y"),i=n("gwcX"),o="object"==typeof e&&e&&!e.nodeType&&e,a=o&&"object"==typeof t&&t&&!t.nodeType&&t,s=a&&a.exports===o?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,n("3IRH")(t))},gvDt:function(t,e,n){var r=n("UKM+"),i=n("DIVP"),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n("rFzY")(Function.call,n("x9zv").f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:o}},gwcX:function(t,e){t.exports=function(){return!1}},h65t:function(t,e,n){var r=n("UuGF"),i=n("52gC");t.exports=function(t){return function(e,n){var o,a,s=String(i(e)),c=r(n),u=s.length;return c<0||c>=u?t?"":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536}}},h7Xi:function(t,e,n){var r=n("Ds5P");r(r.P+r.R,"Map",{toJSON:n("XXBo")("Map")})},hJx8:function(t,e,n){var r=n("evD5"),i=n("X8DO");t.exports=n("+E39")?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},hrPF:function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n>>16,s=r>>>16,c=(a*o>>>0)+(i*o>>>16);return a*s+(c>>>16)+((i*s>>>0)+(65535&c)>>>16)}})},i4ON:function(t,e,n){var r=n("nw3t"),i=n("22B7"),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var a=t[e];o.call(t,e)&&i(a,n)&&(void 0!==n||e in t)||r(t,e,n)}},i68Q:function(t,e,n){var r=n("Ds5P");r(r.S,"Object",{create:n("7ylX")})},i6nN:function(t,e){t.exports=function(t,e,n){for(var r=n-1,i=t.length;++r=0,o=i&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,t.exports=n("SldL"),i)r.regeneratorRuntime=o;else try{delete r.regeneratorRuntime}catch(t){r.regeneratorRuntime=void 0}},kBOG:function(t,e,n){var r=n("Ds5P"),i=n("cwmK");r(r.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},kM2E:function(t,e,n){var r=n("7KvD"),i=n("FeBl"),o=n("+ZMJ"),a=n("hJx8"),s=n("D2L2"),c=function(t,e,n){var u,l,f,h=t&c.F,p=t&c.G,d=t&c.S,v=t&c.P,m=t&c.B,y=t&c.W,g=p?i:i[e]||(i[e]={}),_=g.prototype,b=p?r:d?r[e]:(r[e]||{}).prototype;for(u in p&&(n=e),n)(l=!h&&b&&void 0!==b[u])&&s(g,u)||(f=l?b[u]:n[u],g[u]=p&&"function"!=typeof b[u]?n[u]:m&&l?o(f,r):y&&b[u]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):v&&"function"==typeof f?o(Function.call,f):f,v&&((g.virtual||(g.virtual={}))[u]=f,t&c.R&&_&&!_[u]&&a(_,u,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},kiBT:function(t,e,n){t.exports={default:n("i/C/"),__esModule:!0}},kic5:function(t,e,n){var r=n("UKM+"),i=n("gvDt").set;t.exports=function(t,e,n){var o,a=e.constructor;return a!==n&&"function"==typeof a&&(o=a.prototype)!==n.prototype&&r(o)&&i&&i(t,o),t}},kkCw:function(t,e,n){var r=n("VWgF")("wks"),i=n("ulTY"),o=n("OzIq").Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},knuC:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},kqpo:function(t,e,n){var r=n("u0PK"),i=n("/whu");t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(t))}},ktak:function(t,e,n){var r=n("7e4z"),i=n("/GnY"),o=n("bGc4");t.exports=function(t){return o(t)?r(t):i(t)}},kvU2:function(t,e,n){var r=n("Fkvj"),i=1,o=4;t.exports=function(t){return r(t,i|o)}},kxzG:function(t,e,n){var r=n("yCNF"),i=n("6MiT"),o=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,u=/^0o[0-7]+$/i,l=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return o;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(a,"");var n=c.test(t);return n||u.test(t)?l(t.slice(2),n?2:8):s.test(t)?o:+t}},l9Lx:function(t,e,n){var r=n("lb6C"),i=n("C0hh"),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(t){return null==t?[]:(t=Object(t),r(a(t),function(e){return o.call(t,e)}))}:i;t.exports=s},lDLk:function(t,e,n){var r=n("DIVP"),i=n("xZa+"),o=n("s4j0"),a=Object.defineProperty;e.f=n("bUqO")?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},lKE8:function(t,e,n){var r=n("Qh14"),i=n("PHqh"),o=n("Y1aA").f;t.exports=function(t){return function(e){for(var n,a=i(e),s=r(a),c=s.length,u=0,l=[];c>u;)o.call(a,n=s[u++])&&l.push(t?[n,a[n]]:a[n]);return l}}},lOnJ:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},lb6C:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++ny;)v(m[y++]);f.constructor=u,u.prototype=f,n("R3AP")(r,"RegExp",u)}n("CEne")("RegExp")},lyhN:function(t,e,n){var r=n("Ds5P"),i=Math.atanh;r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},lz8G:function(t,e,n){ +/*! For license information please see vip-params-encrypt.min.js.LICENSE.txt */ +var r;self,r=function(){return function(){var t={579:function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(354),o={data:{secret:{"9cf2380318f54f31acfb1d6e274f5555":"U2FsdGVkX1/99rlgOzI8aWvdLPObVFIKRTSRwfWddLe6pBtQViqQTQugsEVD/6LcyczNKjTHQzxhPOxmMEvqMA=="},aes:{secret:"qyrohlf5sjazleru"}},encrypt:function(t,e,n){var o=this;if(t&&e){if("object"===(void 0===e?"undefined":r(e))){var a=[];for(var s in e)void 0!==e[s]&&null!==e[s]||(e[s]=""),a.push(s+"="+e[s]);e=a.join("&")}var c=i.lib.WordArray.random(16),u=o.data.secret[t]?o.data.secret[t]:"";u=o.aesDecrypt(u,o.data.aes.secret);var l=i.MD5(u),f=i.AES.encrypt(e,l,{iv:c,mode:i.mode.CBC,padding:i.pad.Pkcs7}),h=i.lib.WordArray.create(c.words.slice(0));return h.concat(f.ciphertext),h.toString(i.enc.Base64)}},aesEncrypt:function(t,e){return i.AES.encrypt(t,e).toString()},aesDecrypt:function(t,e){return i.AES.decrypt(t,e).toString(i.enc.Utf8)}};t.exports=o},452:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib.BlockCipher,n=t.algo,i=[],o=[],a=[],s=[],c=[],u=[],l=[],f=[],h=[],p=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var n=0,r=0;for(e=0;e<256;e++){var d=r^r<<1^r<<2^r<<3^r<<4;d=d>>>8^255&d^99,i[n]=d,o[d]=n;var v=t[n],m=t[v],y=t[m],g=257*t[d]^16843008*d;a[n]=g<<24|g>>>8,s[n]=g<<16|g>>>16,c[n]=g<<8|g>>>24,u[n]=g,g=16843009*y^65537*m^257*v^16843008*n,l[d]=g<<24|g>>>8,f[d]=g<<16|g>>>16,h[d]=g<<8|g>>>24,p[d]=g,n?(n=v^t[t[t[y^v]]],r^=t[t[r]]):n=r=1}}();var d=[0,1,2,4,8,16,32,64,128,27,54],v=n.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,n=t.sigBytes/4,r=4*((this._nRounds=n+6)+1),o=this._keySchedule=[],a=0;a6&&a%n==4&&(u=i[u>>>24]<<24|i[u>>>16&255]<<16|i[u>>>8&255]<<8|i[255&u]):(u=i[(u=u<<8|u>>>24)>>>24]<<24|i[u>>>16&255]<<16|i[u>>>8&255]<<8|i[255&u],u^=d[a/n|0]<<24),o[a]=o[a-n]^u);for(var s=this._invKeySchedule=[],c=0;c>>24]]^f[i[u>>>16&255]]^h[i[u>>>8&255]]^p[i[255&u]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,a,s,c,u,i)},decryptBlock:function(t,e){var n=t[e+1];t[e+1]=t[e+3],t[e+3]=n,this._doCryptBlock(t,e,this._invKeySchedule,l,f,h,p,o),n=t[e+1],t[e+1]=t[e+3],t[e+3]=n},_doCryptBlock:function(t,e,n,r,i,o,a,s){for(var c=this._nRounds,u=t[e]^n[0],l=t[e+1]^n[1],f=t[e+2]^n[2],h=t[e+3]^n[3],p=4,d=1;d>>24]^i[l>>>16&255]^o[f>>>8&255]^a[255&h]^n[p++],m=r[l>>>24]^i[f>>>16&255]^o[h>>>8&255]^a[255&u]^n[p++],y=r[f>>>24]^i[h>>>16&255]^o[u>>>8&255]^a[255&l]^n[p++],g=r[h>>>24]^i[u>>>16&255]^o[l>>>8&255]^a[255&f]^n[p++];u=v,l=m,f=y,h=g}v=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&h])^n[p++],m=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[h>>>8&255]<<8|s[255&u])^n[p++],y=(s[f>>>24]<<24|s[h>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^n[p++],g=(s[h>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^n[p++],t[e]=v,t[e+1]=m,t[e+2]=y,t[e+3]=g},keySize:8});t.AES=e._createHelper(v)}(),r.AES)},109:function(t,e,n){var r;t.exports=(r=n(249),n(888),void(r.lib.Cipher||function(t){var e=r,n=e.lib,i=n.Base,o=n.WordArray,a=n.BufferedBlockAlgorithm,s=e.enc,c=(s.Utf8,s.Base64),u=e.algo.EvpKDF,l=n.Cipher=a.extend({cfg:i.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,n){this.cfg=this.cfg.extend(n),this._xformMode=t,this._key=e,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?_:y}return function(e){return{encrypt:function(n,r,i){return t(r).encrypt(e,n,r,i)},decrypt:function(n,r,i){return t(r).decrypt(e,n,r,i)}}}}()}),f=(n.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),h=n.BlockCipherMode=i.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),p=f.CBC=function(){var e=h.extend();function n(e,n,r){var i,o=this._iv;o?(i=o,this._iv=t):i=this._prevBlock;for(var a=0;a>>2];t.sigBytes-=e}},v=(n.BlockCipher=l.extend({cfg:l.cfg.extend({mode:p,padding:d}),reset:function(){var t;l.reset.call(this);var e=this.cfg,n=e.iv,r=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=r.createEncryptor:(t=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,n&&n.words):(this._mode=t.call(r,this,n&&n.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),n.CipherParams=i.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),m=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,n=t.salt;return(n?o.create([1398893684,1701076831]).concat(n).concat(e):e).toString(c)},parse:function(t){var e,n=c.parse(t),r=n.words;return 1398893684==r[0]&&1701076831==r[1]&&(e=o.create(r.slice(2,4)),r.splice(0,4),n.sigBytes-=16),v.create({ciphertext:n,salt:e})}},y=n.SerializableCipher=i.extend({cfg:i.extend({format:m}),encrypt:function(t,e,n,r){r=this.cfg.extend(r);var i=t.createEncryptor(n,r),o=i.finalize(e),a=i.cfg;return v.create({ciphertext:o,key:n,iv:a.iv,algorithm:t,mode:a.mode,padding:a.padding,blockSize:t.blockSize,formatter:r.format})},decrypt:function(t,e,n,r){return r=this.cfg.extend(r),e=this._parse(e,r.format),t.createDecryptor(n,r).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),g=(e.kdf={}).OpenSSL={execute:function(t,e,n,r){r||(r=o.random(8));var i=u.create({keySize:e+n}).compute(t,r),a=o.create(i.words.slice(e),4*n);return i.sigBytes=4*e,v.create({key:i,iv:a,salt:r})}},_=n.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:g}),encrypt:function(t,e,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,t.keySize,t.ivSize);r.iv=i.iv;var o=y.encrypt.call(this,t,e,i.key,r);return o.mixIn(i),o},decrypt:function(t,e,n,r){r=this.cfg.extend(r),e=this._parse(e,r.format);var i=r.kdf.execute(n,t.keySize,t.ivSize,e.salt);return r.iv=i.iv,y.decrypt.call(this,t,e,i.key,r)}})}()))},249:function(t,e,n){var r;t.exports=r=r||function(t,e){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==n.g&&n.g.crypto&&(r=n.g.crypto),!r)try{r=n(480)}catch(t){}var i=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function t(){}return function(e){var n;return t.prototype=e,n=new t,t.prototype=null,n}}(),a={},s=a.lib={},c=s.Base={extend:function(t){var e=o(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},u=s.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=void 0!=e?e:4*t.length},toString:function(t){return(t||f).stringify(this)},concat:function(t){var e=this.words,n=t.words,r=this.sigBytes,i=t.sigBytes;if(this.clamp(),r%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[r+o>>>2]|=a<<24-(r+o)%4*8}else for(o=0;o>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=t.ceil(n/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],n=0;n>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r>>3]|=parseInt(t.substr(r,2),16)<<24-r%8*4;return new u.init(n,e/2)}},h=l.Latin1={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r>>2]|=(255&t.charCodeAt(r))<<24-r%4*8;return new u.init(n,e)}},p=l.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},d=s.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=p.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var n,r=this._data,i=r.words,o=r.sigBytes,a=this.blockSize,s=o/(4*a),c=(s=e?t.ceil(s):t.max((0|s)-this._minBufferSize,0))*a,l=t.min(4*c,o);if(c){for(var f=0;f>>6-a%4*2;i[o>>>2]|=s<<24-o%4*8,o++}return e.create(i,o)}t.enc.Base64={stringify:function(t){var e=t.words,n=t.sigBytes,r=this._map;t.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s>>6*(3-s)&63));var c=r.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(t){var e=t.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var n=t.length,r=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return e.create(r,2*n)}},n.Utf16LE={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],o=0;o>>2]>>>16-o%4*8&65535);r.push(String.fromCharCode(a))}return r.join("")},parse:function(t){for(var n=t.length,r=[],o=0;o>>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(r,2*n)}}}(),r.enc.Utf16)},888:function(t,e,n){var r,i,o,a,s,c,u,l;t.exports=(l=n(249),n(783),n(824),o=(i=(r=l).lib).Base,a=i.WordArray,c=(s=r.algo).MD5,u=s.EvpKDF=o.extend({cfg:o.extend({keySize:4,hasher:c,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var n,r=this.cfg,i=r.hasher.create(),o=a.create(),s=o.words,c=r.keySize,u=r.iterations;s.lengthr&&(e=t.finalize(e)),e.clamp();for(var i=this._oKey=e.clone(),a=this._iKey=e.clone(),s=i.words,c=a.words,u=0;u>>2]|=t[i]<<24-i%4*8;e.call(this,r,n)}else e.apply(this,arguments)}).prototype=t}}(),r.lib.WordArray)},214:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var r=e+n,i=t[r];t[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=t[e+0],c=t[e+1],p=t[e+2],d=t[e+3],v=t[e+4],m=t[e+5],y=t[e+6],g=t[e+7],_=t[e+8],b=t[e+9],w=t[e+10],x=t[e+11],S=t[e+12],k=t[e+13],C=t[e+14],T=t[e+15],E=o[0],O=o[1],A=o[2],P=o[3];E=h(E=f(E=f(E=f(E=f(E=l(E=l(E=l(E=l(E=u(E=u(E=u(E=u(E,O,A,P,a,7,s[0]),O=u(O,A=u(A,P=u(P,E,O,A,c,12,s[1]),E,O,p,17,s[2]),P,E,d,22,s[3]),A,P,v,7,s[4]),O=u(O,A=u(A,P=u(P,E,O,A,m,12,s[5]),E,O,y,17,s[6]),P,E,g,22,s[7]),A,P,_,7,s[8]),O=u(O,A=u(A,P=u(P,E,O,A,b,12,s[9]),E,O,w,17,s[10]),P,E,x,22,s[11]),A,P,S,7,s[12]),O=u(O,A=u(A,P=u(P,E,O,A,k,12,s[13]),E,O,C,17,s[14]),P,E,T,22,s[15]),A,P,c,5,s[16]),O=l(O,A=l(A,P=l(P,E,O,A,y,9,s[17]),E,O,x,14,s[18]),P,E,a,20,s[19]),A,P,m,5,s[20]),O=l(O,A=l(A,P=l(P,E,O,A,w,9,s[21]),E,O,T,14,s[22]),P,E,v,20,s[23]),A,P,b,5,s[24]),O=l(O,A=l(A,P=l(P,E,O,A,C,9,s[25]),E,O,d,14,s[26]),P,E,_,20,s[27]),A,P,k,5,s[28]),O=l(O,A=l(A,P=l(P,E,O,A,p,9,s[29]),E,O,g,14,s[30]),P,E,S,20,s[31]),A,P,m,4,s[32]),O=f(O,A=f(A,P=f(P,E,O,A,_,11,s[33]),E,O,x,16,s[34]),P,E,C,23,s[35]),A,P,c,4,s[36]),O=f(O,A=f(A,P=f(P,E,O,A,v,11,s[37]),E,O,g,16,s[38]),P,E,w,23,s[39]),A,P,k,4,s[40]),O=f(O,A=f(A,P=f(P,E,O,A,a,11,s[41]),E,O,d,16,s[42]),P,E,y,23,s[43]),A,P,b,4,s[44]),O=f(O,A=f(A,P=f(P,E,O,A,S,11,s[45]),E,O,T,16,s[46]),P,E,p,23,s[47]),A,P,a,6,s[48]),O=h(O=h(O=h(O=h(O,A=h(A,P=h(P,E,O,A,g,10,s[49]),E,O,C,15,s[50]),P,E,m,21,s[51]),A=h(A,P=h(P,E=h(E,O,A,P,S,6,s[52]),O,A,d,10,s[53]),E,O,w,15,s[54]),P,E,c,21,s[55]),A=h(A,P=h(P,E=h(E,O,A,P,_,6,s[56]),O,A,T,10,s[57]),E,O,y,15,s[58]),P,E,k,21,s[59]),A=h(A,P=h(P,E=h(E,O,A,P,v,6,s[60]),O,A,x,10,s[61]),E,O,p,15,s[62]),P,E,b,21,s[63]),o[0]=o[0]+E|0,o[1]=o[1]+O|0,o[2]=o[2]+A|0,o[3]=o[3]+P|0},_doFinalize:function(){var e=this._data,n=e.words,r=8*this._nDataBytes,i=8*e.sigBytes;n[i>>>5]|=128<<24-i%32;var o=t.floor(r/4294967296),a=r;n[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),e.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,c=s.words,u=0;u<4;u++){var l=c[u];c[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return s},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function u(t,e,n,r,i,o,a){var s=t+(e&n|~e&r)+i+a;return(s<>>32-o)+e}function l(t,e,n,r,i,o,a){var s=t+(e&r|n&~r)+i+a;return(s<>>32-o)+e}function f(t,e,n,r,i,o,a){var s=t+(e^n^r)+i+a;return(s<>>32-o)+e}function h(t,e,n,r,i,o,a){var s=t+(n^(e|~r))+i+a;return(s<>>32-o)+e}e.MD5=o._createHelper(c),e.HmacMD5=o._createHmacHelper(c)}(Math),r.MD5)},568:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.mode.CFB=function(){var t=r.lib.BlockCipherMode.extend();function e(t,e,n,r){var i,o=this._iv;o?(i=o.slice(0),this._iv=void 0):i=this._prevBlock,r.encryptBlock(i,0);for(var a=0;a>24&255)){var e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}function n(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t}var i=t.Encryptor=t.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,o=this._iv,a=this._counter;o&&(a=this._counter=o.slice(0),this._iv=void 0),n(a);var s=a.slice(0);r.encryptBlock(s,0);for(var c=0;c>>2]|=i<<24-o%4*8,t.sigBytes+=i},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Ansix923)},807:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.Iso10126={pad:function(t,e){var n=4*e,i=n-t.sigBytes%n;t.concat(r.lib.WordArray.random(i-1)).concat(r.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},r.pad.Iso10126)},77:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.Iso97971={pad:function(t,e){t.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(t,e)},unpad:function(t){r.pad.ZeroPadding.unpad(t),t.sigBytes--}},r.pad.Iso97971)},991:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding)},475:function(t,e,n){var r;t.exports=(r=n(249),n(109),r.pad.ZeroPadding={pad:function(t,e){var n=4*e;t.clamp(),t.sigBytes+=n-(t.sigBytes%n||n)},unpad:function(t){var e=t.words,n=t.sigBytes-1;for(n=t.sigBytes-1;n>=0;n--)if(e[n>>>2]>>>24-n%4*8&255){t.sigBytes=n+1;break}}},r.pad.ZeroPadding)},112:function(t,e,n){var r,i,o,a,s,c,u,l,f;t.exports=(f=n(249),n(783),n(824),o=(i=(r=f).lib).Base,a=i.WordArray,c=(s=r.algo).SHA1,u=s.HMAC,l=s.PBKDF2=o.extend({cfg:o.extend({keySize:4,hasher:c,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var n=this.cfg,r=u.create(n.hasher,t),i=a.create(),o=a.create([1]),s=i.words,c=o.words,l=n.keySize,f=n.iterations;s.length>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],r=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)s.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(e){var o=e.words,a=o[0],c=o[1],u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=u>>>16|4294901760&l,h=l<<16|65535&u;for(r[0]^=u,r[1]^=f,r[2]^=l,r[3]^=h,r[4]^=u,r[5]^=f,r[6]^=l,r[7]^=h,i=0;i<4;i++)s.call(this)}},_doProcessBlock:function(t,e){var r=this._X;s.call(this),n[0]=r[0]^r[5]>>>16^r[3]<<16,n[1]=r[2]^r[7]>>>16^r[5]<<16,n[2]=r[4]^r[1]>>>16^r[7]<<16,n[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)n[i]=16711935&(n[i]<<8|n[i]>>>24)|4278255360&(n[i]<<24|n[i]>>>8),t[e+i]^=n[i]},blockSize:4,ivSize:2});function s(){for(var t=this._X,e=this._C,n=0;n<8;n++)i[n]=e[n];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,n=0;n<8;n++){var r=t[n]+e[n],a=65535&r,s=r>>>16,c=((a*a>>>17)+a*s>>>15)+s*s,u=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=c^u}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.RabbitLegacy=e._createHelper(a)}(),r.RabbitLegacy)},454:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib.StreamCipher,n=[],i=[],o=[],a=t.algo.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,n=0;n<4;n++)t[n]=16711935&(t[n]<<8|t[n]>>>24)|4278255360&(t[n]<<24|t[n]>>>8);var r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,n=0;n<4;n++)s.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,a=o[0],c=o[1],u=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=u>>>16|4294901760&l,h=l<<16|65535&u;for(i[0]^=u,i[1]^=f,i[2]^=l,i[3]^=h,i[4]^=u,i[5]^=f,i[6]^=l,i[7]^=h,n=0;n<4;n++)s.call(this)}},_doProcessBlock:function(t,e){var r=this._X;s.call(this),n[0]=r[0]^r[5]>>>16^r[3]<<16,n[1]=r[2]^r[7]>>>16^r[5]<<16,n[2]=r[4]^r[1]>>>16^r[7]<<16,n[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)n[i]=16711935&(n[i]<<8|n[i]>>>24)|4278255360&(n[i]<<24|n[i]>>>8),t[e+i]^=n[i]},blockSize:4,ivSize:2});function s(){for(var t=this._X,e=this._C,n=0;n<8;n++)i[n]=e[n];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,n=0;n<8;n++){var r=t[n]+e[n],a=65535&r,s=r>>>16,c=((a*a>>>17)+a*s>>>15)+s*s,u=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=c^u}t[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,t[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,t[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,t[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,t[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,t[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,t[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,t[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}t.Rabbit=e._createHelper(a)}(),r.Rabbit)},857:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib.StreamCipher,n=t.algo,i=n.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,n=t.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;i=0;for(var o=0;i<256;i++){var a=i%n,s=e[a>>>2]>>>24-a%4*8&255;o=(o+r[i]+s)%256;var c=r[i];r[i]=r[o],r[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var t=this._S,e=this._i,n=this._j,r=0,i=0;i<4;i++){n=(n+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[n],t[n]=o,r|=t[(t[e]+t[n])%256]<<24-8*i}return this._i=e,this._j=n,r}t.RC4=e._createHelper(i);var a=n.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)o.call(this)}});t.RC4Drop=e._createHelper(a)}(),r.RC4)},706:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=i.create([0,1518500249,1859775393,2400959708,2840853838]),h=i.create([1352829926,1548603684,1836072691,2053994217,0]),p=a.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var n=0;n<16;n++){var r=e+n,i=t[r];t[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,a,p,b,w,x,S,k,C,T,E,O=this._hash.words,A=f.words,P=h.words,M=s.words,j=c.words,I=u.words,L=l.words;for(x=o=O[0],S=a=O[1],k=p=O[2],C=b=O[3],T=w=O[4],n=0;n<80;n+=1)E=o+t[e+M[n]]|0,E+=n<16?d(a,p,b)+A[0]:n<32?v(a,p,b)+A[1]:n<48?m(a,p,b)+A[2]:n<64?y(a,p,b)+A[3]:g(a,p,b)+A[4],E=(E=_(E|=0,I[n]))+w|0,o=w,w=b,b=_(p,10),p=a,a=E,E=x+t[e+j[n]]|0,E+=n<16?g(S,k,C)+P[0]:n<32?y(S,k,C)+P[1]:n<48?m(S,k,C)+P[2]:n<64?v(S,k,C)+P[3]:d(S,k,C)+P[4],E=(E=_(E|=0,L[n]))+T|0,x=T,T=C,C=_(k,10),k=S,S=E;E=O[1]+p+C|0,O[1]=O[2]+b+T|0,O[2]=O[3]+w+x|0,O[3]=O[4]+o+S|0,O[4]=O[0]+a+k|0,O[0]=E},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),t.sigBytes=4*(e.length+1),this._process();for(var i=this._hash,o=i.words,a=0;a<5;a++){var s=o[a];o[a]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function d(t,e,n){return t^e^n}function v(t,e,n){return t&e|~t&n}function m(t,e,n){return(t|~e)^n}function y(t,e,n){return t&n|e&~n}function g(t,e,n){return t^(e|~n)}function _(t,e){return t<>>32-e}e.RIPEMD160=o._createHelper(p),e.HmacRIPEMD160=o._createHmacHelper(p)}(Math),r.RIPEMD160)},783:function(t,e,n){var r,i,o,a,s,c,u,l;t.exports=(i=(r=l=n(249)).lib,o=i.WordArray,a=i.Hasher,s=r.algo,c=[],u=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],u=0;u<80;u++){if(u<16)c[u]=0|t[e+u];else{var l=c[u-3]^c[u-8]^c[u-14]^c[u-16];c[u]=l<<1|l>>>31}var f=(r<<5|r>>>27)+s+c[u];f+=u<20?1518500249+(i&o|~i&a):u<40?1859775393+(i^o^a):u<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=r,r=f}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;return e[r>>>5]|=128<<24-r%32,e[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),e[15+(r+64>>>9<<4)]=n,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=a.clone.call(this);return t._hash=this._hash.clone(),t}}),r.SHA1=a._createHelper(u),r.HmacSHA1=a._createHmacHelper(u),l.SHA1)},792:function(t,e,n){var r,i,o,a,s,c;t.exports=(c=n(249),n(153),i=(r=c).lib.WordArray,o=r.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=a._doFinalize.call(this);return t.sigBytes-=4,t}}),r.SHA224=a._createHelper(s),r.HmacSHA224=a._createHmacHelper(s),c.SHA224)},153:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.algo,s=[],c=[];!function(){function e(e){for(var n=t.sqrt(e),r=2;r<=n;r++)if(!(e%r))return!1;return!0}function n(t){return 4294967296*(t-(0|t))|0}for(var r=2,i=0;i<64;)e(r)&&(i<8&&(s[i]=n(t.pow(r,.5))),c[i]=n(t.pow(r,1/3)),i++),r++}();var u=[],l=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(t,e){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],f=n[6],h=n[7],p=0;p<64;p++){if(p<16)u[p]=0|t[e+p];else{var d=u[p-15],v=(d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3,m=u[p-2],y=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;u[p]=v+u[p-7]+y+u[p-16]}var g=r&i^r&o^i&o,_=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),b=h+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&l^~s&f)+c[p]+u[p];h=f,f=l,l=s,s=a+b|0,a=o,o=i,i=r,r=b+(_+g)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0,n[5]=n[5]+l|0,n[6]=n[6]+f|0,n[7]=n[7]+h|0},_doFinalize:function(){var e=this._data,n=e.words,r=8*this._nDataBytes,i=8*e.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=t.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,e.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),r.SHA256)},327:function(t,e,n){var r;t.exports=(r=n(249),n(938),function(t){var e=r,n=e.lib,i=n.WordArray,o=n.Hasher,a=e.x64.Word,s=e.algo,c=[],u=[],l=[];!function(){for(var t=1,e=0,n=0;n<24;n++){c[t+5*e]=(n+1)*(n+2)/2%64;var r=(2*t+3*e)%5;t=e%5,e=r}for(t=0;t<5;t++)for(e=0;e<5;e++)u[t+5*e]=e+(2*t+3*e)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,f=0,h=0;h<7;h++){if(1&i){var p=(1<>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(O=n[i]).high^=a,O.low^=o}for(var s=0;s<24;s++){for(var h=0;h<5;h++){for(var p=0,d=0,v=0;v<5;v++)p^=(O=n[h+5*v]).high,d^=O.low;var m=f[h];m.high=p,m.low=d}for(h=0;h<5;h++){var y=f[(h+4)%5],g=f[(h+1)%5],_=g.high,b=g.low;for(p=y.high^(_<<1|b>>>31),d=y.low^(b<<1|_>>>31),v=0;v<5;v++)(O=n[h+5*v]).high^=p,O.low^=d}for(var w=1;w<25;w++){var x=(O=n[w]).high,S=O.low,k=c[w];k<32?(p=x<>>32-k,d=S<>>32-k):(p=S<>>64-k,d=x<>>64-k);var C=f[u[w]];C.high=p,C.low=d}var T=f[0],E=n[0];for(T.high=E.high,T.low=E.low,h=0;h<5;h++)for(v=0;v<5;v++){var O=n[w=h+5*v],A=f[w],P=f[(h+1)%5+5*v],M=f[(h+2)%5+5*v];O.high=A.high^~P.high&M.high,O.low=A.low^~P.low&M.low}O=n[0];var j=l[s];O.high^=j.high,O.low^=j.low}},_doFinalize:function(){var e=this._data,n=e.words,r=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;n[r>>>5]|=1<<24-r%32,n[(t.ceil((r+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*n.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,c=s/8,u=[],l=0;l>>24)|4278255360&(h<<24|h>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),u.push(p),u.push(h)}return new i.init(u,s)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),n=0;n<25;n++)e[n]=e[n].clone();return t}});e.SHA3=o._createHelper(h),e.HmacSHA3=o._createHmacHelper(h)}(Math),r.SHA3)},460:function(t,e,n){var r,i,o,a,s,c,u,l;t.exports=(l=n(249),n(938),n(34),i=(r=l).x64,o=i.Word,a=i.WordArray,s=r.algo,c=s.SHA512,u=s.SHA384=c.extend({_doReset:function(){this._hash=new a.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=c._doFinalize.call(this);return t.sigBytes-=16,t}}),r.SHA384=c._createHelper(u),r.HmacSHA384=c._createHmacHelper(u),l.SHA384)},34:function(t,e,n){var r;t.exports=(r=n(249),n(938),function(){var t=r,e=t.lib.Hasher,n=t.x64,i=n.Word,o=n.WordArray,a=t.algo;function s(){return i.create.apply(i,arguments)}var c=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],u=[];!function(){for(var t=0;t<80;t++)u[t]=s()}();var l=a.SHA512=e.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],f=n[6],h=n[7],p=r.high,d=r.low,v=i.high,m=i.low,y=o.high,g=o.low,_=a.high,b=a.low,w=s.high,x=s.low,S=l.high,k=l.low,C=f.high,T=f.low,E=h.high,O=h.low,A=p,P=d,M=v,j=m,I=y,L=g,D=_,R=b,F=w,N=x,B=S,z=k,U=C,H=T,$=E,V=O,W=0;W<80;W++){var q,X,Y=u[W];if(W<16)X=Y.high=0|t[e+2*W],q=Y.low=0|t[e+2*W+1];else{var G=u[W-15],K=G.high,Q=G.low,J=(K>>>1|Q<<31)^(K>>>8|Q<<24)^K>>>7,Z=(Q>>>1|K<<31)^(Q>>>8|K<<24)^(Q>>>7|K<<25),tt=u[W-2],et=tt.high,nt=tt.low,rt=(et>>>19|nt<<13)^(et<<3|nt>>>29)^et>>>6,it=(nt>>>19|et<<13)^(nt<<3|et>>>29)^(nt>>>6|et<<26),ot=u[W-7],at=ot.high,st=ot.low,ct=u[W-16],ut=ct.high,lt=ct.low;X=(X=(X=J+at+((q=Z+st)>>>0>>0?1:0))+rt+((q+=it)>>>0>>0?1:0))+ut+((q+=lt)>>>0>>0?1:0),Y.high=X,Y.low=q}var ft,ht=F&B^~F&U,pt=N&z^~N&H,dt=A&M^A&I^M&I,vt=P&j^P&L^j&L,mt=(A>>>28|P<<4)^(A<<30|P>>>2)^(A<<25|P>>>7),yt=(P>>>28|A<<4)^(P<<30|A>>>2)^(P<<25|A>>>7),gt=(F>>>14|N<<18)^(F>>>18|N<<14)^(F<<23|N>>>9),_t=(N>>>14|F<<18)^(N>>>18|F<<14)^(N<<23|F>>>9),bt=c[W],wt=bt.high,xt=bt.low,St=$+gt+((ft=V+_t)>>>0>>0?1:0),kt=yt+vt;$=U,V=H,U=B,H=z,B=F,z=N,F=D+(St=(St=(St=St+ht+((ft+=pt)>>>0>>0?1:0))+wt+((ft+=xt)>>>0>>0?1:0))+X+((ft+=q)>>>0>>0?1:0))+((N=R+ft|0)>>>0>>0?1:0)|0,D=I,R=L,I=M,L=j,M=A,j=P,A=St+(mt+dt+(kt>>>0>>0?1:0))+((P=ft+kt|0)>>>0>>0?1:0)|0}d=r.low=d+P,r.high=p+A+(d>>>0

    >>0?1:0),m=i.low=m+j,i.high=v+M+(m>>>0>>0?1:0),g=o.low=g+L,o.high=y+I+(g>>>0>>0?1:0),b=a.low=b+R,a.high=_+D+(b>>>0>>0?1:0),x=s.low=x+N,s.high=w+F+(x>>>0>>0?1:0),k=l.low=k+z,l.high=S+B+(k>>>0>>0?1:0),T=f.low=T+H,f.high=C+U+(T>>>0>>0?1:0),O=h.low=O+V,h.high=E+$+(O>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,n=8*this._nDataBytes,r=8*t.sigBytes;return e[r>>>5]|=128<<24-r%32,e[30+(r+128>>>10<<5)]=Math.floor(n/4294967296),e[31+(r+128>>>10<<5)]=n,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(l),t.HmacSHA512=e._createHmacHelper(l)}(),r.SHA512)},253:function(t,e,n){var r;t.exports=(r=n(249),n(269),n(214),n(888),n(109),function(){var t=r,e=t.lib,n=e.WordArray,i=e.BlockCipher,o=t.algo,a=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=o.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],n=0;n<56;n++){var r=a[n]-1;e[n]=t[r>>>5]>>>31-r%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var u=i[o]=[],l=c[o];for(n=0;n<24;n++)u[n/6|0]|=e[(s[n]-1+l)%28]<<31-n%6,u[4+(n/6|0)]|=e[28+(s[n+24]-1+l)%28]<<31-n%6;for(u[0]=u[0]<<1|u[0]>>>31,n=1;n<7;n++)u[n]=u[n]>>>4*(n-1)+3;u[7]=u[7]<<5|u[7]>>>27}var f=this._invSubKeys=[];for(n=0;n<16;n++)f[n]=i[15-n]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,n){this._lBlock=t[e],this._rBlock=t[e+1],h.call(this,4,252645135),h.call(this,16,65535),p.call(this,2,858993459),p.call(this,8,16711935),h.call(this,1,1431655765);for(var r=0;r<16;r++){for(var i=n[r],o=this._lBlock,a=this._rBlock,s=0,c=0;c<8;c++)s|=u[c][((a^i[c])&l[c])>>>0];this._lBlock=a,this._rBlock=o^s}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,h.call(this,1,1431655765),p.call(this,8,16711935),p.call(this,2,858993459),h.call(this,16,65535),h.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function h(t,e){var n=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=n,this._lBlock^=n<>>t^this._lBlock)&e;this._lBlock^=n,this._rBlock^=n<192.");var e=t.slice(0,2),r=t.length<4?t.slice(0,2):t.slice(2,4),i=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=f.createEncryptor(n.create(e)),this._des2=f.createEncryptor(n.create(r)),this._des3=f.createEncryptor(n.create(i))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(d)}(),r.TripleDES)},938:function(t,e,n){var r;t.exports=(r=n(249),function(t){var e=r,n=e.lib,i=n.Base,o=n.WordArray,a=e.x64={};a.Word=i.extend({init:function(t,e){this.high=t,this.low=e}}),a.WordArray=i.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=void 0!=e?e:8*t.length},toX32:function(){for(var t=this.words,e=t.length,n=[],r=0;r1?arguments[1]:void 0,!1)}})},mClu:function(t,e,n){var r=n("kM2E");r(r.S+r.F*!n("+E39"),"Object",{defineProperty:n("evD5").f})},mJx5:function(t,e,n){"use strict";var r=n("u0PK"),i=n("DIVP"),o=n("7O1s"),a=n("TwzQ"),s=n("BbyF"),c=n("9Dx1"),u=n("32VL"),l=n("zgIt"),f=Math.min,h=[].push,p=!l(function(){RegExp(4294967295,"y")});n("Vg1y")("split",2,function(t,e,n,l){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var i=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(i,t,e);for(var o,a,s,c=[],l=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),f=0,p=void 0===e?4294967295:e>>>0,d=new RegExp(t.source,l+"g");(o=u.call(d,i))&&!((a=d.lastIndex)>f&&(c.push(i.slice(f,o.index)),o.length>1&&o.index=p));)d.lastIndex===o.index&&d.lastIndex++;return f===i.length?!s&&d.test("")||c.push(""):c.push(i.slice(f)),c.length>p?c.slice(0,p):c}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var i=t(this),o=void 0==n?void 0:n[e];return void 0!==o?o.call(n,i,r):d.call(String(i),n,r)},function(t,e){var r=l(d,t,this,e,d!==n);if(r.done)return r.value;var u=i(t),h=String(this),v=o(u,RegExp),m=u.unicode,y=(u.ignoreCase?"i":"")+(u.multiline?"m":"")+(u.unicode?"u":"")+(p?"y":"g"),g=new v(p?u:"^(?:"+u.source+")",y),_=void 0===e?4294967295:e>>>0;if(0===_)return[];if(0===h.length)return null===c(g,h)?[h]:[];for(var b=0,w=0,x=[];wu;)o.call(a,n=s[u++])&&l.push(t?[n,a[n]]:a[n]);return l}}},mgnk:function(t,e,n){var r=n("aCM0"),i=n("UnEC"),o="[object Arguments]";t.exports=function(t){return i(t)&&r(t)==o}},mhn7:function(t,e,n){"use strict";n("Ymdd")("trim",function(t){return function(){return t(this,3)}})},msXi:function(t,e,n){var r=n("77Pl");t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},mtWM:function(t,e,n){t.exports=n("tIFN")},mvHQ:function(t,e,n){t.exports={default:n("qkKv"),__esModule:!0}},mw3O:function(t,e,n){"use strict";var r=n("CwSZ"),i=n("DDCP"),o=n("XgCd");t.exports={formats:o,parse:i,stringify:r}},n0T6:function(t,e,n){var r=n("Ibhu"),i=n("xnc9").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},n12u:function(t,e,n){var r=n("Ds5P");r(r.S+r.F,"Object",{assign:n("oYd7")})},n982:function(t,e,n){var r=n("UKM+"),i=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&i(t)===t}},nErl:function(t,e){(function(e){t.exports=e}).call(e,{})},nRs1:function(t,e,n){var r=n("Ds5P");r(r.S,"Object",{is:n("4IZP")})},nfUF:function(module,exports,__webpack_require__){var e;window,e=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=81)}([function(t,e,n){"use strict";e.__esModule=!0,e.ComponentType={Label:"label",Image:"image",Countdown:"countdown",Flow:"flow",Block:"block",Flexbox:"flex",Component:"component",SectionList:"section_list",Button:"button",Segment:"segment",Tab:"tab",AsyncBox:"async_box",Marquee:"marquee",Native:"native"},e.BuildInData={$screen:{safe_areas:{}},$sys:{platform:"web",lightart_sdk_version:"1.4.35",lightart_version:"1.4.0"}},e.EVENTS={COMP_RENDER:"COMP_RENDER",BATCH_RENDER:"BATCH_RENDER",CHILDREN_SCROLL:"CHILDREN_SCROLL",NATIVE_COMP_RENDER:"NATIVE_COMP_RENDER",NATIVE_COMP_DESTROY:"NATIVE_COMP_DESTROY",CLICK_HREF:"CLICK_HREF",STATISTICS_CLICK:"STATISTICS_CLICK",STATISTICS_EXPOSE:"STATISTICS_EXPOSE",UPDATE_CACHE:"UPDATE_CACHE"}},function(t,e,n){"use strict";e.__esModule=!0;var r=o(n(4)),i=o(n(11));function o(t){return t&&t.__esModule?t:{default:t}}var a="textContent"in document.createTextNode("")?"textContent":"innerText",s="ontouchend"in document;e.default={isSupportTouch:s,div:function(t,e){return this.create("div",t,e)},span:function(t,e){return this.create("span",t,e)},create:function(t,e,n){var r=document.createElement(t);if(e&&(r.className=e),n)if("string"==typeof n)r.style.cssText=n;else for(var i in n)r.style[i]=n[i];return r},text:function(t,e){t&&(t[a]=e)},addEventListener:function(t,e,n){t&&e&&(t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent("on"+e,n))},removeEventListener:function(t,e,n){t&&e&&(t.removeEventListener?t.removeEventListener(e,n):t.detachEvent("on"+e,n))},loadImg:function(t){var e=this,n=t.el,r=t.srcPic,i=t.errPic,o=t.loadingCls,a=t.loadedCls,s=new Image,c=function(){e.removeClass(n,o),e.addClass(n,a),"IMG"===n.tagName.toUpperCase()?n.setAttribute("src",r):n.style.backgroundImage="url("+r+")",s.onload=null};s.onload=c,i&&(s.onerror=function(){e.addClass(n,a),"IMG"===n.tagName.toUpperCase()?n.setAttribute("src",i):n.style.backgroundImage="url("+i+")",s.onerror=null}),s.src=r,s.width&&s.height?c():this.addClass(n,o)},attr:function(t,e,n){if(3!==arguments.length)return t.getAttribute(e);t.setAttribute(e,n)},style:function(t,e){if(t&&e)try{for(var n in e)t.style[n]=e[n]}catch(t){(0,i.default)("style",t)}},hasClass:function(t,e){return!(!e||!t)&&(t.classList?t.classList.contains(e):0<=t.className.indexOf(e))},addClass:function(t,e){return e&&t&&(t.classList?t.classList.add(e):t.className=(t.className+" "+e).trim()),this},removeClass:function(t,e){return e&&t&&(t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(e),"").trim()),this},addStyleEl:function(t,e){var n=document.createElement("style");return n.type="text/css",e&&(n.id=e),t&&(r.default.isIE()&&r.default.version<10?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))),document.getElementsByTagName("head")[0].appendChild(n),n},getComputedStyle:function(t,e){try{return window.getComputedStyle(t,e)}catch(n){return new function(t){return this.el=t,this.getPropertyValue=function(e){var n=/(-([a-z]){1})/g;return"float"==e&&(e="styleFloat"),n.test(e)&&(e=e.replace(n,function(){return arguments[2].toUpperCase()})),t.currentStyle[e]?t.currentStyle[e]:null},this}(t,e)}},getStyleVal:function(t,e){try{return this.getComputedStyle(t,null).getPropertyValue(e)}catch(t){return""}},getTouchEvents:function(){return s?["touchstart","touchmove","touchend"]:["mousedown","mousemove","mouseup"]}}},function(t,e,n){"use strict";e.__esModule=!0;var r=f(n(6)),i=n(3),o=f(n(5)),a=n(0),s=f(n(19)),c=f(n(1)),u=f(n(4)),l=f(n(45));function f(t){return t&&t.__esModule?t:{default:t}}var h={start:"t",center:"c",end:"b"},p={start:"l",center:"c",end:"r"},d=function(t){function e(n,r,i){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var o=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this));return o.parsedTmpl=n,o.root=r,o.el=null,o.children=[],o.curClasses=null,o.tagName="div",o.isUseLayoutAlign=!1,o.attrs={},o.index=void 0===i?-1:i,o.animationManager=null,o.srcAttr=r.lazyOptions().attr,o.statPath=null,o}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.setParent=function(t){return this.parent=t,this},e.prototype.init=function(){return this.parsedTmpl.animation&&(r.default.prepareAnimation(this.parsedTmpl.animation),this.animationManager=new l.default(this)),this.initData(),this.initStyle(),this.prepareClass(),this.initClasses(),this.initAttrs(),this.createChildren(),this.initEvent(),this},e.prototype.initData=function(){},e.prototype.initStyle=function(){this.styleObject=r.default.create(this.parsedTmpl),this.adjustStyle()},e.prototype.prepareClass=function(){this.parsedTmpl.actions&&this.parsedTmpl.actions.click&&this.addClass("ltart-clkable")},e.prototype.initClasses=function(){},e.prototype.initAttrs=function(){this.attrs.id=this.parsedTmpl.component_id||(0,i.uid)(),this.attrs["data-editorid"]=this.parsedTmpl.__TPL_TRACK_ID__,this.appendAttrs(this.attrs)},e.prototype.appendAttrs=function(){},e.prototype.initEvent=function(){},e.prototype.getEl=function(){return this.el||(this.el=document.getElementById(this.attrs.id)),this.el},e.prototype.id=function(){return this.attrs.id},e.prototype.getConnector=function(){return this.root},e.prototype.render=function(t){this.root.getActionManager().addTarget(this),this.root.getStatistics().addTarget(this),this.renderChildren(t),this.fixIE(),this.onRender(t),c.default.hasClass(this.el,"ltart-bg")&&!this.root.addToLazyload(this.el)&&c.default.loadImg({el:this.el,srcPic:this.el.getAttribute(this.srcAttr)}),this.animationManager&&this.animationManager.init(),this.getConnector().fire(a.EVENTS.COMP_RENDER,{el:this.getEl(),clickData:this.parsedTmpl.actions&&this.parsedTmpl.actions.click&&this.parsedTmpl.actions.click.params,statistics:this.parsedTmpl.statistics,business:this.parsedTmpl.business,instance:this})},e.prototype.fixIE=function(){var t=this.el;!1===u.default.transformPrefix&&c.default.hasClass(this.el,"ltart-vhalign-box")&&(t=t.querySelector(".ltart-vhalign-cc"))&&c.default.style(t,{marginTop:"-"+t.clientHeight/2+"px",marginLeft:"-"+t.clientWidth/2+"px"})},e.prototype.renderChildren=function(t){this.children.forEach(function(e){e.render(t)})},e.prototype.onRender=function(){},e.prototype.destroy=function(){t.prototype.destroy.call(this),this.root.getStatistics().removeTarget(this),this.root.getActionManager().removeTarget(this),this.animationManager&&this.animationManager.destroy(),this.destroyChildren(),this.onDestroy()},e.prototype.destroyChildren=function(){for(;this.children.length;)this.children.shift().destroy()},e.prototype.onDestroy=function(){},e.prototype.createChildren=function(){var t=this,e=this.parsedTmpl.components;Array.isArray(e)&&e.forEach(function(e,n){t.createChild(e,n)})},e.prototype.createChild=function(t,e,n){var r=o.default.create(this,t,this.root,e,n);return this.addChild(r),r},e.prototype.addChild=function(t){t&&this.children.push(t)},e.prototype.toElement=function(){var t=document.createElement(this.tagName),e=null;for(var n in this.childrenToElement(this.wrapAllChild(t)),this.getAttributes(),this.attrs)null!==(e=this.attrs[n])&&""!==e&&void 0!==e&&("style"===n?t.style.cssText=e:"classes"===n?t.className=e:t.setAttribute(n,e));return this.el=t},e.prototype.getAttributes=function(){return this.attrs.classes=this.getClasses(),this.attrs.style=(0,i.serialStyle)(this.styleObject),this.attrs},e.prototype.getClasses=function(){return this.curClasses?this.curClasses.join(" "):""},e.prototype.childrenToElement=function(t){var e=this,n=!1,r=null,i=null;this.children.forEach(function(o){r=o.toElement(),o.isUseLayoutAlign?(n=!0,(i=e._createLayoutAlign(o)).appendChild(r)):i=r,t.appendChild(e.wrapChild(i))}),n&&this.addClass("ltart-vhalign-box")},e.prototype.wrapAllChild=function(t){return t},e.prototype.wrapChild=function(t){return t},e.prototype._createLayoutAlign=function(t){var e="ltart-vhalign-item ltart-vhalign-"+h[t.parsedTmpl.layout_align.v]+p[t.parsedTmpl.layout_align.h];return c.default.div(e)},e.prototype.adjustStyle=function(){if(this.styleObject._bgPic&&(this.addClass("ltart-bg"),this.attrs[this.srcAttr]=this.styleObject._bgPic,delete this.styleObject._bgPic),this.canUseLayoutAlign()){var t=this.parsedTmpl.layout_align;t&&(t.v&&"none"!==t.v||t.h&&"none"!==t.h)&&(this.isUseLayoutAlign=!0,delete this.styleObject.top,delete this.styleObject.left)}this.forceAbsolute()?this.styleObject.position="absolute":this.styleObject.position||!this.styleObject.left&&!this.styleObject.top||(this.styleObject.position="relative"),this.forceFlexbox()&&Object.assign(this.styleObject,r.default.setFlexboxItem(this.parsedTmpl)),this.__setGravity()},e.prototype.__setGravity=function(){var t=(0,i.isValidVal)(this.parsedTmpl.gravity)?Number(this.parsedTmpl.gravity):0;t&&this.parent&&this.parent.isCompType(a.ComponentType.Flow)&&Object.assign(this.styleObject,{"-webkit-box-flex":t,"-ms-flex-positive":t,"flex-grow":t})},e.prototype.addClass=function(t){this.curClasses||(this.curClasses=[]),-1===this.curClasses.indexOf(t)&&this.curClasses.push(t)},e.prototype.canUseLayoutAlign=function(){return!!this.parent&&(this.parent.isCompType(a.ComponentType.Block)||this.parent.isCompType(a.ComponentType.Countdown))},e.prototype.forceAbsolute=function(){return this.parent&&this.parent.isCompType(a.ComponentType.Block)&&!this.isUseLayoutAlign},e.prototype.forceFlexbox=function(){return this.parent&&this.parent.isCompType(a.ComponentType.Flexbox)},e.prototype.isCompType=function(t){return t===a.ComponentType.Component},e.prototype.closest=function(t){for(var e=this.parent;e&&!e.isCompType(t);)e=e.parent;return e},e.prototype.closestOriginTmpl=function(){for(var t=null,e=this;e&&!t;)t=e.getOriginTmpl(),e=e.parent;return t||this.root.getOriginTmpl()},e.prototype.getOriginTmpl=function(){return null},e.prototype.moveChildrenToComp=function(t){var e=document.createDocumentFragment();for(this.children.forEach(function(n){n.setParent(t),t.addChild(n),e.appendChild(n.toElement())}),t.getEl().appendChild(e);this.children.length;)this.children.shift().render()},e.prototype.replaceChild=function(t,e){t.index=e.index;for(var n=0;n=r(t)+n+t.offsetHeight}(t,e,n)||function(t,e,n){var r=window.innerWidth;return(e===window?r+window.pageXOffset:i(e)+r)<=i(t)-n}(t,e,n)||function(t,e,n){return(e===window?window.pageXOffset:i(e))>=i(t)+n+t.offsetWidth}(t,e,n))}},function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){var n=2Math.abs(e/2)&&(this.trans=this.trans-e/2);else if(Math.abs(this.trans)>=Math.abs(e)-this.elWidth)return this.trans=-(Math.abs(e)-this.elWidth),void this.__move()}else if(this.__isCircular())this.trans=(this.trans||-e+this.elWidth)+n,0Math.abs(this.innerScrollWidth/2))this.trans=this.trans+Math.abs(this.innerScrollWidth/2);else if(Math.abs(this.trans)>=Math.abs(this.innerScrollWidth)-this.elWidth)return this.trans=-(Math.abs(this.innerScrollWidth)-this.elWidth),void this.__move();this.__move(),this._startCustomX=this._moveCustomX,this._startCustomY=this._moveCustomY},e.prototype.__goonScroll=function(){this.__stop=!1,this.__linearScroll()},e.prototype.isCompType=function(t){return t===i.ComponentType.Marquee},e}(r.default);e.default=s},function(t,e,n){"use strict";e.__esModule=!0;var r=a(n(1)),i=a(n(6)),o=a(n(4));function a(t){return t&&t.__esModule?t:{default:t}}var s=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.el=e.el,this.$inner=e.$inner,this.initStyle=i.default.getScrollbar(e.parsedTmpl),this.config={axis:e.axis,opacity:this.initStyle.opacity,onEnd:e.onEnd},this.init()}return t.prototype.init=function(){this.touches={_start:{},_move:{},_end:{},delta:0},this._onStart=this._onStart.bind(this),this._onMove=this._onMove.bind(this),this._onEnd=this._onEnd.bind(this),this._onClick=this._onClick.bind(this);var t="x"===this.config.axis?"Width":"Height";this.config.viewLen=this.$inner["client"+t],this.config.totalLen=this.$inner["scroll"+t],this.initDom(),this.initEvent(),this.config.ratio=this.$scrollbar["scroll"+t]/this.$inner["scroll"+t]},t.prototype.initDom=function(){this.$scrollbar=r.default.div("ltart-flow-scrollbar"),r.default.style(this.$scrollbar,{backgroundColor:this.initStyle.backgroundColor,height:"x"===this.config.axis?this.initStyle.thickness:this.initStyle.length,width:"x"===this.config.axis?this.initStyle.length:this.initStyle.thickness,borderRadius:this.initStyle.thickness,opacity:this.config.opacity}),this.$indicator=r.default.span("ltart-flow-indicator");var t={backgroundColor:this.initStyle.foregroundColor,borderRadius:this.initStyle.thickness};"x"===this.config.axis?t.width=100*this.config.viewLen/this.config.totalLen+"%":t.height=100*this.config.viewLen/this.config.totalLen+"%",r.default.style(this.$indicator,t),this.$scrollbar.appendChild(this.$indicator),this.el.appendChild(this.$scrollbar)},t.prototype.initEvent=function(){var t=r.default.getTouchEvents();r.default.addEventListener(this.$inner,t[0],this._onStart),r.default.addEventListener(this.$inner,t[1],this._onMove),r.default.addEventListener(this.$inner,t[2],this._onEnd),r.default.addEventListener(this.$inner,"click",this._onClick)},t.prototype._onStart=function(t){this.touches._start.x=this._pageX(t),this.touches._start.y=this._pageY(t),this.touches._start.t=t.timeStamp,this.$scrollbar.style.opacity=1,this.config.scrolling=!0},t.prototype._onMove=function(t){if(this.stopInertiaScroll=!0,this.config.scrolling){this.touches._move.prevx=this.touches._move.x,this.touches._move.prevy=this.touches._move.y,this.touches._move.prevt=this.touches._move.t,this.touches._move.x=this._pageX(t),this.touches._move.y=this._pageY(t),this.touches._move.t=t.timeStamp;var e=this.config.axis;"x"===e?Math.abs(this.touches._move.y-this.touches._start.y)>Math.abs(this.touches._move.x-this.touches._start.x)?this.config.scrolling=!1:t.cancelable&&t.preventDefault():"y"===e&&(Math.abs(this.touches._move.x-this.touches._start.x)>Math.abs(this.touches._move.y-this.touches._start.y)?this.config.scrolling=!1:t.cancelable&&t.preventDefault()),this.config.scrolling&&this._updatePos(this.touches._start,this.touches._move),this.touches._moved=!0}},t.prototype._onEnd=function(t){var e=this.config.axis;this.touches._end.x=this._pageX(t),this.touches._end.y=this._pageY(t),this.touches.delta=this._forceBounds(this.touches.delta+(this.touches._end[e]-this.touches._start[e]));var n=(this.touches._move[e]-this.touches._move["prev"+e])/(this.touches._move.t-this.touches._move.prevt)*1e3;if(this.config.scrolling&&this.touches._moved)if(this.stopInertiaScroll=!1,100e.clientWidth:e.scrollHeight>e.clientHeight;if((0,o.isValidVal)(this.loadMoreUrl)&&(this.loadMore=new a.default({component:this,url:this.loadMoreUrl})),"true"===String(this.parsedTmpl.smart_overflow)&&this.__hasBounds())for(var r=e.getBoundingClientRect(),u=null,l=e.children.length-1;0<=l&&(2<(u=e.children[l].getBoundingClientRect()).right-r.right||2this.config.wrapper.clientHeight&&(this.scrollTarget=this.config.wrapper)}this.lazyload&&this.lazyload.watchScroll(this.scrollTarget)},t.prototype.onAfterRender=function(){this._updateLazyload()},t.prototype.onChildScroll=function(){this._updateLazyload()},t.prototype._updateLazyload=function(){this.lazyload&&this.lazyload.update()},t.prototype.__onNativeCompRender=function(t){var e=this.config.nativeComp;if(e&&"function"==typeof e.onRender)try{e.onRender(t.parsedTmpl.name,t.parsedTmpl.params,t.el)}catch(t){_.default.warn(g.LoggerType.NATIVE_COMP_RENDER_ERR,t)}},t.prototype.__onNativeCompDestory=function(t){var e=this.config.nativeComp;if(e&&"function"==typeof e.onDestory)try{e.onDestory(t.parsedTmpl.name,t.parsedTmpl.params,t.el)}catch(t){_.default.warn(g.LoggerType.NATIVE_COMP_DESTROY_ERR,t)}},t.prototype.__onUpdateCache=function(t){Object.assign(this._cacheData,t)},t.prototype.toElement=function(){return this.rootElement=this.instance.toElement(),this.rootElement},t.prototype.setExtraData=function(t){return Object.assign(this._extraData,t),this},t.prototype.refresh=function(){return this.destroy(),this.init(),this.renderToDom(),this},t.prototype.destroy=function(){this._renderCalled=!1,this.instance&&(this.instance.destroy(),this.instance=null,this.config.wrapper.removeChild(this.elementBox)),this.lazyload&&this.lazyload.destroy(),this.statistics.destroy(),this.actionManager.destroy(),this.eventListener.destroy(),this._isEditorMode()&&h.default.destroy()},t.prototype._isEditorMode=function(){return!0===this.config.editor},t.prototype.getVersion=function(){return u.BuildInData.$sys.lightart_version},t.prototype.getSdkVersion=function(){return u.BuildInData.$sys.lightart_sdk_version},t.prototype.trigger=function(t){return this.actionManager.triggerAction(t),this},t.prototype.onRender=function(t){return this.eventListener.on(u.EVENTS.COMP_RENDER,t),this},t.prototype.onEvent=function(t,e){return this.eventListener.on(t,e),this},t.prototype.onHref=function(t){return this.eventListener.on(u.EVENTS.CLICK_HREF,t),this},t.prototype.onStatClick=function(t){return this.eventListener.on(u.EVENTS.STATISTICS_CLICK,t),this},t.prototype.onStatExpose=function(t){return this.eventListener.on(u.EVENTS.STATISTICS_EXPOSE,t),this},t.prototype.onDblclick=function(t){return this._isEditorMode()&&h.default.init(this.elementBox,t),this},t}();S.buildTmpl=o.buildTmpl,e.default=S},function(t,e,n){var r=n(21);t.exports=function(t){return Object(r(t))}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports=!1},function(t,e,n){var r=n(15),i=n(8),o="__core-js_shared__",a=i[o]||(i[o]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(55)?"pure":"global",copyright:"漏 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(56)("keys"),i=n(24);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){var r=n(20),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e,n){var r=n(20),i=Math.min;t.exports=function(t){return 0c;)r(s,n=e[c++])&&(~o(u,n)||u.push(n));return u}},function(t,e,n){var r=n(62),i=n(54);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){"use strict";var r=n(63),i=n(53),o=n(52),a=n(51),s=n(22),c=Object.assign;t.exports=!c||n(12)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,u=1,l=i.f,f=o.f;u*,.ltart-marquee>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.ltart-flow.width-in-viewport,.ltart-marquee.width-in-viewport{max-width:100vw}.ltart-flow .ltart-flow-inner,.ltart-marquee .ltart-flow-inner{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}.ltart-flow .ltart-flow-inner>*,.ltart-marquee .ltart-flow-inner>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.ltart-flow .ltart-marquee-inner,.ltart-marquee .ltart-marquee-inner{position:relative;display:inline-block}.ltart-flow .ltart-flow-scrollbar,.ltart-marquee .ltart-flow-scrollbar{position:absolute;margin:auto;z-index:1;-webkit-transition:opacity .3s linear;transition:opacity .3s linear;background:#fff}.ltart-flow.ltart-lock-x .ltart-flow-scrollbar,.ltart-marquee.ltart-lock-x .ltart-flow-scrollbar{right:0;left:0;bottom:2px}.ltart-flow.ltart-lock-y .ltart-flow-scrollbar,.ltart-marquee.ltart-lock-y .ltart-flow-scrollbar{right:2px;top:0;bottom:0}.ltart-flow .ltart-flow-indicator,.ltart-marquee .ltart-flow-indicator{display:inline-block;position:absolute;height:100%;width:100%;will-change:transform;background:#000;z-index:1}.ltart-lock-x{overflow-x:hidden}.ltart-lock-y{overflow-y:hidden}.ltart-segment{scroll-behavior:smooth}.ltart-segment .ltart-segment-inner{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.ltart-label{line-height:1.2}.ltart-label-inner{overflow:hidden;text-overflow:ellipsis}.ltart-label-inner.ltart-line-clamp{display:-webkit-box;word-break:break-all;overflow:hidden;-webkit-box-orient:vertical}.ltart-smfont-center,.ltart-smfont-left,.ltart-smfont-right{display:inline-block;white-space:nowrap;overflow:visible}.ltart-smfont-left{-webkit-transform-origin:0 50%;-ms-transform-origin:0 50%;transform-origin:0 50%}.ltart-smfont-center{-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%}.ltart-smfont-right{-webkit-transform-origin:100% 50%;-ms-transform-origin:100% 50%;transform-origin:100% 50%}.ltart-btn .ltart-btn-normal{display:block}.ltart-btn.canActive:active .ltart-btn-normal{display:none}.ltart-btn.canActive:active .ltart-btn-highlighted{display:block}.ltart-btn.selected .ltart-btn-highlighted,.ltart-btn.selected .ltart-btn-normal{display:none}.ltart-btn.selected .ltart-btn-selected{display:block}.ltart-btn-highlighted,.ltart-btn-normal,.ltart-btn-selected{width:100%;height:100%;display:none}.ltart-tab.ltart-flex-h .ltart-tab-seg{height:100%;overflow:hidden}.ltart-tab-content .ltart-tab-item{display:none}.ltart-tab-item{width:100%;height:100%;overflow:hidden}.ltart-flex-h,.ltart-flex-v{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.ltart-flex-h{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ltart-flex-h-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.ltart-flex-v-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.ltart-flex-h-start{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.ltart-flex-v-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.ltart-flex-h-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.ltart-flex-v-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.ltart-plfl-flex .ltart-flex-h,.ltart-plfl-flex .ltart-flex-v{display:inline-block}.ltart-plfl-flex .ltart-flow.ltart-flex-v>.ltart-flex-h,.ltart-plfl-flex .ltart-flow.ltart-flex-v>.ltart-flex-v{margin:0 auto}.ltart-plfl-flex.lightart-wrap-box .ltart-flow,.ltart-plfl-flex .ltart-flex-v>.ltart-flex-h,.ltart-plfl-flex .ltart-flex-v>.ltart-flex-v{display:block}.ltart-plfl-flex .ltart-flex-v>div{margin:0 auto}.ltart-plfl-flex .ltart-flex-h{overflow-x:auto;overflow-y:hidden;white-space:nowrap}.ltart-plfl-flex .ltart-flex-h>div{display:inline-block}.ltart-plfl-flex .ltart-label.ltart-flex-v-center:after{content:"";display:inline-block;vertical-align:middle;height:100%;font-size:0}.ltart-plfl-flex .ltart-label.ltart-flex-v-center .ltart-label-inner{display:inline-block;vertical-align:middle}.ltart-plfl-flex .ltart-segment{display:table}.ltart-plfl-flex .ltart-segment.ltart-flex-h-start{text-align:left}.ltart-plfl-flex .ltart-segment.ltart-flex-h-center{text-align:center}.ltart-plfl-flex .ltart-segment.ltart-flex-h-end{text-align:right}.ltart-plfl-flex .ltart-segment-inner{display:table-cell!important}.ltart-plfl-flex .ltart-segment-inner .ltart-label{text-align:left}.ltart-plfl-flex .ltart-flex-v-start .ltart-segment-inner{vertical-align:top}.ltart-plfl-flex .ltart-flex-v-center .ltart-segment-inner{vertical-align:middle}.ltart-plfl-flex .ltart-flex-v-end .ltart-segment-inner{vertical-align:bottom}.ltart-vhalign-box{display:table}.ltart-vhalign-item{display:table-cell;position:absolute}.ltart-vhalign-tl{top:0;left:0}.ltart-vhalign-tc{top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ltart-vhalign-tr{top:0;right:0}.ltart-vhalign-cl{top:50%;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ltart-vhalign-cc{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ltart-vhalign-cr{top:50%;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ltart-vhalign-bl{bottom:0;left:0}.ltart-vhalign-bc{bottom:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ltart-vhalign-br{bottom:0;right:0}.ltart-sectionlist{overflow:auto}.ltart-plfl-column .ltart-sectionlist-bd{display:table}.ltart-plfl-column .ltart-sectionlist-col,.ltart-plfl-column .ltart-sectionlist-col-gap{display:table-cell}.ltart-animation{-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform}.ltart-flexbox{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;overflow-x:auto}.ltart-flexbox>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.ltart-flexbox-direction-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ltart-flexbox-direction-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ltart-flexbox-direction-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ltart-flexbox-direction-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ltart-flexbox-flexwrap-nowrap{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.ltart-flexbox-flexwrap-wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ltart-flexbox-flexwrap-wrap-reverse{-webkit-flex-wrap:wrap-reverse;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.ltart-flexbox-justifycontent-flex-start{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.ltart-flexbox-justifycontent-flex-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.ltart-flexbox-justifycontent-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.ltart-flexbox-justifycontent-space-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.ltart-flexbox-justifycontent-space-around{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.ltart-flexbox-aligncontent-flex-start{-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start}.ltart-flexbox-aligncontent-flex-end{-webkit-align-content:flex-end;-ms-flex-line-pack:end;align-content:flex-end}.ltart-flexbox-aligncontent-center{-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.ltart-flexbox-aligncontent-space-between{-webkit-align-content:space-between;-ms-flex-line-pack:justify;align-content:space-between}.ltart-flexbox-aligncontent-space-around{-webkit-align-content:space-around;-ms-flex-line-pack:distribute;align-content:space-around}.ltart-flexbox-aligncontent-stretch{-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch}.ltart-flexbox-alignitems-flex-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.ltart-flexbox-alignitems-flex-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.ltart-flexbox-alignitems-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.ltart-flexbox-alignitems-baseline{-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline}.ltart-flexbox-alignitems-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}',""])},function(t,e,n){var r=n(79);"string"==typeof r&&(r=[[t.i,r,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};n(77)(r,i),r.locals&&(t.exports=r.locals)},function(t,e,n){"use strict";e.__esModule=!0,n(80),n(75);var r=function(t){return t&&t.__esModule?t:{default:t}}(n(50)),i=null;r.default.run=function(t){return i&&(i.destroy(),i=null),(i=new r.default(t)).renderToDom(),i},e.default=r.default}]).default},module.exports=e()},nh2o:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("OzIq"),o=n("7gX0"),a=n("g36u")(),s=n("kkCw")("observable"),c=n("XSOZ"),u=n("DIVP"),l=n("9GpA"),f=n("A16L"),h=n("2p1q"),p=n("vmSO"),d=p.RETURN,v=function(t){return null==t?void 0:c(t)},m=function(t){var e=t._c;e&&(t._c=void 0,e())},y=function(t){return void 0===t._o},g=function(t){y(t)||(t._o=void 0,m(t))},_=function(t,e){u(t),this._c=void 0,this._o=t,t=new b(this);try{var n=e(t),r=n;null!=n&&("function"==typeof n.unsubscribe?n=function(){r.unsubscribe()}:c(n),this._c=n)}catch(e){return void t.error(e)}y(this)&&m(this)};_.prototype=f({},{unsubscribe:function(){g(this)}});var b=function(t){this._s=t};b.prototype=f({},{next:function(t){var e=this._s;if(!y(e)){var n=e._o;try{var r=v(n.next);if(r)return r.call(n,t)}catch(t){try{g(e)}finally{throw t}}}},error:function(t){var e=this._s;if(y(e))throw t;var n=e._o;e._o=void 0;try{var r=v(n.error);if(!r)throw t;t=r.call(n,t)}catch(t){try{m(e)}finally{throw t}}return m(e),t},complete:function(t){var e=this._s;if(!y(e)){var n=e._o;e._o=void 0;try{var r=v(n.complete);t=r?r.call(n,t):void 0}catch(t){try{m(e)}finally{throw t}}return m(e),t}}});var w=function(t){l(this,w,"Observable","_f")._f=c(t)};f(w.prototype,{subscribe:function(t){return new _(t,this._f)},forEach:function(t){var e=this;return new(o.Promise||i.Promise)(function(n,r){c(t);var i=e.subscribe({next:function(e){try{return t(e)}catch(t){r(t),i.unsubscribe()}},error:r,complete:n})})}}),f(w,{from:function(t){var e="function"==typeof this?this:w,n=v(u(t)[s]);if(n){var r=u(n.call(t));return r.constructor===e?r:new e(function(t){return r.subscribe(t)})}return new e(function(e){var n=!1;return a(function(){if(!n){try{if(p(t,!1,function(t){if(e.next(t),n)return d})===d)return}catch(t){if(n)throw t;return void e.error(t)}e.complete()}}),function(){n=!0}})},of:function(){for(var t=0,e=arguments.length,n=new Array(e);t1&&(r=Math.min(r,o(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},oJlt:function(t,e,n){"use strict";var r=n("cGG2"),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,n,o,a={};return t?(r.forEach(t.split("\n"),function(t){if(o=t.indexOf(":"),e=r.trim(t.substr(0,o)).toLowerCase(),n=r.trim(t.substr(o+1)),e){if(a[e]&&i.indexOf(e)>=0)return;a[e]="set-cookie"===e?(a[e]?a[e]:[]).concat([n]):a[e]?a[e]+", "+n:n}}),a):a}},oM7Q:function(t,e,n){n("sF+V");var r=n("FeBl").Object;t.exports=function(t,e){return r.create(t,e)}},oYd7:function(t,e,n){"use strict";var r=n("Qh14"),i=n("Y1N3"),o=n("Y1aA"),a=n("FryR"),s=n("Q6Nf"),c=Object.assign;t.exports=!c||n("zgIt")(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,u=1,l=i.f,f=o.f;c>u;)for(var h,p=s(arguments[u++]),d=l?r(p).concat(l(p)):r(p),v=d.length,m=0;v>m;)f.call(p,h=d[m++])&&(n[h]=p[h]);return n}:c},oYp4:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FryR"),o=n("XSOZ"),a=n("lDLk");n("bUqO")&&r(r.P+n("dm6P"),"Object",{__defineGetter__:function(t,e){a.f(i(this),t,{get:o(e),enumerable:!0,configurable:!0})}})},octw:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}},oeih:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},ot5s:function(t,e,n){var r=n("PHqh"),i=n("BbyF"),o=n("zo/l");t.exports=function(t){return function(e,n,a){var s,c=r(e),u=i(c.length),l=o(a,u);if(t&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},oyG6:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r); +/*! + * JavaScript Cookie v2.2.0 + * https://github.com/jsCookie/jsCookie + * + * Copyright 2006, 2015 Klaus Hartl & Fagner Brack + * Released under the MIT license + */e.a=function(){function t(){for(var t=0,e={};t1){if("number"==typeof(a=t({path:"/"},r.defaults,a)).expires){var c=new Date;c.setMilliseconds(c.getMilliseconds()+864e5*a.expires),a.expires=c}a.expires=a.expires?a.expires.toUTCString():"";try{s=i()(o),/^[\{\[]/.test(s)&&(o=s)}catch(t){}o=n.write?n.write(o,e):encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=(e=(e=encodeURIComponent(String(e))).replace(/%(23|24|26|2B|5E|60|7C|5B|5D)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var u="";for(var l in a)a[l]&&(u+="; "+l,!0!==a[l]&&(u+="="+a[l]));return document.cookie=e+"="+o+u}e||(s={});for(var f=document.cookie?document.cookie.split("; "):[],h=/(%[0-9A-Z]{2})+/g,p=0;p=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=e.charAt(r):o<128?n+=i[o]:o<2048?n+=i[192|o>>6]+i[128|63&o]:o<55296||o>=57344?n+=i[224|o>>12]+i[128|o>>6&63]+i[128|63&o]:(r+=1,o=65536+((1023&o)<<10|1023&e.charCodeAt(r)),n+=i[240|o>>18]+i[128|o>>12&63]+i[128|o>>6&63]+i[128|63&o])}return n},isBuffer:function(t){return null!==t&&void 0!==t&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},merge:function t(e,n,i){if(!n)return e;if("object"!=typeof n){if(Array.isArray(e))e.push(n);else{if("object"!=typeof e)return[e,n];(i.plainObjects||i.allowPrototypes||!r.call(Object.prototype,n))&&(e[n]=!0)}return e}if("object"!=typeof e)return[e].concat(n);var a=e;return Array.isArray(e)&&!Array.isArray(n)&&(a=o(e,i)),Array.isArray(e)&&Array.isArray(n)?(n.forEach(function(n,o){r.call(e,o)?e[o]&&"object"==typeof e[o]?e[o]=t(e[o],n,i):e.push(n):e[o]=n}),e):Object.keys(n).reduce(function(e,o){var a=n[o];return r.call(e,o)?e[o]=t(e[o],a,i):e[o]=a,e},a)}}},pBtG:function(t,e,n){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},pFYg:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("Zzip")),i=a(n("5QVw")),o="function"==typeof i.default&&"symbol"==typeof r.default?function(t){return typeof t}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?"symbol":typeof t};function a(t){return t&&t.__esModule?t:{default:t}}e.default="function"==typeof i.default&&"symbol"===o(r.default)?function(t){return void 0===t?"undefined":o(t)}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?"symbol":void 0===t?"undefined":o(t)}},pTUa:function(t,e,n){var r=n("/I3N");t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},pWGb:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{log1p:n("Rz2z")})},"pd+2":function(t,e,n){n("bUqO")&&"g"!=/./g.flags&&n("lDLk").f(RegExp.prototype,"flags",{configurable:!0,get:n("0pGU")})},plSV:function(t,e,n){var r=n("boo2");t.exports=function(t,e){return new(r(t))(e)}},pxG4:function(t,e,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},py9u:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t,e){return t&&r(e,i(e),t)}},qARP:function(t,e,n){"use strict";var r=n("lOnJ");t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},qRfI:function(t,e,n){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},"qZb+":function(t,e,n){n("0j1G")("Set")},qdHU:function(t,e,n){n("iKpr")("WeakSet")},qio6:function(t,e,n){var r=n("evD5"),i=n("77Pl"),o=n("lktj");t.exports=n("+E39")?Object.defineProperties:function(t,e){i(t);for(var n,a=o(e),s=a.length,c=0;s>c;)r.f(t,n=a[c++],e[n]);return t}},qkKv:function(t,e,n){var r=n("FeBl"),i=r.JSON||(r.JSON={stringify:JSON.stringify});t.exports=function(t){return i.stringify.apply(i,arguments)}},qkyc:function(t,e,n){var r=n("kkCw")("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},qrdl:function(t,e){t.exports=function(){}},qtRy:function(t,e,n){n("77Ug")("Int16",2,function(t){return function(e,n,r){return t(this,e,n,r)}})},qwQ3:function(t,e,n){"use strict";var r=n("DIVP"),i=n("4IZP"),o=n("9Dx1");n("Vg1y")("search",1,function(t,e,n,a){return[function(n){var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=a(n,t,this);if(e.done)return e.value;var s=r(t),c=String(this),u=s.lastIndex;i(u,0)||(s.lastIndex=0);var l=o(s,c);return i(s.lastIndex,u)||(s.lastIndex=u),null===l?-1:l.index}]})},qwTf:function(t,e,n){var r=n("TQ3y").Uint8Array;t.exports=r},qyJz:function(t,e,n){"use strict";var r=n("+ZMJ"),i=n("kM2E"),o=n("sB3e"),a=n("msXi"),s=n("Mhyx"),c=n("QRG4"),u=n("fBQ2"),l=n("3fs2");i(i.S+i.F*!n("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,h=o(t),p="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,m=void 0!==v,y=0,g=l(h);if(m&&(v=r(v,d>2?arguments[2]:void 0,2)),void 0==g||p==Array&&s(g))for(n=new p(e=c(h.length));e>y;y++)u(n,y,m?v(h[y],y):h[y]);else for(f=g.call(h),n=new p;!(i=f.next()).done;y++)u(n,y,m?a(f,v,[i.value,y],!0):i.value);return n.length=y,n}})},"r2E/":function(t,e,n){var r=n("Ds5P"),i=n("nqOf")(/[\\^$*+?.()|[\]{}]/g,"\\$&");r(r.S,"RegExp",{escape:function(t){return i(t)}})},rFzY:function(t,e,n){var r=n("XSOZ");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},s4j0:function(t,e,n){var r=n("UKM+");t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},s96k:function(t,e){t.exports=function(t,e,n){for(var r=-1,i=null==t?0:t.length;++r1?arguments[1]:void 0,!0)}})},t8qj:function(t,e,n){"use strict";t.exports=function(t,e,n,r,i){return t.config=e,n&&(t.code=n),t.request=r,t.response=i,t}},t8rQ:function(t,e,n){var r=n("7e4z"),i=n("G0Wc"),o=n("bGc4");t.exports=function(t){return o(t)?r(t,!0):i(t)}},t8x9:function(t,e,n){var r=n("77Pl"),i=n("lOnJ"),o=n("dSzd")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[o])?e:i(n)}},tIFN:function(t,e,n){"use strict";var r=n("cGG2"),i=n("JP+z"),o=n("XmWM"),a=n("KCLY");function s(t){var e=new o(t),n=i(o.prototype.request,e);return r.extend(n,o.prototype,e),r.extend(n,e),n}var c=s(a);c.Axios=o,c.create=function(t){return s(r.merge(a,t))},c.Cancel=n("dVOP"),c.CancelToken=n("cWxy"),c.isCancel=n("pBtG"),c.all=function(t){return Promise.all(t)},c.spread=n("pxG4"),t.exports=c,t.exports.default=c},tJwI:function(t,e,n){var r=n("FryR"),i=n("Qh14");n("3i66")("keys",function(){return function(t){return i(r(t))}})},taNN:function(t,e,n){var r=n("Ds5P"),i=180/Math.PI;r(r.S,"Math",{degrees:function(t){return t*i}})},thJu:function(t,e,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function i(){this.message="String contains an invalid character"}i.prototype=new Error,i.prototype.code=5,i.prototype.name="InvalidCharacterError",t.exports=function(t){for(var e,n,o=String(t),a="",s=0,c=r;o.charAt(0|s)||(c="=",s%1);a+=c.charAt(63&e>>8-s%1*8)){if((n=o.charCodeAt(s+=.75))>255)throw new i;e=e<<8|n}return a}},tqSY:function(t,e,n){var r=n("Ds5P");r(r.P,"String",{repeat:n("xAdt")})},tv3T:function(t,e,n){var r=n("i4ON"),i=n("nw3t");t.exports=function(t,e,n,o){var a=!n;n||(n={});for(var s=-1,c=e.length;++sc;)r.f(t,n=a[c++],e[n]);return t}},u0PK:function(t,e,n){var r=n("UKM+"),i=n("ydD5"),o=n("kkCw")("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},u2KI:function(t,e,n){t.exports={default:n("O4R0"),__esModule:!0}},uDYd:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("XSOZ"),o=n("FryR"),a=n("zgIt"),s=[].sort,c=[1,2,3];r(r.P+r.F*(a(function(){c.sort(void 0)})||!a(function(){c.sort(null)})||!n("NNrz")(s)),"Array",{sort:function(t){return void 0===t?s.call(o(this)):s.call(o(this),i(t))}})},uEEG:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{scale:n("WY8G")})},uIr7:function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,i=t.length;++n94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},v3hU:function(t,e,n){var r=n("dSUw"),i=n("QG7u"),o=n("wCso"),a=n("DIVP"),s=n("KOrd"),c=o.keys,u=o.key,l=function(t,e){var n=c(t,e),o=s(t);if(null===o)return n;var a=l(o,e);return a.length?n.length?i(new r(n.concat(a))):a:n};o.exp({getMetadataKeys:function(t){return l(a(t),arguments.length<2?void 0:u(arguments[1]))}})},v8Dt:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).get(t)}},v8VU:function(t,e,n){var r=n("OzIq"),i=n("Ds5P"),o=n("41xE"),a=[].slice,s=/MSIE .\./.test(o),c=function(t){return function(e,n){var r=arguments.length>2,i=!!r&&a.call(arguments,2);return t(r?function(){("function"==typeof e?e:Function(e)).apply(this,i)}:e,n)}};i(i.G+i.B+i.F*s,{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},v90c:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("IFpc"),o=n("FryR"),a=n("BbyF"),s=n("oeih"),c=n("plSV");r(r.P,"Array",{flatten:function(){var t=arguments[0],e=o(this),n=a(e.length),r=c(e,0);return i(r,e,e,n,0,void 0===t?1:s(t)),r}}),n("RhFG")("flatten")},"vFc/":function(t,e,n){var r=n("TcQ7"),i=n("QRG4"),o=n("fkB2");t.exports=function(t){return function(e,n,a){var s,c=r(e),u=i(c.length),l=o(a,u);if(t&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},"vIB/":function(t,e,n){"use strict";var r=n("O4g8"),i=n("kM2E"),o=n("880/"),a=n("hJx8"),s=n("/bQp"),c=n("94VQ"),u=n("e6n0"),l=n("PzxK"),f=n("dSzd")("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(t,e,n,d,v,m,y){c(n,e,d);var g,_,b,w=function(t){if(!h&&t in C)return C[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},x=e+" Iterator",S="values"==v,k=!1,C=t.prototype,T=C[f]||C["@@iterator"]||v&&C[v],E=T||w(v),O=v?S?w("entries"):E:void 0,A="Array"==e&&C.entries||T;if(A&&(b=l(A.call(new t)))!==Object.prototype&&b.next&&(u(b,x,!0),r||"function"==typeof b[f]||a(b,f,p)),S&&T&&"values"!==T.name&&(k=!0,E=function(){return T.call(this)}),r&&!y||!h&&!k&&C[f]||a(C,f,E),s[e]=E,s[x]=p,v)if(g={values:S?E:w("values"),keys:m?E:w("keys"),entries:O},y)for(_ in g)_ in C||o(C,_,g[_]);else i(i.P+i.F*(h||k),e,g);return g}},vi0E:function(t,e,n){var r=n("f931")(Object.getPrototypeOf,Object);t.exports=r},vmSO:function(t,e,n){var r=n("rFzY"),i=n("XvUs"),o=n("9vb1"),a=n("DIVP"),s=n("BbyF"),c=n("SHe9"),u={},l={};(e=t.exports=function(t,e,n,f,h){var p,d,v,m,y=h?function(){return t}:c(t),g=r(n,f,e?2:1),_=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(o(y)){for(p=s(t.length);p>_;_++)if((m=e?g(a(d=t[_])[0],d[1]):g(t[_]))===u||m===l)return m}else for(v=y.call(t);!(d=v.next()).done;)if((m=i(v,g,d.value,e))===u||m===l)return m}).BREAK=u,e.RETURN=l},vmSu:function(t,e,n){var r=n("Ds5P"),i=n("7ylX"),o=n("XSOZ"),a=n("DIVP"),s=n("UKM+"),c=n("zgIt"),u=n("ZtwE"),l=(n("OzIq").Reflect||{}).construct,f=c(function(){function t(){}return!(l(function(){},[],t)instanceof t)}),h=!c(function(){l(function(){})});r(r.S+r.F*(f||h),"Reflect",{construct:function(t,e){o(t),a(e);var n=arguments.length<3?t:o(arguments[2]);if(h&&!f)return l(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return r.push.apply(r,e),new(u.apply(t,r))}var c=n.prototype,p=i(s(c)?c:Object.prototype),d=Function.apply.call(t,p,e);return s(d)?d:p}})},vnWP:function(t,e,n){var r=n("Ds5P"),i=n("WY8G"),o=n("g/m8");r(r.S,"Math",{fscale:function(t,e,n,r,a){return o(i(t,e,n,r,a))}})},vsh6:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(t){return o(i(t),arguments.length<2?void 0:a(arguments[1]))}})},"vu/c":function(t,e,n){n("3g/S")("observable")},w6Dh:function(t,e,n){"use strict";var r=n("XSOZ");t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},w6W7:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(1);r(r.P+r.F*!n("NNrz")([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},wC1N:function(t,e,n){var r=n("ydD5"),i=n("kkCw")("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},wCso:function(t,e,n){var r=n("MsuQ"),i=n("Ds5P"),o=n("VWgF")("metadata"),a=o.store||(o.store=new(n("ZDXm"))),s=function(t,e,n){var i=a.get(t);if(!i){if(!n)return;a.set(t,i=new r)}var o=i.get(e);if(!o){if(!n)return;i.set(e,o=new r)}return o};t.exports={store:a,map:s,has:function(t,e,n){var r=s(e,n,!1);return void 0!==r&&r.has(t)},get:function(t,e,n){var r=s(e,n,!1);return void 0===r?void 0:r.get(t)},set:function(t,e,n,r){s(n,r,!0).set(t,e)},keys:function(t,e){var n=s(t,e,!1),r=[];return n&&n.forEach(function(t,e){r.push(e)}),r},key:function(t){return void 0===t||"symbol"==typeof t?t:String(t)},exp:function(t){i(i.S,"Reflect",t)}}},wVdn:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("LhTa")(3);r(r.P+r.F*!n("NNrz")([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},wnRD:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FkIZ");r(r.P+r.F*!n("NNrz")([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},woOf:function(t,e,n){t.exports={default:n("V3tA"),__esModule:!0}},wrs0:function(t,e,n){var r=n("Ds5P"),i=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,o=0,a=0,s=arguments.length,c=0;a0?(r=n/c)*r:n;return c===1/0?1/0:c*Math.sqrt(o)}})},wvVD:function(t,e){t.exports=function(t,e){"use strict";var n=function(){},r=function(t){setTimeout(t||n,0)},i={addEventListener:!!window.addEventListener,touch:"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,transitions:function(t){var e=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(var n in e)if(void 0!==t.style[e[n]])return!0;return!1}(document.createElement("swipe"))};if(t){var o,a,s,c,u=t.children[0];e=e||{};var l=parseInt(e.startSlide,10)||0,f=e.speed||300;e.continuous=void 0===e.continuous||e.continuous;var h,p,d=e.auto||0,v={},m={},y={handleEvent:function(t){switch(t.type){case"touchstart":this.start(t);break;case"touchmove":this.move(t);break;case"touchend":r(this.end(t));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":r(this.transitionEnd(t));break;case"resize":r(g)}e.stopPropagation&&t.stopPropagation()},start:function(t){var e=t.touches[0];v={x:e.pageX,y:e.pageY,time:+new Date},p=void 0,m={},u.addEventListener("touchmove",this,!1),u.addEventListener("touchend",this,!1)},move:function(t){if(!(t.touches.length>1||t.scale&&1!==t.scale)){e.disableScroll&&t.preventDefault();var n=t.touches[0];m={x:n.pageX-v.x,y:n.pageY-v.y},void 0===p&&(p=!!(p||Math.abs(m.x)0||l==o.length-1&&m.x<0?Math.abs(m.x)/s+1:1),S(l-1,m.x+a[l-1],0),S(l,m.x+a[l],0),S(l+1,m.x+a[l+1],0)))}},end:function(t){var n=+new Date-v.time,r=Number(n)<250&&Math.abs(m.x)>20||Math.abs(m.x)>s/2,i=!l&&m.x>0||l==o.length-1&&m.x<0;e.continuous&&(i=!1);var c=m.x<0;p||(r&&!i?(c?(e.continuous?(x(b(l-1),-s,0),x(b(l+2),s,0)):x(l-1,-s,0),x(l,a[l]-s,f),x(b(l+1),a[b(l+1)]-s,f),l=b(l+1)):(e.continuous?(x(b(l+1),s,0),x(b(l-2),-s,0)):x(l+1,s,0),x(l,a[l]+s,f),x(b(l-1),a[b(l-1)]+s,f),l=b(l-1)),e.callback&&e.callback(l,o[l])):e.continuous?(x(b(l-1),-s,f),x(l,0,f),x(b(l+1),s,f)):(x(l-1,-s,f),x(l,0,f),x(l+1,s,f))),u.removeEventListener("touchmove",y,!1),u.removeEventListener("touchend",y,!1)},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==l&&(d&&k(),e.transitionEnd&&e.transitionEnd.call(t,l,o[l]))}};return g(),d&&k(),i.addEventListener?(i.touch&&u.addEventListener("touchstart",y,!1),i.transitions&&(u.addEventListener("webkitTransitionEnd",y,!1),u.addEventListener("msTransitionEnd",y,!1),u.addEventListener("oTransitionEnd",y,!1),u.addEventListener("otransitionend",y,!1),u.addEventListener("transitionend",y,!1)),window.addEventListener("resize",y,!1)):window.onresize=function(){g()},{setup:function(){g()},slide:function(t,e){C(),w(t,e)},prev:function(){C(),e.continuous?w(l-1):l&&w(l-1)},next:function(){C(),_()},stop:function(){C()},getPos:function(){return l},getNumSlides:function(){return c},kill:function(){C(),u.style.width="",u.style.left="";for(var t=o.length;t--;){var e=o[t];e.style.width="",e.style.left="",i.transitions&&S(t,0,0)}i.addEventListener?(u.removeEventListener("touchstart",y,!1),u.removeEventListener("webkitTransitionEnd",y,!1),u.removeEventListener("msTransitionEnd",y,!1),u.removeEventListener("oTransitionEnd",y,!1),u.removeEventListener("otransitionend",y,!1),u.removeEventListener("transitionend",y,!1),window.removeEventListener("resize",y,!1)):window.onresize=null}}}function g(){o=u.children,c=o.length,o.length<2&&(e.continuous=!1),i.transitions&&e.continuous&&o.length<3&&(u.appendChild(o[0].cloneNode(!0)),u.appendChild(u.children[1].cloneNode(!0)),o=u.children),a=new Array(o.length),s=t.getBoundingClientRect().width||t.offsetWidth,u.style.width=o.length*s+"px";for(var n=o.length;n--;){var r=o[n];r.style.width=s+"px",r.setAttribute("data-index",n),i.transitions&&(r.style.left=n*-s+"px",x(n,l>n?-s:ll?t:l)-p-1),s*c,0);t=b(t),x(l,s*c,n||f),x(t,0,n||f),e.continuous&&x(b(t-c),-s*c,0)}else t=b(t),function(t,n,r){if(r)var i=+new Date,a=setInterval(function(){var s=+new Date-i;if(s>r)return u.style.left=n+"px",d&&k(),e.transitionEnd&&e.transitionEnd.call(event,l,o[l]),void clearInterval(a);u.style.left=(n-t)*(Math.floor(s/r*100)/100)+t+"px"},4);else u.style.left=n+"px"}(l*-s,t*-s,n||f);l=t,r(e.callback&&e.callback(l,o[l]))}}function x(t,e,n){S(t,e,n),a[t]=e}function S(t,e,n){var r=o[t],i=r&&r.style;i&&(i.webkitTransitionDuration=i.MozTransitionDuration=i.msTransitionDuration=i.OTransitionDuration=i.transitionDuration=n+"ms",i.webkitTransform="translate("+e+"px,0)translateZ(0)",i.msTransform=i.MozTransform=i.OTransform="translateX("+e+"px)")}function k(){h=setTimeout(_,d)}function C(){d=0,clearTimeout(h)}}},wxAW:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("C4MV"),o=(r=i)&&r.__esModule?r:{default:r};e.default=function(){function t(t,e){for(var n=0;n22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},x9zv:function(t,e,n){var r=n("Y1aA"),i=n("fU25"),o=n("PHqh"),a=n("s4j0"),s=n("WBcL"),c=n("xZa+"),u=Object.getOwnPropertyDescriptor;e.f=n("bUqO")?u:function(t,e){if(t=o(t),e=a(e,!0),c)try{return u(t,e)}catch(t){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},xAdt:function(t,e,n){"use strict";var r=n("oeih"),i=n("/whu");t.exports=function(t){var e=String(i(this)),n="",o=r(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(n+=e);return n}},xCpI:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("FryR"),o=n("s4j0"),a=n("KOrd"),s=n("x9zv").f;n("bUqO")&&r(r.P+n("dm6P"),"Object",{__lookupGetter__:function(t){var e,n=i(this),r=o(t,!0);do{if(e=s(n,r))return e.get}while(n=a(n))}})},xGkn:function(t,e,n){"use strict";var r=n("4mcu"),i=n("EGZi"),o=n("/bQp"),a=n("TcQ7");t.exports=n("vIB/")(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},"xH/j":function(t,e,n){var r=n("hJx8");t.exports=function(t,e,n){for(var i in e)n&&t[i]?t[i]=e[i]:r(t,i,e[i]);return t}},xLtR:function(t,e,n){"use strict";var r=n("cGG2"),i=n("TNV1"),o=n("pBtG"),a=n("KCLY"),s=n("dIwP"),c=n("qRfI");function u(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return u(t),t.baseURL&&!s(t.url)&&(t.url=c(t.baseURL,t.url)),t.headers=t.headers||{},t.data=i(t.data,t.headers,t.transformRequest),t.headers=r.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||a.adapter)(t).then(function(e){return u(t),e.data=i(e.data,e.headers,t.transformResponse),e},function(e){return o(e)||(u(t),e&&e.response&&(e.response.data=i(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},xMpm:function(t,e,n){"use strict";var r=n("Ds5P"),i=n("bSML");r(r.S+r.F*n("zgIt")(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},xONB:function(t,e,n){var r=n("Ds5P");r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},xQ6e:function(t,e){function n(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function r(t,e,r,i,o,a){return n((s=n(n(e,t),n(i,a)))<<(c=o)|s>>>32-c,r);var s,c}function i(t,e,n,i,o,a,s){return r(e&n|~e&i,t,e,o,a,s)}function o(t,e,n,i,o,a,s){return r(e&i|n&~i,t,e,o,a,s)}function a(t,e,n,i,o,a,s){return r(e^n^i,t,e,o,a,s)}function s(t,e,n,i,o,a,s){return r(n^(e|~i),t,e,o,a,s)}function c(t){for(var e=1732584193,r=-271733879,c=-1732584194,u=271733878,l=0;l>2]>>n%4*8+4&15)+"0123456789abcdef".charAt(t[n>>2]>>n%4*8&15);return e}function l(t){for(var e=1+(t.length+8>>6),n=new Array(16*e),r=0;r<16*e;r++)n[r]=0;for(r=0;r>2]|=(255&t.charCodeAt(r))<>2]|=128<"+i+""};t.exports=function(t,e){var n={};n[t]=e(s),r(r.P+r.F*i(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},y9m4:function(t,e,n){"use strict";var r,i,o,a,s=n("V3l/"),c=n("OzIq"),u=n("rFzY"),l=n("wC1N"),f=n("Ds5P"),h=n("UKM+"),p=n("XSOZ"),d=n("9GpA"),v=n("vmSO"),m=n("7O1s"),y=n("Sejc").set,g=n("g36u")(),_=n("w6Dh"),b=n("SDXa"),w=n("41xE"),x=n("nphH"),S=c.TypeError,k=c.process,C=k&&k.versions,T=C&&C.v8||"",E=c.Promise,O="process"==l(k),A=function(){},P=i=_.f,M=!!function(){try{var t=E.resolve(1),e=(t.constructor={})[n("kkCw")("species")]=function(t){t(A,A)};return(O||"function"==typeof PromiseRejectionEvent)&&t.then(A)instanceof e&&0!==T.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(t){}}(),j=function(t){var e;return!(!h(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;g(function(){for(var r=t._v,i=1==t._s,o=0,a=function(e){var n,o,a,s=i?e.ok:e.fail,c=e.resolve,u=e.reject,l=e.domain;try{s?(i||(2==t._h&&R(t),t._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===e.promise?u(S("Promise-chain cycle")):(o=j(n))?o.call(n,c,u):c(n)):u(r)}catch(t){l&&!a&&l.exit(),u(t)}};n.length>o;)a(n[o++]);t._c=[],t._n=!1,e&&!t._h&&L(t)})}},L=function(t){y.call(c,function(){var e,n,r,i=t._v,o=D(t);if(o&&(e=b(function(){O?k.emit("unhandledRejection",i,t):(n=c.onunhandledrejection)?n({promise:t,reason:i}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",i)}),t._h=O||D(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},D=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){y.call(c,function(){var e;O?k.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=j(t))?g(function(){var r={_w:n,_d:!1};try{e.call(t,u(N,r,1),u(F,r,1))}catch(t){F.call(r,t)}}):(n._v=t,n._s=1,I(n,!1))}catch(t){F.call({_w:n,_d:!1},t)}}};M||(E=function(t){d(this,E,"Promise","_h"),p(t),r.call(this);try{t(u(N,this,1),u(F,this,1))}catch(t){F.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("A16L")(E.prototype,{then:function(t,e){var n=P(m(this,E));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=O?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=u(N,t,1),this.reject=u(F,t,1)},_.f=P=function(t){return t===E||t===a?new o(t):i(t)}),f(f.G+f.W+f.F*!M,{Promise:E}),n("yYvK")(E,"Promise"),n("CEne")("Promise"),a=n("7gX0").Promise,f(f.S+f.F*!M,"Promise",{reject:function(t){var e=P(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(s||!M),"Promise",{resolve:function(t){return x(s&&this===a?E:this,t)}}),f(f.S+f.F*!(M&&n("qkyc")(function(t){E.all(t).catch(A)})),"Promise",{all:function(t){var e=this,n=P(e),r=n.resolve,i=n.reject,o=b(function(){var n=[],o=0,a=1;v(t,!1,function(t){var s=o++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},i)}),--a||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,i=b(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},yAnQ:function(t,e,n){var r;!function(){var i=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)},o=function(){var t={},e=document.createElement("div").style,n=function(){for(var t=["t","webkitT","MozT","msT","OT"],n=0,r=t.length;n0&&(a=i?i/2.5*(u/8):0,s=(c=Math.abs(t)+a)/u),{destination:Math.round(a),duration:s}};var i=r("transform");return t.extend(t,{hasTransform:!1!==i,hasPerspective:r("perspective")in e,hasTouch:"ontouchstart"in window,hasPointer:!(!window.PointerEvent&&!window.MSPointerEvent),hasTransition:r("transition")in e}),t.isBadAndroid=function(){var t=window.navigator.appVersion;if(/Android/.test(t)&&!/Chrome\/\d/.test(t)){var e=t.match(/Safari\/(\d+.\d)/);return!(e&&"object"==typeof e&&e.length>=2)||parseFloat(e[1])<535.19}return!1}(),t.extend(t.style={},{transform:i,transitionTimingFunction:r("transitionTimingFunction"),transitionDuration:r("transitionDuration"),transitionDelay:r("transitionDelay"),transformOrigin:r("transformOrigin")}),t.hasClass=function(t,e){return new RegExp("(^|\\s)"+e+"(\\s|$)").test(t.className)},t.addClass=function(e,n){if(!t.hasClass(e,n)){var r=e.className.split(" ");r.push(n),e.className=r.join(" ")}},t.removeClass=function(e,n){if(t.hasClass(e,n)){var r=new RegExp("(^|\\s)"+n+"(\\s|$)","g");e.className=e.className.replace(r," ")}},t.offset=function(t){for(var e=-t.offsetLeft,n=-t.offsetTop;t=t.offsetParent;)e-=t.offsetLeft,n-=t.offsetTop;return{left:e,top:n}},t.preventDefaultException=function(t,e){for(var n in e)if(e[n].test(t[n]))return!0;return!1},t.extend(t.eventType={},{touchstart:1,touchmove:1,touchend:1,mousedown:2,mousemove:2,mouseup:2,pointerdown:3,pointermove:3,pointerup:3,MSPointerDown:3,MSPointerMove:3,MSPointerUp:3}),t.extend(t.ease={},{quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(t){return t*(2-t)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(t){return Math.sqrt(1- --t*t)}},back:{style:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fn:function(t){return(t-=1)*t*(5*t+4)+1}},bounce:{style:"",fn:function(t){return(t/=1)<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}},elastic:{style:"",fn:function(t){return 0===t?0:1==t?1:.4*Math.pow(2,-10*t)*Math.sin((t-.055)*(2*Math.PI)/.22)+1}}}),t.tap=function(t,e){var n=document.createEvent("Event");n.initEvent(e,!0,!0),n.pageX=t.pageX,n.pageY=t.pageY,t.target.dispatchEvent(n)},t.click=function(t){var e,n=t.target;/(SELECT|INPUT|TEXTAREA)/i.test(n.tagName)||((e=document.createEvent(window.MouseEvent?"MouseEvents":"Event")).initEvent("click",!0,!0),e.view=t.view||window,e.detail=1,e.screenX=n.screenX||0,e.screenY=n.screenY||0,e.clientX=n.clientX||0,e.clientY=n.clientY||0,e.ctrlKey=!!t.ctrlKey,e.altKey=!!t.altKey,e.shiftKey=!!t.shiftKey,e.metaKey=!!t.metaKey,e.button=0,e.relatedTarget=null,e._constructed=!0,n.dispatchEvent(e))},t}();function a(t,e){for(var n in this.wrapper="string"==typeof t?document.querySelector(t):t,this.scroller=this.wrapper.children[0],this.scrollerStyle=this.scroller.style,this.options={disablePointer:!0,disableTouch:!o.hasTouch,disableMouse:o.hasTouch,startX:0,startY:0,scrollY:!0,directionLockThreshold:5,momentum:!0,bounce:!0,bounceTime:600,bounceEasing:"",preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT)$/},HWCompositing:!0,useTransition:!0,useTransform:!0,bindToWrapper:void 0===window.onmousedown},e)this.options[n]=e[n];this.translateZ=this.options.HWCompositing&&o.hasPerspective?" translateZ(0)":"",this.options.useTransition=o.hasTransition&&this.options.useTransition,this.options.useTransform=o.hasTransform&&this.options.useTransform,this.options.eventPassthrough=!0===this.options.eventPassthrough?"vertical":this.options.eventPassthrough,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollY="vertical"!=this.options.eventPassthrough&&this.options.scrollY,this.options.scrollX="horizontal"!=this.options.eventPassthrough&&this.options.scrollX,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,this.options.bounceEasing="string"==typeof this.options.bounceEasing?o.ease[this.options.bounceEasing]||o.ease.circular:this.options.bounceEasing,this.options.resizePolling=void 0===this.options.resizePolling?60:this.options.resizePolling,!0===this.options.tap&&(this.options.tap="tap"),this.options.useTransition||this.options.useTransform||/relative|absolute/i.test(this.scrollerStyle.position)||(this.scrollerStyle.position="relative"),"scale"==this.options.shrinkScrollbars&&(this.options.useTransition=!1),this.options.invertWheelDirection=this.options.invertWheelDirection?-1:1,3==this.options.probeType&&(this.options.useTransition=!1),this.x=0,this.y=0,this.directionX=0,this.directionY=0,this._events={},this._init(),this.refresh(),this.scrollTo(this.options.startX,this.options.startY),this.enable()}a.prototype={version:"1.0.0",_init:function(){this._initEvents()},destroy:function(){this._initEvents(!0),clearTimeout(this.resizeTimeout),this.resizeTimeout=null,this._execEvent("destroy")},_transitionEnd:function(t){t.target==this.scroller&&this.isInTransition&&(this._transitionTime(),this.resetPosition(this.options.bounceTime)||(this.isInTransition=!1,this._execEvent("scrollEnd")))},_start:function(t){if(1!=o.eventType[t.type]&&0!==(t.which?t.button:t.button<2?0:4==t.button?1:2))return;if(this.enabled&&(!this.initiated||o.eventType[t.type]===this.initiated)){!this.options.preventDefault||o.isBadAndroid||o.preventDefaultException(t.target,this.options.preventDefaultException)||t.preventDefault();var e,n=t.touches?t.touches[0]:t;this.initiated=o.eventType[t.type],this.moved=!1,this.distX=0,this.distY=0,this.directionX=0,this.directionY=0,this.directionLocked=0,this.startTime=o.getTime(),this.options.useTransition&&this.isInTransition?(this._transitionTime(),this.isInTransition=!1,e=this.getComputedPosition(),this._translate(Math.round(e.x),Math.round(e.y)),this._execEvent("scrollEnd")):!this.options.useTransition&&this.isAnimating&&(this.isAnimating=!1,this._execEvent("scrollEnd")),this.startX=this.x,this.startY=this.y,this.absStartX=this.x,this.absStartY=this.y,this.pointX=n.pageX,this.pointY=n.pageY,this._execEvent("beforeScrollStart")}},_move:function(t){if(this.enabled&&o.eventType[t.type]===this.initiated){this.options.preventDefault;var e,n,r,i,a=t.touches?t.touches[0]:t,s=a.pageX-this.pointX,c=a.pageY-this.pointY,u=o.getTime();if(this.pointX=a.pageX,this.pointY=a.pageY,this.distX+=s,this.distY+=c,r=Math.abs(this.distX),i=Math.abs(this.distY),!(u-this.endTime>300&&r<10&&i<10)){if(this.directionLocked||this.options.freeScroll||(r>i+this.options.directionLockThreshold?this.directionLocked="h":i>=r+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"==this.directionLocked){if("vertical"==this.options.eventPassthrough)t.preventDefault();else if("horizontal"==this.options.eventPassthrough)return void(this.initiated=!1);c=0}else if("v"==this.directionLocked){if("horizontal"==this.options.eventPassthrough)t.preventDefault();else if("vertical"==this.options.eventPassthrough)return void(this.initiated=!1);s=0}s=this.hasHorizontalScroll?s:0,c=this.hasVerticalScroll?c:0,e=this.x+s,n=this.y+c,(e>0||e0?0:this.maxScrollX),(n>0||n0?0:this.maxScrollY),this.directionX=s>0?-1:s<0?1:0,this.directionY=c>0?-1:c<0?1:0,this.moved||this._execEvent("scrollStart"),this.moved=!0,this._translate(e,n),u-this.startTime>300&&(this.startTime=u,this.startX=this.x,this.startY=this.y,1==this.options.probeType&&this._execEvent("scroll")),this.options.probeType>1&&this._execEvent("scroll")}}},_end:function(t){if(this.enabled&&o.eventType[t.type]===this.initiated){this.options.preventDefault&&!o.preventDefaultException(t.target,this.options.preventDefaultException)&&t.preventDefault();t.changedTouches&&t.changedTouches[0];var e,n,r=o.getTime()-this.startTime,i=Math.round(this.x),a=Math.round(this.y),s=Math.abs(i-this.startX),c=Math.abs(a-this.startY),u=0,l="";if(this.isInTransition=0,this.initiated=0,this.endTime=o.getTime(),!this.resetPosition(this.options.bounceTime)){if(this.scrollTo(i,a),!this.moved)return this.options.tap&&o.tap(t,this.options.tap),this.options.click&&o.click(t),void this._execEvent("scrollCancel");if(this._events.flick&&r<200&&s<100&&c<100)this._execEvent("flick");else{if(this.options.momentum&&r<300&&(e=this.hasHorizontalScroll?o.momentum(this.x,this.startX,r,this.maxScrollX,this.options.bounce?this.wrapperWidth:0,this.options.deceleration):{destination:i,duration:0},n=this.hasVerticalScroll?o.momentum(this.y,this.startY,r,this.maxScrollY,this.options.bounce?this.wrapperHeight:0,this.options.deceleration):{destination:a,duration:0},i=e.destination,a=n.destination,u=Math.max(e.duration,n.duration),this.isInTransition=1),this.options.snap){var f=this._nearestSnap(i,a);this.currentPage=f,u=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(i-f.x),1e3),Math.min(Math.abs(a-f.y),1e3)),300),i=f.x,a=f.y,this.directionX=0,this.directionY=0,l=this.options.bounceEasing}if(i!=this.x||a!=this.y)return(i>0||i0||a0?e=0:this.x0?n=0:this.y-1&&this._events[t].splice(n,1)}},_execEvent:function(t){if(this._events[t]){var e=0,n=this._events[t].length;if(n)for(;e0;var i=this.options.useTransition&&r.style;!n||i?(i&&(this._transitionTimingFunction(r.style),this._transitionTime(n)),this._translate(t,e)):this._animate(t,e,n,r.fn)},scrollToElement:function(t,e,n,r,i){if(t=t.nodeType?t:this.scroller.querySelector(t)){var a=o.offset(t);a.left-=this.wrapperOffset.left,a.top-=this.wrapperOffset.top,!0===n&&(n=Math.round(t.offsetWidth/2-this.wrapper.offsetWidth/2)),!0===r&&(r=Math.round(t.offsetHeight/2-this.wrapper.offsetHeight/2)),a.left-=n||0,a.top-=r||0,a.left=a.left>0?0:a.left0?0:a.top=l)return a.isAnimating=!1,a._translate(t,e),void(a.resetPosition(a.options.bounceTime)||a._execEvent("scrollEnd"));d=r(v=(v-u)/n),h=(t-s)*d+s,p=(e-c)*d+c,a._translate(h,p),a.isAnimating&&i(f),3==a.options.probeType&&a._execEvent("scroll")}()},handleEvent:function(t){switch(t.type){case"touchstart":case"pointerdown":case"MSPointerDown":case"mousedown":this._start(t);break;case"touchmove":case"pointermove":case"MSPointerMove":case"mousemove":this._move(t);break;case"touchend":case"pointerup":case"MSPointerUp":case"mouseup":case"touchcancel":case"pointercancel":case"MSPointerCancel":case"mousecancel":this._end(t);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(t);break;case"click":this.enabled&&!t._constructed&&(t.preventDefault(),t.stopPropagation())}}},a.utils=o;var s={isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isFunction:function(t){return"function"==typeof t},attrToData:function(t,e){var n={};for(var r in t.dataset)n[r]=t.dataset[r];return n.dom=t,n.atindex=e,n},attrToHtml:function(t){var e="";for(var n in t)e+="data-"+n+'="'+t[n]+'"';return e}};function c(t,e){if(!(this instanceof c))return new c(t,e);this.html=t,this.opts=e;var n=document.createElement("div");n.className="olay";var r=document.createElement("div");r.className="layer",this.el=n,this.layer_el=r,this.init()}function u(t,e,n){if(!s.isArray(e)||0===e.length)throw new TypeError("the data must be a non-empty array!");if(-1==[1,2,3,4,5,6].indexOf(t))throw new RangeError("the level parameter must be one of 1,2,3,4,5,6!");this.data=e,this.level=t||1,this.options=n,this.typeBox="one-level-box",1===this.level?this.typeBox="one-level-box":2===this.level?this.typeBox="two-level-box":3===this.level?this.typeBox="three-level-box":4===this.level?this.typeBox="four-level-box":5===this.level?this.typeBox="five-level-box":6===this.level&&(this.typeBox="six-level-box"),this.title=n.title||"",this.options.itemHeight=n.itemHeight||35,this.options.itemShowCount=-1!==[3,5,7,9].indexOf(n.itemShowCount)?n.itemShowCount:7,this.options.coverArea1Top=Math.floor(this.options.itemShowCount/2),this.options.coverArea2Top=Math.ceil(this.options.itemShowCount/2),this.options.headerHeight=n.headerHeight||44,this.options.relation=s.isArray(this.options.relation)?this.options.relation:[],this.options.oneTwoRelation=this.options.relation[0],this.options.twoThreeRelation=this.options.relation[1],this.options.threeFourRelation=this.options.relation[2],this.options.fourFiveRelation=this.options.relation[3],this.options.fiveSixRelation=this.options.relation[4],"px"!==this.options.cssUnit&&"rem"!==this.options.cssUnit&&(this.options.cssUnit="px");this.selectOneObj={id:this.options.oneLevelId},this.selectTwoObj={id:this.options.twoLevelId},this.selectThreeObj={id:this.options.threeLevelId},this.selectFourObj={id:this.options.fourLevelId},this.selectFiveObj={id:this.options.fiveLevelId},this.selectSixObj={id:this.options.sixLevelId},this.setBase(),this.init()}c.prototype={init:function(){this.layer_el.innerHTML=this.html,this.opts.container&&document.querySelector(this.opts.container)?document.querySelector(this.opts.container).appendChild(this.el):document.body.appendChild(this.el),this.el.appendChild(this.layer_el),this.el.style.height=Math.max(document.documentElement.getBoundingClientRect().height,window.innerHeight),this.opts.className&&(this.el.className+=" "+this.opts.className),this.bindEvent()},bindEvent:function(){var t=this.el.querySelectorAll(".sure"),e=this.el.querySelectorAll(".close"),n=this;this.el.addEventListener("click",function(t){n.close(),n.opts.maskCallback&&n.opts.maskCallback()}),this.layer_el.addEventListener("click",function(t){t.stopPropagation()}),Array.prototype.slice.call(t).forEach(function(t,e){t.addEventListener("click",function(){n.close()})}),Array.prototype.slice.call(e).forEach(function(t,e){t.addEventListener("click",function(){n.close(),n.opts.fallback&&n.opts.fallback()})})},close:function(){var t=this;t.el&&(t.opts.showAnimate?(t.el.className+=" fadeOutDown",setTimeout(function(){t.removeDom()},500)):t.removeDom())},removeDom:function(){this.el.parentNode.removeChild(this.el),this.el=null,document.documentElement.classList.contains("ios-select-body-class")&&document.documentElement.classList.remove("ios-select-body-class")}},u.prototype={init:function(){this.initLayer(),this.setLevelData(1,this.options.oneLevelId,this.options.twoLevelId,this.options.threeLevelId,this.options.fourLevelId,this.options.fiveLevelId,this.options.sixLevelId)},initLayer:function(){var t=this,e=this.options.sureText||"纭畾",n=this.options.closeText||"鍙栨秷",r=this.options.headerHeight+this.options.cssUnit,i=['

    ',''+n+"",''+e+"",'

    ',"
    ",'
    ','
    ','
      ',"
    ","
    ",'
    ','
      ',"
    ","
    ",'
    ','
      ',"
    ","
    ",'
    ','
      ',"
    ","
    ",'
    ','
      ',"
    ","
    ",'
    ','
      ',"
    ","
    ","
    ",'
    ','
    ','
    ','
    ',"
    "].join("\r\n");this.iosSelectLayer=new c(i,{className:"ios-select-widget-box "+this.typeBox+(this.options.addClassName?" "+this.options.addClassName:"")+(this.options.showAnimate?" fadeInUp":""),container:this.options.container||"",showAnimate:this.options.showAnimate,fallback:this.options.fallback,maskCallback:this.options.maskCallback}),this.iosSelectTitleDom=this.iosSelectLayer.el.querySelector("#iosSelectTitle"),this.iosSelectLoadingBoxDom=this.iosSelectLayer.el.querySelector("#iosSelectLoadingBox"),this.iosSelectTitleDom.innerHTML=this.title,this.options.headerHeight&&this.options.itemHeight&&(this.coverArea1Dom=this.iosSelectLayer.el.querySelector(".cover-area1"),this.coverArea1Dom.style.top=this.options.headerHeight+this.options.itemHeight*this.options.coverArea1Top+this.options.cssUnit,this.coverArea2Dom=this.iosSelectLayer.el.querySelector(".cover-area2"),this.coverArea2Dom.style.top=this.options.headerHeight+this.options.itemHeight*this.options.coverArea2Top+this.options.cssUnit),this.oneLevelContainDom=this.iosSelectLayer.el.querySelector("#oneLevelContain"),this.twoLevelContainDom=this.iosSelectLayer.el.querySelector("#twoLevelContain"),this.threeLevelContainDom=this.iosSelectLayer.el.querySelector("#threeLevelContain"),this.fourLevelContainDom=this.iosSelectLayer.el.querySelector("#fourLevelContain"),this.fiveLevelContainDom=this.iosSelectLayer.el.querySelector("#fiveLevelContain"),this.sixLevelContainDom=this.iosSelectLayer.el.querySelector("#sixLevelContain"),this.oneLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-one-level"),this.twoLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-two-level"),this.threeLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-three-level"),this.fourLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-four-level"),this.fiveLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-five-level"),this.sixLevelUlContainDom=this.iosSelectLayer.el.querySelector(".select-six-level"),this.iosSelectLayer.el.querySelector(".layer").style.height=this.options.itemHeight*this.options.itemShowCount+this.options.headerHeight+this.options.cssUnit,this.oneLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,document.documentElement.classList.add("ios-select-body-class"),this.scrollOne=new a("#oneLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollOne,1),this.level>=2&&(this.twoLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollTwo=new a("#twoLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollTwo,2)),this.level>=3&&(this.threeLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollThree=new a("#threeLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollThree,3)),this.level>=4&&(this.fourLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollFour=new a("#fourLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollFour,4)),this.level>=5&&(this.fiveLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollFive=new a("#fiveLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollFive,5)),this.level>=6&&(this.sixLevelContainDom.style.height=this.options.itemHeight*this.options.itemShowCount+this.options.cssUnit,this.scrollSix=new a("#sixLevelContain",{probeType:3,bounce:!1}),this.setScorllEvent(this.scrollSix,6)),this.selectBtnDom=this.iosSelectLayer.el.querySelector(".sure"),this.selectBtnDom.addEventListener("click",function(e){t.options.callback&&t.options.callback(t.selectOneObj,t.selectTwoObj,t.selectThreeObj,t.selectFourObj,t.selectFiveObj,t.selectSixObj)})},mapKeyByIndex:function(t){var e={index:1,levelContain:this.oneLevelContainDom,relation:this.options.oneTwoRelation};return 2===t?e={index:2,levelContain:this.twoLevelContainDom,relation:this.options.twoThreeRelation}:3===t?e={index:3,levelContain:this.threeLevelContainDom,relation:this.options.threeFourRelation}:4===t?e={index:4,levelContain:this.fourLevelContainDom,relation:this.options.fourFiveRelation}:5===t?e={index:5,levelContain:this.fiveLevelContainDom,relation:this.options.fiveSixRelation}:6===t&&(e={index:6,levelContain:this.sixLevelContainDom,relation:0}),e},setScorllEvent:function(t,e){var n=this,r=n.mapKeyByIndex(e);t.on("scrollStart",function(){n.toggleClassList(r.levelContain)}),t.on("scroll",function(){if(!isNaN(this.y)){var t,e=Math.abs(this.y/n.baseSize)/n.options.itemHeight;t=Math.round(e)+1,n.toggleClassList(r.levelContain),n.changeClassName(r.levelContain,t)}}),t.on("scrollEnd",function(){var i=Math.abs(this.y/n.baseSize)/n.options.itemHeight,o=1,a=0;Math.ceil(i)===Math.round(i)?(a=Math.ceil(i)*n.options.itemHeight*n.baseSize,o=Math.ceil(i)+1):(a=Math.floor(i)*n.options.itemHeight*n.baseSize,o=Math.floor(i)+1),t.scrollTo(0,-a,0),n.toggleClassList(r.levelContain);var c=n.changeClassName(r.levelContain,o),u=s.attrToData(c,o);n.setSelectObj(e,u),n.level>e&&(1===r.relation&&s.isArray(n.data[e])||s.isFunction(n.data[e]))&&n.setLevelData(e+1,n.selectOneObj.id,n.selectTwoObj.id,n.selectThreeObj.id,n.selectFourObj.id,n.selectFiveObj.id,n.selectSixObj.id)}),t.on("scrollCancel",function(){var i=Math.abs(this.y/n.baseSize)/n.options.itemHeight,o=1,a=0;Math.ceil(i)===Math.round(i)?(a=Math.ceil(i)*n.options.itemHeight*n.baseSize,o=Math.ceil(i)+1):(a=Math.floor(i)*n.options.itemHeight*n.baseSize,o=Math.floor(i)+1),t.scrollTo(0,-a,0),n.toggleClassList(r.levelContain);var c=n.changeClassName(r.levelContain,o),u=s.attrToData(c,o);n.setSelectObj(e,u),n.level>e&&(1===r.relation&&s.isArray(n.data[e])||s.isFunction(n.data[e]))&&n.setLevelData(e+1,n.selectOneObj.id,n.selectTwoObj.id,n.selectThreeObj.id,n.selectFourObj.id,n.selectFiveObj.id,n.selectSixObj.id)})},loadingShow:function(){this.options.showLoading&&(this.iosSelectLoadingBoxDom.style.display="block")},loadingHide:function(){this.iosSelectLoadingBoxDom.style.display="none"},mapRenderByIndex:function(t){var e={index:1,relation:0,levelUlContainDom:this.oneLevelUlContainDom,scrollInstance:this.scrollOne,levelContainDom:this.oneLevelContainDom};return 2===t?e={index:2,relation:this.options.oneTwoRelation,levelUlContainDom:this.twoLevelUlContainDom,scrollInstance:this.scrollTwo,levelContainDom:this.twoLevelContainDom}:3===t?e={index:3,relation:this.options.twoThreeRelation,levelUlContainDom:this.threeLevelUlContainDom,scrollInstance:this.scrollThree,levelContainDom:this.threeLevelContainDom}:4===t?e={index:4,relation:this.options.threeFourRelation,levelUlContainDom:this.fourLevelUlContainDom,scrollInstance:this.scrollFour,levelContainDom:this.fourLevelContainDom}:5===t?e={index:5,relation:this.options.fourFiveRelation,levelUlContainDom:this.fiveLevelUlContainDom,scrollInstance:this.scrollFive,levelContainDom:this.fiveLevelContainDom}:6===t&&(e={index:6,relation:this.options.fiveSixRelation,levelUlContainDom:this.sixLevelUlContainDom,scrollInstance:this.scrollSix,levelContainDom:this.sixLevelContainDom}),e},getLevelData:function(t,e,n,r,i,o){var a=[],s=this.mapRenderByIndex(t);if(1===t)a=this.data[0];else if(1===s.relation){var c=arguments[t-1];this.data[t-1].forEach(function(t,e,n){t.parentId==c&&a.push(t)})}else a=this.data[t-1];return a},setLevelData:function(t,e,n,r,i,o,a){if(s.isArray(this.data[t-1])){var c=this.getLevelData(t,e,n,r,i);this.renderLevel(t,e,n,r,i,o,a,c)}else{if(!s.isFunction(this.data[t-1]))throw new Error("data format error");this.loadingShow(),this.data[t-1].apply(this,[e,n,r,i,o].slice(0,t-1).concat(function(s){this.loadingHide(),this.renderLevel(t,e,n,r,i,o,a,s)}.bind(this)))}},renderLevel:function(t,e,n,r,i,o,a,c){var u=0,l=arguments[t];c.some(function(t,e,n){return t.id==l})||(l=c[0].id);var f="",h=this.options.itemHeight+this.options.cssUnit;f+=this.getWhiteItem(),c.forEach(function(t,e,n){t.id==l?(f+='
  • '+t.value+"
  • ",u=e+1):f+='
  • "+t.value+"
  • "}),f+=this.getWhiteItem();var p=this.mapRenderByIndex(t);p.levelUlContainDom.innerHTML=f,p.scrollInstance.refresh(),p.scrollInstance.scrollToElement(":nth-child("+u+")",0);var d=this.changeClassName(p.levelContainDom,u),v=s.attrToData(d,u);this.setSelectObj(t,v),this.level>t&&this.setLevelData(t+1,this.selectOneObj.id,this.selectTwoObj.id,this.selectThreeObj.id,this.selectFourObj.id,this.selectFiveObj.id,this.selectSixObj.id)},setSelectObj:function(t,e){1===t?this.selectOneObj=e:2===t?this.selectTwoObj=e:3===t?this.selectThreeObj=e:4===t?this.selectFourObj=e:5===t?this.selectFiveObj=e:6===t&&(this.selectSixObj=e)},getWhiteItem:function(){var t="",e=this.options.itemHeight+this.options.cssUnit,n='
  • ';return t+=n,this.options.itemShowCount>3&&(t+=n),this.options.itemShowCount>5&&(t+=n),this.options.itemShowCount>7&&(t+=n),t},changeClassName:function(t,e){var n;return 3===this.options.itemShowCount?(n=t.querySelector("li:nth-child("+(e+1)+")")).classList.add("at"):5===this.options.itemShowCount?((n=t.querySelector("li:nth-child("+(e+2)+")")).classList.add("at"),t.querySelector("li:nth-child("+(e+1)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+3)+")").classList.add("side1")):7===this.options.itemShowCount?((n=t.querySelector("li:nth-child("+(e+3)+")")).classList.add("at"),t.querySelector("li:nth-child("+(e+2)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+1)+")").classList.add("side2"),t.querySelector("li:nth-child("+(e+4)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+5)+")").classList.add("side2")):9===this.options.itemShowCount&&((n=t.querySelector("li:nth-child("+(e+4)+")")).classList.add("at"),t.querySelector("li:nth-child("+(e+3)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+2)+")").classList.add("side2"),t.querySelector("li:nth-child("+(e+5)+")").classList.add("side1"),t.querySelector("li:nth-child("+(e+6)+")").classList.add("side2")),n},setBase:function(){if("rem"===this.options.cssUnit){var t=document.documentElement,e=window.getComputedStyle(t,null).fontSize;try{this.baseSize=/\d+(?:\.\d+)?/.exec(e)[0]}catch(t){this.baseSize=1}}else this.baseSize=1},toggleClassList:function(t){Array.prototype.slice.call(t.querySelectorAll("li")).forEach(function(t){t.classList.contains("at")?t.classList.remove("at"):t.classList.contains("side1")?t.classList.remove("side1"):t.classList.contains("side2")&&t.classList.remove("side2")})}},void 0!==t&&t.exports?t.exports=u:void 0===(r=function(){return u}.call(e,n,e,t))||(t.exports=r)}()},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},yEsh:function(t,e,n){"use strict";e.__esModule=!0;var r=o(n("Zx67")),i=o(n("K6ED"));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function t(e,n,o){null===e&&(e=Function.prototype);var a=(0,i.default)(e,n);if(void 0===a){var s=(0,r.default)(e);return null===s?void 0:t(s,n,o)}if("value"in a)return a.value;var c=a.get;return void 0!==c?c.call(o):void 0}},yJ2x:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.key,a=r.set;r.exp({defineMetadata:function(t,e,n,r){a(t,e,i(n),o(r))}})},yOtE:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.has,a=r.key;r.exp({hasOwnMetadata:function(t,e){return o(t,i(e),arguments.length<3?void 0:a(arguments[2]))}})},yYvK:function(t,e,n){var r=n("lDLk").f,i=n("WBcL"),o=n("kkCw")("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},ydD5:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},yuXV:function(t,e,n){var r=n("Ds5P"),i=n("OzIq").isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},yx1U:function(t,e,n){var r=n("Ds5P"),i=n("x9zv").f,o=n("DIVP");r(r.S,"Reflect",{deleteProperty:function(t,e){var n=i(o(t),e);return!(n&&!n.configurable)&&delete t[e]}})},z4hc:function(t,e,n){var r=n("aCM0"),i=n("Rh28"),o=n("UnEC"),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(t){return o(t)&&i(t.length)&&!!a[r(t)]}},zCYm:function(t,e,n){"use strict";var r=n("FryR"),i=n("zo/l"),o=n("BbyF");t.exports=function(t){for(var e=r(this),n=o(e.length),a=arguments.length,s=i(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,u=void 0===c?n:i(c,n);u>s;)e[s++]=t;return e}},zQR9:function(t,e,n){"use strict";var r=n("h65t")(!0);n("vIB/")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},zZHq:function(t,e,n){var r=n("wCso"),i=n("DIVP"),o=r.get,a=r.key;r.exp({getOwnMetadata:function(t,e){return o(t,i(e),arguments.length<3?void 0:a(arguments[2]))}})},zgIt:function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},zkX4:function(t,e,n){(function(e){!function(e){"use strict";var n,r=Object.prototype,i=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag",u="object"==typeof t,l=e.regeneratorRuntime;if(l)u&&(t.exports=l);else{(l=e.regeneratorRuntime=u?t.exports:{}).wrap=b;var f="suspendedStart",h="suspendedYield",p="executing",d="completed",v={},m={};m[a]=function(){return this};var y=Object.getPrototypeOf,g=y&&y(y(M([])));g&&g!==r&&i.call(g,a)&&(m=g);var _=k.prototype=x.prototype=Object.create(m);S.prototype=_.constructor=k,k.constructor=S,k[c]=S.displayName="GeneratorFunction",l.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===S||"GeneratorFunction"===(e.displayName||e.name))},l.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,k):(t.__proto__=k,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(_),t},l.awrap=function(t){return{__await:t}},C(T.prototype),T.prototype[s]=function(){return this},l.AsyncIterator=T,l.async=function(t,e,n,r){var i=new T(b(t,e,n,r));return l.isGeneratorFunction(e)?i:i.next().then(function(t){return t.done?t.value:i.next()})},C(_),_[c]="Generator",_[a]=function(){return this},_.toString=function(){return"[object Generator]"},l.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},l.values=M,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(A),!t)for(var e in this)"t"===e.charAt(0)&&i.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,i){return s.type="throw",s.arg=t,e.next=r,i&&(e.method="next",e.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;A(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:M(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function b(t,e,n,r){var i=e&&e.prototype instanceof x?e:x,o=Object.create(i.prototype),a=new P(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===d){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=w(t,e,n);if("normal"===c.type){if(r=n.done?d:h,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=d,n.method="throw",n.arg=c.arg)}}}(t,n,a),o}function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function x(){}function S(){}function k(){}function C(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function T(t){function n(e,r,o,a){var s=w(t[e],t,r);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&i.call(u,"__await")?Promise.resolve(u.__await).then(function(t){n("next",t,o,a)},function(t){n("throw",t,o,a)}):Promise.resolve(u).then(function(t){c.value=t,o(c)},a)}a(s.arg)}var r;"object"==typeof e.process&&e.process.domain&&(n=e.process.domain.bind(n)),this._invoke=function(t,e){function i(){return new Promise(function(r,i){n(t,e,r,i)})}return r=r?r.then(i,i):i()}}function E(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,E(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=w(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,v;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function M(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++rf;)void 0!==(n=c(r,e=u[f++]))&&s(l,e,n);return l}})},"zo/l":function(t,e,n){var r=n("oeih"),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},zpVT:function(t,e,n){var r=n("duB3"),i=n("POb3"),o=n("YeCl"),a=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,g=/^(?:body|html)$/i,y=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],w=l.createElement("table"),x=l.createElement("tr"),E={tr:l.createElement("tbody"),tbody:w,thead:w,tfoot:w,td:x,th:x,"*":l.createElement("div")},T=/complete|loaded|interactive/,S=/^[\w-]*$/,j={},C=j.toString,O={},P=l.createElement("div"),A={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},N=Array.isArray||function(t){return t instanceof Array};function M(t){return null==t?String(t):j[C.call(t)]||"object"}function k(t){return"function"==M(t)}function D(t){return null!=t&&t==t.window}function L(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function F(t){return"object"==M(t)}function $(t){return F(t)&&!D(t)&&Object.getPrototypeOf(t)==Object.prototype}function R(t){return"number"==typeof t.length}function _(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in h?h[t]:h[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function z(t,e){return"number"!=typeof e||p[_(t)]?e:e+"px"}function W(t){return"children"in t?u.call(t.children):n.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function I(t,e){var n,i=t?t.length:0;for(n=0;n")),i===t&&(i=d.test(e)&&RegExp.$1),i in E||(i="*"),(s=E[i]).innerHTML=""+e,o=n.each(u.call(s.childNodes),function(){s.removeChild(this)})),$(r)&&(a=n(o),n.each(r,function(t,e){b.indexOf(t)>-1?a[t](e):a.attr(t,e)})),o},O.Z=function(t,e){return new I(t,e)},O.isZ=function(t){return t instanceof O.Z},O.init=function(e,i){var r,o;if(!e)return O.Z();if("string"==typeof e)if("<"==(e=e.trim())[0]&&d.test(e))r=O.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=O.qsa(l,e)}else{if(k(e))return n(l).ready(e);if(O.isZ(e))return e;if(N(e))o=e,r=c.call(o,function(t){return null!=t});else if(F(e))r=[e],e=null;else if(d.test(e))r=O.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=O.qsa(l,e)}}return O.Z(r,e)},(n=function(t,e){return O.init(t,e)}).extend=function(n){var i,r=u.call(arguments,1);return"boolean"==typeof n&&(i=n,n=r.shift()),r.forEach(function(r){!function n(i,r,o){for(e in r)o&&($(r[e])||N(r[e]))?($(r[e])&&!$(i[e])&&(i[e]={}),N(r[e])&&!N(i[e])&&(i[e]=[]),n(i[e],r[e],o)):r[e]!==t&&(i[e]=r[e])}(n,r,i)}),n},O.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],o=i||r?e.slice(1):e,a=S.test(o);return t.getElementById&&a&&i?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:u.call(a&&!i&&t.getElementsByClassName?r?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=l.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},n.type=M,n.isFunction=k,n.isWindow=D,n.isArray=N,n.isPlainObject=$,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},n.camelCase=r,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.noop=function(){},n.map=function(t,e){var i,r,o,a,s=[];if(R(t))for(r=0;r0?n.fn.concat.apply([],a):a},n.each=function(t,e){var n,i;if(R(t)){for(n=0;n=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return a.every.call(this,function(e,n){return!1!==t.call(e,n,e)}),this},filter:function(t){return k(t)?this.not(this.not(t)):n(c.call(this,function(e){return O.matches(e,t)}))},add:function(t,e){return n(o(this.concat(n(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(e){var i=[];if(k(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):R(e)&&k(e.item)?u.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return F(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!F(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!F(t)?t:n(t)},find:function(t){var e=this;return t?"object"==typeof t?n(t).filter(function(){var t=this;return a.some.call(e,function(e){return n.contains(e,t)})}):1==this.length?n(O.qsa(this[0],t)):this.map(function(){return O.qsa(this,t)}):n()},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:O.matches(i,t));)i=i!==e&&!L(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){if((t=t.parentNode)&&!L(t)&&e.indexOf(t)<0)return e.push(t),t});return Z(e,t)},parent:function(t){return Z(o(this.pluck("parentNode")),t)},children:function(t){return Z(this.map(function(){return W(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||u.call(this.childNodes)})},siblings:function(t){return Z(this.map(function(t,e){return c.call(W(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){var t,e,n;"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=(t=this.nodeName,f[t]||(e=l.createElement(t),l.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),f[t]=n),f[t]))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=k(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){var e;for(n(this[0]).before(t=n(t));(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=k(t);return this.each(function(i){var r=n(this),o=r.contents(),a=e?t.call(this,i):t;o.length?o.wrapAll(a):r.append(a)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var i=this.innerHTML;n(this).empty().append(B(this,t,e,i))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=B(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this[0].textContent:null},attr:function(n,i){var r;return"string"!=typeof n||1 in arguments?this.each(function(t){if(1===this.nodeType)if(F(n))for(e in n)V(this,e,n[e]);else V(this,n,B(this,i,t,this.getAttribute(n)))}):this.length&&1===this[0].nodeType?!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:t},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){V(this,t)},this)})},prop:function(t,e){return t=A[t]||t,1 in arguments?this.each(function(n){this[t]=B(this,e,n,this[t])}):this[0]&&this[0][t]},data:function(e,n){var i="data-"+e.replace(y,"-$1").toLowerCase(),r=1 in arguments?this.attr(i,n):this.attr(i);return null!==r?U(r):t},val:function(t){return 0 in arguments?this.each(function(e){this.value=B(this,t,e,this.value)}):this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=B(this,t,e,i.offset()),o=i.offsetParent().offset(),a={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(a.position="relative"),i.css(a)});if(!this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var o,a=this[0];if(!a)return;if(o=getComputedStyle(a,""),"string"==typeof t)return a.style[r(t)]||o.getPropertyValue(t);if(N(t)){var s={};return n.each(t,function(t,e){s[e]=a.style[r(e)]||o.getPropertyValue(e)}),s}}var c="";if("string"==M(t))i||0===i?c=_(t)+":"+z(t,i):this.each(function(){this.style.removeProperty(_(t))});else for(e in t)t[e]||0===t[e]?c+=_(e)+":"+z(e,t[e])+";":this.each(function(){this.style.removeProperty(_(e))});return this.each(function(){this.style.cssText+=";"+c})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,function(t){return this.test(H(t))},q(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){i=[];var r=H(this);B(this,t,e,r).split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&H(this,r+(r?" ":"")+i.join(" "))}}):this},removeClass:function(e){return this.each(function(n){if("className"in this){if(e===t)return H(this,"");i=H(this),B(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),H(this,i.trim())}})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this);B(this,e,r,H(this)).split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=g.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||l.body;t&&!g.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,a=this[0];return r===t?D(a)?a["inner"+i]:L(a)?a.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){(a=n(this)).css(e,B(this,r,t,a[e]()))})}}),["after","prepend","before","append"].forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,r,o=n.map(arguments,function(e){return"object"==(t=M(e))||"array"==t||null==e?e:O.fragment(e)}),a=this.length>1;return o.length<1?this:this.each(function(t,s){r=i?s:s.parentNode,s=0==e?s.nextSibling:1==e?s.firstChild:2==e?s:null;var c=n.contains(l.documentElement,r);o.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!r)return n(t).remove();r.insertBefore(t,s),c&&function t(e,n){n(e);for(var i=0,r=e.childNodes.length;i)<[^<]*)*<\/script>/gi,a=/^(?:text|application)\/javascript/i,s=/^(?:text|application)\/xml/i,c="application/json",u="text/html",l=/^\s*$/,f=r.createElement("a");function h(e,n,i,o){if(e.global)return function(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}(n||r,i,o)}function p(t,e){var n=e.context;if(!1===e.beforeSend.call(n,t,e)||!1===h(e,n,"ajaxBeforeSend",[t,e]))return!1;h(e,n,"ajaxSend",[t,e])}function d(t,e,n,i){var r=n.context;n.success.call(r,t,"success",e),i&&i.resolveWith(r,[t,"success",e]),h(n,r,"ajaxSuccess",[e,n,t]),v("success",e,n)}function m(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),h(i,o,"ajaxError",[n,i,t||e]),v(e,n,i)}function v(e,n,i){var r=i.context;i.complete.call(r,n,e),h(i,r,"ajaxComplete",[n,i]),function(e){e.global&&!--t.active&&h(e,null,"ajaxStop")}(i)}function g(){}function y(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function b(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}f.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var o,a,s=e.jsonpCallback,c=(t.isFunction(s)?s():s)||"jsonp"+ ++i,u=r.createElement("script"),l=window[c],f=function(e){t(u).triggerHandler("error",e||"abort")},h={abort:f};return n&&n.promise(h),t(u).on("load error",function(i,r){clearTimeout(a),t(u).off().remove(),"error"!=i.type&&o?d(o[0],h,e,n):m(null,r||"error",h,e,n),window[c]=l,o&&t.isFunction(l)&&l(o[0]),l=o=void 0}),!1===p(h,e)?(f("abort"),h):(window[c]=function(){o=arguments},u.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),r.head.appendChild(u),e.timeout>0&&(a=setTimeout(function(){f("timeout")},e.timeout)),h)},t.ajaxSettings={type:"GET",beforeSend:g,success:g,error:g,complete:g,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:c,xml:"application/xml, text/xml",html:u,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(i){var o,v,b=t.extend({},i||{}),w=t.Deferred&&t.Deferred();for(e in t.ajaxSettings)void 0===b[e]&&(b[e]=t.ajaxSettings[e]);!function(e){e.global&&0==t.active++&&h(e,null,"ajaxStart")}(b),b.crossDomain||((o=r.createElement("a")).href=b.url,o.href=o.href,b.crossDomain=f.protocol+"//"+f.host!=o.protocol+"//"+o.host),b.url||(b.url=window.location.toString()),(v=b.url.indexOf("#"))>-1&&(b.url=b.url.slice(0,v)),function(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=y(e.url,e.data),e.data=void 0)}(b);var x=b.dataType,E=/\?.+=\?/.test(b.url);if(E&&(x="jsonp"),!1!==b.cache&&(i&&!0===i.cache||"script"!=x&&"jsonp"!=x)||(b.url=y(b.url,"_="+Date.now())),"jsonp"==x)return E||(b.url=y(b.url,b.jsonp?b.jsonp+"=?":!1===b.jsonp?"":"callback=?")),t.ajaxJSONP(b,w);var T,S=b.accepts[x],j={},C=function(t,e){j[t.toLowerCase()]=[t,e]},O=/^([\w-]+:)\/\//.test(b.url)?RegExp.$1:window.location.protocol,P=b.xhr(),A=P.setRequestHeader;if(w&&w.promise(P),b.crossDomain||C("X-Requested-With","XMLHttpRequest"),C("Accept",S||"*/*"),(S=b.mimeType||S)&&(S.indexOf(",")>-1&&(S=S.split(",",2)[0]),P.overrideMimeType&&P.overrideMimeType(S)),(b.contentType||!1!==b.contentType&&b.data&&"GET"!=b.type.toUpperCase())&&C("Content-Type",b.contentType||"application/x-www-form-urlencoded"),b.headers)for(n in b.headers)C(n,b.headers[n]);if(P.setRequestHeader=C,P.onreadystatechange=function(){if(4==P.readyState){P.onreadystatechange=g,clearTimeout(T);var e,n=!1;if(P.status>=200&&P.status<300||304==P.status||0==P.status&&"file:"==O){x=x||((i=b.mimeType||P.getResponseHeader("content-type"))&&(i=i.split(";",2)[0]),i&&(i==u?"html":i==c?"json":a.test(i)?"script":s.test(i)&&"xml")||"text"),e=P.responseText;try{"script"==x?(0,eval)(e):"xml"==x?e=P.responseXML:"json"==x&&(e=l.test(e)?null:t.parseJSON(e))}catch(t){n=t}n?m(n,"parsererror",P,b,w):d(e,P,b,w)}else m(P.statusText||null,P.status?"error":"abort",P,b,w)}var i},!1===p(P,b))return P.abort(),m(null,"abort",P,b,w),P;var N=!("async"in b)||b.async;if(P.open(b.type,b.url,N,b.username,b.password),b.xhrFields)for(n in b.xhrFields)P[n]=b.xhrFields[n];for(n in j)A.apply(P,j[n]);return b.timeout>0&&(T=setTimeout(function(){P.onreadystatechange=g,P.abort(),m(null,"timeout",P,b,w)},b.timeout)),P.send(b.data?b.data:null),P},t.get=function(){return t.ajax(b.apply(null,arguments))},t.post=function(){var e=b.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=b.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var r,a=this,s=e.split(/\s/),c=b(e,n,i),u=c.success;return s.length>1&&(c.url=s[0],r=s[1]),c.success=function(e){a.html(r?t("
    ").html(e.replace(o,"")).find(r):e),u&&u.apply(a,arguments)},t.ajax(c),this};var w=encodeURIComponent;t.param=function(e,n){var i=[];return i.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(w(e)+"="+w(n))},function e(n,i,r,o){var a,s=t.isArray(i),c=t.isPlainObject(i);t.each(i,function(i,u){a=t.type(u),o&&(i=r?o:o+"["+(c||"object"==a||"array"==a?i:"")+"]"),!o&&s?n.add(u.name,u.value):"array"==a||!r&&"object"==a?e(n,u,r,i):n.add(i,u)})}(i,e,n),i.join("&").replace(/%20/g,"+")}}(o),(n=o).fn.serializeArray=function(){var t,e,i=[],r=function(e){if(e.forEach)return e.forEach(r);i.push({name:t,value:e})};return this[0]&&n.each(this[0].elements,function(i,o){e=o.type,(t=o.name)&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=e&&"reset"!=e&&"button"!=e&&"file"!=e&&("radio"!=e&&"checkbox"!=e||o.checked)&&r(n(o).val())}),i},n.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},n.fn.submit=function(t){if(0 in arguments)this.bind("submit",t);else if(this.length){var e=n.Event("submit");this.eq(0).trigger(e),e.isDefaultPrevented()||this.get(0).submit()}return this},function(){try{getComputedStyle(void 0)}catch(e){var t=getComputedStyle;window.getComputedStyle=function(e){try{return t(e)}catch(t){return null}}}}(),function(t){function e(t,e){var n=this.os={},i=this.browser={},r=t.match(/Web[kK]it[\/]{0,1}([\d.]+)/),o=t.match(/(Android);?[\s\/]+([\d.]+)?/),a=!!t.match(/\(Macintosh\; Intel /),s=t.match(/(iPad).*OS\s([\d_]+)/),c=t.match(/(iPod)(.*OS\s([\d_]+))?/),u=!s&&t.match(/(iPhone\sOS)\s([\d_]+)/),l=t.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),f=/Win\d{2}|Windows/.test(e),h=t.match(/Windows Phone ([\d.]+)/),p=l&&t.match(/TouchPad/),d=t.match(/Kindle\/([\d.]+)/),m=t.match(/Silk\/([\d._]+)/),v=t.match(/(BlackBerry).*Version\/([\d.]+)/),g=t.match(/(BB10).*Version\/([\d.]+)/),y=t.match(/(RIM\sTablet\sOS)\s([\d.]+)/),b=t.match(/PlayBook/),w=t.match(/Chrome\/([\d.]+)/)||t.match(/CriOS\/([\d.]+)/),x=t.match(/Firefox\/([\d.]+)/),E=t.match(/\((?:Mobile|Tablet); rv:([\d.]+)\).*Firefox\/[\d.]+/),T=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/[\d](?=[^\?]+).*rv:([0-9.].)/),S=!w&&t.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),j=S||t.match(/Version\/([\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/);(i.webkit=!!r)&&(i.version=r[1]),o&&(n.android=!0,n.version=o[2]),u&&!c&&(n.ios=n.iphone=!0,n.version=u[2].replace(/_/g,".")),s&&(n.ios=n.ipad=!0,n.version=s[2].replace(/_/g,".")),c&&(n.ios=n.ipod=!0,n.version=c[3]?c[3].replace(/_/g,"."):null),h&&(n.wp=!0,n.version=h[1]),l&&(n.webos=!0,n.version=l[2]),p&&(n.touchpad=!0),v&&(n.blackberry=!0,n.version=v[2]),g&&(n.bb10=!0,n.version=g[2]),y&&(n.rimtabletos=!0,n.version=y[2]),b&&(i.playbook=!0),d&&(n.kindle=!0,n.version=d[1]),m&&(i.silk=!0,i.version=m[1]),!m&&n.android&&t.match(/Kindle Fire/)&&(i.silk=!0),w&&(i.chrome=!0,i.version=w[1]),x&&(i.firefox=!0,i.version=x[1]),E&&(n.firefoxos=!0,n.version=E[1]),T&&(i.ie=!0,i.version=T[1]),j&&(a||n.ios||f)&&(i.safari=!0,n.ios||(i.version=j[1])),S&&(i.webview=!0),n.tablet=!!(s||b||o&&!t.match(/Mobile/)||x&&t.match(/Tablet/)||T&&!t.match(/Phone/)&&t.match(/Touch/)),n.phone=!(n.tablet||n.ipod||!(o||u||l||v||g||w&&t.match(/Android/)||w&&t.match(/CriOS\/([\d.]+)/)||x&&t.match(/Mobile/)||T&&t.match(/Touch/)))}e.call(t,navigator.userAgent,navigator.platform),t.__detect=e}(o),function(t,e){var n,i,r,o,a,s,c,u,l,f,h="",p=document.createElement("div"),d=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,m={};function v(t){return n?n+t:t.toLowerCase()}t.each({Webkit:"webkit",Moz:"",O:"o"},function(t,e){if(void 0!==p.style[t+"TransitionProperty"])return h="-"+t.toLowerCase()+"-",n=e,!1}),i=h+"transform",m[r=h+"transition-property"]=m[o=h+"transition-duration"]=m[s=h+"transition-delay"]=m[a=h+"transition-timing-function"]=m[c=h+"animation-name"]=m[u=h+"animation-duration"]=m[f=h+"animation-delay"]=m[l=h+"animation-timing-function"]="",t.fx={off:void 0===n&&void 0===p.style.transitionProperty,speeds:{_default:400,fast:200,slow:600},cssPrefix:h,transitionEnd:v("TransitionEnd"),animationEnd:v("AnimationEnd")},t.fn.animate=function(e,n,i,r,o){return t.isFunction(n)&&(r=n,i=void 0,n=void 0),t.isFunction(i)&&(r=i,i=void 0),t.isPlainObject(n)&&(i=n.easing,r=n.complete,o=n.delay,n=n.duration),n&&(n=("number"==typeof n?n:t.fx.speeds[n]||t.fx.speeds._default)/1e3),o&&(o=parseFloat(o)/1e3),this.anim(e,n,i,r,o)},t.fn.anim=function(e,n,h,p,v){var g,y,b,w={},x="",E=this,T=t.fx.transitionEnd,S=!1;if(void 0===n&&(n=t.fx.speeds._default/1e3),void 0===v&&(v=0),t.fx.off&&(n=0),"string"==typeof e)w[c]=e,w[u]=n+"s",w[f]=v+"s",w[l]=h||"linear",T=t.fx.animationEnd;else{for(g in y=[],e)d.test(g)?x+=g+"("+e[g]+") ":(w[g]=e[g],y.push(g.replace(/([a-z])([A-Z])/,"$1-$2").toLowerCase()));x&&(w[i]=x,y.push(i)),n>0&&"object"==typeof e&&(w[r]=y.join(", "),w[o]=n+"s",w[s]=v+"s",w[a]=h||"linear")}return b=function(e){if(void 0!==e){if(e.target!==e.currentTarget)return;t(e.target).unbind(T,b)}else t(this).unbind(T,b);S=!0,t(this).css(m),p&&p.call(this)},n>0&&(this.bind(T,b),setTimeout(function(){S||b.call(E)},1e3*(n+v)+25)),this.size()&&this.get(0).clientLeft,this.css(w),n<=0&&setTimeout(function(){E.each(function(){b.call(this)})},0),this},p=null}(o),function(t,e){window.document.documentElement;var n=t.fn.show,i=t.fn.hide,r=t.fn.toggle;function o(n,i,r,o,a){"function"!=typeof i||a||(a=i,i=e);var s={opacity:r};return o&&(s.scale=o,n.css(t.fx.cssPrefix+"transform-origin","0 0")),n.animate(s,i,null,a)}function a(e,n,r,a){return o(e,n,0,r,function(){i.call(t(this)),a&&a.call(this)})}t.fn.show=function(t,i){return n.call(this),t===e?t=0:this.css("opacity",0),o(this,t,1,"1,1",i)},t.fn.hide=function(t,n){return t===e?i.call(this):a(this,t,"0,0",n)},t.fn.toggle=function(n,i){return n===e||"boolean"==typeof n?r.call(this,n):this.each(function(){var e=t(this);e["none"==e.css("display")?"show":"hide"](n,i)})},t.fn.fadeTo=function(t,e,n){return o(this,t,e,null,n)},t.fn.fadeIn=function(t,e){var i=this.css("opacity");return i>0?this.css("opacity",0):i=1,n.call(this).fadeTo(t,i,e)},t.fn.fadeOut=function(t,e){return a(this,t,null,e)},t.fn.fadeToggle=function(e,n){return this.each(function(){var i=t(this);i[0==i.css("opacity")||"none"==i.css("display")?"fadeIn":"fadeOut"](e,n)})}}(o),r=[],o.fn.remove=function(){return this.each(function(){this.parentNode&&("IMG"===this.tagName&&(r.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",i&&clearTimeout(i),i=setTimeout(function(){r=[]},6e4)),this.parentNode.removeChild(this))})},function(t){var e={},n=t.fn.data,i=t.camelCase,r=t.expando="Zepto"+ +new Date,o=[];function a(n,a,s){var c=n[r]||(n[r]=++t.uuid),u=e[c]||(e[c]=function(e){var n={};return t.each(e.attributes||o,function(e,r){0==r.name.indexOf("data-")&&(n[i(r.name.replace("data-",""))]=t.zepto.deserializeValue(r.value))}),n}(n));return void 0!==a&&(u[i(a)]=s),u}t.fn.data=function(o,s){return void 0===s?t.isPlainObject(o)?this.each(function(e,n){t.each(o,function(t,e){a(n,t,e)})}):0 in this?function(o,s){var c=o[r],u=c&&e[c];if(void 0===s)return u||a(o);if(u){if(s in u)return u[s];var l=i(s);if(l in u)return u[l]}return n.call(t(o),s)}(this[0],o):void 0:this.each(function(){a(this,o,s)})},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each(function(){var o=this[r],a=o&&e[o];a&&t.each(n||a,function(t){delete a[n?i(this):t]})})},["remove","empty"].forEach(function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}})}(o),function(t){t.Callbacks=function(e){var n,i,r,o,a,s,c=[],u=!(e=t.extend({},e)).once&&[],l=function(t){for(n=e.memory&&t,i=!0,s=o||0,o=0,a=c.length,r=!0;c&&s-1;)c.splice(i,1),r&&(i<=a&&--a,i<=s&&--s)}),this},has:function(e){return!(!c||!(e?t.inArray(e,c)>-1:c.length))},empty:function(){return a=c.length=0,this},disable:function(){return c=u=n=void 0,this},disabled:function(){return!c},lock:function(){return u=void 0,n||f.disable(),this},locked:function(){return!u},fireWith:function(t,e){return!c||i&&!u||(e=[t,(e=e||[]).slice?e.slice():e],r?u.push(e):l(e)),this},fire:function(){return f.fireWith(this,arguments)},fired:function(){return!!i}};return f}}(o),function(t){var e=Array.prototype.slice;function n(e){var i=[["resolve","done",t.Callbacks({once:1,memory:1}),"resolved"],["reject","fail",t.Callbacks({once:1,memory:1}),"rejected"],["notify","progress",t.Callbacks({memory:1})]],r="pending",o={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var e=arguments;return n(function(n){t.each(i,function(i,r){var s=t.isFunction(e[i])&&e[i];a[r[1]](function(){var e=s&&s.apply(this,arguments);if(e&&t.isFunction(e.promise))e.promise().done(n.resolve).fail(n.reject).progress(n.notify);else{var i=this===o?n.promise():this,a=s?[e]:arguments;n[r[0]+"With"](i,a)}})}),e=null}).promise()},promise:function(e){return null!=e?t.extend(e,o):o}},a={};return t.each(i,function(t,e){var n=e[2],s=e[3];o[e[1]]=n.add,s&&n.add(function(){r=s},i[1^t][2].disable,i[2][2].lock),a[e[0]]=function(){return a[e[0]+"With"](this===a?o:this,arguments),this},a[e[0]+"With"]=n.fireWith}),o.promise(a),e&&e.call(a,a),a}t.when=function(i){var r,o,a,s=e.call(arguments),c=s.length,u=0,l=1!==c||i&&t.isFunction(i.promise)?c:0,f=1===l?i:n(),h=function(t,n,i){return function(o){n[t]=this,i[t]=arguments.length>1?e.call(arguments):o,i===r?f.notifyWith(n,i):--l||f.resolveWith(n,i)}};if(c>1)for(r=new Array(c),o=new Array(c),a=new Array(c);u-1)return this},has:function(t,n,i){if(e.qsa(this,i).length)return this}},a=new RegExp("(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*"),s=/^\s*>/,c="Zepto"+ +new Date;function u(t,e){t=t.replace(/=#\]/g,'="#"]');var n,i,r=a.exec(t);if(r&&r[2]in o&&(n=o[r[2]],i=r[3],t=r[1],i)){var s=Number(i);i=isNaN(s)?i.replace(/^["']|["']$/g,""):s}return e(t,n,i)}e.qsa=function(i,r){return u(r,function(r,o,a){try{var u;!r&&o?r="*":s.test(r)&&(u=t(i).addClass(c),r="."+c+" "+r);var l=n(i,r)}catch(t){throw t}finally{u&&u.removeClass(c)}return o?e.uniq(t.map(l,function(t,e){return o.call(t,e,l,a)})):l})},e.matches=function(t,e){return u(e,function(e,n,r){return(!e||i(t,e))&&(!n||n.call(t,null,r)===t)})}}(o),function(t){var e,n,i,r,o,a={};function s(){r=null,a.last&&(a.el&&a.el.trigger("longTap"),a={})}function c(){r&&clearTimeout(r),r=null}function u(){e&&clearTimeout(e),n&&clearTimeout(n),i&&clearTimeout(i),r&&clearTimeout(r),e=n=i=r=null,a={}}function l(t){return("touch"==t.pointerType||t.pointerType==t.MSPOINTER_TYPE_TOUCH)&&t.isPrimary}function f(t,e){return t.type=="pointer"+e||t.type.toLowerCase()=="mspointer"+e}t(document).ready(function(){var h,p,d,m,v=0,g=0;"MSGesture"in window&&((o=new MSGesture).target=document.body),t(document).bind("MSGestureEnd",function(t){var e=t.velocityX>1?"Right":t.velocityX<-1?"Left":t.velocityY>1?"Down":t.velocityY<-1?"Up":null;e&&(a.el&&a.el.trigger("swipe"),a.el&&a.el.trigger("swipe"+e))}).on("touchstart MSPointerDown pointerdown",function(n){(m=f(n,"down"))&&!l(n)||(d=m?n:n.touches[0],n.touches&&1===n.touches.length&&a.x2&&(a.x2=void 0,a.y2=void 0),h=Date.now(),p=h-(a.last||h),a.el=t("tagName"in d.target?d.target:d.target.parentNode),e&&clearTimeout(e),a.x1=d.pageX,a.y1=d.pageY,p>0&&p<=250&&(a.isDoubleTap=!0),a.last=h,r=setTimeout(s,750),o&&m&&o.addPointer(n.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){(m=f(t,"move"))&&!l(t)||(d=m?t:t.touches[0],c(),a.x2=d.pageX,a.y2=d.pageY,v+=Math.abs(a.x1-a.x2),g+=Math.abs(a.y1-a.y2))}).on("touchend MSPointerUp pointerup",function(r){(m=f(r,"up"))&&!l(r)||(c(),a.x2&&Math.abs(a.x1-a.x2)>30||a.y2&&Math.abs(a.y1-a.y2)>30?i=setTimeout(function(){var t,e,n,i;a.el&&a.el.trigger("swipe"),a.el&&a.el.trigger("swipe"+(t=a.x1,e=a.x2,n=a.y1,i=a.y2,Math.abs(t-e)>=Math.abs(n-i)?t-e>0?"Left":"Right":n-i>0?"Up":"Down")),a={}},0):"last"in a&&(v<30&&g<30?n=setTimeout(function(){var n=t.Event("tap");n.cancelTouch=u,a.el&&a.el.trigger(n),a.isDoubleTap?(a.el&&a.el.trigger("doubleTap"),a={}):e=setTimeout(function(){e=null,a.el&&a.el.trigger("singleTap"),a={}},250)},0):a={}),v=g=0)}).on("touchcancel MSPointerCancel pointercancel",u),t(window).on("scroll",u)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(e){t.fn[e]=function(t){return this.on(e,t)}})}(o),function(t){t.fn.end=function(){return this.prevObject||t()},t.fn.andSelf=function(){return this.add(this.prevObject||t())},"filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings".split(",").forEach(function(e){var n=t.fn[e];t.fn[e]=function(){var t=n.apply(this,arguments);return t.prevObject=this,t}})}(o)}}); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/10290.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/10290.webp" new file mode 100644 index 0000000000000000000000000000000000000000..76f004053758d7e86e26a594d2d30d6c1406a60d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/10290.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/11835.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/11835.webp" new file mode 100644 index 0000000000000000000000000000000000000000..bf64c0db8c6fb7a7f3bf0335a9edb08d9db1e942 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/11835.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/12452.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/12452.webp" new file mode 100644 index 0000000000000000000000000000000000000000..6a58c11ebf05a7b2cde30fcbfe30d9d360b961c6 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/12452.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/55163.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/55163.webp" new file mode 100644 index 0000000000000000000000000000000000000000..5d279c92cb57a5b58209b21eb9524f930e4981da Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/55163.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/95287.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/95287.webp" new file mode 100644 index 0000000000000000000000000000000000000000..c20f9b808636c394045bade1eee183239698b9e2 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2051/95287.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/112899.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/112899.webp" new file mode 100644 index 0000000000000000000000000000000000000000..9fd2a750b736d2cd1637462f7ee8324fc6e11387 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/112899.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/136881.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/136881.webp" new file mode 100644 index 0000000000000000000000000000000000000000..66f655fc1a19546c5a49eea3b4cdd3dd9253d408 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/136881.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/170034.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/170034.webp" new file mode 100644 index 0000000000000000000000000000000000000000..cc4437ed770d8d21c85f0041f7d12d8698c62c64 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/170034.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/175126.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/175126.webp" new file mode 100644 index 0000000000000000000000000000000000000000..6a0d6982b916c114efadbbd6ae9cb30953f97dc9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/175126.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/197390.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/197390.webp" new file mode 100644 index 0000000000000000000000000000000000000000..9dca24ac4f5701b366c9632bc71ccfcd15912e56 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\345\245\263\350\243\2052/197390.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/0bb9aa.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/0bb9aa.webp" new file mode 100644 index 0000000000000000000000000000000000000000..4b3fb42e98675424c7630e49996710970a4df4e9 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/0bb9aa.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/105293.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/105293.webp" new file mode 100644 index 0000000000000000000000000000000000000000..d2f1e31f0dd65ce986e02ab3b4aababe70b3bc36 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/105293.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/141038.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/141038.webp" new file mode 100644 index 0000000000000000000000000000000000000000..09f6f55515746e627d31ba10107c04e940201975 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/141038.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/195403.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/195403.webp" new file mode 100644 index 0000000000000000000000000000000000000000..59d6b93359086e7a51fece46013b7e9fad7e27c5 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/195403.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/46004.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/46004.webp" new file mode 100644 index 0000000000000000000000000000000000000000..f8afafb65c88330b689f8479caca9982f55b2344 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/46004.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/5751ae.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/5751ae.webp" new file mode 100644 index 0000000000000000000000000000000000000000..65ba9ce90fed9b2fa0709b4723da5ff056b65fde Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\224\267\350\243\205/5751ae.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/$74`O7E9HMU%MY}TO5GH]KR.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/$74`O7E9HMU%MY}TO5GH]KR.png" new file mode 100644 index 0000000000000000000000000000000000000000..5da4a4a8157d3bf09e8dfe5f086d031b159eb934 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/$74`O7E9HMU%MY}TO5GH]KR.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/0737e.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/0737e.webp" new file mode 100644 index 0000000000000000000000000000000000000000..46f8ac7a8813c4f7a3d3bb35b100d68d8638d3cc Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/0737e.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/15770.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/15770.webp" new file mode 100644 index 0000000000000000000000000000000000000000..86abf234fd089b7ebfc2c2d7c09b0061c450cc7c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/15770.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/15978.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/15978.webp" new file mode 100644 index 0000000000000000000000000000000000000000..07be186aecef491a9231445e0f1d236a3d911383 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/15978.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/16249.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/16249.webp" new file mode 100644 index 0000000000000000000000000000000000000000..6d6f145caf799a2800704b0a393f8c8713cc4e1a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/16249.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/195890.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/195890.webp" new file mode 100644 index 0000000000000000000000000000000000000000..e7d446c4933d65f37b5781f1774032c767d9067b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/195890.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/3bc76.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/3bc76.webp" new file mode 100644 index 0000000000000000000000000000000000000000..10525b5fd30a250a323664a8a79092d01c09c8ef Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/3bc76.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/FD%(}{Z734O11R1}_[`@CIF.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/FD%(}{Z734O11R1}_[`@CIF.png" new file mode 100644 index 0000000000000000000000000000000000000000..152d2b95c3cda1588efac509f4072c18d4632160 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/FD%(}{Z734O11R1}_[`@CIF.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/HI2`5[SB0RB]EKMT9KOU~F1.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/HI2`5[SB0RB]EKMT9KOU~F1.png" new file mode 100644 index 0000000000000000000000000000000000000000..118f46193859b7fe006fd77c13756f9fb11a5d9a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/HI2`5[SB0RB]EKMT9KOU~F1.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/d8211.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/d8211.webp" new file mode 100644 index 0000000000000000000000000000000000000000..953cb7d54331d26d92fa0a44c829599ef3f4e971 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/d8211.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/edfbaa.webp" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/edfbaa.webp" new file mode 100644 index 0000000000000000000000000000000000000000..66f133278cf893f5560896eb793a40dc02d0f6e1 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/edfbaa.webp" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/gougou.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/gougou.png" new file mode 100644 index 0000000000000000000000000000000000000000..66fcb00cee6b664c0f506bb76d738dd82816553c Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/gougou.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/\344\270\213\350\275\275.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/\344\270\213\350\275\275.png" new file mode 100644 index 0000000000000000000000000000000000000000..03b74b36bd6036bc749b76c43273f3ae6e6dd70e Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\347\253\245\350\243\205/\344\270\213\350\275\275.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\350\264\255\347\211\251\350\275\246/\345\256\242\346\234\215.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\350\264\255\347\211\251\350\275\246/\345\256\242\346\234\215.png" new file mode 100644 index 0000000000000000000000000000000000000000..c60dc3879d275220bbb30cbac9916e360b848381 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\350\264\255\347\211\251\350\275\246/\345\256\242\346\234\215.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\350\264\255\347\211\251\350\275\246/\350\264\255\347\211\251\350\275\246.png" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\350\264\255\347\211\251\350\275\246/\350\264\255\347\211\251\350\275\246.png" new file mode 100644 index 0000000000000000000000000000000000000000..cda1f989096369f05926eb91ee1a612365962092 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/assets/\350\264\255\347\211\251\350\275\246/\350\264\255\347\211\251\350\275\246.png" differ diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonfour.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonfour.vue" new file mode 100644 index 0000000000000000000000000000000000000000..6a878f5cd1f042a922cd9e297b097bbddc555e26 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonfour.vue" @@ -0,0 +1,52 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonone.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonone.vue" new file mode 100644 index 0000000000000000000000000000000000000000..fc612a647f5ae841cf8790dd67080b9356e33732 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonone.vue" @@ -0,0 +1,54 @@ + + + + + diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonthree.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonthree.vue" new file mode 100644 index 0000000000000000000000000000000000000000..b840dcf79e2fe88e7cd72ee1b654df20919ee029 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttonthree.vue" @@ -0,0 +1,52 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttontwo.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttontwo.vue" new file mode 100644 index 0000000000000000000000000000000000000000..9457658b63bdb390ae1939e8334aabca5b629c3f --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Buttontwo.vue" @@ -0,0 +1,52 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Centerone.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Centerone.vue" new file mode 100644 index 0000000000000000000000000000000000000000..961cb18d251001ab715ca754475bab1ecbd1ad80 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Centerone.vue" @@ -0,0 +1,233 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Naviction.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Naviction.vue" new file mode 100644 index 0000000000000000000000000000000000000000..6fc034cfb29ec87c92e49dd02eaa0fe1641d6e1b --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Naviction.vue" @@ -0,0 +1,21 @@ + + + + + diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Top.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Top.vue" new file mode 100644 index 0000000000000000000000000000000000000000..eeea1947ff37541313ae57023487774ea98bbf9b --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/components/Top.vue" @@ -0,0 +1,50 @@ + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/main.js" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/main.js" new file mode 100644 index 0000000000000000000000000000000000000000..c3e28ab070bd0d01422e4f9ade02f52190d30913 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/main.js" @@ -0,0 +1,23 @@ +import Vue from 'vue' +import App from './App.vue' +// import axios from "axios" + +//涓嬭浇锛歯pm install vue-router@3 + +//寮曞叆router +import Vuerouter from 'vue-router' +// import VueAxios from "vue-axios" +//浣跨敤router +Vue.use(Vuerouter); +// Vue.use(axios); + +//寮曞叆閰嶇疆鐨刬ndex鏂囦欢 +import router from './router/index' + +Vue.config.productionTip = false + +new Vue({ + render: h => h(App), + //缁戝畾 + router:router +}).$mount('#app') diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/four.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/four.vue" new file mode 100644 index 0000000000000000000000000000000000000000..e1332d26aadd442d5cd474030f1aec26b147101b --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/four.vue" @@ -0,0 +1,255 @@ + + + + + diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/newpage.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/newpage.vue" new file mode 100644 index 0000000000000000000000000000000000000000..cf4e70e0b0245acbdbc7fd9bdb2efe9effa6aeef --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/newpage.vue" @@ -0,0 +1,31 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/one.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/one.vue" new file mode 100644 index 0000000000000000000000000000000000000000..d2232283619c5fc0bd28661a9b385b4aa4875de9 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/one.vue" @@ -0,0 +1,256 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/shopcar.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/shopcar.vue" new file mode 100644 index 0000000000000000000000000000000000000000..18583762bf7168e98e44e4b745e29480de79b0e6 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/shopcar.vue" @@ -0,0 +1,182 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/three.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/three.vue" new file mode 100644 index 0000000000000000000000000000000000000000..034d55102bc29ac5f24f1ad1bf5a5e0d2c898724 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/three.vue" @@ -0,0 +1,256 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/two.vue" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/two.vue" new file mode 100644 index 0000000000000000000000000000000000000000..d5b9b93618a5c4abe2b6d7db9de504430a652e42 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/newcomponents/two.vue" @@ -0,0 +1,254 @@ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/router/index.js" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/router/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..cfc26226572e45f81b0656f6d93a1959693c035d --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/src/router/index.js" @@ -0,0 +1,45 @@ +//寮曞叆涓嬭浇鐨勫寘 +import Vuerouter from 'vue-router' + +//缁勪欢 +import page1 from '../components/Centerone.vue' +import page2 from '../components/Buttontwo.vue' +import page3 from '../components/Buttonthree.vue' +import page4 from '../components/Buttonfour.vue' +import newpage from '../newcomponents/newpage.vue' +import shopcar from '../newcomponents/shopcar.vue' + +export default new Vuerouter({ + routes:[ + { + path:'/', + redirect:'/page1' + }, + { + path:'/page1', + component:page1, + }, + { + path:'/page1/:newname', + component:newpage, + props:true + }, + { + path:'/shopcar', + component:shopcar, + }, + { + path:'/page2', + component:page2 + }, + { + path:'/page3', + component:page3 + }, + { + path:'/page4', + component:page4 + } + + ] +}) \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/vue.config.js" "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/vue.config.js" new file mode 100644 index 0000000000000000000000000000000000000000..566247118b1677ef34bf476c3b6d219ee5ddda5e --- /dev/null +++ "b/\344\275\234\344\270\232/\345\224\257\345\223\201\344\274\232/cli/cli/vue.config.js" @@ -0,0 +1,5 @@ +const { defineConfig } = require('@vue/cli-service') +module.exports = defineConfig({ + transpileDependencies: true, + lintOnSave:false +}) diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/2022.4.1.html" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/2022.4.1.html" new file mode 100644 index 0000000000000000000000000000000000000000..f4906c47240cd5fd85223d954b6a2732bb3fdc0c --- /dev/null +++ "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/2022.4.1.html" @@ -0,0 +1,128 @@ + + + + + + + + Document + + + + + +
    + + + + + + + + + + +
    +
    + +
    +
    +
      +
    • {{name}}
    • +
      +
    • {{price}}
    • +
      +
    • {{details[0]}}
    • +
    • {{details[1]}}
    • +
    • {{details[2]}}
    • +
    • {{details[3]}}
    • +
    +
    +
    X
    +
    + + + + + + + + +
    鍟嗗搧淇℃伅鍗曚环璇︽儏
    {{itme.name}}{{itme.price}}璇︽儏
    +
    + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/1.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/1.png" new file mode 100644 index 0000000000000000000000000000000000000000..41d11c7a3862292fab645e96d907785147042a52 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/1.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/2.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/2.png" new file mode 100644 index 0000000000000000000000000000000000000000..8579f8770334be7cf78e25ad1f210b928682f97a Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/2.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/3.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/3.png" new file mode 100644 index 0000000000000000000000000000000000000000..36217e99958dd7b5ab0a991bbebe9641f1a175ff Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/3.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/4.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/4.png" new file mode 100644 index 0000000000000000000000000000000000000000..d314e5f91f77b4f321279282b88fc73a1cad2144 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/4.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/5.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/5.png" new file mode 100644 index 0000000000000000000000000000000000000000..104bf2975b852306ee809511b0e1b20ed4a5c69d Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/5.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/6.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/6.png" new file mode 100644 index 0000000000000000000000000000000000000000..f5b0e9f51f385f2ba510c3d2dbe79b613a136297 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/6.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/7.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/7.png" new file mode 100644 index 0000000000000000000000000000000000000000..5f149dc3e87e1e2aac2ee86952595c0f7be55e41 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/7.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/8.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/8.png" new file mode 100644 index 0000000000000000000000000000000000000000..2688097a7d7cfcafdde2fccdfb8d6ae222139a34 Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/8.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/big.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/big.png" new file mode 100644 index 0000000000000000000000000000000000000000..f665c87440f5d3a8a67a5f17a6fa72c310390e4b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/big.png" differ diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/logo.png" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/logo.png" new file mode 100644 index 0000000000000000000000000000000000000000..a9176315c9c2303791a7147795c80be463e7f07b Binary files /dev/null and "b/\344\275\234\344\270\232/\345\225\206\345\223\201\345\210\227\350\241\250/img/logo.png" differ diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/html/index.html" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/html/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..ecc206ebc1d872c53ef299126ce00de6767ee8d4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/html/index.html" @@ -0,0 +1,117 @@ + + + + + + + Document + + + +
    +
    +

    璐﹀彿鐧诲綍

    +
    +
    + 娉ㄥ唽璐﹀彿
    + +
    +
    + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/html/index_two.html" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/html/index_two.html" new file mode 100644 index 0000000000000000000000000000000000000000..d9168403d5ac0f1857b2719e8dbe2e5df6e48b22 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/html/index_two.html" @@ -0,0 +1,126 @@ + + + + + + + + Document + + + + +
    +
    +

    娉ㄥ唽璐﹀彿

    +
    +
    +
    + 鐧诲綍璐﹀彿 + +
    +
    + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/http.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/http.js" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..ec8b7b3b3f54b16fc323b90aeb557e99f088e144 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/index.js" @@ -0,0 +1,72 @@ +let express = require("express"); +let app = express(); +let path = require("path") +let mysql = require("mysql"); + +let connection = mysql.createConnection({ + host: '127.0.0.1', + user: 'root', + password: '123456', + port: '3306', + database: 'students' +}) +connection.connect(); +//闈欐佽祫婧愯闂湇鍔″姛鑳 +//涓棿閿 +app.use(express.urlencoded()); +app.use(express.static(__dirname + '/鐧诲綍椤甸潰')) + + +// 鍒涘缓鐧诲綍鎺ュ彛 +app.post('/login', (req, res) => { + res.setHeader('Access-Control-Allow-Origin', "*"); + let sql = `select * from massage` + connection.query(sql, function (err, result) { + console.log(result); + let flag = false; + for (let index in result) { + if (result[index]['username'] === req.body.username && result[index]['password'] === req.body.password) { + res.write(JSON.stringify({ code: 200, msg: "鐧诲綍鎴愬姛锛" })) + flag = true; + break; + } + } + if (flag == false) { + res.write(JSON.stringify({ code: 100, msg: "鐧诲綍澶辫触锛" })) + } + res.end(); + }) +}) +app.post('/login2', (req, res) => { + let sql = `select username from massage ` + connection.query(sql, function (err, result) { + console.log(result); + let flag = false; + for (let index in result) { + if (result[index]['username'] === req.body.username) { + res.write(JSON.stringify({ code: 322, msg: "浣犵殑璐﹀彿宸茬粡琚敞鍐岋紒" })) + flag = true; + break; + } + } + if (flag == false) { + if (req.body.password = req.body.password2) { + res.setHeader('Access-Control-Allow-Origin', "*"); + let sql = `insert into massege(username,password) values ("${req.text2}","${req.password}")` + connection.query(sql, function (err, result) { + console.log(result); + res.write(JSON.stringify({ code: 211, msg: "娉ㄥ唽鎴愬姛锛" })) + }) + } + res.end(); + } else { + res.write(JSON.stringify({ code: 321, msg: "娉ㄥ唽澶辫触锛佽緭鍏ョ殑瀵嗙爜涓嶄竴鏍凤紒" })) + } + res.end(); + }) + + +}) +app.listen(3030, function () { + console.log("鎴愬姛鍟︼紒"); +}) \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/.bin/mime" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/.bin/mime" new file mode 100644 index 0000000000000000000000000000000000000000..0dbddf0718b2984e2357a6cf60f7f75b53871673 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/.bin/mime" @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../mime/cli.js" "$@" + ret=$? +else + node "$basedir/../mime/cli.js" "$@" + ret=$? +fi +exit $ret diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/.bin/mime.cmd" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/.bin/mime.cmd" new file mode 100644 index 0000000000000000000000000000000000000000..8169562037e675388d626d394dd62a75b0844e60 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/.bin/mime.cmd" @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\mime\cli.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\mime\cli.js" %* +) \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..cb5990c7c3620f4936a3ac42b3bf335c95eef7e8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/HISTORY.md" @@ -0,0 +1,243 @@ +1.3.8 / 2022-02-02 +================== + + * deps: mime-types@~2.1.34 + - deps: mime-db@~1.51.0 + * deps: negotiator@0.6.3 + +1.3.7 / 2019-04-29 +================== + + * deps: negotiator@0.6.2 + - Fix sorting charset, encoding, and language with extra parameters + +1.3.6 / 2019-04-28 +================== + + * deps: mime-types@~2.1.24 + - deps: mime-db@~1.40.0 + +1.3.5 / 2018-02-28 +================== + + * deps: mime-types@~2.1.18 + - deps: mime-db@~1.33.0 + +1.3.4 / 2017-08-22 +================== + + * deps: mime-types@~2.1.16 + - deps: mime-db@~1.29.0 + +1.3.3 / 2016-05-02 +================== + + * deps: mime-types@~2.1.11 + - deps: mime-db@~1.23.0 + * deps: negotiator@0.6.1 + - perf: improve `Accept` parsing speed + - perf: improve `Accept-Charset` parsing speed + - perf: improve `Accept-Encoding` parsing speed + - perf: improve `Accept-Language` parsing speed + +1.3.2 / 2016-03-08 +================== + + * deps: mime-types@~2.1.10 + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + - deps: mime-db@~1.22.0 + +1.3.1 / 2016-01-19 +================== + + * deps: mime-types@~2.1.9 + - deps: mime-db@~1.21.0 + +1.3.0 / 2015-09-29 +================== + + * deps: mime-types@~2.1.7 + - deps: mime-db@~1.19.0 + * deps: negotiator@0.6.0 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Lazy-load modules from main entry point + - perf: delay type concatenation until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove closures getting spec properties + - perf: remove a closure from media type parsing + - perf: remove property delete from media type parsing + +1.2.13 / 2015-09-06 +=================== + + * deps: mime-types@~2.1.6 + - deps: mime-db@~1.18.0 + +1.2.12 / 2015-07-30 +=================== + + * deps: mime-types@~2.1.4 + - deps: mime-db@~1.16.0 + +1.2.11 / 2015-07-16 +=================== + + * deps: mime-types@~2.1.3 + - deps: mime-db@~1.15.0 + +1.2.10 / 2015-07-01 +=================== + + * deps: mime-types@~2.1.2 + - deps: mime-db@~1.14.0 + +1.2.9 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - perf: fix deopt during mapping + +1.2.8 / 2015-06-07 +================== + + * deps: mime-types@~2.1.0 + - deps: mime-db@~1.13.0 + * perf: avoid argument reassignment & argument slice + * perf: avoid negotiator recursive construction + * perf: enable strict mode + * perf: remove unnecessary bitwise operator + +1.2.7 / 2015-05-10 +================== + + * deps: negotiator@0.5.3 + - Fix media type parameter matching to be case-insensitive + +1.2.6 / 2015-05-07 +================== + + * deps: mime-types@~2.0.11 + - deps: mime-db@~1.9.1 + * deps: negotiator@0.5.2 + - Fix comparing media types with quoted values + - Fix splitting media types with quoted commas + +1.2.5 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - deps: mime-db@~1.8.0 + +1.2.4 / 2015-02-14 +================== + + * Support Node.js 0.6 + * deps: mime-types@~2.0.9 + - deps: mime-db@~1.7.0 + * deps: negotiator@0.5.1 + - Fix preference sorting to be stable for long acceptable lists + +1.2.3 / 2015-01-31 +================== + + * deps: mime-types@~2.0.8 + - deps: mime-db@~1.6.0 + +1.2.2 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - deps: mime-db@~1.5.0 + +1.2.1 / 2014-12-30 +================== + + * deps: mime-types@~2.0.5 + - deps: mime-db@~1.3.1 + +1.2.0 / 2014-12-19 +================== + + * deps: negotiator@0.5.0 + - Fix list return order when large accepted list + - Fix missing identity encoding when q=0 exists + - Remove dynamic building of Negotiator class + +1.1.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - deps: mime-db@~1.3.0 + +1.1.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - deps: mime-db@~1.2.0 + +1.1.2 / 2014-10-14 +================== + + * deps: negotiator@0.4.9 + - Fix error when media type has invalid parameter + +1.1.1 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - deps: mime-db@~1.1.0 + * deps: negotiator@0.4.8 + - Fix all negotiations to be case-insensitive + - Stable sort preferences of same quality according to client order + +1.1.0 / 2014-09-02 +================== + + * update `mime-types` + +1.0.7 / 2014-07-04 +================== + + * Fix wrong type returned from `type` when match after unknown extension + +1.0.6 / 2014-06-24 +================== + + * deps: negotiator@0.4.7 + +1.0.5 / 2014-06-20 +================== + + * fix crash when unknown extension given + +1.0.4 / 2014-06-19 +================== + + * use `mime-types` + +1.0.3 / 2014-06-11 +================== + + * deps: negotiator@0.4.6 + - Order by specificity when quality is the same + +1.0.2 / 2014-05-29 +================== + + * Fix interpretation when header not in request + * deps: pin negotiator@0.4.5 + +1.0.1 / 2014-01-18 +================== + + * Identity encoding isn't always acceptable + * deps: negotiator@~0.4.0 + +1.0.0 / 2013-12-27 +================== + + * Genesis diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..06166077be4d1f620d89b9eb33c76d89e75857da --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..82680c530c3886540f630f643990e2ec707319d1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/README.md" @@ -0,0 +1,140 @@ +# accepts + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). +Extracted from [koa](https://www.npmjs.com/package/koa) for general use. + +In addition to negotiator, it allows: + +- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` + as well as `('text/html', 'application/json')`. +- Allows type shorthands such as `json`. +- Returns `false` when no types match +- Treats non-existent headers as `*` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install accepts +``` + +## API + +```js +var accepts = require('accepts') +``` + +### accepts(req) + +Create a new `Accepts` object for the given `req`. + +#### .charset(charsets) + +Return the first accepted charset. If nothing in `charsets` is accepted, +then `false` is returned. + +#### .charsets() + +Return the charsets that the request accepts, in the order of the client's +preference (most preferred first). + +#### .encoding(encodings) + +Return the first accepted encoding. If nothing in `encodings` is accepted, +then `false` is returned. + +#### .encodings() + +Return the encodings that the request accepts, in the order of the client's +preference (most preferred first). + +#### .language(languages) + +Return the first accepted language. If nothing in `languages` is accepted, +then `false` is returned. + +#### .languages() + +Return the languages that the request accepts, in the order of the client's +preference (most preferred first). + +#### .type(types) + +Return the first accepted type (and it is returned as the same text as what +appears in the `types` array). If nothing in `types` is accepted, then `false` +is returned. + +The `types` array can contain full MIME types or file extensions. Any value +that is not a full MIME types is passed to `require('mime-types').lookup`. + +#### .types() + +Return the types that the request accepts, in the order of the client's +preference (most preferred first). + +## Examples + +### Simple type negotiation + +This simple example shows how to use `accepts` to return a different typed +respond body based on what the client wants to accept. The server lists it's +preferences in order and will get back the best match between the client and +server. + +```js +var accepts = require('accepts') +var http = require('http') + +function app (req, res) { + var accept = accepts(req) + + // the order of this list is significant; should be server preferred order + switch (accept.type(['json', 'html'])) { + case 'json': + res.setHeader('Content-Type', 'application/json') + res.write('{"hello":"world!"}') + break + case 'html': + res.setHeader('Content-Type', 'text/html') + res.write('hello, world!') + break + default: + // the fallback is text/plain, so no need to specify it above + res.setHeader('Content-Type', 'text/plain') + res.write('hello, world!') + break + } + + res.end() +} + +http.createServer(app).listen(3000) +``` + +You can test this out with the cURL program: +```sh +curl -I -H'Accept: text/html' http://localhost:3000/ +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master +[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/jshttp/accepts/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/accepts/actions/workflows/ci.yml +[node-version-image]: https://badgen.net/npm/node/accepts +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/accepts +[npm-url]: https://npmjs.org/package/accepts +[npm-version-image]: https://badgen.net/npm/v/accepts diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..e9b2f63fb16f8ecdeb16c8eced302612794ccf65 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/index.js" @@ -0,0 +1,238 @@ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Negotiator = require('negotiator') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = Accepts + +/** + * Create a new Accepts object for the given req. + * + * @param {object} req + * @public + */ + +function Accepts (req) { + if (!(this instanceof Accepts)) { + return new Accepts(req) + } + + this.headers = req.headers + this.negotiator = new Negotiator(req) +} + +/** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json" or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * this.types('html'); + * // => "html" + * + * // Accept: text/*, application/json + * this.types('html'); + * // => "html" + * this.types('text/html'); + * // => "text/html" + * this.types('json', 'text'); + * // => "json" + * this.types('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * this.types('image/png'); + * this.types('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * this.types(['html', 'json']); + * this.types('html', 'json'); + * // => "json" + * + * @param {String|Array} types... + * @return {String|Array|Boolean} + * @public + */ + +Accepts.prototype.type = +Accepts.prototype.types = function (types_) { + var types = types_ + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i] + } + } + + // no types, return all requested types + if (!types || types.length === 0) { + return this.negotiator.mediaTypes() + } + + // no accept header, return first given type + if (!this.headers.accept) { + return types[0] + } + + var mimes = types.map(extToMime) + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) + var first = accepts[0] + + return first + ? types[mimes.indexOf(first)] + : false +} + +/** + * Return accepted encodings or best fit based on `encodings`. + * + * Given `Accept-Encoding: gzip, deflate` + * an array sorted by quality is returned: + * + * ['gzip', 'deflate'] + * + * @param {String|Array} encodings... + * @return {String|Array} + * @public + */ + +Accepts.prototype.encoding = +Accepts.prototype.encodings = function (encodings_) { + var encodings = encodings_ + + // support flattened arguments + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length) + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i] + } + } + + // no encodings, return all requested encodings + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings() + } + + return this.negotiator.encodings(encodings)[0] || false +} + +/** + * Return accepted charsets or best fit based on `charsets`. + * + * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` + * an array sorted by quality is returned: + * + * ['utf-8', 'utf-7', 'iso-8859-1'] + * + * @param {String|Array} charsets... + * @return {String|Array} + * @public + */ + +Accepts.prototype.charset = +Accepts.prototype.charsets = function (charsets_) { + var charsets = charsets_ + + // support flattened arguments + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length) + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i] + } + } + + // no charsets, return all requested charsets + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets() + } + + return this.negotiator.charsets(charsets)[0] || false +} + +/** + * Return accepted languages or best fit based on `langs`. + * + * Given `Accept-Language: en;q=0.8, es, pt` + * an array sorted by quality is returned: + * + * ['es', 'pt', 'en'] + * + * @param {String|Array} langs... + * @return {Array|String} + * @public + */ + +Accepts.prototype.lang = +Accepts.prototype.langs = +Accepts.prototype.language = +Accepts.prototype.languages = function (languages_) { + var languages = languages_ + + // support flattened arguments + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length) + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i] + } + } + + // no languages, return all requested languages + if (!languages || languages.length === 0) { + return this.negotiator.languages() + } + + return this.negotiator.languages(languages)[0] || false +} + +/** + * Convert extnames to mime. + * + * @param {String} type + * @return {String} + * @private + */ + +function extToMime (type) { + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if mime is valid. + * + * @param {String} type + * @return {String} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..3a73b988db5cba2946e224f7401e0a31a7426b19 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/accepts/package.json" @@ -0,0 +1,86 @@ +{ + "_from": "accepts@~1.3.8", + "_id": "accepts@1.3.8", + "_inBundle": false, + "_integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "_location": "/accepts", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "accepts@~1.3.8", + "name": "accepts", + "escapedName": "accepts", + "rawSpec": "~1.3.8", + "saveSpec": null, + "fetchSpec": "~1.3.8" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "_shasum": "0bf0be125b67014adcb0b0921e62db7bffe16b2e", + "_spec": "accepts@~1.3.8", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/accepts/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "deprecated": false, + "description": "Higher-level content negotiation", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/accepts#readme", + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ], + "license": "MIT", + "name": "accepts", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/accepts.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "1.3.8" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..983fbe8aec3f4e2d4add592bb1083b00d7366f66 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/LICENSE" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..91fa5b637ec2d2a492d6b5c4bf9ba2e76ff2f352 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/README.md" @@ -0,0 +1,43 @@ +# Array Flatten + +[![NPM version][npm-image]][npm-url] +[![NPM downloads][downloads-image]][downloads-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] + +> Flatten an array of nested arrays into a single flat array. Accepts an optional depth. + +## Installation + +``` +npm install array-flatten --save +``` + +## Usage + +```javascript +var flatten = require('array-flatten') + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) +//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2) +//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] + +(function () { + flatten(arguments) //=> [1, 2, 3] +})(1, [2, 3]) +``` + +## License + +MIT + +[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat +[npm-url]: https://npmjs.org/package/array-flatten +[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat +[downloads-url]: https://npmjs.org/package/array-flatten +[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat +[travis-url]: https://travis-ci.org/blakeembrey/array-flatten +[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat +[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/array-flatten.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/array-flatten.js" new file mode 100644 index 0000000000000000000000000000000000000000..089117b322f5857b8bb6bccf7a659686aca067c0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/array-flatten.js" @@ -0,0 +1,64 @@ +'use strict' + +/** + * Expose `arrayFlatten`. + */ +module.exports = arrayFlatten + +/** + * Recursive flatten function with depth. + * + * @param {Array} array + * @param {Array} result + * @param {Number} depth + * @return {Array} + */ +function flattenWithDepth (array, result, depth) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (depth > 0 && Array.isArray(value)) { + flattenWithDepth(value, result, depth - 1) + } else { + result.push(value) + } + } + + return result +} + +/** + * Recursive flatten function. Omitting depth is slightly faster. + * + * @param {Array} array + * @param {Array} result + * @return {Array} + */ +function flattenForever (array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (Array.isArray(value)) { + flattenForever(value, result) + } else { + result.push(value) + } + } + + return result +} + +/** + * Flatten an array, with the ability to define a depth. + * + * @param {Array} array + * @param {Number} depth + * @return {Array} + */ +function arrayFlatten (array, depth) { + if (depth == null) { + return flattenForever(array, []) + } + + return flattenWithDepth(array, [], depth) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..50e978d89194e60541286cff7bdf73bb441d5180 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/array-flatten/package.json" @@ -0,0 +1,64 @@ +{ + "_from": "array-flatten@1.1.1", + "_id": "array-flatten@1.1.1", + "_inBundle": false, + "_integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "_location": "/array-flatten", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-flatten@1.1.1", + "name": "array-flatten", + "escapedName": "array-flatten", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "_shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2", + "_spec": "array-flatten@1.1.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "bugs": { + "url": "https://github.com/blakeembrey/array-flatten/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Flatten an array of nested arrays into a single flat array", + "devDependencies": { + "istanbul": "^0.3.13", + "mocha": "^2.2.4", + "pre-commit": "^1.0.7", + "standard": "^3.7.3" + }, + "files": [ + "array-flatten.js", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/array-flatten", + "keywords": [ + "array", + "flatten", + "arguments", + "depth" + ], + "license": "MIT", + "main": "array-flatten.js", + "name": "array-flatten", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "version": "1.1.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/CHANGELOG.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/CHANGELOG.md" new file mode 100644 index 0000000000000000000000000000000000000000..e3ec9800d54a224868feed6c571456ba4d560583 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/CHANGELOG.md" @@ -0,0 +1,266 @@ +#### 9.0.0 +* 27/05/2019 +* For compatibility with legacy browsers, remove `Symbol` references. + +#### 8.1.1 +* 24/02/2019 +* [BUGFIX] #222 Restore missing `var` to `export BigNumber`. +* Allow any key in BigNumber.Instance in *bignumber.d.ts*. + +#### 8.1.0 +* 23/02/2019 +* [NEW FEATURE] #220 Create a BigNumber using `{s, e, c}`. +* [NEW FEATURE] `isBigNumber`: if `BigNumber.DEBUG` is `true`, also check that the BigNumber instance is well-formed. +* Remove `instanceof` checks; just use `_isBigNumber` to identify a BigNumber instance. +* Add `_isBigNumber` to prototype in *bignumber.mjs*. +* Add tests for BigNumber creation from object. +* Update *API.html*. + +#### 8.0.2 +* 13/01/2019 +* #209 `toPrecision` without argument should follow `toString`. +* Improve *Use* section of *README*. +* Optimise `toString(10)`. +* Add verson number to API doc. + +#### 8.0.1 +* 01/11/2018 +* Rest parameter must be array type in *bignumber.d.ts*. + +#### 8.0.0 +* 01/11/2018 +* [NEW FEATURE] Add `BigNumber.sum` method. +* [NEW FEATURE]`toFormat`: add `prefix` and `suffix` options. +* [NEW FEATURE] #178 Pass custom formatting to `toFormat`. +* [BREAKING CHANGE] #184 `toFraction`: return array of BigNumbers not strings. +* [NEW FEATURE] #185 Enable overwrite of `valueOf` to prevent accidental addition to string. +* #183 Add Node.js `crypto` requirement to documentation. +* [BREAKING CHANGE] #198 Disallow signs and whitespace in custom alphabet. +* [NEW FEATURE] #188 Implement `util.inspect.custom` for Node.js REPL. +* #170 Make `isBigNumber` a type guard in *bignumber.d.ts*. +* [BREAKING CHANGE] `BigNumber.min` and `BigNumber.max`: don't accept an array. +* Update *.travis.yml*. +* Remove *bower.json*. + +#### 7.2.1 +* 24/05/2018 +* Add `browser` field to *package.json*. + +#### 7.2.0 +* 22/05/2018 +* #166 Correct *.mjs* file. Remove extension from `main` field in *package.json*. + +#### 7.1.0 +* 18/05/2018 +* Add `module` field to *package.json* for *bignumber.mjs*. + +#### 7.0.2 +* 17/05/2018 +* #165 Bugfix: upper-case letters for bases 11-36 in a custom alphabet. +* Add note to *README* regarding creating BigNumbers from Number values. + +#### 7.0.1 +* 26/04/2018 +* #158 Fix global object variable name typo. + +#### 7.0.0 +* 26/04/2018 +* #143 Remove global BigNumber from typings. +* #144 Enable compatibility with `Object.freeze(Object.prototype)`. +* #148 #123 #11 Only throw on a number primitive with more than 15 significant digits if `BigNumber.DEBUG` is `true`. +* Only throw on an invalid BigNumber value if `BigNumber.DEBUG` is `true`. Return BigNumber `NaN` instead. +* #154 `exponentiatedBy`: allow BigNumber exponent. +* #156 Prevent Content Security Policy *unsafe-eval* issue. +* `toFraction`: allow `Infinity` maximum denominator. +* Comment-out some excess tests to reduce test time. +* Amend indentation and other spacing. + +#### 6.0.0 +* 26/01/2018 +* #137 Implement `APLHABET` configuration option. +* Remove `ERRORS` configuration option. +* Remove `toDigits` method; extend `precision` method accordingly. +* Remove s`round` method; extend `decimalPlaces` method accordingly. +* Remove methods: `ceil`, `floor`, and `truncated`. +* Remove method aliases: `add`, `cmp`, `isInt`, `isNeg`, `trunc`, `mul`, `neg` and `sub`. +* Rename methods: `shift` to `shiftedBy`, `another` to `clone`, `toPower` to `exponentiatedBy`, and `equals` to `isEqualTo`. +* Rename methods: add `is` prefix to `greaterThan`, `greaterThanOrEqualTo`, `lessThan` and `lessThanOrEqualTo`. +* Add methods: `multipliedBy`, `isBigNumber`, `isPositive`, `integerValue`, `maximum` and `minimum`. +* Refactor test suite. +* Add *CHANGELOG.md*. +* Rewrite *bignumber.d.ts*. +* Redo API image. + +#### 5.0.0 +* 27/11/2017 +* #81 Don't throw on constructor call without `new`. + +#### 4.1.0 +* 26/09/2017 +* Remove node 0.6 from *.travis.yml*. +* Add *bignumber.mjs*. + +#### 4.0.4 +* 03/09/2017 +* Add missing aliases to *bignumber.d.ts*. + +#### 4.0.3 +* 30/08/2017 +* Add types: *bignumber.d.ts*. + +#### 4.0.2 +* 03/05/2017 +* #120 Workaround Safari/Webkit bug. + +#### 4.0.1 +* 05/04/2017 +* #121 BigNumber.default to BigNumber['default']. + +#### 4.0.0 +* 09/01/2017 +* Replace BigNumber.isBigNumber method with isBigNumber prototype property. + +#### 3.1.2 +* 08/01/2017 +* Minor documentation edit. + +#### 3.1.1 +* 08/01/2017 +* Uncomment `isBigNumber` tests. +* Ignore dot files. + +#### 3.1.0 +* 08/01/2017 +* Add `isBigNumber` method. + +#### 3.0.2 +* 08/01/2017 +* Bugfix: Possible incorrect value of `ERRORS` after a `BigNumber.another` call (due to `parseNumeric` declaration in outer scope). + +#### 3.0.1 +* 23/11/2016 +* Apply fix for old ipads with `%` issue, see #57 and #102. +* Correct error message. + +#### 3.0.0 +* 09/11/2016 +* Remove `require('crypto')` - leave it to the user. +* Add `BigNumber.set` as `BigNumber.config` alias. +* Default `POW_PRECISION` to `0`. + +#### 2.4.0 +* 14/07/2016 +* #97 Add exports to support ES6 imports. + +#### 2.3.0 +* 07/03/2016 +* #86 Add modulus parameter to `toPower`. + +#### 2.2.0 +* 03/03/2016 +* #91 Permit larger JS integers. + +#### 2.1.4 +* 15/12/2015 +* Correct UMD. + +#### 2.1.3 +* 13/12/2015 +* Refactor re global object and crypto availability when bundling. + +#### 2.1.2 +* 10/12/2015 +* Bugfix: `window.crypto` not assigned to `crypto`. + +#### 2.1.1 +* 09/12/2015 +* Prevent code bundler from adding `crypto` shim. + +#### 2.1.0 +* 26/10/2015 +* For `valueOf` and `toJSON`, include the minus sign with negative zero. + +#### 2.0.8 +* 2/10/2015 +* Internal round function bugfix. + +#### 2.0.6 +* 31/03/2015 +* Add bower.json. Tweak division after in-depth review. + +#### 2.0.5 +* 25/03/2015 +* Amend README. Remove bitcoin address. + +#### 2.0.4 +* 25/03/2015 +* Critical bugfix #58: division. + +#### 2.0.3 +* 18/02/2015 +* Amend README. Add source map. + +#### 2.0.2 +* 18/02/2015 +* Correct links. + +#### 2.0.1 +* 18/02/2015 +* Add `max`, `min`, `precision`, `random`, `shiftedBy`, `toDigits` and `truncated` methods. +* Add the short-forms: `add`, `mul`, `sd`, `sub` and `trunc`. +* Add an `another` method to enable multiple independent constructors to be created. +* Add support for the base 2, 8 and 16 prefixes `0b`, `0o` and `0x`. +* Enable a rounding mode to be specified as a second parameter to `toExponential`, `toFixed`, `toFormat` and `toPrecision`. +* Add a `CRYPTO` configuration property so cryptographically-secure pseudo-random number generation can be specified. +* Add a `MODULO_MODE` configuration property to enable the rounding mode used by the `modulo` operation to be specified. +* Add a `POW_PRECISION` configuration property to enable the number of significant digits calculated by the power operation to be limited. +* Improve code quality. +* Improve documentation. + +#### 2.0.0 +* 29/12/2014 +* Add `dividedToIntegerBy`, `isInteger` and `toFormat` methods. +* Remove the following short-forms: `isF`, `isZ`, `toE`, `toF`, `toFr`, `toN`, `toP`, `toS`. +* Store a BigNumber's coefficient in base 1e14, rather than base 10. +* Add fast path for integers to BigNumber constructor. +* Incorporate the library into the online documentation. + +#### 1.5.0 +* 13/11/2014 +* Add `toJSON` and `decimalPlaces` methods. + +#### 1.4.1 +* 08/06/2014 +* Amend README. + +#### 1.4.0 +* 08/05/2014 +* Add `toNumber`. + +#### 1.3.0 +* 08/11/2013 +* Ensure correct rounding of `sqrt` in all, rather than almost all, cases. +* Maximum radix to 64. + +#### 1.2.1 +* 17/10/2013 +* Sign of zero when x < 0 and x + (-x) = 0. + +#### 1.2.0 +* 19/9/2013 +* Throw Error objects for stack. + +#### 1.1.1 +* 22/8/2013 +* Show original value in constructor error message. + +#### 1.1.0 +* 1/8/2013 +* Allow numbers with trailing radix point. + +#### 1.0.1 +* Bugfix: error messages with incorrect method name + +#### 1.0.0 +* 8/11/2012 +* Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/LICENCE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/LICENCE" new file mode 100644 index 0000000000000000000000000000000000000000..3c39f853fc972fefccb3a866c26c30dfe6295ddd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/LICENCE" @@ -0,0 +1,23 @@ +The MIT Licence. + +Copyright (c) 2019 Michael Mclaughlin + +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. + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..a4a3e107db8c73e83c788ca3c86cbc1a54b0d976 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/README.md" @@ -0,0 +1,268 @@ +![bignumber.js](https://raw.githubusercontent.com/MikeMcl/bignumber.js/gh-pages/bignumberjs.png) + +A JavaScript library for arbitrary-precision decimal and non-decimal arithmetic. + +[![Build Status](https://travis-ci.org/MikeMcl/bignumber.js.svg)](https://travis-ci.org/MikeMcl/bignumber.js) + +
    + +## Features + + - Integers and decimals + - Simple API but full-featured + - Faster, smaller, and perhaps easier to use than JavaScript versions of Java's BigDecimal + - 8 KB minified and gzipped + - Replicates the `toExponential`, `toFixed`, `toPrecision` and `toString` methods of JavaScript's Number type + - Includes a `toFraction` and a correctly-rounded `squareRoot` method + - Supports cryptographically-secure pseudo-random number generation + - No dependencies + - Wide platform compatibility: uses JavaScript 1.5 (ECMAScript 3) features only + - Comprehensive [documentation](http://mikemcl.github.io/bignumber.js/) and test set + +![API](https://raw.githubusercontent.com/MikeMcl/bignumber.js/gh-pages/API.png) + +If a smaller and simpler library is required see [big.js](https://github.com/MikeMcl/big.js/). +It's less than half the size but only works with decimal numbers and only has half the methods. +It also does not allow `NaN` or `Infinity`, or have the configuration options of this library. + +See also [decimal.js](https://github.com/MikeMcl/decimal.js/), which among other things adds support for non-integer powers, and performs all operations to a specified number of significant digits. + +## Load + +The library is the single JavaScript file *bignumber.js* (or minified, *bignumber.min.js*). + +Browser: + +```html + +``` + +[Node.js](http://nodejs.org): + +```bash +$ npm install bignumber.js +``` + +```javascript +const BigNumber = require('bignumber.js'); +``` + +ES6 module: + +```javascript +import BigNumber from "./bignumber.mjs" +``` + +AMD loader libraries such as [requireJS](http://requirejs.org/): + +```javascript +require(['bignumber'], function(BigNumber) { + // Use BigNumber here in local scope. No global BigNumber. +}); +``` + +## Use + +The library exports a single constructor function, [`BigNumber`](http://mikemcl.github.io/bignumber.js/#bignumber), which accepts a value of type Number, String or BigNumber, + +```javascript +let x = new BigNumber(123.4567); +let y = BigNumber('123456.7e-3'); +let z = new BigNumber(x); +x.isEqualTo(y) && y.isEqualTo(z) && x.isEqualTo(z); // true +``` + +To get the string value of a BigNumber use [`toString()`](http://mikemcl.github.io/bignumber.js/#toS) or [`toFixed()`](http://mikemcl.github.io/bignumber.js/#toFix). Using `toFixed()` prevents exponential notation being returned, no matter how large or small the value. + +```javascript +let x = new BigNumber('1111222233334444555566'); +x.toString(); // "1.111222233334444555566e+21" +x.toFixed(); // "1111222233334444555566" +``` + +If the limited precision of Number values is not well understood, it is recommended to create BigNumbers from String values rather than Number values to avoid a potential loss of precision. + +*In all further examples below, `let`, semicolons and `toString` calls are not shown. If a commented-out value is in quotes it means `toString` has been called on the preceding expression.* + +```javascript +// Precision loss from using numeric literals with more than 15 significant digits. +new BigNumber(1.0000000000000001) // '1' +new BigNumber(88259496234518.57) // '88259496234518.56' +new BigNumber(99999999999999999999) // '100000000000000000000' + +// Precision loss from using numeric literals outside the range of Number values. +new BigNumber(2e+308) // 'Infinity' +new BigNumber(1e-324) // '0' + +// Precision loss from the unexpected result of arithmetic with Number values. +new BigNumber(0.7 + 0.1) // '0.7999999999999999' +``` + +When creating a BigNumber from a Number, note that a BigNumber is created from a Number's decimal `toString()` value not from its underlying binary value. If the latter is required, then pass the Number's `toString(2)` value and specify base 2. + +```javascript +new BigNumber(Number.MAX_VALUE.toString(2), 2) +``` + +BigNumbers can be created from values in bases from 2 to 36. See [`ALPHABET`](http://mikemcl.github.io/bignumber.js/#alphabet) to extend this range. + +```javascript +a = new BigNumber(1011, 2) // "11" +b = new BigNumber('zz.9', 36) // "1295.25" +c = a.plus(b) // "1306.25" +``` + +Performance is better if base 10 is NOT specified for decimal values. Only specify base 10 when it is desired that the number of decimal places of the input value be limited to the current [`DECIMAL_PLACES`](http://mikemcl.github.io/bignumber.js/#decimal-places) setting. + +A BigNumber is immutable in the sense that it is not changed by its methods. + +```javascript +0.3 - 0.1 // 0.19999999999999998 +x = new BigNumber(0.3) +x.minus(0.1) // "0.2" +x // "0.3" +``` + +The methods that return a BigNumber can be chained. + +```javascript +x.dividedBy(y).plus(z).times(9) +x.times('1.23456780123456789e+9').plus(9876.5432321).dividedBy('4444562598.111772').integerValue() +``` + +Some of the longer method names have a shorter alias. + +```javascript +x.squareRoot().dividedBy(y).exponentiatedBy(3).isEqualTo(x.sqrt().div(y).pow(3)) // true +x.modulo(y).multipliedBy(z).eq(x.mod(y).times(z)) // true +``` + +As with JavaScript's Number type, there are [`toExponential`](http://mikemcl.github.io/bignumber.js/#toE), [`toFixed`](http://mikemcl.github.io/bignumber.js/#toFix) and [`toPrecision`](http://mikemcl.github.io/bignumber.js/#toP) methods. + +```javascript +x = new BigNumber(255.5) +x.toExponential(5) // "2.55500e+2" +x.toFixed(5) // "255.50000" +x.toPrecision(5) // "255.50" +x.toNumber() // 255.5 +``` + + A base can be specified for [`toString`](http://mikemcl.github.io/bignumber.js/#toS). Performance is better if base 10 is NOT specified, i.e. use `toString()` not `toString(10)`. Only specify base 10 when it is desired that the number of decimal places be limited to the current [`DECIMAL_PLACES`](http://mikemcl.github.io/bignumber.js/#decimal-places) setting. + + ```javascript + x.toString(16) // "ff.8" + ``` + +There is a [`toFormat`](http://mikemcl.github.io/bignumber.js/#toFor) method which may be useful for internationalisation. + +```javascript +y = new BigNumber('1234567.898765') +y.toFormat(2) // "1,234,567.90" +``` + +The maximum number of decimal places of the result of an operation involving division (i.e. a division, square root, base conversion or negative power operation) is set using the `set` or `config` method of the `BigNumber` constructor. + +The other arithmetic operations always give the exact result. + +```javascript +BigNumber.set({ DECIMAL_PLACES: 10, ROUNDING_MODE: 4 }) + +x = new BigNumber(2) +y = new BigNumber(3) +z = x.dividedBy(y) // "0.6666666667" +z.squareRoot() // "0.8164965809" +z.exponentiatedBy(-3) // "3.3749999995" +z.toString(2) // "0.1010101011" +z.multipliedBy(z) // "0.44444444448888888889" +z.multipliedBy(z).decimalPlaces(10) // "0.4444444445" +``` + +There is a [`toFraction`](http://mikemcl.github.io/bignumber.js/#toFr) method with an optional *maximum denominator* argument + +```javascript +y = new BigNumber(355) +pi = y.dividedBy(113) // "3.1415929204" +pi.toFraction() // [ "7853982301", "2500000000" ] +pi.toFraction(1000) // [ "355", "113" ] +``` + +and [`isNaN`](http://mikemcl.github.io/bignumber.js/#isNaN) and [`isFinite`](http://mikemcl.github.io/bignumber.js/#isF) methods, as `NaN` and `Infinity` are valid `BigNumber` values. + +```javascript +x = new BigNumber(NaN) // "NaN" +y = new BigNumber(Infinity) // "Infinity" +x.isNaN() && !y.isNaN() && !x.isFinite() && !y.isFinite() // true +``` + +The value of a BigNumber is stored in a decimal floating point format in terms of a coefficient, exponent and sign. + +```javascript +x = new BigNumber(-123.456); +x.c // [ 123, 45600000000000 ] coefficient (i.e. significand) +x.e // 2 exponent +x.s // -1 sign +``` + +For advanced usage, multiple BigNumber constructors can be created, each with their own independent configuration. + +```javascript +// Set DECIMAL_PLACES for the original BigNumber constructor +BigNumber.set({ DECIMAL_PLACES: 10 }) + +// Create another BigNumber constructor, optionally passing in a configuration object +BN = BigNumber.clone({ DECIMAL_PLACES: 5 }) + +x = new BigNumber(1) +y = new BN(1) + +x.div(3) // '0.3333333333' +y.div(3) // '0.33333' +``` + +For further information see the [API](http://mikemcl.github.io/bignumber.js/) reference in the *doc* directory. + +## Test + +The *test/modules* directory contains the test scripts for each method. + +The tests can be run with Node.js or a browser. For Node.js use + + $ npm test + +or + + $ node test/test + +To test a single method, use, for example + + $ node test/methods/toFraction + +For the browser, open *test/test.html*. + +## Build + +For Node, if [uglify-js](https://github.com/mishoo/UglifyJS2) is installed + + npm install uglify-js -g + +then + + npm run build + +will create *bignumber.min.js*. + +A source map will also be created in the root directory. + +## Feedback + +Open an issue, or email + +Michael + +M8ch88l@gmail.com + +## Licence + +The MIT Licence. + +See [LICENCE](https://github.com/MikeMcl/bignumber.js/blob/master/LICENCE). diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..dc9b0b1c57e1964769e66a2229f65f2fd14844d5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.d.ts" @@ -0,0 +1,1829 @@ +// Type definitions for bignumber.js >=8.1.0 +// Project: https://github.com/MikeMcl/bignumber.js +// Definitions by: Michael Mclaughlin +// Definitions: https://github.com/MikeMcl/bignumber.js + +// Documentation: http://mikemcl.github.io/bignumber.js/ +// +// Exports: +// +// class BigNumber (default export) +// type BigNumber.Constructor +// type BigNumber.ModuloMode +// type BigNumber.RoundingMOde +// type BigNumber.Value +// interface BigNumber.Config +// interface BigNumber.Format +// interface BigNumber.Instance +// +// Example: +// +// import {BigNumber} from "bignumber.js" +// //import BigNumber from "bignumber.js" +// +// let rm: BigNumber.RoundingMode = BigNumber.ROUND_UP; +// let f: BigNumber.Format = { decimalSeparator: ',' }; +// let c: BigNumber.Config = { DECIMAL_PLACES: 4, ROUNDING_MODE: rm, FORMAT: f }; +// BigNumber.config(c); +// +// let v: BigNumber.Value = '12345.6789'; +// let b: BigNumber = new BigNumber(v); +// +// The use of compiler option `--strictNullChecks` is recommended. + +export default BigNumber; + +export namespace BigNumber { + + /** See `BigNumber.config` (alias `BigNumber.set`) and `BigNumber.clone`. */ + interface Config { + + /** + * An integer, 0 to 1e+9. Default value: 20. + * + * The maximum number of decimal places of the result of operations involving division, i.e. + * division, square root and base conversion operations, and exponentiation when the exponent is + * negative. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 5 }) + * BigNumber.set({ DECIMAL_PLACES: 5 }) + * ``` + */ + DECIMAL_PLACES?: number; + + /** + * An integer, 0 to 8. Default value: `BigNumber.ROUND_HALF_UP` (4). + * + * The rounding mode used in operations that involve division (see `DECIMAL_PLACES`) and the + * default rounding mode of the `decimalPlaces`, `precision`, `toExponential`, `toFixed`, + * `toFormat` and `toPrecision` methods. + * + * The modes are available as enumerated properties of the BigNumber constructor. + * + * ```ts + * BigNumber.config({ ROUNDING_MODE: 0 }) + * BigNumber.set({ ROUNDING_MODE: BigNumber.ROUND_UP }) + * ``` + */ + ROUNDING_MODE?: BigNumber.RoundingMode; + + /** + * An integer, 0 to 1e+9, or an array, [-1e+9 to 0, 0 to 1e+9]. + * Default value: `[-7, 20]`. + * + * The exponent value(s) at which `toString` returns exponential notation. + * + * If a single number is assigned, the value is the exponent magnitude. + * + * If an array of two numbers is assigned then the first number is the negative exponent value at + * and beneath which exponential notation is used, and the second number is the positive exponent + * value at and above which exponential notation is used. + * + * For example, to emulate JavaScript numbers in terms of the exponent values at which they begin + * to use exponential notation, use `[-7, 20]`. + * + * ```ts + * BigNumber.config({ EXPONENTIAL_AT: 2 }) + * new BigNumber(12.3) // '12.3' e is only 1 + * new BigNumber(123) // '1.23e+2' + * new BigNumber(0.123) // '0.123' e is only -1 + * new BigNumber(0.0123) // '1.23e-2' + * + * BigNumber.config({ EXPONENTIAL_AT: [-7, 20] }) + * new BigNumber(123456789) // '123456789' e is only 8 + * new BigNumber(0.000000123) // '1.23e-7' + * + * // Almost never return exponential notation: + * BigNumber.config({ EXPONENTIAL_AT: 1e+9 }) + * + * // Always return exponential notation: + * BigNumber.config({ EXPONENTIAL_AT: 0 }) + * ``` + * + * Regardless of the value of `EXPONENTIAL_AT`, the `toFixed` method will always return a value in + * normal notation and the `toExponential` method will always return a value in exponential form. + * Calling `toString` with a base argument, e.g. `toString(10)`, will also always return normal + * notation. + */ + EXPONENTIAL_AT?: number | [number, number]; + + /** + * An integer, magnitude 1 to 1e+9, or an array, [-1e+9 to -1, 1 to 1e+9]. + * Default value: `[-1e+9, 1e+9]`. + * + * The exponent value(s) beyond which overflow to Infinity and underflow to zero occurs. + * + * If a single number is assigned, it is the maximum exponent magnitude: values wth a positive + * exponent of greater magnitude become Infinity and those with a negative exponent of greater + * magnitude become zero. + * + * If an array of two numbers is assigned then the first number is the negative exponent limit and + * the second number is the positive exponent limit. + * + * For example, to emulate JavaScript numbers in terms of the exponent values at which they + * become zero and Infinity, use [-324, 308]. + * + * ```ts + * BigNumber.config({ RANGE: 500 }) + * BigNumber.config().RANGE // [ -500, 500 ] + * new BigNumber('9.999e499') // '9.999e+499' + * new BigNumber('1e500') // 'Infinity' + * new BigNumber('1e-499') // '1e-499' + * new BigNumber('1e-500') // '0' + * + * BigNumber.config({ RANGE: [-3, 4] }) + * new BigNumber(99999) // '99999' e is only 4 + * new BigNumber(100000) // 'Infinity' e is 5 + * new BigNumber(0.001) // '0.01' e is only -3 + * new BigNumber(0.0001) // '0' e is -4 + * ``` + * The largest possible magnitude of a finite BigNumber is 9.999...e+1000000000. + * The smallest possible magnitude of a non-zero BigNumber is 1e-1000000000. + */ + RANGE?: number | [number, number]; + + /** + * A boolean: `true` or `false`. Default value: `false`. + * + * The value that determines whether cryptographically-secure pseudo-random number generation is + * used. If `CRYPTO` is set to true then the random method will generate random digits using + * `crypto.getRandomValues` in browsers that support it, or `crypto.randomBytes` if using a + * version of Node.js that supports it. + * + * If neither function is supported by the host environment then attempting to set `CRYPTO` to + * `true` will fail and an exception will be thrown. + * + * If `CRYPTO` is `false` then the source of randomness used will be `Math.random` (which is + * assumed to generate at least 30 bits of randomness). + * + * See `BigNumber.random`. + * + * ```ts + * // Node.js + * global.crypto = require('crypto') + * + * BigNumber.config({ CRYPTO: true }) + * BigNumber.config().CRYPTO // true + * BigNumber.random() // 0.54340758610486147524 + * ``` + */ + CRYPTO?: boolean; + + /** + * An integer, 0, 1, 3, 6 or 9. Default value: `BigNumber.ROUND_DOWN` (1). + * + * The modulo mode used when calculating the modulus: `a mod n`. + * The quotient, `q = a / n`, is calculated according to the `ROUNDING_MODE` that corresponds to + * the chosen `MODULO_MODE`. + * The remainder, `r`, is calculated as: `r = a - n * q`. + * + * The modes that are most commonly used for the modulus/remainder operation are shown in the + * following table. Although the other rounding modes can be used, they may not give useful + * results. + * + * Property | Value | Description + * :------------------|:------|:------------------------------------------------------------------ + * `ROUND_UP` | 0 | The remainder is positive if the dividend is negative. + * `ROUND_DOWN` | 1 | The remainder has the same sign as the dividend. + * | | Uses 'truncating division' and matches JavaScript's `%` operator . + * `ROUND_FLOOR` | 3 | The remainder has the same sign as the divisor. + * | | This matches Python's `%` operator. + * `ROUND_HALF_EVEN` | 6 | The IEEE 754 remainder function. + * `EUCLID` | 9 | The remainder is always positive. + * | | Euclidian division: `q = sign(n) * floor(a / abs(n))` + * + * The rounding/modulo modes are available as enumerated properties of the BigNumber constructor. + * + * See `modulo`. + * + * ```ts + * BigNumber.config({ MODULO_MODE: BigNumber.EUCLID }) + * BigNumber.set({ MODULO_MODE: 9 }) // equivalent + * ``` + */ + MODULO_MODE?: BigNumber.ModuloMode; + + /** + * An integer, 0 to 1e+9. Default value: 0. + * + * The maximum precision, i.e. number of significant digits, of the result of the power operation + * - unless a modulus is specified. + * + * If set to 0, the number of significant digits will not be limited. + * + * See `exponentiatedBy`. + * + * ```ts + * BigNumber.config({ POW_PRECISION: 100 }) + * ``` + */ + POW_PRECISION?: number; + + /** + * An object including any number of the properties shown below. + * + * The object configures the format of the string returned by the `toFormat` method. + * The example below shows the properties of the object that are recognised, and + * their default values. + * + * Unlike the other configuration properties, the values of the properties of the `FORMAT` object + * will not be checked for validity - the existing object will simply be replaced by the object + * that is passed in. + * + * See `toFormat`. + * + * ```ts + * BigNumber.config({ + * FORMAT: { + * // string to prepend + * prefix: '', + * // the decimal separator + * decimalSeparator: '.', + * // the grouping separator of the integer part + * groupSeparator: ',', + * // the primary grouping size of the integer part + * groupSize: 3, + * // the secondary grouping size of the integer part + * secondaryGroupSize: 0, + * // the grouping separator of the fraction part + * fractionGroupSeparator: ' ', + * // the grouping size of the fraction part + * fractionGroupSize: 0, + * // string to append + * suffix: '' + * } + * }) + * ``` + */ + FORMAT?: BigNumber.Format; + + /** + * The alphabet used for base conversion. The length of the alphabet corresponds to the maximum + * value of the base argument that can be passed to the BigNumber constructor or `toString`. + * + * Default value: `'0123456789abcdefghijklmnopqrstuvwxyz'`. + * + * There is no maximum length for the alphabet, but it must be at least 2 characters long, + * and it must not contain whitespace or a repeated character, or the sign indicators '+' and + * '-', or the decimal separator '.'. + * + * ```ts + * // duodecimal (base 12) + * BigNumber.config({ ALPHABET: '0123456789TE' }) + * x = new BigNumber('T', 12) + * x.toString() // '10' + * x.toString(12) // 'T' + * ``` + */ + ALPHABET?: string; + } + + /** See `FORMAT` and `toFormat`. */ + interface Format { + + /** The string to prepend. */ + prefix?: string; + + /** The decimal separator. */ + decimalSeparator?: string; + + /** The grouping separator of the integer part. */ + groupSeparator?: string; + + /** The primary grouping size of the integer part. */ + groupSize?: number; + + /** The secondary grouping size of the integer part. */ + secondaryGroupSize?: number; + + /** The grouping separator of the fraction part. */ + fractionGroupSeparator?: string; + + /** The grouping size of the fraction part. */ + fractionGroupSize?: number; + + /** The string to append. */ + suffix?: string; + } + + interface Instance { + + /** The coefficient of the value of this BigNumber, an array of base 1e14 integer numbers, or null. */ + readonly c: number[] | null; + + /** The exponent of the value of this BigNumber, an integer number, -1000000000 to 1000000000, or null. */ + readonly e: number | null; + + /** The sign of the value of this BigNumber, -1, 1, or null. */ + readonly s: number | null; + + [key: string]: any; + } + + type Constructor = typeof BigNumber; + type ModuloMode = 0 | 1 | 3 | 6 | 9; + type RoundingMode = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + type Value = string | number | Instance; +} + +export declare class BigNumber implements BigNumber.Instance { + + /** Used internally to identify a BigNumber instance. */ + private readonly _isBigNumber: true; + + /** The coefficient of the value of this BigNumber, an array of base 1e14 integer numbers, or null. */ + readonly c: number[] | null; + + /** The exponent of the value of this BigNumber, an integer number, -1000000000 to 1000000000, or null. */ + readonly e: number | null; + + /** The sign of the value of this BigNumber, -1, 1, or null. */ + readonly s: number | null; + + /** + * Returns a new instance of a BigNumber object with value `n`, where `n` is a numeric value in + * the specified `base`, or base 10 if `base` is omitted or is `null` or `undefined`. + * + * ```ts + * x = new BigNumber(123.4567) // '123.4567' + * // 'new' is optional + * y = BigNumber(x) // '123.4567' + * ``` + * + * If `n` is a base 10 value it can be in normal (fixed-point) or exponential notation. + * Values in other bases must be in normal notation. Values in any base can have fraction digits, + * i.e. digits after the decimal point. + * + * ```ts + * new BigNumber(43210) // '43210' + * new BigNumber('4.321e+4') // '43210' + * new BigNumber('-735.0918e-430') // '-7.350918e-428' + * new BigNumber('123412421.234324', 5) // '607236.557696' + * ``` + * + * Signed `0`, signed `Infinity` and `NaN` are supported. + * + * ```ts + * new BigNumber('-Infinity') // '-Infinity' + * new BigNumber(NaN) // 'NaN' + * new BigNumber(-0) // '0' + * new BigNumber('.5') // '0.5' + * new BigNumber('+2') // '2' + * ``` + * + * String values in hexadecimal literal form, e.g. `'0xff'`, are valid, as are string values with + * the octal and binary prefixs `'0o'` and `'0b'`. String values in octal literal form without the + * prefix will be interpreted as decimals, e.g. `'011'` is interpreted as 11, not 9. + * + * ```ts + * new BigNumber(-10110100.1, 2) // '-180.5' + * new BigNumber('-0b10110100.1') // '-180.5' + * new BigNumber('ff.8', 16) // '255.5' + * new BigNumber('0xff.8') // '255.5' + * ``` + * + * If a base is specified, `n` is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings. This includes base 10, so don't include a `base` parameter for decimal + * values unless this behaviour is desired. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 5 }) + * new BigNumber(1.23456789) // '1.23456789' + * new BigNumber(1.23456789, 10) // '1.23457' + * ``` + * + * An error is thrown if `base` is invalid. + * + * There is no limit to the number of digits of a value of type string (other than that of + * JavaScript's maximum array size). See `RANGE` to set the maximum and minimum possible exponent + * value of a BigNumber. + * + * ```ts + * new BigNumber('5032485723458348569331745.33434346346912144534543') + * new BigNumber('4.321e10000000') + * ``` + * + * BigNumber `NaN` is returned if `n` is invalid (unless `BigNumber.DEBUG` is `true`, see below). + * + * ```ts + * new BigNumber('.1*') // 'NaN' + * new BigNumber('blurgh') // 'NaN' + * new BigNumber(9, 2) // 'NaN' + * ``` + * + * To aid in debugging, if `BigNumber.DEBUG` is `true` then an error will be thrown on an + * invalid `n`. An error will also be thrown if `n` is of type number with more than 15 + * significant digits, as calling `toString` or `valueOf` on these numbers may not result in the + * intended value. + * + * ```ts + * console.log(823456789123456.3) // 823456789123456.2 + * new BigNumber(823456789123456.3) // '823456789123456.2' + * BigNumber.DEBUG = true + * // 'Error: Number has more than 15 significant digits' + * new BigNumber(823456789123456.3) + * // 'Error: Not a base 2 number' + * new BigNumber(9, 2) + * ``` + * + * A BigNumber can also be created from an object literal. + * Use `isBigNumber` to check that it is well-formed. + * + * ```ts + * new BigNumber({ s: 1, e: 2, c: [ 777, 12300000000000 ], _isBigNumber: true }) // '777.123' + * ``` + * + * @param n A numeric value. + * @param base The base of `n`, integer, 2 to 36 (or `ALPHABET.length`, see `ALPHABET`). + */ + constructor(n: BigNumber.Value, base?: number); + + /** + * Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of this + * BigNumber. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber(-0.8) + * x.absoluteValue() // '0.8' + * ``` + */ + absoluteValue(): BigNumber; + + /** + * Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of this + * BigNumber. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber(-0.8) + * x.abs() // '0.8' + * ``` + */ + abs(): BigNumber; + + /** + * Returns | | + * :-------:|:--------------------------------------------------------------| + * 1 | If the value of this BigNumber is greater than the value of `n` + * -1 | If the value of this BigNumber is less than the value of `n` + * 0 | If this BigNumber and `n` have the same value + * `null` | If the value of either this BigNumber or `n` is `NaN` + * + * ```ts + * + * x = new BigNumber(Infinity) + * y = new BigNumber(5) + * x.comparedTo(y) // 1 + * x.comparedTo(x.minus(1)) // 0 + * y.comparedTo(NaN) // null + * y.comparedTo('110', 2) // -1 + * ``` + * @param n A numeric value. + * @param [base] The base of n. + */ + comparedTo(n: BigNumber.Value, base?: number): number; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded by rounding mode + * `roundingMode` to a maximum of `decimalPlaces` decimal places. + * + * If `decimalPlaces` is omitted, or is `null` or `undefined`, the return value is the number of + * decimal places of the value of this BigNumber, or `null` if the value of this BigNumber is + * 卤`Infinity` or `NaN`. + * + * If `roundingMode` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(1234.56) + * x.decimalPlaces() // 2 + * x.decimalPlaces(1) // '1234.6' + * x.decimalPlaces(2) // '1234.56' + * x.decimalPlaces(10) // '1234.56' + * x.decimalPlaces(0, 1) // '1234' + * x.decimalPlaces(0, 6) // '1235' + * x.decimalPlaces(1, 1) // '1234.5' + * x.decimalPlaces(1, BigNumber.ROUND_HALF_EVEN) // '1234.6' + * x // '1234.56' + * y = new BigNumber('9.9e-101') + * y.decimalPlaces() // 102 + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + decimalPlaces(): number; + decimalPlaces(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded by rounding mode + * `roundingMode` to a maximum of `decimalPlaces` decimal places. + * + * If `decimalPlaces` is omitted, or is `null` or `undefined`, the return value is the number of + * decimal places of the value of this BigNumber, or `null` if the value of this BigNumber is + * 卤`Infinity` or `NaN`. + * + * If `roundingMode` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(1234.56) + * x.dp() // 2 + * x.dp(1) // '1234.6' + * x.dp(2) // '1234.56' + * x.dp(10) // '1234.56' + * x.dp(0, 1) // '1234' + * x.dp(0, 6) // '1235' + * x.dp(1, 1) // '1234.5' + * x.dp(1, BigNumber.ROUND_HALF_EVEN) // '1234.6' + * x // '1234.56' + * y = new BigNumber('9.9e-101') + * y.dp() // 102 + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + dp(): number; + dp(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber divided by `n`, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * ```ts + * x = new BigNumber(355) + * y = new BigNumber(113) + * x.dividedBy(y) // '3.14159292035398230088' + * x.dividedBy(5) // '71' + * x.dividedBy(47, 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + dividedBy(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber divided by `n`, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * ```ts + * x = new BigNumber(355) + * y = new BigNumber(113) + * x.div(y) // '3.14159292035398230088' + * x.div(5) // '71' + * x.div(47, 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + div(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by + * `n`. + * + * ```ts + * x = new BigNumber(5) + * y = new BigNumber(3) + * x.dividedToIntegerBy(y) // '1' + * x.dividedToIntegerBy(0.7) // '7' + * x.dividedToIntegerBy('0.f', 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + dividedToIntegerBy(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by + * `n`. + * + * ```ts + * x = new BigNumber(5) + * y = new BigNumber(3) + * x.idiv(y) // '1' + * x.idiv(0.7) // '7' + * x.idiv('0.f', 16) // '5' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + idiv(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber exponentiated by `n`, i.e. + * raised to the power `n`, and optionally modulo a modulus `m`. + * + * If `n` is negative the result is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings. + * + * As the number of digits of the result of the power operation can grow so large so quickly, + * e.g. 123.456**10000 has over 50000 digits, the number of significant digits calculated is + * limited to the value of the `POW_PRECISION` setting (unless a modulus `m` is specified). + * + * By default `POW_PRECISION` is set to 0. This means that an unlimited number of significant + * digits will be calculated, and that the method's performance will decrease dramatically for + * larger exponents. + * + * If `m` is specified and the value of `m`, `n` and this BigNumber are integers and `n` is + * positive, then a fast modular exponentiation algorithm is used, otherwise the operation will + * be performed as `x.exponentiatedBy(n).modulo(m)` with a `POW_PRECISION` of 0. + * + * Throws if `n` is not an integer. + * + * ```ts + * Math.pow(0.7, 2) // 0.48999999999999994 + * x = new BigNumber(0.7) + * x.exponentiatedBy(2) // '0.49' + * BigNumber(3).exponentiatedBy(-2) // '0.11111111111111111111' + * ``` + * + * @param n The exponent, an integer. + * @param [m] The modulus. + */ + exponentiatedBy(n: BigNumber.Value, m?: BigNumber.Value): BigNumber; + exponentiatedBy(n: number, m?: BigNumber.Value): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber exponentiated by `n`, i.e. + * raised to the power `n`, and optionally modulo a modulus `m`. + * + * If `n` is negative the result is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings. + * + * As the number of digits of the result of the power operation can grow so large so quickly, + * e.g. 123.456**10000 has over 50000 digits, the number of significant digits calculated is + * limited to the value of the `POW_PRECISION` setting (unless a modulus `m` is specified). + * + * By default `POW_PRECISION` is set to 0. This means that an unlimited number of significant + * digits will be calculated, and that the method's performance will decrease dramatically for + * larger exponents. + * + * If `m` is specified and the value of `m`, `n` and this BigNumber are integers and `n` is + * positive, then a fast modular exponentiation algorithm is used, otherwise the operation will + * be performed as `x.pow(n).modulo(m)` with a `POW_PRECISION` of 0. + * + * Throws if `n` is not an integer. + * + * ```ts + * Math.pow(0.7, 2) // 0.48999999999999994 + * x = new BigNumber(0.7) + * x.pow(2) // '0.49' + * BigNumber(3).pow(-2) // '0.11111111111111111111' + * ``` + * + * @param n The exponent, an integer. + * @param [m] The modulus. + */ + pow(n: BigNumber.Value, m?: BigNumber.Value): BigNumber; + pow(n: number, m?: BigNumber.Value): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded to an integer using + * rounding mode `rm`. + * + * If `rm` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `rm` is invalid. + * + * ```ts + * x = new BigNumber(123.456) + * x.integerValue() // '123' + * x.integerValue(BigNumber.ROUND_CEIL) // '124' + * y = new BigNumber(-12.7) + * y.integerValue() // '-13' + * x.integerValue(BigNumber.ROUND_DOWN) // '-12' + * ``` + * + * @param {BigNumber.RoundingMode} [rm] The roundng mode, an integer, 0 to 8. + */ + integerValue(rm?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns `true` if the value of this BigNumber is equal to the value of `n`, otherwise returns + * `false`. + * + * As with JavaScript, `NaN` does not equal `NaN`. + * + * ```ts + * 0 === 1e-324 // true + * x = new BigNumber(0) + * x.isEqualTo('1e-324') // false + * BigNumber(-0).isEqualTo(x) // true ( -0 === 0 ) + * BigNumber(255).isEqualTo('ff', 16) // true + * + * y = new BigNumber(NaN) + * y.isEqualTo(NaN) // false + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isEqualTo(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is equal to the value of `n`, otherwise returns + * `false`. + * + * As with JavaScript, `NaN` does not equal `NaN`. + * + * ```ts + * 0 === 1e-324 // true + * x = new BigNumber(0) + * x.eq('1e-324') // false + * BigNumber(-0).eq(x) // true ( -0 === 0 ) + * BigNumber(255).eq('ff', 16) // true + * + * y = new BigNumber(NaN) + * y.eq(NaN) // false + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + eq(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is a finite number, otherwise returns `false`. + * + * The only possible non-finite values of a BigNumber are `NaN`, `Infinity` and `-Infinity`. + * + * ```ts + * x = new BigNumber(1) + * x.isFinite() // true + * y = new BigNumber(Infinity) + * y.isFinite() // false + * ``` + */ + isFinite(): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than the value of `n`, otherwise + * returns `false`. + * + * ```ts + * 0.1 > (0.3 - 0.2) // true + * x = new BigNumber(0.1) + * x.isGreaterThan(BigNumber(0.3).minus(0.2)) // false + * BigNumber(0).isGreaterThan(x) // false + * BigNumber(11, 3).isGreaterThan(11.1, 2) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isGreaterThan(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than the value of `n`, otherwise + * returns `false`. + * + * ```ts + * 0.1 > (0.3 - 0 // true + * x = new BigNumber(0.1) + * x.gt(BigNumber(0.3).minus(0.2)) // false + * BigNumber(0).gt(x) // false + * BigNumber(11, 3).gt(11.1, 2) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + gt(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * (0.3 - 0.2) >= 0.1 // false + * x = new BigNumber(0.3).minus(0.2) + * x.isGreaterThanOrEqualTo(0.1) // true + * BigNumber(1).isGreaterThanOrEqualTo(x) // true + * BigNumber(10, 18).isGreaterThanOrEqualTo('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isGreaterThanOrEqualTo(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is greater than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * (0.3 - 0.2) >= 0.1 // false + * x = new BigNumber(0.3).minus(0.2) + * x.gte(0.1) // true + * BigNumber(1).gte(x) // true + * BigNumber(10, 18).gte('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + gte(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is an integer, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(1) + * x.isInteger() // true + * y = new BigNumber(123.456) + * y.isInteger() // false + * ``` + */ + isInteger(): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than the value of `n`, otherwise returns + * `false`. + * + * ```ts + * (0.3 - 0.2) < 0.1 // true + * x = new BigNumber(0.3).minus(0.2) + * x.isLessThan(0.1) // false + * BigNumber(0).isLessThan(x) // true + * BigNumber(11.1, 2).isLessThan(11, 3) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isLessThan(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than the value of `n`, otherwise returns + * `false`. + * + * ```ts + * (0.3 - 0.2) < 0.1 // true + * x = new BigNumber(0.3).minus(0.2) + * x.lt(0.1) // false + * BigNumber(0).lt(x) // true + * BigNumber(11.1, 2).lt(11, 3) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + lt(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * 0.1 <= (0.3 - 0.2) // false + * x = new BigNumber(0.1) + * x.isLessThanOrEqualTo(BigNumber(0.3).minus(0.2)) // true + * BigNumber(-1).isLessThanOrEqualTo(x) // true + * BigNumber(10, 18).isLessThanOrEqualTo('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + isLessThanOrEqualTo(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is less than or equal to the value of `n`, + * otherwise returns `false`. + * + * ```ts + * 0.1 <= (0.3 - 0.2) // false + * x = new BigNumber(0.1) + * x.lte(BigNumber(0.3).minus(0.2)) // true + * BigNumber(-1).lte(x) // true + * BigNumber(10, 18).lte('i', 36) // true + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + lte(n: BigNumber.Value, base?: number): boolean; + + /** + * Returns `true` if the value of this BigNumber is `NaN`, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(NaN) + * x.isNaN() // true + * y = new BigNumber('Infinity') + * y.isNaN() // false + * ``` + */ + isNaN(): boolean; + + /** + * Returns `true` if the value of this BigNumber is negative, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(-0) + * x.isNegative() // true + * y = new BigNumber(2) + * y.isNegative() // false + * ``` + */ + isNegative(): boolean; + + /** + * Returns `true` if the value of this BigNumber is positive, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(-0) + * x.isPositive() // false + * y = new BigNumber(2) + * y.isPositive() // true + * ``` + */ + isPositive(): boolean; + + /** + * Returns `true` if the value of this BigNumber is zero or minus zero, otherwise returns `false`. + * + * ```ts + * x = new BigNumber(-0) + * x.isZero() // true + * ``` + */ + isZero(): boolean; + + /** + * Returns a BigNumber whose value is the value of this BigNumber minus `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.3 - 0.1 // 0.19999999999999998 + * x = new BigNumber(0.3) + * x.minus(0.1) // '0.2' + * x.minus(0.6, 20) // '0' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + minus(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber modulo `n`, i.e. the integer + * remainder of dividing this BigNumber by `n`. + * + * The value returned, and in particular its sign, is dependent on the value of the `MODULO_MODE` + * setting of this BigNumber constructor. If it is 1 (default value), the result will have the + * same sign as this BigNumber, and it will match that of Javascript's `%` operator (within the + * limits of double precision) and BigDecimal's `remainder` method. + * + * The return value is always exact and unrounded. + * + * See `MODULO_MODE` for a description of the other modulo modes. + * + * ```ts + * 1 % 0.9 // 0.09999999999999998 + * x = new BigNumber(1) + * x.modulo(0.9) // '0.1' + * y = new BigNumber(33) + * y.modulo('a', 33) // '3' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + modulo(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber modulo `n`, i.e. the integer + * remainder of dividing this BigNumber by `n`. + * + * The value returned, and in particular its sign, is dependent on the value of the `MODULO_MODE` + * setting of this BigNumber constructor. If it is 1 (default value), the result will have the + * same sign as this BigNumber, and it will match that of Javascript's `%` operator (within the + * limits of double precision) and BigDecimal's `remainder` method. + * + * The return value is always exact and unrounded. + * + * See `MODULO_MODE` for a description of the other modulo modes. + * + * ```ts + * 1 % 0.9 // 0.09999999999999998 + * x = new BigNumber(1) + * x.mod(0.9) // '0.1' + * y = new BigNumber(33) + * y.mod('a', 33) // '3' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + mod(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber multiplied by `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.6 * 3 // 1.7999999999999998 + * x = new BigNumber(0.6) + * y = x.multipliedBy(3) // '1.8' + * BigNumber('7e+500').multipliedBy(y) // '1.26e+501' + * x.multipliedBy('-a', 16) // '-6' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + multipliedBy(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber multiplied by `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.6 * 3 // 1.7999999999999998 + * x = new BigNumber(0.6) + * y = x.times(3) // '1.8' + * BigNumber('7e+500').times(y) // '1.26e+501' + * x.times('-a', 16) // '-6' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + times(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber negated, i.e. multiplied by -1. + * + * ```ts + * x = new BigNumber(1.8) + * x.negated() // '-1.8' + * y = new BigNumber(-1.3) + * y.negated() // '1.3' + * ``` + */ + negated(): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber plus `n`. + * + * The return value is always exact and unrounded. + * + * ```ts + * 0.1 + 0.2 // 0.30000000000000004 + * x = new BigNumber(0.1) + * y = x.plus(0.2) // '0.3' + * BigNumber(0.7).plus(x).plus(y) // '1' + * x.plus('0.1', 8) // '0.225' + * ``` + * + * @param n A numeric value. + * @param [base] The base of n. + */ + plus(n: BigNumber.Value, base?: number): BigNumber; + + /** + * Returns the number of significant digits of the value of this BigNumber, or `null` if the value + * of this BigNumber is 卤`Infinity` or `NaN`. + * + * If `includeZeros` is true then any trailing zeros of the integer part of the value of this + * BigNumber are counted as significant digits, otherwise they are not. + * + * Throws if `includeZeros` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.precision() // 9 + * y = new BigNumber(987000) + * y.precision(false) // 3 + * y.precision(true) // 6 + * ``` + * + * @param [includeZeros] Whether to include integer trailing zeros in the significant digit count. + */ + precision(includeZeros?: boolean): number; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded to a precision of + * `significantDigits` significant digits using rounding mode `roundingMode`. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` will be used. + * + * Throws if `significantDigits` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.precision(6) // '9876.54' + * x.precision(6, BigNumber.ROUND_UP) // '9876.55' + * x.precision(2) // '9900' + * x.precision(2, 1) // '9800' + * x // '9876.54321' + * ``` + * + * @param significantDigits Significant digits, integer, 1 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + precision(significantDigits: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns the number of significant digits of the value of this BigNumber, + * or `null` if the value of this BigNumber is 卤`Infinity` or `NaN`. + * + * If `includeZeros` is true then any trailing zeros of the integer part of + * the value of this BigNumber are counted as significant digits, otherwise + * they are not. + * + * Throws if `includeZeros` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.sd() // 9 + * y = new BigNumber(987000) + * y.sd(false) // 3 + * y.sd(true) // 6 + * ``` + * + * @param [includeZeros] Whether to include integer trailing zeros in the significant digit count. + */ + sd(includeZeros?: boolean): number; + + /** + * Returns a BigNumber whose value is the value of this BigNumber rounded to a precision of + * `significantDigits` significant digits using rounding mode `roundingMode`. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` will be used. + * + * Throws if `significantDigits` or `roundingMode` is invalid. + * + * ```ts + * x = new BigNumber(9876.54321) + * x.sd(6) // '9876.54' + * x.sd(6, BigNumber.ROUND_UP) // '9876.55' + * x.sd(2) // '9900' + * x.sd(2, 1) // '9800' + * x // '9876.54321' + * ``` + * + * @param significantDigits Significant digits, integer, 1 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + sd(significantDigits: number, roundingMode?: BigNumber.RoundingMode): BigNumber; + + /** + * Returns a BigNumber whose value is the value of this BigNumber shifted by `n` places. + * + * The shift is of the decimal point, i.e. of powers of ten, and is to the left if `n` is negative + * or to the right if `n` is positive. + * + * The return value is always exact and unrounded. + * + * Throws if `n` is invalid. + * + * ```ts + * x = new BigNumber(1.23) + * x.shiftedBy(3) // '1230' + * x.shiftedBy(-3) // '0.00123' + * ``` + * + * @param n The shift value, integer, -9007199254740991 to 9007199254740991. + */ + shiftedBy(n: number): BigNumber; + + /** + * Returns a BigNumber whose value is the square root of the value of this BigNumber, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * The return value will be correctly rounded, i.e. rounded as if the result was first calculated + * to an infinite number of correct digits before rounding. + * + * ```ts + * x = new BigNumber(16) + * x.squareRoot() // '4' + * y = new BigNumber(3) + * y.squareRoot() // '1.73205080756887729353' + * ``` + */ + squareRoot(): BigNumber; + + /** + * Returns a BigNumber whose value is the square root of the value of this BigNumber, rounded + * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings. + * + * The return value will be correctly rounded, i.e. rounded as if the result was first calculated + * to an infinite number of correct digits before rounding. + * + * ```ts + * x = new BigNumber(16) + * x.sqrt() // '4' + * y = new BigNumber(3) + * y.sqrt() // '1.73205080756887729353' + * ``` + */ + sqrt(): BigNumber; + + /** + * Returns a string representing the value of this BigNumber in exponential notation rounded using + * rounding mode `roundingMode` to `decimalPlaces` decimal places, i.e with one digit before the + * decimal point and `decimalPlaces` digits after it. + * + * If the value of this BigNumber in exponential notation has fewer than `decimalPlaces` fraction + * digits, the return value will be appended with zeros accordingly. + * + * If `decimalPlaces` is omitted, or is `null` or `undefined`, the number of digits after the + * decimal point defaults to the minimum number of digits necessary to represent the value + * exactly. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = 45.6 + * y = new BigNumber(x) + * x.toExponential() // '4.56e+1' + * y.toExponential() // '4.56e+1' + * x.toExponential(0) // '5e+1' + * y.toExponential(0) // '5e+1' + * x.toExponential(1) // '4.6e+1' + * y.toExponential(1) // '4.6e+1' + * y.toExponential(1, 1) // '4.5e+1' (ROUND_DOWN) + * x.toExponential(3) // '4.560e+1' + * y.toExponential(3) // '4.560e+1' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + toExponential(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string; + toExponential(): string; + + /** + * Returns a string representing the value of this BigNumber in normal (fixed-point) notation + * rounded to `decimalPlaces` decimal places using rounding mode `roundingMode`. + * + * If the value of this BigNumber in normal notation has fewer than `decimalPlaces` fraction + * digits, the return value will be appended with zeros accordingly. + * + * Unlike `Number.prototype.toFixed`, which returns exponential notation if a number is greater or + * equal to 10**21, this method will always return normal notation. + * + * If `decimalPlaces` is omitted or is `null` or `undefined`, the return value will be unrounded + * and in normal notation. This is also unlike `Number.prototype.toFixed`, which returns the value + * to zero decimal places. It is useful when normal notation is required and the current + * `EXPONENTIAL_AT` setting causes `toString` to return exponential notation. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `decimalPlaces` or `roundingMode` is invalid. + * + * ```ts + * x = 3.456 + * y = new BigNumber(x) + * x.toFixed() // '3' + * y.toFixed() // '3.456' + * y.toFixed(0) // '3' + * x.toFixed(2) // '3.46' + * y.toFixed(2) // '3.46' + * y.toFixed(2, 1) // '3.45' (ROUND_DOWN) + * x.toFixed(5) // '3.45600' + * y.toFixed(5) // '3.45600' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + */ + toFixed(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string; + toFixed(): string; + + /** + * Returns a string representing the value of this BigNumber in normal (fixed-point) notation + * rounded to `decimalPlaces` decimal places using rounding mode `roundingMode`, and formatted + * according to the properties of the `format` or `FORMAT` object. + * + * The formatting object may contain some or all of the properties shown in the examples below. + * + * If `decimalPlaces` is omitted or is `null` or `undefined`, then the return value is not + * rounded to a fixed number of decimal places. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * If `format` is omitted or is `null` or `undefined`, `FORMAT` is used. + * + * Throws if `decimalPlaces`, `roundingMode`, or `format` is invalid. + * + * ```ts + * fmt = { + * decimalSeparator: '.', + * groupSeparator: ',', + * groupSize: 3, + * secondaryGroupSize: 0, + * fractionGroupSeparator: ' ', + * fractionGroupSize: 0 + * } + * + * x = new BigNumber('123456789.123456789') + * + * // Set the global formatting options + * BigNumber.config({ FORMAT: fmt }) + * + * x.toFormat() // '123,456,789.123456789' + * x.toFormat(3) // '123,456,789.123' + * + * // If a reference to the object assigned to FORMAT has been retained, + * // the format properties can be changed directly + * fmt.groupSeparator = ' ' + * fmt.fractionGroupSize = 5 + * x.toFormat() // '123 456 789.12345 6789' + * + * // Alternatively, pass the formatting options as an argument + * fmt = { + * decimalSeparator: ',', + * groupSeparator: '.', + * groupSize: 3, + * secondaryGroupSize: 2 + * } + * + * x.toFormat() // '123 456 789.12345 6789' + * x.toFormat(fmt) // '12.34.56.789,123456789' + * x.toFormat(2, fmt) // '12.34.56.789,12' + * x.toFormat(3, BigNumber.ROUND_UP, fmt) // '12.34.56.789,124' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + * @param [roundingMode] Rounding mode, integer, 0 to 8. + * @param [format] Formatting options object. See `BigNumber.Format`. + */ + toFormat(decimalPlaces: number, roundingMode: BigNumber.RoundingMode, format?: BigNumber.Format): string; + toFormat(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string; + toFormat(decimalPlaces?: number): string; + toFormat(decimalPlaces: number, format: BigNumber.Format): string; + toFormat(format: BigNumber.Format): string; + + /** + * Returns an array of two BigNumbers representing the value of this BigNumber as a simple + * fraction with an integer numerator and an integer denominator. + * The denominator will be a positive non-zero value less than or equal to `max_denominator`. + * If a maximum denominator, `max_denominator`, is not specified, or is `null` or `undefined`, the + * denominator will be the lowest value necessary to represent the number exactly. + * + * Throws if `max_denominator` is invalid. + * + * ```ts + * x = new BigNumber(1.75) + * x.toFraction() // '7, 4' + * + * pi = new BigNumber('3.14159265358') + * pi.toFraction() // '157079632679,50000000000' + * pi.toFraction(100000) // '312689, 99532' + * pi.toFraction(10000) // '355, 113' + * pi.toFraction(100) // '311, 99' + * pi.toFraction(10) // '22, 7' + * pi.toFraction(1) // '3, 1' + * ``` + * + * @param [max_denominator] The maximum denominator, integer > 0, or Infinity. + */ + toFraction(max_denominator?: BigNumber.Value): [BigNumber, BigNumber]; + + /** As `valueOf`. */ + toJSON(): string; + + /** + * Returns the value of this BigNumber as a JavaScript primitive number. + * + * Using the unary plus operator gives the same result. + * + * ```ts + * x = new BigNumber(456.789) + * x.toNumber() // 456.789 + * +x // 456.789 + * + * y = new BigNumber('45987349857634085409857349856430985') + * y.toNumber() // 4.598734985763409e+34 + * + * z = new BigNumber(-0) + * 1 / z.toNumber() // -Infinity + * 1 / +z // -Infinity + * ``` + */ + toNumber(): number; + + /** + * Returns a string representing the value of this BigNumber rounded to `significantDigits` + * significant digits using rounding mode `roundingMode`. + * + * If `significantDigits` is less than the number of digits necessary to represent the integer + * part of the value in normal (fixed-point) notation, then exponential notation is used. + * + * If `significantDigits` is omitted, or is `null` or `undefined`, then the return value is the + * same as `n.toString()`. + * + * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used. + * + * Throws if `significantDigits` or `roundingMode` is invalid. + * + * ```ts + * x = 45.6 + * y = new BigNumber(x) + * x.toPrecision() // '45.6' + * y.toPrecision() // '45.6' + * x.toPrecision(1) // '5e+1' + * y.toPrecision(1) // '5e+1' + * y.toPrecision(2, 0) // '4.6e+1' (ROUND_UP) + * y.toPrecision(2, 1) // '4.5e+1' (ROUND_DOWN) + * x.toPrecision(5) // '45.600' + * y.toPrecision(5) // '45.600' + * ``` + * + * @param [significantDigits] Significant digits, integer, 1 to 1e+9. + * @param [roundingMode] Rounding mode, integer 0 to 8. + */ + toPrecision(significantDigits: number, roundingMode?: BigNumber.RoundingMode): string; + toPrecision(): string; + + /** + * Returns a string representing the value of this BigNumber in base `base`, or base 10 if `base` + * is omitted or is `null` or `undefined`. + * + * For bases above 10, and using the default base conversion alphabet (see `ALPHABET`), values + * from 10 to 35 are represented by a-z (the same as `Number.prototype.toString`). + * + * If a base is specified the value is rounded according to the current `DECIMAL_PLACES` and + * `ROUNDING_MODE` settings, otherwise it is not. + * + * If a base is not specified, and this BigNumber has a positive exponent that is equal to or + * greater than the positive component of the current `EXPONENTIAL_AT` setting, or a negative + * exponent equal to or less than the negative component of the setting, then exponential notation + * is returned. + * + * If `base` is `null` or `undefined` it is ignored. + * + * Throws if `base` is invalid. + * + * ```ts + * x = new BigNumber(750000) + * x.toString() // '750000' + * BigNumber.config({ EXPONENTIAL_AT: 5 }) + * x.toString() // '7.5e+5' + * + * y = new BigNumber(362.875) + * y.toString(2) // '101101010.111' + * y.toString(9) // '442.77777777777777777778' + * y.toString(32) // 'ba.s' + * + * BigNumber.config({ DECIMAL_PLACES: 4 }); + * z = new BigNumber('1.23456789') + * z.toString() // '1.23456789' + * z.toString(10) // '1.2346' + * ``` + * + * @param [base] The base, integer, 2 to 36 (or `ALPHABET.length`, see `ALPHABET`). + */ + toString(base?: number): string; + + /** + * As `toString`, but does not accept a base argument and includes the minus sign for negative + * zero. + * + * ``ts + * x = new BigNumber('-0') + * x.toString() // '0' + * x.valueOf() // '-0' + * y = new BigNumber('1.777e+457') + * y.valueOf() // '1.777e+457' + * ``` + */ + valueOf(): string; + + /** Helps ES6 import. */ + private static readonly default?: BigNumber.Constructor; + + /** Helps ES6 import. */ + private static readonly BigNumber?: BigNumber.Constructor; + + /** Rounds away from zero. */ + static readonly ROUND_UP: 0; + + /** Rounds towards zero. */ + static readonly ROUND_DOWN: 1; + + /** Rounds towards Infinity. */ + static readonly ROUND_CEIL: 2; + + /** Rounds towards -Infinity. */ + static readonly ROUND_FLOOR: 3; + + /** Rounds towards nearest neighbour. If equidistant, rounds away from zero . */ + static readonly ROUND_HALF_UP: 4; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards zero. */ + static readonly ROUND_HALF_DOWN: 5; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards even neighbour. */ + static readonly ROUND_HALF_EVEN: 6; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards Infinity. */ + static readonly ROUND_HALF_CEIL: 7; + + /** Rounds towards nearest neighbour. If equidistant, rounds towards -Infinity. */ + static readonly ROUND_HALF_FLOOR: 8; + + /** See `MODULO_MODE`. */ + static readonly EUCLID: 9; + + /** + * To aid in debugging, if a `BigNumber.DEBUG` property is `true` then an error will be thrown + * if the BigNumber constructor receives an invalid `BigNumber.Value`, or if `BigNumber.isBigNumber` + * receives a BigNumber instance that is malformed. + * + * ```ts + * // No error, and BigNumber NaN is returned. + * new BigNumber('blurgh') // 'NaN' + * new BigNumber(9, 2) // 'NaN' + * BigNumber.DEBUG = true + * new BigNumber('blurgh') // '[BigNumber Error] Not a number' + * new BigNumber(9, 2) // '[BigNumber Error] Not a base 2 number' + * ``` + * + * An error will also be thrown if a `BigNumber.Value` is of type number with more than 15 + * significant digits, as calling `toString` or `valueOf` on such numbers may not result + * in the intended value. + * + * ```ts + * console.log(823456789123456.3) // 823456789123456.2 + * // No error, and the returned BigNumber does not have the same value as the number literal. + * new BigNumber(823456789123456.3) // '823456789123456.2' + * BigNumber.DEBUG = true + * new BigNumber(823456789123456.3) + * // '[BigNumber Error] Number primitive has more than 15 significant digits' + * ``` + * + * Check that a BigNumber instance is well-formed: + * + * ```ts + * x = new BigNumber(10) + * + * BigNumber.DEBUG = false + * // Change x.c to an illegitimate value. + * x.c = NaN + * // No error, as BigNumber.DEBUG is false. + * BigNumber.isBigNumber(x) // true + * + * BigNumber.DEBUG = true + * BigNumber.isBigNumber(x) // '[BigNumber Error] Invalid BigNumber' + * ``` + */ + static DEBUG?: boolean; + + /** + * Returns a new independent BigNumber constructor with configuration as described by `object`, or + * with the default configuration if object is `null` or `undefined`. + * + * Throws if `object` is not an object. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 5 }) + * BN = BigNumber.clone({ DECIMAL_PLACES: 9 }) + * + * x = new BigNumber(1) + * y = new BN(1) + * + * x.div(3) // 0.33333 + * y.div(3) // 0.333333333 + * + * // BN = BigNumber.clone({ DECIMAL_PLACES: 9 }) is equivalent to: + * BN = BigNumber.clone() + * BN.config({ DECIMAL_PLACES: 9 }) + * ``` + * + * @param [object] The configuration object. + */ + static clone(object?: BigNumber.Config): BigNumber.Constructor; + + /** + * Configures the settings that apply to this BigNumber constructor. + * + * The configuration object, `object`, contains any number of the properties shown in the example + * below. + * + * Returns an object with the above properties and their current values. + * + * Throws if `object` is not an object, or if an invalid value is assigned to one or more of the + * properties. + * + * ```ts + * BigNumber.config({ + * DECIMAL_PLACES: 40, + * ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL, + * EXPONENTIAL_AT: [-10, 20], + * RANGE: [-500, 500], + * CRYPTO: true, + * MODULO_MODE: BigNumber.ROUND_FLOOR, + * POW_PRECISION: 80, + * FORMAT: { + * groupSize: 3, + * groupSeparator: ' ', + * decimalSeparator: ',' + * }, + * ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + * }); + * + * BigNumber.config().DECIMAL_PLACES // 40 + * ``` + * + * @param object The configuration object. + */ + static config(object: BigNumber.Config): BigNumber.Config; + + /** + * Returns `true` if `value` is a BigNumber instance, otherwise returns `false`. + * + * If `BigNumber.DEBUG` is `true`, throws if a BigNumber instance is not well-formed. + * + * ```ts + * x = 42 + * y = new BigNumber(x) + * + * BigNumber.isBigNumber(x) // false + * y instanceof BigNumber // true + * BigNumber.isBigNumber(y) // true + * + * BN = BigNumber.clone(); + * z = new BN(x) + * z instanceof BigNumber // false + * BigNumber.isBigNumber(z) // true + * ``` + * + * @param value The value to test. + */ + static isBigNumber(value: any): value is BigNumber; + + /** + * Returns a BigNumber whose value is the maximum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.maximum(4e9, x, '123456789.9') // '4000000000' + * + * arr = [12, '13', new BigNumber(14)] + * BigNumber.maximum.apply(null, arr) // '14' + * ``` + * + * @param n A numeric value. + */ + static maximum(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a BigNumber whose value is the maximum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.max(4e9, x, '123456789.9') // '4000000000' + * + * arr = [12, '13', new BigNumber(14)] + * BigNumber.max.apply(null, arr) // '14' + * ``` + * + * @param n A numeric value. + */ + static max(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a BigNumber whose value is the minimum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.minimum(4e9, x, '123456789.9') // '123456789.9' + * + * arr = [2, new BigNumber(-14), '-15.9999', -12] + * BigNumber.minimum.apply(null, arr) // '-15.9999' + * ``` + * + * @param n A numeric value. + */ + static minimum(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a BigNumber whose value is the minimum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.min(4e9, x, '123456789.9') // '123456789.9' + * + * arr = [2, new BigNumber(-14), '-15.9999', -12] + * BigNumber.min.apply(null, arr) // '-15.9999' + * ``` + * + * @param n A numeric value. + */ + static min(...n: BigNumber.Value[]): BigNumber; + + /** + * Returns a new BigNumber with a pseudo-random value equal to or greater than 0 and less than 1. + * + * The return value will have `decimalPlaces` decimal places, or less if trailing zeros are + * produced. If `decimalPlaces` is omitted, the current `DECIMAL_PLACES` setting will be used. + * + * Depending on the value of this BigNumber constructor's `CRYPTO` setting and the support for the + * `crypto` object in the host environment, the random digits of the return value are generated by + * either `Math.random` (fastest), `crypto.getRandomValues` (Web Cryptography API in recent + * browsers) or `crypto.randomBytes` (Node.js). + * + * To be able to set `CRYPTO` to true when using Node.js, the `crypto` object must be available + * globally: + * + * ```ts + * global.crypto = require('crypto') + * ``` + * + * If `CRYPTO` is true, i.e. one of the `crypto` methods is to be used, the value of a returned + * BigNumber should be cryptographically secure and statistically indistinguishable from a random + * value. + * + * Throws if `decimalPlaces` is invalid. + * + * ```ts + * BigNumber.config({ DECIMAL_PLACES: 10 }) + * BigNumber.random() // '0.4117936847' + * BigNumber.random(20) // '0.78193327636914089009' + * ``` + * + * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9. + */ + static random(decimalPlaces?: number): BigNumber; + + /** + * Returns a BigNumber whose value is the sum of the arguments. + * + * The return value is always exact and unrounded. + * + * ```ts + * x = new BigNumber('3257869345.0378653') + * BigNumber.sum(4e9, x, '123456789.9') // '7381326134.9378653' + * + * arr = [2, new BigNumber(14), '15.9999', 12] + * BigNumber.sum.apply(null, arr) // '43.9999' + * ``` + * + * @param n A numeric value. + */ + static sum(...n: BigNumber.Value[]): BigNumber; + + /** + * Configures the settings that apply to this BigNumber constructor. + * + * The configuration object, `object`, contains any number of the properties shown in the example + * below. + * + * Returns an object with the above properties and their current values. + * + * Throws if `object` is not an object, or if an invalid value is assigned to one or more of the + * properties. + * + * ```ts + * BigNumber.set({ + * DECIMAL_PLACES: 40, + * ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL, + * EXPONENTIAL_AT: [-10, 20], + * RANGE: [-500, 500], + * CRYPTO: true, + * MODULO_MODE: BigNumber.ROUND_FLOOR, + * POW_PRECISION: 80, + * FORMAT: { + * groupSize: 3, + * groupSeparator: ' ', + * decimalSeparator: ',' + * }, + * ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + * }); + * + * BigNumber.set().DECIMAL_PLACES // 40 + * ``` + * + * @param object The configuration object. + */ + static set(object: BigNumber.Config): BigNumber.Config; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.js" new file mode 100644 index 0000000000000000000000000000000000000000..1ffc9f99105847ad259c382eb5f29dc7f77ddf25 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.js" @@ -0,0 +1,2902 @@ +;(function (globalObject) { + 'use strict'; + +/* + * bignumber.js v9.0.0 + * A JavaScript library for arbitrary-precision arithmetic. + * https://github.com/MikeMcl/bignumber.js + * Copyright (c) 2019 Michael Mclaughlin + * MIT Licensed. + * + * BigNumber.prototype methods | BigNumber methods + * | + * absoluteValue abs | clone + * comparedTo | config set + * decimalPlaces dp | DECIMAL_PLACES + * dividedBy div | ROUNDING_MODE + * dividedToIntegerBy idiv | EXPONENTIAL_AT + * exponentiatedBy pow | RANGE + * integerValue | CRYPTO + * isEqualTo eq | MODULO_MODE + * isFinite | POW_PRECISION + * isGreaterThan gt | FORMAT + * isGreaterThanOrEqualTo gte | ALPHABET + * isInteger | isBigNumber + * isLessThan lt | maximum max + * isLessThanOrEqualTo lte | minimum min + * isNaN | random + * isNegative | sum + * isPositive | + * isZero | + * minus | + * modulo mod | + * multipliedBy times | + * negated | + * plus | + * precision sd | + * shiftedBy | + * squareRoot sqrt | + * toExponential | + * toFixed | + * toFormat | + * toFraction | + * toJSON | + * toNumber | + * toPrecision | + * toString | + * valueOf | + * + */ + + + var BigNumber, + isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, + mathceil = Math.ceil, + mathfloor = Math.floor, + + bignumberError = '[BigNumber Error] ', + tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ', + + BASE = 1e14, + LOG_BASE = 14, + MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1 + // MAX_INT32 = 0x7fffffff, // 2^31 - 1 + POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], + SQRT_BASE = 1e7, + + // EDITABLE + // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and + // the arguments to toExponential, toFixed, toFormat, and toPrecision. + MAX = 1E9; // 0 to MAX_INT32 + + + /* + * Create and return a BigNumber constructor. + */ + function clone(configObject) { + var div, convertBase, parseNumeric, + P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null }, + ONE = new BigNumber(1), + + + //----------------------------- EDITABLE CONFIG DEFAULTS ------------------------------- + + + // The default values below must be integers within the inclusive ranges stated. + // The values can also be changed at run-time using BigNumber.set. + + // The maximum number of decimal places for operations involving division. + DECIMAL_PLACES = 20, // 0 to MAX + + // The rounding mode used when rounding to the above decimal places, and when using + // toExponential, toFixed, toFormat and toPrecision, and round (default value). + // UP 0 Away from zero. + // DOWN 1 Towards zero. + // CEIL 2 Towards +Infinity. + // FLOOR 3 Towards -Infinity. + // HALF_UP 4 Towards nearest neighbour. If equidistant, up. + // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. + // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. + // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. + // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. + ROUNDING_MODE = 4, // 0 to 8 + + // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS] + + // The exponent value at and beneath which toString returns exponential notation. + // Number type: -7 + TO_EXP_NEG = -7, // 0 to -MAX + + // The exponent value at and above which toString returns exponential notation. + // Number type: 21 + TO_EXP_POS = 21, // 0 to MAX + + // RANGE : [MIN_EXP, MAX_EXP] + + // The minimum exponent value, beneath which underflow to zero occurs. + // Number type: -324 (5e-324) + MIN_EXP = -1e7, // -1 to -MAX + + // The maximum exponent value, above which overflow to Infinity occurs. + // Number type: 308 (1.7976931348623157e+308) + // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow. + MAX_EXP = 1e7, // 1 to MAX + + // Whether to use cryptographically-secure random number generation, if available. + CRYPTO = false, // true or false + + // The modulo mode used when calculating the modulus: a mod n. + // The quotient (q = a / n) is calculated according to the corresponding rounding mode. + // The remainder (r) is calculated as: r = a - n * q. + // + // UP 0 The remainder is positive if the dividend is negative, else is negative. + // DOWN 1 The remainder has the same sign as the dividend. + // This modulo mode is commonly known as 'truncated division' and is + // equivalent to (a % n) in JavaScript. + // FLOOR 3 The remainder has the same sign as the divisor (Python %). + // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function. + // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). + // The remainder is always positive. + // + // The truncated division, floored division, Euclidian division and IEEE 754 remainder + // modes are commonly used for the modulus operation. + // Although the other rounding modes can also be used, they may not give useful results. + MODULO_MODE = 1, // 0 to 9 + + // The maximum number of significant digits of the result of the exponentiatedBy operation. + // If POW_PRECISION is 0, there will be unlimited significant digits. + POW_PRECISION = 0, // 0 to MAX + + // The format specification used by the BigNumber.prototype.toFormat method. + FORMAT = { + prefix: '', + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ',', + decimalSeparator: '.', + fractionGroupSize: 0, + fractionGroupSeparator: '\xA0', // non-breaking space + suffix: '' + }, + + // The alphabet used for base conversion. It must be at least 2 characters long, with no '+', + // '-', '.', whitespace, or repeated character. + // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz'; + + + //------------------------------------------------------------------------------------------ + + + // CONSTRUCTOR + + + /* + * The BigNumber constructor and exported function. + * Create and return a new instance of a BigNumber object. + * + * v {number|string|BigNumber} A numeric value. + * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive. + */ + function BigNumber(v, b) { + var alphabet, c, caseChanged, e, i, isNum, len, str, + x = this; + + // Enable constructor call without `new`. + if (!(x instanceof BigNumber)) return new BigNumber(v, b); + + if (b == null) { + + if (v && v._isBigNumber === true) { + x.s = v.s; + + if (!v.c || v.e > MAX_EXP) { + x.c = x.e = null; + } else if (v.e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = v.e; + x.c = v.c.slice(); + } + + return; + } + + if ((isNum = typeof v == 'number') && v * 0 == 0) { + + // Use `1 / n` to handle minus zero also. + x.s = 1 / v < 0 ? (v = -v, -1) : 1; + + // Fast path for integers, where n < 2147483648 (2**31). + if (v === ~~v) { + for (e = 0, i = v; i >= 10; i /= 10, e++); + + if (e > MAX_EXP) { + x.c = x.e = null; + } else { + x.e = e; + x.c = [v]; + } + + return; + } + + str = String(v); + } else { + + if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum); + + x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; + } + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + + // Exponential form? + if ((i = str.search(/e/i)) > 0) { + + // Determine exponent. + if (e < 0) e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + + // Integer. + e = str.length; + } + + } else { + + // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' + intCheck(b, 2, ALPHABET.length, 'Base'); + + // Allow exponential notation to be used with base 10 argument, while + // also rounding to DECIMAL_PLACES as with other bases. + if (b == 10) { + x = new BigNumber(v); + return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); + } + + str = String(v); + + if (isNum = typeof v == 'number') { + + // Avoid potential interpretation of Infinity and NaN as base 44+ values. + if (v * 0 != 0) return parseNumeric(x, str, isNum, b); + + x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) { + throw Error + (tooManyDigits + v); + } + } else { + x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; + } + + alphabet = ALPHABET.slice(0, b); + e = i = 0; + + // Check that str is a valid base b number. + // Don't use RegExp, so alphabet can contain special characters. + for (len = str.length; i < len; i++) { + if (alphabet.indexOf(c = str.charAt(i)) < 0) { + if (c == '.') { + + // If '.' is not the first character and it has not be found before. + if (i > e) { + e = len; + continue; + } + } else if (!caseChanged) { + + // Allow e.g. hexadecimal 'FF' as well as 'ff'. + if (str == str.toUpperCase() && (str = str.toLowerCase()) || + str == str.toLowerCase() && (str = str.toUpperCase())) { + caseChanged = true; + i = -1; + e = 0; + continue; + } + } + + return parseNumeric(x, String(v), isNum, b); + } + } + + // Prevent later check for length on converted number. + isNum = false; + str = convertBase(str, b, 10, x.s); + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + else e = str.length; + } + + // Determine leading zeros. + for (i = 0; str.charCodeAt(i) === 48; i++); + + // Determine trailing zeros. + for (len = str.length; str.charCodeAt(--len) === 48;); + + if (str = str.slice(i, ++len)) { + len -= i; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (isNum && BigNumber.DEBUG && + len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) { + throw Error + (tooManyDigits + (x.s * v)); + } + + // Overflow? + if ((e = e - i - 1) > MAX_EXP) { + + // Infinity. + x.c = x.e = null; + + // Underflow? + } else if (e < MIN_EXP) { + + // Zero. + x.c = [x.e = 0]; + } else { + x.e = e; + x.c = []; + + // Transform base + + // e is the base 10 exponent. + // i is where to slice str to get the first element of the coefficient array. + i = (e + 1) % LOG_BASE; + if (e < 0) i += LOG_BASE; // i < 1 + + if (i < len) { + if (i) x.c.push(+str.slice(0, i)); + + for (len -= LOG_BASE; i < len;) { + x.c.push(+str.slice(i, i += LOG_BASE)); + } + + i = LOG_BASE - (str = str.slice(i)).length; + } else { + i -= len; + } + + for (; i--; str += '0'); + x.c.push(+str); + } + } else { + + // Zero. + x.c = [x.e = 0]; + } + } + + + // CONSTRUCTOR PROPERTIES + + + BigNumber.clone = clone; + + BigNumber.ROUND_UP = 0; + BigNumber.ROUND_DOWN = 1; + BigNumber.ROUND_CEIL = 2; + BigNumber.ROUND_FLOOR = 3; + BigNumber.ROUND_HALF_UP = 4; + BigNumber.ROUND_HALF_DOWN = 5; + BigNumber.ROUND_HALF_EVEN = 6; + BigNumber.ROUND_HALF_CEIL = 7; + BigNumber.ROUND_HALF_FLOOR = 8; + BigNumber.EUCLID = 9; + + + /* + * Configure infrequently-changing library-wide settings. + * + * Accept an object with the following optional properties (if the value of a property is + * a number, it must be an integer within the inclusive range stated): + * + * DECIMAL_PLACES {number} 0 to MAX + * ROUNDING_MODE {number} 0 to 8 + * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX] + * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX] + * CRYPTO {boolean} true or false + * MODULO_MODE {number} 0 to 9 + * POW_PRECISION {number} 0 to MAX + * ALPHABET {string} A string of two or more unique characters which does + * not contain '.'. + * FORMAT {object} An object with some of the following properties: + * prefix {string} + * groupSize {number} + * secondaryGroupSize {number} + * groupSeparator {string} + * decimalSeparator {string} + * fractionGroupSize {number} + * fractionGroupSeparator {string} + * suffix {string} + * + * (The values assigned to the above FORMAT object properties are not checked for validity.) + * + * E.g. + * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 }) + * + * Ignore properties/parameters set to null or undefined, except for ALPHABET. + * + * Return an object with the properties current values. + */ + BigNumber.config = BigNumber.set = function (obj) { + var p, v; + + if (obj != null) { + + if (typeof obj == 'object') { + + // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive. + // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) { + v = obj[p]; + intCheck(v, 0, MAX, p); + DECIMAL_PLACES = v; + } + + // ROUNDING_MODE {number} Integer, 0 to 8 inclusive. + // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) { + v = obj[p]; + intCheck(v, 0, 8, p); + ROUNDING_MODE = v; + } + + // EXPONENTIAL_AT {number|number[]} + // Integer, -MAX to MAX inclusive or + // [integer -MAX to 0 inclusive, 0 to MAX inclusive]. + // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, 0, p); + intCheck(v[1], 0, MAX, p); + TO_EXP_NEG = v[0]; + TO_EXP_POS = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v); + } + } + + // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or + // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive]. + // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}' + if (obj.hasOwnProperty(p = 'RANGE')) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, -1, p); + intCheck(v[1], 1, MAX, p); + MIN_EXP = v[0]; + MAX_EXP = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + if (v) { + MIN_EXP = -(MAX_EXP = v < 0 ? -v : v); + } else { + throw Error + (bignumberError + p + ' cannot be zero: ' + v); + } + } + } + + // CRYPTO {boolean} true or false. + // '[BigNumber Error] CRYPTO not true or false: {v}' + // '[BigNumber Error] crypto unavailable' + if (obj.hasOwnProperty(p = 'CRYPTO')) { + v = obj[p]; + if (v === !!v) { + if (v) { + if (typeof crypto != 'undefined' && crypto && + (crypto.getRandomValues || crypto.randomBytes)) { + CRYPTO = v; + } else { + CRYPTO = !v; + throw Error + (bignumberError + 'crypto unavailable'); + } + } else { + CRYPTO = v; + } + } else { + throw Error + (bignumberError + p + ' not true or false: ' + v); + } + } + + // MODULO_MODE {number} Integer, 0 to 9 inclusive. + // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'MODULO_MODE')) { + v = obj[p]; + intCheck(v, 0, 9, p); + MODULO_MODE = v; + } + + // POW_PRECISION {number} Integer, 0 to MAX inclusive. + // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'POW_PRECISION')) { + v = obj[p]; + intCheck(v, 0, MAX, p); + POW_PRECISION = v; + } + + // FORMAT {object} + // '[BigNumber Error] FORMAT not an object: {v}' + if (obj.hasOwnProperty(p = 'FORMAT')) { + v = obj[p]; + if (typeof v == 'object') FORMAT = v; + else throw Error + (bignumberError + p + ' not an object: ' + v); + } + + // ALPHABET {string} + // '[BigNumber Error] ALPHABET invalid: {v}' + if (obj.hasOwnProperty(p = 'ALPHABET')) { + v = obj[p]; + + // Disallow if only one character, + // or if it contains '+', '-', '.', whitespace, or a repeated character. + if (typeof v == 'string' && !/^.$|[+-.\s]|(.).*\1/.test(v)) { + ALPHABET = v; + } else { + throw Error + (bignumberError + p + ' invalid: ' + v); + } + } + + } else { + + // '[BigNumber Error] Object expected: {v}' + throw Error + (bignumberError + 'Object expected: ' + obj); + } + } + + return { + DECIMAL_PLACES: DECIMAL_PLACES, + ROUNDING_MODE: ROUNDING_MODE, + EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS], + RANGE: [MIN_EXP, MAX_EXP], + CRYPTO: CRYPTO, + MODULO_MODE: MODULO_MODE, + POW_PRECISION: POW_PRECISION, + FORMAT: FORMAT, + ALPHABET: ALPHABET + }; + }; + + + /* + * Return true if v is a BigNumber instance, otherwise return false. + * + * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed. + * + * v {any} + * + * '[BigNumber Error] Invalid BigNumber: {v}' + */ + BigNumber.isBigNumber = function (v) { + if (!v || v._isBigNumber !== true) return false; + if (!BigNumber.DEBUG) return true; + + var i, n, + c = v.c, + e = v.e, + s = v.s; + + out: if ({}.toString.call(c) == '[object Array]') { + + if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) { + + // If the first element is zero, the BigNumber value must be zero. + if (c[0] === 0) { + if (e === 0 && c.length === 1) return true; + break out; + } + + // Calculate number of digits that c[0] should have, based on the exponent. + i = (e + 1) % LOG_BASE; + if (i < 1) i += LOG_BASE; + + // Calculate number of digits of c[0]. + //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) { + if (String(c[0]).length == i) { + + for (i = 0; i < c.length; i++) { + n = c[i]; + if (n < 0 || n >= BASE || n !== mathfloor(n)) break out; + } + + // Last element cannot be zero, unless it is the only element. + if (n !== 0) return true; + } + } + + // Infinity/NaN + } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { + return true; + } + + throw Error + (bignumberError + 'Invalid BigNumber: ' + v); + }; + + + /* + * Return a new BigNumber whose value is the maximum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.maximum = BigNumber.max = function () { + return maxOrMin(arguments, P.lt); + }; + + + /* + * Return a new BigNumber whose value is the minimum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.minimum = BigNumber.min = function () { + return maxOrMin(arguments, P.gt); + }; + + + /* + * Return a new BigNumber with a random value equal to or greater than 0 and less than 1, + * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing + * zeros are produced). + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}' + * '[BigNumber Error] crypto unavailable' + */ + BigNumber.random = (function () { + var pow2_53 = 0x20000000000000; + + // Return a 53 bit integer n, where 0 <= n < 9007199254740992. + // Check if Math.random() produces more than 32 bits of randomness. + // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits. + // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1. + var random53bitInt = (Math.random() * pow2_53) & 0x1fffff + ? function () { return mathfloor(Math.random() * pow2_53); } + : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) + + (Math.random() * 0x800000 | 0); }; + + return function (dp) { + var a, b, e, k, v, + i = 0, + c = [], + rand = new BigNumber(ONE); + + if (dp == null) dp = DECIMAL_PLACES; + else intCheck(dp, 0, MAX); + + k = mathceil(dp / LOG_BASE); + + if (CRYPTO) { + + // Browsers supporting crypto.getRandomValues. + if (crypto.getRandomValues) { + + a = crypto.getRandomValues(new Uint32Array(k *= 2)); + + for (; i < k;) { + + // 53 bits: + // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2) + // 11111 11111111 11111111 11111111 11100000 00000000 00000000 + // ((Math.pow(2, 32) - 1) >>> 11).toString(2) + // 11111 11111111 11111111 + // 0x20000 is 2^21. + v = a[i] * 0x20000 + (a[i + 1] >>> 11); + + // Rejection sampling: + // 0 <= v < 9007199254740992 + // Probability that v >= 9e15, is + // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251 + if (v >= 9e15) { + b = crypto.getRandomValues(new Uint32Array(2)); + a[i] = b[0]; + a[i + 1] = b[1]; + } else { + + // 0 <= v <= 8999999999999999 + // 0 <= (v % 1e14) <= 99999999999999 + c.push(v % 1e14); + i += 2; + } + } + i = k / 2; + + // Node.js supporting crypto.randomBytes. + } else if (crypto.randomBytes) { + + // buffer + a = crypto.randomBytes(k *= 7); + + for (; i < k;) { + + // 0x1000000000000 is 2^48, 0x10000000000 is 2^40 + // 0x100000000 is 2^32, 0x1000000 is 2^24 + // 11111 11111111 11111111 11111111 11111111 11111111 11111111 + // 0 <= v < 9007199254740992 + v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) + + (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) + + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6]; + + if (v >= 9e15) { + crypto.randomBytes(7).copy(a, i); + } else { + + // 0 <= (v % 1e14) <= 99999999999999 + c.push(v % 1e14); + i += 7; + } + } + i = k / 7; + } else { + CRYPTO = false; + throw Error + (bignumberError + 'crypto unavailable'); + } + } + + // Use Math.random. + if (!CRYPTO) { + + for (; i < k;) { + v = random53bitInt(); + if (v < 9e15) c[i++] = v % 1e14; + } + } + + k = c[--i]; + dp %= LOG_BASE; + + // Convert trailing digits to zeros according to dp. + if (k && dp) { + v = POWS_TEN[LOG_BASE - dp]; + c[i] = mathfloor(k / v) * v; + } + + // Remove trailing elements which are zero. + for (; c[i] === 0; c.pop(), i--); + + // Zero? + if (i < 0) { + c = [e = 0]; + } else { + + // Remove leading elements which are zero and adjust exponent accordingly. + for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE); + + // Count the digits of the first element of c to determine leading zeros, and... + for (i = 1, v = c[0]; v >= 10; v /= 10, i++); + + // adjust the exponent accordingly. + if (i < LOG_BASE) e -= LOG_BASE - i; + } + + rand.e = e; + rand.c = c; + return rand; + }; + })(); + + + /* + * Return a BigNumber whose value is the sum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.sum = function () { + var i = 1, + args = arguments, + sum = new BigNumber(args[0]); + for (; i < args.length;) sum = sum.plus(args[i++]); + return sum; + }; + + + // PRIVATE FUNCTIONS + + + // Called by BigNumber and BigNumber.prototype.toString. + convertBase = (function () { + var decimal = '0123456789'; + + /* + * Convert string of baseIn to an array of numbers of baseOut. + * Eg. toBaseOut('255', 10, 16) returns [15, 15]. + * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5]. + */ + function toBaseOut(str, baseIn, baseOut, alphabet) { + var j, + arr = [0], + arrL, + i = 0, + len = str.length; + + for (; i < len;) { + for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); + + arr[0] += alphabet.indexOf(str.charAt(i++)); + + for (j = 0; j < arr.length; j++) { + + if (arr[j] > baseOut - 1) { + if (arr[j + 1] == null) arr[j + 1] = 0; + arr[j + 1] += arr[j] / baseOut | 0; + arr[j] %= baseOut; + } + } + } + + return arr.reverse(); + } + + // Convert a numeric string of baseIn to a numeric string of baseOut. + // If the caller is toString, we are converting from base 10 to baseOut. + // If the caller is BigNumber, we are converting from baseIn to base 10. + return function (str, baseIn, baseOut, sign, callerIsToString) { + var alphabet, d, e, k, r, x, xc, y, + i = str.indexOf('.'), + dp = DECIMAL_PLACES, + rm = ROUNDING_MODE; + + // Non-integer. + if (i >= 0) { + k = POW_PRECISION; + + // Unlimited precision. + POW_PRECISION = 0; + str = str.replace('.', ''); + y = new BigNumber(baseIn); + x = y.pow(str.length - i); + POW_PRECISION = k; + + // Convert str as if an integer, then restore the fraction part by dividing the + // result by its base raised to a power. + + y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'), + 10, baseOut, decimal); + y.e = y.c.length; + } + + // Convert the number as integer. + + xc = toBaseOut(str, baseIn, baseOut, callerIsToString + ? (alphabet = ALPHABET, decimal) + : (alphabet = decimal, ALPHABET)); + + // xc now represents str as an integer and converted to baseOut. e is the exponent. + e = k = xc.length; + + // Remove trailing zeros. + for (; xc[--k] == 0; xc.pop()); + + // Zero? + if (!xc[0]) return alphabet.charAt(0); + + // Does str represent an integer? If so, no need for the division. + if (i < 0) { + --e; + } else { + x.c = xc; + x.e = e; + + // The sign is needed for correct rounding. + x.s = sign; + x = div(x, y, dp, rm, baseOut); + xc = x.c; + r = x.r; + e = x.e; + } + + // xc now represents str converted to baseOut. + + // THe index of the rounding digit. + d = e + dp + 1; + + // The rounding digit: the digit to the right of the digit that may be rounded up. + i = xc[d]; + + // Look at the rounding digits and mode to determine whether to round up. + + k = baseOut / 2; + r = r || d < 0 || xc[d + 1] != null; + + r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) + : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 || + rm == (x.s < 0 ? 8 : 7)); + + // If the index of the rounding digit is not greater than zero, or xc represents + // zero, then the result of the base conversion is zero or, if rounding up, a value + // such as 0.00001. + if (d < 1 || !xc[0]) { + + // 1^-dp or 0 + str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0); + } else { + + // Truncate xc to the required number of decimal places. + xc.length = d; + + // Round up? + if (r) { + + // Rounding up may mean the previous digit has to be rounded up and so on. + for (--baseOut; ++xc[--d] > baseOut;) { + xc[d] = 0; + + if (!d) { + ++e; + xc = [1].concat(xc); + } + } + } + + // Determine trailing zeros. + for (k = xc.length; !xc[--k];); + + // E.g. [4, 11, 15] becomes 4bf. + for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++])); + + // Add leading zeros, decimal point and trailing zeros as required. + str = toFixedPoint(str, e, alphabet.charAt(0)); + } + + // The caller will add the sign. + return str; + }; + })(); + + + // Perform division in the specified base. Called by div and convertBase. + div = (function () { + + // Assume non-zero x and k. + function multiply(x, k, base) { + var m, temp, xlo, xhi, + carry = 0, + i = x.length, + klo = k % SQRT_BASE, + khi = k / SQRT_BASE | 0; + + for (x = x.slice(); i--;) { + xlo = x[i] % SQRT_BASE; + xhi = x[i] / SQRT_BASE | 0; + m = khi * xlo + xhi * klo; + temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry; + carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi; + x[i] = temp % base; + } + + if (carry) x = [carry].concat(x); + + return x; + } + + function compare(a, b, aL, bL) { + var i, cmp; + + if (aL != bL) { + cmp = aL > bL ? 1 : -1; + } else { + + for (i = cmp = 0; i < aL; i++) { + + if (a[i] != b[i]) { + cmp = a[i] > b[i] ? 1 : -1; + break; + } + } + } + + return cmp; + } + + function subtract(a, b, aL, base) { + var i = 0; + + // Subtract b from a. + for (; aL--;) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + + // Remove leading zeros. + for (; !a[0] && a.length > 1; a.splice(0, 1)); + } + + // x: dividend, y: divisor. + return function (x, y, dp, rm, base) { + var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, + yL, yz, + s = x.s == y.s ? 1 : -1, + xc = x.c, + yc = y.c; + + // Either NaN, Infinity or 0? + if (!xc || !xc[0] || !yc || !yc[0]) { + + return new BigNumber( + + // Return NaN if either NaN, or both Infinity or 0. + !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : + + // Return 卤0 if x is 卤0 or y is 卤Infinity, or return 卤Infinity as y is 卤0. + xc && xc[0] == 0 || !yc ? s * 0 : s / 0 + ); + } + + q = new BigNumber(s); + qc = q.c = []; + e = x.e - y.e; + s = dp + e + 1; + + if (!base) { + base = BASE; + e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE); + s = s / LOG_BASE | 0; + } + + // Result exponent may be one less then the current value of e. + // The coefficients of the BigNumbers from convertBase may have trailing zeros. + for (i = 0; yc[i] == (xc[i] || 0); i++); + + if (yc[i] > (xc[i] || 0)) e--; + + if (s < 0) { + qc.push(1); + more = true; + } else { + xL = xc.length; + yL = yc.length; + i = 0; + s += 2; + + // Normalise xc and yc so highest order digit of yc is >= base / 2. + + n = mathfloor(base / (yc[0] + 1)); + + // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1. + // if (n > 1 || n++ == 1 && yc[0] < base / 2) { + if (n > 1) { + yc = multiply(yc, n, base); + xc = multiply(xc, n, base); + yL = yc.length; + xL = xc.length; + } + + xi = yL; + rem = xc.slice(0, yL); + remL = rem.length; + + // Add zeros to make remainder as long as divisor. + for (; remL < yL; rem[remL++] = 0); + yz = yc.slice(); + yz = [0].concat(yz); + yc0 = yc[0]; + if (yc[1] >= base / 2) yc0++; + // Not necessary, but to prevent trial digit n > base, when using base 3. + // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15; + + do { + n = 0; + + // Compare divisor and remainder. + cmp = compare(yc, rem, yL, remL); + + // If divisor < remainder. + if (cmp < 0) { + + // Calculate trial digit, n. + + rem0 = rem[0]; + if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); + + // n is how many times the divisor goes into the current remainder. + n = mathfloor(rem0 / yc0); + + // Algorithm: + // product = divisor multiplied by trial digit (n). + // Compare product and remainder. + // If product is greater than remainder: + // Subtract divisor from product, decrement trial digit. + // Subtract product from remainder. + // If product was less than remainder at the last compare: + // Compare new remainder and divisor. + // If remainder is greater than divisor: + // Subtract divisor from remainder, increment trial digit. + + if (n > 1) { + + // n may be > base only when base is 3. + if (n >= base) n = base - 1; + + // product = divisor * trial digit. + prod = multiply(yc, n, base); + prodL = prod.length; + remL = rem.length; + + // Compare product and remainder. + // If product > remainder then trial digit n too high. + // n is 1 too high about 5% of the time, and is not known to have + // ever been more than 1 too high. + while (compare(prod, rem, prodL, remL) == 1) { + n--; + + // Subtract divisor from product. + subtract(prod, yL < prodL ? yz : yc, prodL, base); + prodL = prod.length; + cmp = 1; + } + } else { + + // n is 0 or 1, cmp is -1. + // If n is 0, there is no need to compare yc and rem again below, + // so change cmp to 1 to avoid it. + // If n is 1, leave cmp as -1, so yc and rem are compared again. + if (n == 0) { + + // divisor < remainder, so n must be at least 1. + cmp = n = 1; + } + + // product = divisor + prod = yc.slice(); + prodL = prod.length; + } + + if (prodL < remL) prod = [0].concat(prod); + + // Subtract product from remainder. + subtract(rem, prod, remL, base); + remL = rem.length; + + // If product was < remainder. + if (cmp == -1) { + + // Compare divisor and new remainder. + // If divisor < new remainder, subtract divisor from remainder. + // Trial digit n too low. + // n is 1 too low about 5% of the time, and very rarely 2 too low. + while (compare(yc, rem, yL, remL) < 1) { + n++; + + // Subtract divisor from remainder. + subtract(rem, yL < remL ? yz : yc, remL, base); + remL = rem.length; + } + } + } else if (cmp === 0) { + n++; + rem = [0]; + } // else cmp === 1 and n will be 0 + + // Add the next digit, n, to the result array. + qc[i++] = n; + + // Update the remainder. + if (rem[0]) { + rem[remL++] = xc[xi] || 0; + } else { + rem = [xc[xi]]; + remL = 1; + } + } while ((xi++ < xL || rem[0] != null) && s--); + + more = rem[0] != null; + + // Leading zero? + if (!qc[0]) qc.splice(0, 1); + } + + if (base == BASE) { + + // To calculate q.e, first get the number of digits of qc[0]. + for (i = 1, s = qc[0]; s >= 10; s /= 10, i++); + + round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more); + + // Caller is convertBase. + } else { + q.e = e; + q.r = +more; + } + + return q; + }; + })(); + + + /* + * Return a string representing the value of BigNumber n in fixed-point or exponential + * notation rounded to the specified decimal places or significant digits. + * + * n: a BigNumber. + * i: the index of the last digit required (i.e. the digit that may be rounded up). + * rm: the rounding mode. + * id: 1 (toExponential) or 2 (toPrecision). + */ + function format(n, i, rm, id) { + var c0, e, ne, len, str; + + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + + if (!n.c) return n.toString(); + + c0 = n.c[0]; + ne = n.e; + + if (i == null) { + str = coeffToString(n.c); + str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) + ? toExponential(str, ne) + : toFixedPoint(str, ne, '0'); + } else { + n = round(new BigNumber(n), i, rm); + + // n.e may have changed if the value was rounded up. + e = n.e; + + str = coeffToString(n.c); + len = str.length; + + // toPrecision returns exponential notation if the number of significant digits + // specified is less than the number of digits necessary to represent the integer + // part of the value in fixed-point notation. + + // Exponential notation. + if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) { + + // Append zeros? + for (; len < i; str += '0', len++); + str = toExponential(str, e); + + // Fixed-point notation. + } else { + i -= ne; + str = toFixedPoint(str, e, '0'); + + // Append zeros? + if (e + 1 > len) { + if (--i > 0) for (str += '.'; i--; str += '0'); + } else { + i += e - len; + if (i > 0) { + if (e + 1 == len) str += '.'; + for (; i--; str += '0'); + } + } + } + } + + return n.s < 0 && c0 ? '-' + str : str; + } + + + // Handle BigNumber.max and BigNumber.min. + function maxOrMin(args, method) { + var n, + i = 1, + m = new BigNumber(args[0]); + + for (; i < args.length; i++) { + n = new BigNumber(args[i]); + + // If any number is NaN, return NaN. + if (!n.s) { + m = n; + break; + } else if (method.call(m, n)) { + m = n; + } + } + + return m; + } + + + /* + * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP. + * Called by minus, plus and times. + */ + function normalise(n, c, e) { + var i = 1, + j = c.length; + + // Remove trailing zeros. + for (; !c[--j]; c.pop()); + + // Calculate the base 10 exponent. First get the number of digits of c[0]. + for (j = c[0]; j >= 10; j /= 10, i++); + + // Overflow? + if ((e = i + e * LOG_BASE - 1) > MAX_EXP) { + + // Infinity. + n.c = n.e = null; + + // Underflow? + } else if (e < MIN_EXP) { + + // Zero. + n.c = [n.e = 0]; + } else { + n.e = e; + n.c = c; + } + + return n; + } + + + // Handle values that fail the validity test in BigNumber. + parseNumeric = (function () { + var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, + dotAfter = /^([^.]+)\.$/, + dotBefore = /^\.([^.]+)$/, + isInfinityOrNaN = /^-?(Infinity|NaN)$/, + whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; + + return function (x, str, isNum, b) { + var base, + s = isNum ? str : str.replace(whitespaceOrPlus, ''); + + // No exception on 卤Infinity or NaN. + if (isInfinityOrNaN.test(s)) { + x.s = isNaN(s) ? null : s < 0 ? -1 : 1; + } else { + if (!isNum) { + + // basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i + s = s.replace(basePrefix, function (m, p1, p2) { + base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8; + return !b || b == base ? p1 : m; + }); + + if (b) { + base = b; + + // E.g. '1.' to '1', '.1' to '0.1' + s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1'); + } + + if (str != s) return new BigNumber(s, base); + } + + // '[BigNumber Error] Not a number: {n}' + // '[BigNumber Error] Not a base {b} number: {n}' + if (BigNumber.DEBUG) { + throw Error + (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str); + } + + // NaN + x.s = null; + } + + x.c = x.e = null; + } + })(); + + + /* + * Round x to sd significant digits using rounding mode rm. Check for over/under-flow. + * If r is truthy, it is known that there are more digits after the rounding digit. + */ + function round(x, sd, rm, r) { + var d, i, j, k, n, ni, rd, + xc = x.c, + pows10 = POWS_TEN; + + // if x is not Infinity or NaN... + if (xc) { + + // rd is the rounding digit, i.e. the digit after the digit that may be rounded up. + // n is a base 1e14 number, the value of the element of array x.c containing rd. + // ni is the index of n within x.c. + // d is the number of digits of n. + // i is the index of rd within n including leading zeros. + // j is the actual index of rd within n (if < 0, rd is a leading zero). + out: { + + // Get the number of digits of the first element of xc. + for (d = 1, k = xc[0]; k >= 10; k /= 10, d++); + i = sd - d; + + // If the rounding digit is in the first element of xc... + if (i < 0) { + i += LOG_BASE; + j = sd; + n = xc[ni = 0]; + + // Get the rounding digit at index j of n. + rd = n / pows10[d - j - 1] % 10 | 0; + } else { + ni = mathceil((i + 1) / LOG_BASE); + + if (ni >= xc.length) { + + if (r) { + + // Needed by sqrt. + for (; xc.length <= ni; xc.push(0)); + n = rd = 0; + d = 1; + i %= LOG_BASE; + j = i - LOG_BASE + 1; + } else { + break out; + } + } else { + n = k = xc[ni]; + + // Get the number of digits of n. + for (d = 1; k >= 10; k /= 10, d++); + + // Get the index of rd within n. + i %= LOG_BASE; + + // Get the index of rd within n, adjusted for leading zeros. + // The number of leading zeros of n is given by LOG_BASE - d. + j = i - LOG_BASE + d; + + // Get the rounding digit at index j of n. + rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0; + } + } + + r = r || sd < 0 || + + // Are there any non-zero digits after the rounding digit? + // The expression n % pows10[d - j - 1] returns all digits of n to the right + // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714. + xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]); + + r = rm < 4 + ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) + : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && + + // Check whether the digit to the left of the rounding digit is odd. + ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 || + rm == (x.s < 0 ? 8 : 7)); + + if (sd < 1 || !xc[0]) { + xc.length = 0; + + if (r) { + + // Convert sd to decimal places. + sd -= x.e + 1; + + // 1, 0.1, 0.01, 0.001, 0.0001 etc. + xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE]; + x.e = -sd || 0; + } else { + + // Zero. + xc[0] = x.e = 0; + } + + return x; + } + + // Remove excess digits. + if (i == 0) { + xc.length = ni; + k = 1; + ni--; + } else { + xc.length = ni + 1; + k = pows10[LOG_BASE - i]; + + // E.g. 56700 becomes 56000 if 7 is the rounding digit. + // j > 0 means i > number of leading zeros of n. + xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0; + } + + // Round up? + if (r) { + + for (; ;) { + + // If the digit to be rounded up is in the first element of xc... + if (ni == 0) { + + // i will be the length of xc[0] before k is added. + for (i = 1, j = xc[0]; j >= 10; j /= 10, i++); + j = xc[0] += k; + for (k = 1; j >= 10; j /= 10, k++); + + // if i != k the length has increased. + if (i != k) { + x.e++; + if (xc[0] == BASE) xc[0] = 1; + } + + break; + } else { + xc[ni] += k; + if (xc[ni] != BASE) break; + xc[ni--] = 0; + k = 1; + } + } + } + + // Remove trailing zeros. + for (i = xc.length; xc[--i] === 0; xc.pop()); + } + + // Overflow? Infinity. + if (x.e > MAX_EXP) { + x.c = x.e = null; + + // Underflow? Zero. + } else if (x.e < MIN_EXP) { + x.c = [x.e = 0]; + } + } + + return x; + } + + + function valueOf(n) { + var str, + e = n.e; + + if (e === null) return n.toString(); + + str = coeffToString(n.c); + + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(str, e) + : toFixedPoint(str, e, '0'); + + return n.s < 0 ? '-' + str : str; + } + + + // PROTOTYPE/INSTANCE METHODS + + + /* + * Return a new BigNumber whose value is the absolute value of this BigNumber. + */ + P.absoluteValue = P.abs = function () { + var x = new BigNumber(this); + if (x.s < 0) x.s = 1; + return x; + }; + + + /* + * Return + * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b), + * -1 if the value of this BigNumber is less than the value of BigNumber(y, b), + * 0 if they have the same value, + * or null if the value of either is NaN. + */ + P.comparedTo = function (y, b) { + return compare(this, new BigNumber(y, b)); + }; + + + /* + * If dp is undefined or null or true or false, return the number of decimal places of the + * value of this BigNumber, or null if the value of this BigNumber is 卤Infinity or NaN. + * + * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this + * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or + * ROUNDING_MODE if rm is omitted. + * + * [dp] {number} Decimal places: integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + */ + P.decimalPlaces = P.dp = function (dp, rm) { + var c, n, v, + x = this; + + if (dp != null) { + intCheck(dp, 0, MAX); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + + return round(new BigNumber(x), dp + x.e + 1, rm); + } + + if (!(c = x.c)) return null; + n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE; + + // Subtract the number of trailing zeros of the last number. + if (v = c[v]) for (; v % 10 == 0; v /= 10, n--); + if (n < 0) n = 0; + + return n; + }; + + + /* + * n / 0 = I + * n / N = N + * n / I = 0 + * 0 / n = 0 + * 0 / 0 = N + * 0 / N = N + * 0 / I = 0 + * N / n = N + * N / 0 = N + * N / N = N + * N / I = N + * I / n = I + * I / 0 = I + * I / N = N + * I / I = N + * + * Return a new BigNumber whose value is the value of this BigNumber divided by the value of + * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE. + */ + P.dividedBy = P.div = function (y, b) { + return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE); + }; + + + /* + * Return a new BigNumber whose value is the integer part of dividing the value of this + * BigNumber by the value of BigNumber(y, b). + */ + P.dividedToIntegerBy = P.idiv = function (y, b) { + return div(this, new BigNumber(y, b), 0, 1); + }; + + + /* + * Return a BigNumber whose value is the value of this BigNumber exponentiated by n. + * + * If m is present, return the result modulo m. + * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE. + * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE. + * + * The modular power operation works efficiently when x, n, and m are integers, otherwise it + * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0. + * + * n {number|string|BigNumber} The exponent. An integer. + * [m] {number|string|BigNumber} The modulus. + * + * '[BigNumber Error] Exponent not an integer: {n}' + */ + P.exponentiatedBy = P.pow = function (n, m) { + var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, + x = this; + + n = new BigNumber(n); + + // Allow NaN and 卤Infinity, but not other non-integers. + if (n.c && !n.isInteger()) { + throw Error + (bignumberError + 'Exponent not an integer: ' + valueOf(n)); + } + + if (m != null) m = new BigNumber(m); + + // Exponent of MAX_SAFE_INTEGER is 15. + nIsBig = n.e > 14; + + // If x is NaN, 卤Infinity, 卤0 or 卤1, or n is 卤Infinity, NaN or 卤0. + if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) { + + // The sign of the result of pow when x is negative depends on the evenness of n. + // If +n overflows to 卤Infinity, the evenness of n would be not be known. + y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n))); + return m ? y.mod(m) : y; + } + + nIsNeg = n.s < 0; + + if (m) { + + // x % m returns NaN if abs(m) is zero, or m is NaN. + if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN); + + isModExp = !nIsNeg && x.isInteger() && m.isInteger(); + + if (isModExp) x = x.mod(m); + + // Overflow to 卤Infinity: >=2**1e10 or >=1.0000024**1e15. + // Underflow to 卤0: <=0.79**1e10 or <=0.9999975**1e15. + } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 + // [1, 240000000] + ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 + // [80000000000000] [99999750000000] + : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) { + + // If x is negative and n is odd, k = -0, else k = 0. + k = x.s < 0 && isOdd(n) ? -0 : 0; + + // If x >= 1, k = 卤Infinity. + if (x.e > -1) k = 1 / k; + + // If n is negative return 卤0, else return 卤Infinity. + return new BigNumber(nIsNeg ? 1 / k : k); + + } else if (POW_PRECISION) { + + // Truncating each coefficient array to a length of k after each multiplication + // equates to truncating significant digits to POW_PRECISION + [28, 41], + // i.e. there will be a minimum of 28 guard digits retained. + k = mathceil(POW_PRECISION / LOG_BASE + 2); + } + + if (nIsBig) { + half = new BigNumber(0.5); + if (nIsNeg) n.s = 1; + nIsOdd = isOdd(n); + } else { + i = Math.abs(+valueOf(n)); + nIsOdd = i % 2; + } + + y = new BigNumber(ONE); + + // Performs 54 loop iterations for n of 9007199254740991. + for (; ;) { + + if (nIsOdd) { + y = y.times(x); + if (!y.c) break; + + if (k) { + if (y.c.length > k) y.c.length = k; + } else if (isModExp) { + y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m)); + } + } + + if (i) { + i = mathfloor(i / 2); + if (i === 0) break; + nIsOdd = i % 2; + } else { + n = n.times(half); + round(n, n.e + 1, 1); + + if (n.e > 14) { + nIsOdd = isOdd(n); + } else { + i = +valueOf(n); + if (i === 0) break; + nIsOdd = i % 2; + } + } + + x = x.times(x); + + if (k) { + if (x.c && x.c.length > k) x.c.length = k; + } else if (isModExp) { + x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m)); + } + } + + if (isModExp) return y; + if (nIsNeg) y = ONE.div(y); + + return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y; + }; + + + /* + * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer + * using rounding mode rm, or ROUNDING_MODE if rm is omitted. + * + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}' + */ + P.integerValue = function (rm) { + var n = new BigNumber(this); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + return round(n, n.e + 1, rm); + }; + + + /* + * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b), + * otherwise return false. + */ + P.isEqualTo = P.eq = function (y, b) { + return compare(this, new BigNumber(y, b)) === 0; + }; + + + /* + * Return true if the value of this BigNumber is a finite number, otherwise return false. + */ + P.isFinite = function () { + return !!this.c; + }; + + + /* + * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b), + * otherwise return false. + */ + P.isGreaterThan = P.gt = function (y, b) { + return compare(this, new BigNumber(y, b)) > 0; + }; + + + /* + * Return true if the value of this BigNumber is greater than or equal to the value of + * BigNumber(y, b), otherwise return false. + */ + P.isGreaterThanOrEqualTo = P.gte = function (y, b) { + return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0; + + }; + + + /* + * Return true if the value of this BigNumber is an integer, otherwise return false. + */ + P.isInteger = function () { + return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2; + }; + + + /* + * Return true if the value of this BigNumber is less than the value of BigNumber(y, b), + * otherwise return false. + */ + P.isLessThan = P.lt = function (y, b) { + return compare(this, new BigNumber(y, b)) < 0; + }; + + + /* + * Return true if the value of this BigNumber is less than or equal to the value of + * BigNumber(y, b), otherwise return false. + */ + P.isLessThanOrEqualTo = P.lte = function (y, b) { + return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0; + }; + + + /* + * Return true if the value of this BigNumber is NaN, otherwise return false. + */ + P.isNaN = function () { + return !this.s; + }; + + + /* + * Return true if the value of this BigNumber is negative, otherwise return false. + */ + P.isNegative = function () { + return this.s < 0; + }; + + + /* + * Return true if the value of this BigNumber is positive, otherwise return false. + */ + P.isPositive = function () { + return this.s > 0; + }; + + + /* + * Return true if the value of this BigNumber is 0 or -0, otherwise return false. + */ + P.isZero = function () { + return !!this.c && this.c[0] == 0; + }; + + + /* + * n - 0 = n + * n - N = N + * n - I = -I + * 0 - n = -n + * 0 - 0 = 0 + * 0 - N = N + * 0 - I = -I + * N - n = N + * N - 0 = N + * N - N = N + * N - I = N + * I - n = I + * I - 0 = I + * I - N = N + * I - I = N + * + * Return a new BigNumber whose value is the value of this BigNumber minus the value of + * BigNumber(y, b). + */ + P.minus = function (y, b) { + var i, j, t, xLTy, + x = this, + a = x.s; + + y = new BigNumber(y, b); + b = y.s; + + // Either NaN? + if (!a || !b) return new BigNumber(NaN); + + // Signs differ? + if (a != b) { + y.s = -b; + return x.plus(y); + } + + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; + + if (!xe || !ye) { + + // Either Infinity? + if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN); + + // Either zero? + if (!xc[0] || !yc[0]) { + + // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. + return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x : + + // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity + ROUNDING_MODE == 3 ? -0 : 0); + } + } + + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + + // Determine which is the bigger number. + if (a = xe - ye) { + + if (xLTy = a < 0) { + a = -a; + t = xc; + } else { + ye = xe; + t = yc; + } + + t.reverse(); + + // Prepend zeros to equalise exponents. + for (b = a; b--; t.push(0)); + t.reverse(); + } else { + + // Exponents equal. Check digit by digit. + j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b; + + for (a = b = 0; b < j; b++) { + + if (xc[b] != yc[b]) { + xLTy = xc[b] < yc[b]; + break; + } + } + } + + // x < y? Point xc to the array of the bigger number. + if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s; + + b = (j = yc.length) - (i = xc.length); + + // Append zeros to xc if shorter. + // No need to add zeros to yc if shorter as subtract only needs to start at yc.length. + if (b > 0) for (; b--; xc[i++] = 0); + b = BASE - 1; + + // Subtract yc from xc. + for (; j > a;) { + + if (xc[--j] < yc[j]) { + for (i = j; i && !xc[--i]; xc[i] = b); + --xc[i]; + xc[j] += BASE; + } + + xc[j] -= yc[j]; + } + + // Remove leading zeros and adjust exponent accordingly. + for (; xc[0] == 0; xc.splice(0, 1), --ye); + + // Zero? + if (!xc[0]) { + + // Following IEEE 754 (2008) 6.3, + // n - n = +0 but n - n = -0 when rounding towards -Infinity. + y.s = ROUNDING_MODE == 3 ? -1 : 1; + y.c = [y.e = 0]; + return y; + } + + // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity + // for finite x and y. + return normalise(y, xc, ye); + }; + + + /* + * n % 0 = N + * n % N = N + * n % I = n + * 0 % n = 0 + * -0 % n = -0 + * 0 % 0 = N + * 0 % N = N + * 0 % I = 0 + * N % n = N + * N % 0 = N + * N % N = N + * N % I = N + * I % n = N + * I % 0 = N + * I % N = N + * I % I = N + * + * Return a new BigNumber whose value is the value of this BigNumber modulo the value of + * BigNumber(y, b). The result depends on the value of MODULO_MODE. + */ + P.modulo = P.mod = function (y, b) { + var q, s, + x = this; + + y = new BigNumber(y, b); + + // Return NaN if x is Infinity or NaN, or y is NaN or zero. + if (!x.c || !y.s || y.c && !y.c[0]) { + return new BigNumber(NaN); + + // Return x if y is Infinity or x is zero. + } else if (!y.c || x.c && !x.c[0]) { + return new BigNumber(x); + } + + if (MODULO_MODE == 9) { + + // Euclidian division: q = sign(y) * floor(x / abs(y)) + // r = x - qy where 0 <= r < abs(y) + s = y.s; + y.s = 1; + q = div(x, y, 0, 3); + y.s = s; + q.s *= s; + } else { + q = div(x, y, 0, MODULO_MODE); + } + + y = x.minus(q.times(y)); + + // To match JavaScript %, ensure sign of zero is sign of dividend. + if (!y.c[0] && MODULO_MODE == 1) y.s = x.s; + + return y; + }; + + + /* + * n * 0 = 0 + * n * N = N + * n * I = I + * 0 * n = 0 + * 0 * 0 = 0 + * 0 * N = N + * 0 * I = N + * N * n = N + * N * 0 = N + * N * N = N + * N * I = N + * I * n = I + * I * 0 = N + * I * N = N + * I * I = I + * + * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value + * of BigNumber(y, b). + */ + P.multipliedBy = P.times = function (y, b) { + var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, + base, sqrtBase, + x = this, + xc = x.c, + yc = (y = new BigNumber(y, b)).c; + + // Either NaN, 卤Infinity or 卤0? + if (!xc || !yc || !xc[0] || !yc[0]) { + + // Return NaN if either is NaN, or one is 0 and the other is Infinity. + if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) { + y.c = y.e = y.s = null; + } else { + y.s *= x.s; + + // Return 卤Infinity if either is 卤Infinity. + if (!xc || !yc) { + y.c = y.e = null; + + // Return 卤0 if either is 卤0. + } else { + y.c = [0]; + y.e = 0; + } + } + + return y; + } + + e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE); + y.s *= x.s; + xcL = xc.length; + ycL = yc.length; + + // Ensure xc points to longer array and xcL to its length. + if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i; + + // Initialise the result array with zeros. + for (i = xcL + ycL, zc = []; i--; zc.push(0)); + + base = BASE; + sqrtBase = SQRT_BASE; + + for (i = ycL; --i >= 0;) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; + + for (k = xcL, j = i + k; j > i;) { + xlo = xc[--k] % sqrtBase; + xhi = xc[k] / sqrtBase | 0; + m = yhi * xlo + xhi * ylo; + xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c; + c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi; + zc[j--] = xlo % base; + } + + zc[j] = c; + } + + if (c) { + ++e; + } else { + zc.splice(0, 1); + } + + return normalise(y, zc, e); + }; + + + /* + * Return a new BigNumber whose value is the value of this BigNumber negated, + * i.e. multiplied by -1. + */ + P.negated = function () { + var x = new BigNumber(this); + x.s = -x.s || null; + return x; + }; + + + /* + * n + 0 = n + * n + N = N + * n + I = I + * 0 + n = n + * 0 + 0 = 0 + * 0 + N = N + * 0 + I = I + * N + n = N + * N + 0 = N + * N + N = N + * N + I = N + * I + n = I + * I + 0 = I + * I + N = N + * I + I = I + * + * Return a new BigNumber whose value is the value of this BigNumber plus the value of + * BigNumber(y, b). + */ + P.plus = function (y, b) { + var t, + x = this, + a = x.s; + + y = new BigNumber(y, b); + b = y.s; + + // Either NaN? + if (!a || !b) return new BigNumber(NaN); + + // Signs differ? + if (a != b) { + y.s = -b; + return x.minus(y); + } + + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; + + if (!xe || !ye) { + + // Return 卤Infinity if either 卤Infinity. + if (!xc || !yc) return new BigNumber(a / 0); + + // Either zero? + // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. + if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0); + } + + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + + // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts. + if (a = xe - ye) { + if (a > 0) { + ye = xe; + t = yc; + } else { + a = -a; + t = xc; + } + + t.reverse(); + for (; a--; t.push(0)); + t.reverse(); + } + + a = xc.length; + b = yc.length; + + // Point xc to the longer array, and b to the shorter length. + if (a - b < 0) t = yc, yc = xc, xc = t, b = a; + + // Only start adding at yc.length - 1 as the further digits of xc can be ignored. + for (a = 0; b;) { + a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0; + xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; + } + + if (a) { + xc = [a].concat(xc); + ++ye; + } + + // No need to check for zero, as +x + +y != 0 && -x + -y != 0 + // ye = MAX_EXP + 1 possible + return normalise(y, xc, ye); + }; + + + /* + * If sd is undefined or null or true or false, return the number of significant digits of + * the value of this BigNumber, or null if the value of this BigNumber is 卤Infinity or NaN. + * If sd is true include integer-part trailing zeros in the count. + * + * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this + * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or + * ROUNDING_MODE if rm is omitted. + * + * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive. + * boolean: whether to count integer-part trailing zeros: true or false. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' + */ + P.precision = P.sd = function (sd, rm) { + var c, n, v, + x = this; + + if (sd != null && sd !== !!sd) { + intCheck(sd, 1, MAX); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + + return round(new BigNumber(x), sd, rm); + } + + if (!(c = x.c)) return null; + v = c.length - 1; + n = v * LOG_BASE + 1; + + if (v = c[v]) { + + // Subtract the number of trailing zeros of the last element. + for (; v % 10 == 0; v /= 10, n--); + + // Add the number of digits of the first element. + for (v = c[0]; v >= 10; v /= 10, n++); + } + + if (sd && x.e + 1 > n) n = x.e + 1; + + return n; + }; + + + /* + * Return a new BigNumber whose value is the value of this BigNumber shifted by k places + * (powers of 10). Shift to the right if n > 0, and to the left if n < 0. + * + * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}' + */ + P.shiftedBy = function (k) { + intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); + return this.times('1e' + k); + }; + + + /* + * sqrt(-n) = N + * sqrt(N) = N + * sqrt(-I) = N + * sqrt(I) = I + * sqrt(0) = 0 + * sqrt(-0) = -0 + * + * Return a new BigNumber whose value is the square root of the value of this BigNumber, + * rounded according to DECIMAL_PLACES and ROUNDING_MODE. + */ + P.squareRoot = P.sqrt = function () { + var m, n, r, rep, t, + x = this, + c = x.c, + s = x.s, + e = x.e, + dp = DECIMAL_PLACES + 4, + half = new BigNumber('0.5'); + + // Negative/NaN/Infinity/zero? + if (s !== 1 || !c || !c[0]) { + return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0); + } + + // Initial estimate. + s = Math.sqrt(+valueOf(x)); + + // Math.sqrt underflow/overflow? + // Pass x to Math.sqrt as integer, then adjust the exponent of the result. + if (s == 0 || s == 1 / 0) { + n = coeffToString(c); + if ((n.length + e) % 2 == 0) n += '0'; + s = Math.sqrt(+n); + e = bitFloor((e + 1) / 2) - (e < 0 || e % 2); + + if (s == 1 / 0) { + n = '1e' + e; + } else { + n = s.toExponential(); + n = n.slice(0, n.indexOf('e') + 1) + e; + } + + r = new BigNumber(n); + } else { + r = new BigNumber(s + ''); + } + + // Check for zero. + // r could be zero if MIN_EXP is changed after the this value was created. + // This would cause a division by zero (x/t) and hence Infinity below, which would cause + // coeffToString to throw. + if (r.c[0]) { + e = r.e; + s = e + dp; + if (s < 3) s = 0; + + // Newton-Raphson iteration. + for (; ;) { + t = r; + r = half.times(t.plus(div(x, t, dp, 1))); + + if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) { + + // The exponent of r may here be one less than the final result exponent, + // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits + // are indexed correctly. + if (r.e < e) --s; + n = n.slice(s - 3, s + 1); + + // The 4th rounding digit may be in error by -1 so if the 4 rounding digits + // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the + // iteration. + if (n == '9999' || !rep && n == '4999') { + + // On the first iteration only, check to see if rounding up gives the + // exact result as the nines may infinitely repeat. + if (!rep) { + round(t, t.e + DECIMAL_PLACES + 2, 0); + + if (t.times(t).eq(x)) { + r = t; + break; + } + } + + dp += 4; + s += 4; + rep = 1; + } else { + + // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact + // result. If not, then there are further digits and m will be truthy. + if (!+n || !+n.slice(1) && n.charAt(0) == '5') { + + // Truncate to the first rounding digit. + round(r, r.e + DECIMAL_PLACES + 2, 1); + m = !r.times(r).eq(x); + } + + break; + } + } + } + } + + return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); + }; + + + /* + * Return a string representing the value of this BigNumber in exponential notation and + * rounded using ROUNDING_MODE to dp fixed decimal places. + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + */ + P.toExponential = function (dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp++; + } + return format(this, dp, rm, 1); + }; + + + /* + * Return a string representing the value of this BigNumber in fixed-point notation rounding + * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted. + * + * Note: as with JavaScript's number type, (-0).toFixed(0) is '0', + * but e.g. (-0.00001).toFixed(0) is '-0'. + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + */ + P.toFixed = function (dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp = dp + this.e + 1; + } + return format(this, dp, rm); + }; + + + /* + * Return a string representing the value of this BigNumber in fixed-point notation rounded + * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties + * of the format or FORMAT object (see BigNumber.set). + * + * The formatting object may contain some or all of the properties shown below. + * + * FORMAT = { + * prefix: '', + * groupSize: 3, + * secondaryGroupSize: 0, + * groupSeparator: ',', + * decimalSeparator: '.', + * fractionGroupSize: 0, + * fractionGroupSeparator: '\xA0', // non-breaking space + * suffix: '' + * }; + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * [format] {object} Formatting options. See FORMAT pbject above. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + * '[BigNumber Error] Argument not an object: {format}' + */ + P.toFormat = function (dp, rm, format) { + var str, + x = this; + + if (format == null) { + if (dp != null && rm && typeof rm == 'object') { + format = rm; + rm = null; + } else if (dp && typeof dp == 'object') { + format = dp; + dp = rm = null; + } else { + format = FORMAT; + } + } else if (typeof format != 'object') { + throw Error + (bignumberError + 'Argument not an object: ' + format); + } + + str = x.toFixed(dp, rm); + + if (x.c) { + var i, + arr = str.split('.'), + g1 = +format.groupSize, + g2 = +format.secondaryGroupSize, + groupSeparator = format.groupSeparator || '', + intPart = arr[0], + fractionPart = arr[1], + isNeg = x.s < 0, + intDigits = isNeg ? intPart.slice(1) : intPart, + len = intDigits.length; + + if (g2) i = g1, g1 = g2, g2 = i, len -= i; + + if (g1 > 0 && len > 0) { + i = len % g1 || g1; + intPart = intDigits.substr(0, i); + for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1); + if (g2 > 0) intPart += groupSeparator + intDigits.slice(i); + if (isNeg) intPart = '-' + intPart; + } + + str = fractionPart + ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize) + ? fractionPart.replace(new RegExp('\\d{' + g2 + '}\\B', 'g'), + '$&' + (format.fractionGroupSeparator || '')) + : fractionPart) + : intPart; + } + + return (format.prefix || '') + str + (format.suffix || ''); + }; + + + /* + * Return an array of two BigNumbers representing the value of this BigNumber as a simple + * fraction with an integer numerator and an integer denominator. + * The denominator will be a positive non-zero value less than or equal to the specified + * maximum denominator. If a maximum denominator is not specified, the denominator will be + * the lowest value necessary to represent the number exactly. + * + * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator. + * + * '[BigNumber Error] Argument {not an integer|out of range} : {md}' + */ + P.toFraction = function (md) { + var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, + x = this, + xc = x.c; + + if (md != null) { + n = new BigNumber(md); + + // Throw if md is less than one or is not an integer, unless it is Infinity. + if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) { + throw Error + (bignumberError + 'Argument ' + + (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n)); + } + } + + if (!xc) return new BigNumber(x); + + d = new BigNumber(ONE); + n1 = d0 = new BigNumber(ONE); + d1 = n0 = new BigNumber(ONE); + s = coeffToString(xc); + + // Determine initial denominator. + // d is a power of 10 and the minimum max denominator that specifies the value exactly. + e = d.e = s.length - x.e - 1; + d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp]; + md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n; + + exp = MAX_EXP; + MAX_EXP = 1 / 0; + n = new BigNumber(s); + + // n0 = d1 = 0 + n0.c[0] = 0; + + for (; ;) { + q = div(n, d, 0, 1); + d2 = d0.plus(q.times(d1)); + if (d2.comparedTo(md) == 1) break; + d0 = d1; + d1 = d2; + n1 = n0.plus(q.times(d2 = n1)); + n0 = d2; + d = n.minus(q.times(d2 = d)); + n = d2; + } + + d2 = div(md.minus(d0), d1, 0, 1); + n0 = n0.plus(d2.times(n1)); + d0 = d0.plus(d2.times(d1)); + n0.s = n1.s = x.s; + e = e * 2; + + // Determine which fraction is closer to x, n0/d0 or n1/d1 + r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( + div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0]; + + MAX_EXP = exp; + + return r; + }; + + + /* + * Return the value of this BigNumber converted to a number primitive. + */ + P.toNumber = function () { + return +valueOf(this); + }; + + + /* + * Return a string representing the value of this BigNumber rounded to sd significant digits + * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits + * necessary to represent the integer part of the value in fixed-point notation, then use + * exponential notation. + * + * [sd] {number} Significant digits. Integer, 1 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' + */ + P.toPrecision = function (sd, rm) { + if (sd != null) intCheck(sd, 1, MAX); + return format(this, sd, rm, 2); + }; + + + /* + * Return a string representing the value of this BigNumber in base b, or base 10 if b is + * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and + * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent + * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than + * TO_EXP_NEG, return exponential notation. + * + * [b] {number} Integer, 2 to ALPHABET.length inclusive. + * + * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' + */ + P.toString = function (b) { + var str, + n = this, + s = n.s, + e = n.e; + + // Infinity or NaN? + if (e === null) { + if (s) { + str = 'Infinity'; + if (s < 0) str = '-' + str; + } else { + str = 'NaN'; + } + } else { + if (b == null) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(coeffToString(n.c), e) + : toFixedPoint(coeffToString(n.c), e, '0'); + } else if (b === 10) { + n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); + str = toFixedPoint(coeffToString(n.c), n.e, '0'); + } else { + intCheck(b, 2, ALPHABET.length, 'Base'); + str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true); + } + + if (s < 0 && n.c[0]) str = '-' + str; + } + + return str; + }; + + + /* + * Return as toString, but do not accept a base argument, and include the minus sign for + * negative zero. + */ + P.valueOf = P.toJSON = function () { + return valueOf(this); + }; + + + P._isBigNumber = true; + + if (configObject != null) BigNumber.set(configObject); + + return BigNumber; + } + + + // PRIVATE HELPER FUNCTIONS + + // These functions don't need access to variables, + // e.g. DECIMAL_PLACES, in the scope of the `clone` function above. + + + function bitFloor(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 1; + } + + + // Return a coefficient array as a string of base 10 digits. + function coeffToString(a) { + var s, z, + i = 1, + j = a.length, + r = a[0] + ''; + + for (; i < j;) { + s = a[i++] + ''; + z = LOG_BASE - s.length; + for (; z--; s = '0' + s); + r += s; + } + + // Determine trailing zeros. + for (j = r.length; r.charCodeAt(--j) === 48;); + + return r.slice(0, j + 1 || 1); + } + + + // Compare the value of BigNumbers x and y. + function compare(x, y) { + var a, b, + xc = x.c, + yc = y.c, + i = x.s, + j = y.s, + k = x.e, + l = y.e; + + // Either NaN? + if (!i || !j) return null; + + a = xc && !xc[0]; + b = yc && !yc[0]; + + // Either zero? + if (a || b) return a ? b ? 0 : -j : i; + + // Signs differ? + if (i != j) return i; + + a = i < 0; + b = k == l; + + // Either Infinity? + if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; + + // Compare exponents. + if (!b) return k > l ^ a ? 1 : -1; + + j = (k = xc.length) < (l = yc.length) ? k : l; + + // Compare digit by digit. + for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1; + + // Compare lengths. + return k == l ? 0 : k > l ^ a ? 1 : -1; + } + + + /* + * Check that n is a primitive number, an integer, and in range, otherwise throw. + */ + function intCheck(n, min, max, name) { + if (n < min || n > max || n !== mathfloor(n)) { + throw Error + (bignumberError + (name || 'Argument') + (typeof n == 'number' + ? n < min || n > max ? ' out of range: ' : ' not an integer: ' + : ' not a primitive number: ') + String(n)); + } + } + + + // Assumes finite n. + function isOdd(n) { + var k = n.c.length - 1; + return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0; + } + + + function toExponential(str, e) { + return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) + + (e < 0 ? 'e' : 'e+') + e; + } + + + function toFixedPoint(str, e, z) { + var len, zs; + + // Negative exponent? + if (e < 0) { + + // Prepend zeros. + for (zs = z + '.'; ++e; zs += z); + str = zs + str; + + // Positive exponent + } else { + len = str.length; + + // Append zeros. + if (++e > len) { + for (zs = z, e -= len; --e; zs += z); + str += zs; + } else if (e < len) { + str = str.slice(0, e) + '.' + str.slice(e); + } + } + + return str; + } + + + // EXPORT + + + BigNumber = clone(); + BigNumber['default'] = BigNumber.BigNumber = BigNumber; + + // AMD. + if (typeof define == 'function' && define.amd) { + define(function () { return BigNumber; }); + + // Node.js and other environments that support module.exports. + } else if (typeof module != 'undefined' && module.exports) { + module.exports = BigNumber; + + // Browser. + } else { + if (!globalObject) { + globalObject = typeof self != 'undefined' && self ? self : window; + } + + globalObject.BigNumber = BigNumber; + } +})(this); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.min.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.min.js" new file mode 100644 index 0000000000000000000000000000000000000000..2610072fdb4049638f1b4e693270ba246a394fcc --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/bignumber.min.js" @@ -0,0 +1 @@ +/* bignumber.js v9.0.0 https://github.com/MikeMcl/bignumber.js/LICENCE */!function(e){"use strict";var r,x=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,L=Math.ceil,U=Math.floor,I="[BigNumber Error] ",T=I+"Number primitive has more than 15 significant digits: ",C=1e14,M=14,G=9007199254740991,k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],F=1e7,q=1e9;function j(e){var r=0|e;return 0o[s]^n?1:-1;return u==l?0:l(t=e.length)){for(i=n,r-=t;--r;i+=n);e+=i}else ry?c.c=c.e=null:e.ey)c.c=c.e=null;else if(oy?e.c=e.e=null:e.c=n=a.length){if(!t)break e;for(;a.length<=l;a.push(0));u=c=0,s=(o%=M)-M+(i=1)}else{for(u=f=a[l],i=1;10<=f;f/=10,i++);c=(s=(o%=M)-M+i)<0?0:u/h[i-s-1]%10|0}if(t=t||r<0||null!=a[l+1]||(s<0?u:u%h[i-s-1]),t=n<4?(c||t)&&(0==n||n==(e.s<0?3:2)):5y?e.c=e.e=null:e.e>>11))?(n=crypto.getRandomValues(new Uint32Array(2)),r[s]=n[0],r[s+1]=n[1]):(f.push(o%1e14),s+=2);s=i/2}else{if(!crypto.randomBytes)throw b=!1,Error(I+"crypto unavailable");for(r=crypto.randomBytes(i*=7);sn-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}return function(e,r,n,t,i){var o,s,f,u,l,c,a,h,g=e.indexOf("."),p=N,w=O;for(0<=g&&(u=E,E=0,e=e.replace(".",""),c=(h=new B(r)).pow(e.length-g),E=u,h.c=m(X($(c.c),c.e,"0"),10,n,d),h.e=h.c.length),f=u=(a=m(e,r,n,i?(o=S,d):(o=d,S))).length;0==a[--u];a.pop());if(!a[0])return o.charAt(0);if(g<0?--f:(c.c=a,c.e=f,c.s=t,a=(c=v(c,h,p,w,n)).c,l=c.r,f=c.e),g=a[s=f+p+1],u=n/2,l=l||s<0||null!=a[s+1],l=w<4?(null!=g||l)&&(0==w||w==(c.s<0?3:2)):un;)a[s]=0,s||(++f,a=[1].concat(a));for(u=a.length;!a[--u];);for(g=0,e="";g<=u;e+=o.charAt(a[g++]));e=X(e,f,o.charAt(0))}return e}}(),v=function(){function S(e,r,n){var t,i,o,s,f=0,u=e.length,l=r%F,c=r/F|0;for(e=e.slice();u--;)f=((i=l*(o=e[u]%F)+(t=c*o+(s=e[u]/F|0)*l)%F*F+f)/n|0)+(t/F|0)+c*s,e[u]=i%n;return f&&(e=[f].concat(e)),e}function R(e,r,n,t){var i,o;if(n!=t)o=tr[i]?1:-1;break}return o}function _(e,r,n,t){for(var i=0;n--;)e[n]-=i,i=e[n](E[f]||0)&&s--,b<0)g.push(1),u=!0;else{for(v=E.length,O=A.length,b+=2,1<(l=U(i/(A[f=0]+1)))&&(A=S(A,l,i),E=S(E,l,i),O=A.length,v=E.length),m=O,w=(p=E.slice(0,O)).length;w=i/2&&N++;do{if(l=0,(o=R(A,p,O,w))<0){if(d=p[0],O!=w&&(d=d*i+(p[1]||0)),1<(l=U(d/N)))for(i<=l&&(l=i-1),a=(c=S(A,l,i)).length,w=p.length;1==R(c,p,a,w);)l--,_(c,Oo&&(l.c.length=o):t&&(l=l.mod(r))}if(i){if(0===(i=U(i/2)))break;u=i%2}else if(D(e=e.times(n),e.e+1,1),14o&&(c.c.length=o):t&&(c=c.mod(r))}return t?l:(f&&(l=w.div(l)),r?l.mod(r):o?D(l,E,O,void 0):l)},t.integerValue=function(e){var r=new B(this);return null==e?e=O:H(e,0,8),D(r,r.e+1,e)},t.isEqualTo=t.eq=function(e,r){return 0===z(this,new B(e,r))},t.isFinite=function(){return!!this.c},t.isGreaterThan=t.gt=function(e,r){return 0this.c.length-2},t.isLessThan=t.lt=function(e,r){return z(this,new B(e,r))<0},t.isLessThanOrEqualTo=t.lte=function(e,r){return-1===(r=z(this,new B(e,r)))||0===r},t.isNaN=function(){return!this.s},t.isNegative=function(){return this.s<0},t.isPositive=function(){return 0t&&(t=this.e+1),t},t.shiftedBy=function(e){return H(e,-G,G),this.times("1e"+e)},t.squareRoot=t.sqrt=function(){var e,r,n,t,i,o=this,s=o.c,f=o.s,u=o.e,l=N+4,c=new B("0.5");if(1!==f||!s||!s[0])return new B(!f||f<0&&(!s||s[0])?NaN:s?o:1/0);if((n=0==(f=Math.sqrt(+P(o)))||f==1/0?(((r=$(s)).length+u)%2==0&&(r+="0"),f=Math.sqrt(+r),u=j((u+1)/2)-(u<0||u%2),new B(r=f==1/0?"1e"+u:(r=f.toExponential()).slice(0,r.indexOf("e")+1)+u)):new B(f+"")).c[0])for((f=(u=n.e)+l)<3&&(f=0);;)if(i=n,n=c.times(i.plus(v(o,i,l,1))),$(i.c).slice(0,f)===(r=$(n.c)).slice(0,f)){if(n.e + * MIT Licensed. + * + * BigNumber.prototype methods | BigNumber methods + * | + * absoluteValue abs | clone + * comparedTo | config set + * decimalPlaces dp | DECIMAL_PLACES + * dividedBy div | ROUNDING_MODE + * dividedToIntegerBy idiv | EXPONENTIAL_AT + * exponentiatedBy pow | RANGE + * integerValue | CRYPTO + * isEqualTo eq | MODULO_MODE + * isFinite | POW_PRECISION + * isGreaterThan gt | FORMAT + * isGreaterThanOrEqualTo gte | ALPHABET + * isInteger | isBigNumber + * isLessThan lt | maximum max + * isLessThanOrEqualTo lte | minimum min + * isNaN | random + * isNegative | sum + * isPositive | + * isZero | + * minus | + * modulo mod | + * multipliedBy times | + * negated | + * plus | + * precision sd | + * shiftedBy | + * squareRoot sqrt | + * toExponential | + * toFixed | + * toFormat | + * toFraction | + * toJSON | + * toNumber | + * toPrecision | + * toString | + * valueOf | + * + */ + + +var + isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, + + mathceil = Math.ceil, + mathfloor = Math.floor, + + bignumberError = '[BigNumber Error] ', + tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ', + + BASE = 1e14, + LOG_BASE = 14, + MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1 + // MAX_INT32 = 0x7fffffff, // 2^31 - 1 + POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], + SQRT_BASE = 1e7, + + // EDITABLE + // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and + // the arguments to toExponential, toFixed, toFormat, and toPrecision. + MAX = 1E9; // 0 to MAX_INT32 + + +/* + * Create and return a BigNumber constructor. + */ +function clone(configObject) { + var div, convertBase, parseNumeric, + P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null }, + ONE = new BigNumber(1), + + + //----------------------------- EDITABLE CONFIG DEFAULTS ------------------------------- + + + // The default values below must be integers within the inclusive ranges stated. + // The values can also be changed at run-time using BigNumber.set. + + // The maximum number of decimal places for operations involving division. + DECIMAL_PLACES = 20, // 0 to MAX + + // The rounding mode used when rounding to the above decimal places, and when using + // toExponential, toFixed, toFormat and toPrecision, and round (default value). + // UP 0 Away from zero. + // DOWN 1 Towards zero. + // CEIL 2 Towards +Infinity. + // FLOOR 3 Towards -Infinity. + // HALF_UP 4 Towards nearest neighbour. If equidistant, up. + // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. + // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. + // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. + // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. + ROUNDING_MODE = 4, // 0 to 8 + + // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS] + + // The exponent value at and beneath which toString returns exponential notation. + // Number type: -7 + TO_EXP_NEG = -7, // 0 to -MAX + + // The exponent value at and above which toString returns exponential notation. + // Number type: 21 + TO_EXP_POS = 21, // 0 to MAX + + // RANGE : [MIN_EXP, MAX_EXP] + + // The minimum exponent value, beneath which underflow to zero occurs. + // Number type: -324 (5e-324) + MIN_EXP = -1e7, // -1 to -MAX + + // The maximum exponent value, above which overflow to Infinity occurs. + // Number type: 308 (1.7976931348623157e+308) + // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow. + MAX_EXP = 1e7, // 1 to MAX + + // Whether to use cryptographically-secure random number generation, if available. + CRYPTO = false, // true or false + + // The modulo mode used when calculating the modulus: a mod n. + // The quotient (q = a / n) is calculated according to the corresponding rounding mode. + // The remainder (r) is calculated as: r = a - n * q. + // + // UP 0 The remainder is positive if the dividend is negative, else is negative. + // DOWN 1 The remainder has the same sign as the dividend. + // This modulo mode is commonly known as 'truncated division' and is + // equivalent to (a % n) in JavaScript. + // FLOOR 3 The remainder has the same sign as the divisor (Python %). + // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function. + // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). + // The remainder is always positive. + // + // The truncated division, floored division, Euclidian division and IEEE 754 remainder + // modes are commonly used for the modulus operation. + // Although the other rounding modes can also be used, they may not give useful results. + MODULO_MODE = 1, // 0 to 9 + + // The maximum number of significant digits of the result of the exponentiatedBy operation. + // If POW_PRECISION is 0, there will be unlimited significant digits. + POW_PRECISION = 0, // 0 to MAX + + // The format specification used by the BigNumber.prototype.toFormat method. + FORMAT = { + prefix: '', + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ',', + decimalSeparator: '.', + fractionGroupSize: 0, + fractionGroupSeparator: '\xA0', // non-breaking space + suffix: '' + }, + + // The alphabet used for base conversion. It must be at least 2 characters long, with no '+', + // '-', '.', whitespace, or repeated character. + // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_' + ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz'; + + + //------------------------------------------------------------------------------------------ + + + // CONSTRUCTOR + + + /* + * The BigNumber constructor and exported function. + * Create and return a new instance of a BigNumber object. + * + * v {number|string|BigNumber} A numeric value. + * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive. + */ + function BigNumber(v, b) { + var alphabet, c, caseChanged, e, i, isNum, len, str, + x = this; + + // Enable constructor call without `new`. + if (!(x instanceof BigNumber)) return new BigNumber(v, b); + + if (b == null) { + + if (v && v._isBigNumber === true) { + x.s = v.s; + + if (!v.c || v.e > MAX_EXP) { + x.c = x.e = null; + } else if (v.e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = v.e; + x.c = v.c.slice(); + } + + return; + } + + if ((isNum = typeof v == 'number') && v * 0 == 0) { + + // Use `1 / n` to handle minus zero also. + x.s = 1 / v < 0 ? (v = -v, -1) : 1; + + // Fast path for integers, where n < 2147483648 (2**31). + if (v === ~~v) { + for (e = 0, i = v; i >= 10; i /= 10, e++); + + if (e > MAX_EXP) { + x.c = x.e = null; + } else { + x.e = e; + x.c = [v]; + } + + return; + } + + str = String(v); + } else { + + if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum); + + x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; + } + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + + // Exponential form? + if ((i = str.search(/e/i)) > 0) { + + // Determine exponent. + if (e < 0) e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + + // Integer. + e = str.length; + } + + } else { + + // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' + intCheck(b, 2, ALPHABET.length, 'Base'); + + // Allow exponential notation to be used with base 10 argument, while + // also rounding to DECIMAL_PLACES as with other bases. + if (b == 10) { + x = new BigNumber(v); + return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); + } + + str = String(v); + + if (isNum = typeof v == 'number') { + + // Avoid potential interpretation of Infinity and NaN as base 44+ values. + if (v * 0 != 0) return parseNumeric(x, str, isNum, b); + + x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) { + throw Error + (tooManyDigits + v); + } + } else { + x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; + } + + alphabet = ALPHABET.slice(0, b); + e = i = 0; + + // Check that str is a valid base b number. + // Don't use RegExp, so alphabet can contain special characters. + for (len = str.length; i < len; i++) { + if (alphabet.indexOf(c = str.charAt(i)) < 0) { + if (c == '.') { + + // If '.' is not the first character and it has not be found before. + if (i > e) { + e = len; + continue; + } + } else if (!caseChanged) { + + // Allow e.g. hexadecimal 'FF' as well as 'ff'. + if (str == str.toUpperCase() && (str = str.toLowerCase()) || + str == str.toLowerCase() && (str = str.toUpperCase())) { + caseChanged = true; + i = -1; + e = 0; + continue; + } + } + + return parseNumeric(x, String(v), isNum, b); + } + } + + // Prevent later check for length on converted number. + isNum = false; + str = convertBase(str, b, 10, x.s); + + // Decimal point? + if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); + else e = str.length; + } + + // Determine leading zeros. + for (i = 0; str.charCodeAt(i) === 48; i++); + + // Determine trailing zeros. + for (len = str.length; str.charCodeAt(--len) === 48;); + + if (str = str.slice(i, ++len)) { + len -= i; + + // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}' + if (isNum && BigNumber.DEBUG && + len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) { + throw Error + (tooManyDigits + (x.s * v)); + } + + // Overflow? + if ((e = e - i - 1) > MAX_EXP) { + + // Infinity. + x.c = x.e = null; + + // Underflow? + } else if (e < MIN_EXP) { + + // Zero. + x.c = [x.e = 0]; + } else { + x.e = e; + x.c = []; + + // Transform base + + // e is the base 10 exponent. + // i is where to slice str to get the first element of the coefficient array. + i = (e + 1) % LOG_BASE; + if (e < 0) i += LOG_BASE; // i < 1 + + if (i < len) { + if (i) x.c.push(+str.slice(0, i)); + + for (len -= LOG_BASE; i < len;) { + x.c.push(+str.slice(i, i += LOG_BASE)); + } + + i = LOG_BASE - (str = str.slice(i)).length; + } else { + i -= len; + } + + for (; i--; str += '0'); + x.c.push(+str); + } + } else { + + // Zero. + x.c = [x.e = 0]; + } + } + + + // CONSTRUCTOR PROPERTIES + + + BigNumber.clone = clone; + + BigNumber.ROUND_UP = 0; + BigNumber.ROUND_DOWN = 1; + BigNumber.ROUND_CEIL = 2; + BigNumber.ROUND_FLOOR = 3; + BigNumber.ROUND_HALF_UP = 4; + BigNumber.ROUND_HALF_DOWN = 5; + BigNumber.ROUND_HALF_EVEN = 6; + BigNumber.ROUND_HALF_CEIL = 7; + BigNumber.ROUND_HALF_FLOOR = 8; + BigNumber.EUCLID = 9; + + + /* + * Configure infrequently-changing library-wide settings. + * + * Accept an object with the following optional properties (if the value of a property is + * a number, it must be an integer within the inclusive range stated): + * + * DECIMAL_PLACES {number} 0 to MAX + * ROUNDING_MODE {number} 0 to 8 + * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX] + * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX] + * CRYPTO {boolean} true or false + * MODULO_MODE {number} 0 to 9 + * POW_PRECISION {number} 0 to MAX + * ALPHABET {string} A string of two or more unique characters which does + * not contain '.'. + * FORMAT {object} An object with some of the following properties: + * prefix {string} + * groupSize {number} + * secondaryGroupSize {number} + * groupSeparator {string} + * decimalSeparator {string} + * fractionGroupSize {number} + * fractionGroupSeparator {string} + * suffix {string} + * + * (The values assigned to the above FORMAT object properties are not checked for validity.) + * + * E.g. + * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 }) + * + * Ignore properties/parameters set to null or undefined, except for ALPHABET. + * + * Return an object with the properties current values. + */ + BigNumber.config = BigNumber.set = function (obj) { + var p, v; + + if (obj != null) { + + if (typeof obj == 'object') { + + // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive. + // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) { + v = obj[p]; + intCheck(v, 0, MAX, p); + DECIMAL_PLACES = v; + } + + // ROUNDING_MODE {number} Integer, 0 to 8 inclusive. + // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) { + v = obj[p]; + intCheck(v, 0, 8, p); + ROUNDING_MODE = v; + } + + // EXPONENTIAL_AT {number|number[]} + // Integer, -MAX to MAX inclusive or + // [integer -MAX to 0 inclusive, 0 to MAX inclusive]. + // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, 0, p); + intCheck(v[1], 0, MAX, p); + TO_EXP_NEG = v[0]; + TO_EXP_POS = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v); + } + } + + // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or + // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive]. + // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}' + if (obj.hasOwnProperty(p = 'RANGE')) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, -1, p); + intCheck(v[1], 1, MAX, p); + MIN_EXP = v[0]; + MAX_EXP = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + if (v) { + MIN_EXP = -(MAX_EXP = v < 0 ? -v : v); + } else { + throw Error + (bignumberError + p + ' cannot be zero: ' + v); + } + } + } + + // CRYPTO {boolean} true or false. + // '[BigNumber Error] CRYPTO not true or false: {v}' + // '[BigNumber Error] crypto unavailable' + if (obj.hasOwnProperty(p = 'CRYPTO')) { + v = obj[p]; + if (v === !!v) { + if (v) { + if (typeof crypto != 'undefined' && crypto && + (crypto.getRandomValues || crypto.randomBytes)) { + CRYPTO = v; + } else { + CRYPTO = !v; + throw Error + (bignumberError + 'crypto unavailable'); + } + } else { + CRYPTO = v; + } + } else { + throw Error + (bignumberError + p + ' not true or false: ' + v); + } + } + + // MODULO_MODE {number} Integer, 0 to 9 inclusive. + // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'MODULO_MODE')) { + v = obj[p]; + intCheck(v, 0, 9, p); + MODULO_MODE = v; + } + + // POW_PRECISION {number} Integer, 0 to MAX inclusive. + // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}' + if (obj.hasOwnProperty(p = 'POW_PRECISION')) { + v = obj[p]; + intCheck(v, 0, MAX, p); + POW_PRECISION = v; + } + + // FORMAT {object} + // '[BigNumber Error] FORMAT not an object: {v}' + if (obj.hasOwnProperty(p = 'FORMAT')) { + v = obj[p]; + if (typeof v == 'object') FORMAT = v; + else throw Error + (bignumberError + p + ' not an object: ' + v); + } + + // ALPHABET {string} + // '[BigNumber Error] ALPHABET invalid: {v}' + if (obj.hasOwnProperty(p = 'ALPHABET')) { + v = obj[p]; + + // Disallow if only one character, + // or if it contains '+', '-', '.', whitespace, or a repeated character. + if (typeof v == 'string' && !/^.$|[+-.\s]|(.).*\1/.test(v)) { + ALPHABET = v; + } else { + throw Error + (bignumberError + p + ' invalid: ' + v); + } + } + + } else { + + // '[BigNumber Error] Object expected: {v}' + throw Error + (bignumberError + 'Object expected: ' + obj); + } + } + + return { + DECIMAL_PLACES: DECIMAL_PLACES, + ROUNDING_MODE: ROUNDING_MODE, + EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS], + RANGE: [MIN_EXP, MAX_EXP], + CRYPTO: CRYPTO, + MODULO_MODE: MODULO_MODE, + POW_PRECISION: POW_PRECISION, + FORMAT: FORMAT, + ALPHABET: ALPHABET + }; + }; + + + /* + * Return true if v is a BigNumber instance, otherwise return false. + * + * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed. + * + * v {any} + * + * '[BigNumber Error] Invalid BigNumber: {v}' + */ + BigNumber.isBigNumber = function (v) { + if (!v || v._isBigNumber !== true) return false; + if (!BigNumber.DEBUG) return true; + + var i, n, + c = v.c, + e = v.e, + s = v.s; + + out: if ({}.toString.call(c) == '[object Array]') { + + if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) { + + // If the first element is zero, the BigNumber value must be zero. + if (c[0] === 0) { + if (e === 0 && c.length === 1) return true; + break out; + } + + // Calculate number of digits that c[0] should have, based on the exponent. + i = (e + 1) % LOG_BASE; + if (i < 1) i += LOG_BASE; + + // Calculate number of digits of c[0]. + //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) { + if (String(c[0]).length == i) { + + for (i = 0; i < c.length; i++) { + n = c[i]; + if (n < 0 || n >= BASE || n !== mathfloor(n)) break out; + } + + // Last element cannot be zero, unless it is the only element. + if (n !== 0) return true; + } + } + + // Infinity/NaN + } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { + return true; + } + + throw Error + (bignumberError + 'Invalid BigNumber: ' + v); + }; + + + /* + * Return a new BigNumber whose value is the maximum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.maximum = BigNumber.max = function () { + return maxOrMin(arguments, P.lt); + }; + + + /* + * Return a new BigNumber whose value is the minimum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.minimum = BigNumber.min = function () { + return maxOrMin(arguments, P.gt); + }; + + + /* + * Return a new BigNumber with a random value equal to or greater than 0 and less than 1, + * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing + * zeros are produced). + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}' + * '[BigNumber Error] crypto unavailable' + */ + BigNumber.random = (function () { + var pow2_53 = 0x20000000000000; + + // Return a 53 bit integer n, where 0 <= n < 9007199254740992. + // Check if Math.random() produces more than 32 bits of randomness. + // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits. + // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1. + var random53bitInt = (Math.random() * pow2_53) & 0x1fffff + ? function () { return mathfloor(Math.random() * pow2_53); } + : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) + + (Math.random() * 0x800000 | 0); }; + + return function (dp) { + var a, b, e, k, v, + i = 0, + c = [], + rand = new BigNumber(ONE); + + if (dp == null) dp = DECIMAL_PLACES; + else intCheck(dp, 0, MAX); + + k = mathceil(dp / LOG_BASE); + + if (CRYPTO) { + + // Browsers supporting crypto.getRandomValues. + if (crypto.getRandomValues) { + + a = crypto.getRandomValues(new Uint32Array(k *= 2)); + + for (; i < k;) { + + // 53 bits: + // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2) + // 11111 11111111 11111111 11111111 11100000 00000000 00000000 + // ((Math.pow(2, 32) - 1) >>> 11).toString(2) + // 11111 11111111 11111111 + // 0x20000 is 2^21. + v = a[i] * 0x20000 + (a[i + 1] >>> 11); + + // Rejection sampling: + // 0 <= v < 9007199254740992 + // Probability that v >= 9e15, is + // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251 + if (v >= 9e15) { + b = crypto.getRandomValues(new Uint32Array(2)); + a[i] = b[0]; + a[i + 1] = b[1]; + } else { + + // 0 <= v <= 8999999999999999 + // 0 <= (v % 1e14) <= 99999999999999 + c.push(v % 1e14); + i += 2; + } + } + i = k / 2; + + // Node.js supporting crypto.randomBytes. + } else if (crypto.randomBytes) { + + // buffer + a = crypto.randomBytes(k *= 7); + + for (; i < k;) { + + // 0x1000000000000 is 2^48, 0x10000000000 is 2^40 + // 0x100000000 is 2^32, 0x1000000 is 2^24 + // 11111 11111111 11111111 11111111 11111111 11111111 11111111 + // 0 <= v < 9007199254740992 + v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) + + (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) + + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6]; + + if (v >= 9e15) { + crypto.randomBytes(7).copy(a, i); + } else { + + // 0 <= (v % 1e14) <= 99999999999999 + c.push(v % 1e14); + i += 7; + } + } + i = k / 7; + } else { + CRYPTO = false; + throw Error + (bignumberError + 'crypto unavailable'); + } + } + + // Use Math.random. + if (!CRYPTO) { + + for (; i < k;) { + v = random53bitInt(); + if (v < 9e15) c[i++] = v % 1e14; + } + } + + k = c[--i]; + dp %= LOG_BASE; + + // Convert trailing digits to zeros according to dp. + if (k && dp) { + v = POWS_TEN[LOG_BASE - dp]; + c[i] = mathfloor(k / v) * v; + } + + // Remove trailing elements which are zero. + for (; c[i] === 0; c.pop(), i--); + + // Zero? + if (i < 0) { + c = [e = 0]; + } else { + + // Remove leading elements which are zero and adjust exponent accordingly. + for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE); + + // Count the digits of the first element of c to determine leading zeros, and... + for (i = 1, v = c[0]; v >= 10; v /= 10, i++); + + // adjust the exponent accordingly. + if (i < LOG_BASE) e -= LOG_BASE - i; + } + + rand.e = e; + rand.c = c; + return rand; + }; + })(); + + + /* + * Return a BigNumber whose value is the sum of the arguments. + * + * arguments {number|string|BigNumber} + */ + BigNumber.sum = function () { + var i = 1, + args = arguments, + sum = new BigNumber(args[0]); + for (; i < args.length;) sum = sum.plus(args[i++]); + return sum; + }; + + + // PRIVATE FUNCTIONS + + + // Called by BigNumber and BigNumber.prototype.toString. + convertBase = (function () { + var decimal = '0123456789'; + + /* + * Convert string of baseIn to an array of numbers of baseOut. + * Eg. toBaseOut('255', 10, 16) returns [15, 15]. + * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5]. + */ + function toBaseOut(str, baseIn, baseOut, alphabet) { + var j, + arr = [0], + arrL, + i = 0, + len = str.length; + + for (; i < len;) { + for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); + + arr[0] += alphabet.indexOf(str.charAt(i++)); + + for (j = 0; j < arr.length; j++) { + + if (arr[j] > baseOut - 1) { + if (arr[j + 1] == null) arr[j + 1] = 0; + arr[j + 1] += arr[j] / baseOut | 0; + arr[j] %= baseOut; + } + } + } + + return arr.reverse(); + } + + // Convert a numeric string of baseIn to a numeric string of baseOut. + // If the caller is toString, we are converting from base 10 to baseOut. + // If the caller is BigNumber, we are converting from baseIn to base 10. + return function (str, baseIn, baseOut, sign, callerIsToString) { + var alphabet, d, e, k, r, x, xc, y, + i = str.indexOf('.'), + dp = DECIMAL_PLACES, + rm = ROUNDING_MODE; + + // Non-integer. + if (i >= 0) { + k = POW_PRECISION; + + // Unlimited precision. + POW_PRECISION = 0; + str = str.replace('.', ''); + y = new BigNumber(baseIn); + x = y.pow(str.length - i); + POW_PRECISION = k; + + // Convert str as if an integer, then restore the fraction part by dividing the + // result by its base raised to a power. + + y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'), + 10, baseOut, decimal); + y.e = y.c.length; + } + + // Convert the number as integer. + + xc = toBaseOut(str, baseIn, baseOut, callerIsToString + ? (alphabet = ALPHABET, decimal) + : (alphabet = decimal, ALPHABET)); + + // xc now represents str as an integer and converted to baseOut. e is the exponent. + e = k = xc.length; + + // Remove trailing zeros. + for (; xc[--k] == 0; xc.pop()); + + // Zero? + if (!xc[0]) return alphabet.charAt(0); + + // Does str represent an integer? If so, no need for the division. + if (i < 0) { + --e; + } else { + x.c = xc; + x.e = e; + + // The sign is needed for correct rounding. + x.s = sign; + x = div(x, y, dp, rm, baseOut); + xc = x.c; + r = x.r; + e = x.e; + } + + // xc now represents str converted to baseOut. + + // THe index of the rounding digit. + d = e + dp + 1; + + // The rounding digit: the digit to the right of the digit that may be rounded up. + i = xc[d]; + + // Look at the rounding digits and mode to determine whether to round up. + + k = baseOut / 2; + r = r || d < 0 || xc[d + 1] != null; + + r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) + : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 || + rm == (x.s < 0 ? 8 : 7)); + + // If the index of the rounding digit is not greater than zero, or xc represents + // zero, then the result of the base conversion is zero or, if rounding up, a value + // such as 0.00001. + if (d < 1 || !xc[0]) { + + // 1^-dp or 0 + str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0); + } else { + + // Truncate xc to the required number of decimal places. + xc.length = d; + + // Round up? + if (r) { + + // Rounding up may mean the previous digit has to be rounded up and so on. + for (--baseOut; ++xc[--d] > baseOut;) { + xc[d] = 0; + + if (!d) { + ++e; + xc = [1].concat(xc); + } + } + } + + // Determine trailing zeros. + for (k = xc.length; !xc[--k];); + + // E.g. [4, 11, 15] becomes 4bf. + for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++])); + + // Add leading zeros, decimal point and trailing zeros as required. + str = toFixedPoint(str, e, alphabet.charAt(0)); + } + + // The caller will add the sign. + return str; + }; + })(); + + + // Perform division in the specified base. Called by div and convertBase. + div = (function () { + + // Assume non-zero x and k. + function multiply(x, k, base) { + var m, temp, xlo, xhi, + carry = 0, + i = x.length, + klo = k % SQRT_BASE, + khi = k / SQRT_BASE | 0; + + for (x = x.slice(); i--;) { + xlo = x[i] % SQRT_BASE; + xhi = x[i] / SQRT_BASE | 0; + m = khi * xlo + xhi * klo; + temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry; + carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi; + x[i] = temp % base; + } + + if (carry) x = [carry].concat(x); + + return x; + } + + function compare(a, b, aL, bL) { + var i, cmp; + + if (aL != bL) { + cmp = aL > bL ? 1 : -1; + } else { + + for (i = cmp = 0; i < aL; i++) { + + if (a[i] != b[i]) { + cmp = a[i] > b[i] ? 1 : -1; + break; + } + } + } + + return cmp; + } + + function subtract(a, b, aL, base) { + var i = 0; + + // Subtract b from a. + for (; aL--;) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + + // Remove leading zeros. + for (; !a[0] && a.length > 1; a.splice(0, 1)); + } + + // x: dividend, y: divisor. + return function (x, y, dp, rm, base) { + var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, + yL, yz, + s = x.s == y.s ? 1 : -1, + xc = x.c, + yc = y.c; + + // Either NaN, Infinity or 0? + if (!xc || !xc[0] || !yc || !yc[0]) { + + return new BigNumber( + + // Return NaN if either NaN, or both Infinity or 0. + !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : + + // Return 卤0 if x is 卤0 or y is 卤Infinity, or return 卤Infinity as y is 卤0. + xc && xc[0] == 0 || !yc ? s * 0 : s / 0 + ); + } + + q = new BigNumber(s); + qc = q.c = []; + e = x.e - y.e; + s = dp + e + 1; + + if (!base) { + base = BASE; + e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE); + s = s / LOG_BASE | 0; + } + + // Result exponent may be one less then the current value of e. + // The coefficients of the BigNumbers from convertBase may have trailing zeros. + for (i = 0; yc[i] == (xc[i] || 0); i++); + + if (yc[i] > (xc[i] || 0)) e--; + + if (s < 0) { + qc.push(1); + more = true; + } else { + xL = xc.length; + yL = yc.length; + i = 0; + s += 2; + + // Normalise xc and yc so highest order digit of yc is >= base / 2. + + n = mathfloor(base / (yc[0] + 1)); + + // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1. + // if (n > 1 || n++ == 1 && yc[0] < base / 2) { + if (n > 1) { + yc = multiply(yc, n, base); + xc = multiply(xc, n, base); + yL = yc.length; + xL = xc.length; + } + + xi = yL; + rem = xc.slice(0, yL); + remL = rem.length; + + // Add zeros to make remainder as long as divisor. + for (; remL < yL; rem[remL++] = 0); + yz = yc.slice(); + yz = [0].concat(yz); + yc0 = yc[0]; + if (yc[1] >= base / 2) yc0++; + // Not necessary, but to prevent trial digit n > base, when using base 3. + // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15; + + do { + n = 0; + + // Compare divisor and remainder. + cmp = compare(yc, rem, yL, remL); + + // If divisor < remainder. + if (cmp < 0) { + + // Calculate trial digit, n. + + rem0 = rem[0]; + if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); + + // n is how many times the divisor goes into the current remainder. + n = mathfloor(rem0 / yc0); + + // Algorithm: + // product = divisor multiplied by trial digit (n). + // Compare product and remainder. + // If product is greater than remainder: + // Subtract divisor from product, decrement trial digit. + // Subtract product from remainder. + // If product was less than remainder at the last compare: + // Compare new remainder and divisor. + // If remainder is greater than divisor: + // Subtract divisor from remainder, increment trial digit. + + if (n > 1) { + + // n may be > base only when base is 3. + if (n >= base) n = base - 1; + + // product = divisor * trial digit. + prod = multiply(yc, n, base); + prodL = prod.length; + remL = rem.length; + + // Compare product and remainder. + // If product > remainder then trial digit n too high. + // n is 1 too high about 5% of the time, and is not known to have + // ever been more than 1 too high. + while (compare(prod, rem, prodL, remL) == 1) { + n--; + + // Subtract divisor from product. + subtract(prod, yL < prodL ? yz : yc, prodL, base); + prodL = prod.length; + cmp = 1; + } + } else { + + // n is 0 or 1, cmp is -1. + // If n is 0, there is no need to compare yc and rem again below, + // so change cmp to 1 to avoid it. + // If n is 1, leave cmp as -1, so yc and rem are compared again. + if (n == 0) { + + // divisor < remainder, so n must be at least 1. + cmp = n = 1; + } + + // product = divisor + prod = yc.slice(); + prodL = prod.length; + } + + if (prodL < remL) prod = [0].concat(prod); + + // Subtract product from remainder. + subtract(rem, prod, remL, base); + remL = rem.length; + + // If product was < remainder. + if (cmp == -1) { + + // Compare divisor and new remainder. + // If divisor < new remainder, subtract divisor from remainder. + // Trial digit n too low. + // n is 1 too low about 5% of the time, and very rarely 2 too low. + while (compare(yc, rem, yL, remL) < 1) { + n++; + + // Subtract divisor from remainder. + subtract(rem, yL < remL ? yz : yc, remL, base); + remL = rem.length; + } + } + } else if (cmp === 0) { + n++; + rem = [0]; + } // else cmp === 1 and n will be 0 + + // Add the next digit, n, to the result array. + qc[i++] = n; + + // Update the remainder. + if (rem[0]) { + rem[remL++] = xc[xi] || 0; + } else { + rem = [xc[xi]]; + remL = 1; + } + } while ((xi++ < xL || rem[0] != null) && s--); + + more = rem[0] != null; + + // Leading zero? + if (!qc[0]) qc.splice(0, 1); + } + + if (base == BASE) { + + // To calculate q.e, first get the number of digits of qc[0]. + for (i = 1, s = qc[0]; s >= 10; s /= 10, i++); + + round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more); + + // Caller is convertBase. + } else { + q.e = e; + q.r = +more; + } + + return q; + }; + })(); + + + /* + * Return a string representing the value of BigNumber n in fixed-point or exponential + * notation rounded to the specified decimal places or significant digits. + * + * n: a BigNumber. + * i: the index of the last digit required (i.e. the digit that may be rounded up). + * rm: the rounding mode. + * id: 1 (toExponential) or 2 (toPrecision). + */ + function format(n, i, rm, id) { + var c0, e, ne, len, str; + + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + + if (!n.c) return n.toString(); + + c0 = n.c[0]; + ne = n.e; + + if (i == null) { + str = coeffToString(n.c); + str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) + ? toExponential(str, ne) + : toFixedPoint(str, ne, '0'); + } else { + n = round(new BigNumber(n), i, rm); + + // n.e may have changed if the value was rounded up. + e = n.e; + + str = coeffToString(n.c); + len = str.length; + + // toPrecision returns exponential notation if the number of significant digits + // specified is less than the number of digits necessary to represent the integer + // part of the value in fixed-point notation. + + // Exponential notation. + if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) { + + // Append zeros? + for (; len < i; str += '0', len++); + str = toExponential(str, e); + + // Fixed-point notation. + } else { + i -= ne; + str = toFixedPoint(str, e, '0'); + + // Append zeros? + if (e + 1 > len) { + if (--i > 0) for (str += '.'; i--; str += '0'); + } else { + i += e - len; + if (i > 0) { + if (e + 1 == len) str += '.'; + for (; i--; str += '0'); + } + } + } + } + + return n.s < 0 && c0 ? '-' + str : str; + } + + + // Handle BigNumber.max and BigNumber.min. + function maxOrMin(args, method) { + var n, + i = 1, + m = new BigNumber(args[0]); + + for (; i < args.length; i++) { + n = new BigNumber(args[i]); + + // If any number is NaN, return NaN. + if (!n.s) { + m = n; + break; + } else if (method.call(m, n)) { + m = n; + } + } + + return m; + } + + + /* + * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP. + * Called by minus, plus and times. + */ + function normalise(n, c, e) { + var i = 1, + j = c.length; + + // Remove trailing zeros. + for (; !c[--j]; c.pop()); + + // Calculate the base 10 exponent. First get the number of digits of c[0]. + for (j = c[0]; j >= 10; j /= 10, i++); + + // Overflow? + if ((e = i + e * LOG_BASE - 1) > MAX_EXP) { + + // Infinity. + n.c = n.e = null; + + // Underflow? + } else if (e < MIN_EXP) { + + // Zero. + n.c = [n.e = 0]; + } else { + n.e = e; + n.c = c; + } + + return n; + } + + + // Handle values that fail the validity test in BigNumber. + parseNumeric = (function () { + var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, + dotAfter = /^([^.]+)\.$/, + dotBefore = /^\.([^.]+)$/, + isInfinityOrNaN = /^-?(Infinity|NaN)$/, + whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; + + return function (x, str, isNum, b) { + var base, + s = isNum ? str : str.replace(whitespaceOrPlus, ''); + + // No exception on 卤Infinity or NaN. + if (isInfinityOrNaN.test(s)) { + x.s = isNaN(s) ? null : s < 0 ? -1 : 1; + } else { + if (!isNum) { + + // basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i + s = s.replace(basePrefix, function (m, p1, p2) { + base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8; + return !b || b == base ? p1 : m; + }); + + if (b) { + base = b; + + // E.g. '1.' to '1', '.1' to '0.1' + s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1'); + } + + if (str != s) return new BigNumber(s, base); + } + + // '[BigNumber Error] Not a number: {n}' + // '[BigNumber Error] Not a base {b} number: {n}' + if (BigNumber.DEBUG) { + throw Error + (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str); + } + + // NaN + x.s = null; + } + + x.c = x.e = null; + } + })(); + + + /* + * Round x to sd significant digits using rounding mode rm. Check for over/under-flow. + * If r is truthy, it is known that there are more digits after the rounding digit. + */ + function round(x, sd, rm, r) { + var d, i, j, k, n, ni, rd, + xc = x.c, + pows10 = POWS_TEN; + + // if x is not Infinity or NaN... + if (xc) { + + // rd is the rounding digit, i.e. the digit after the digit that may be rounded up. + // n is a base 1e14 number, the value of the element of array x.c containing rd. + // ni is the index of n within x.c. + // d is the number of digits of n. + // i is the index of rd within n including leading zeros. + // j is the actual index of rd within n (if < 0, rd is a leading zero). + out: { + + // Get the number of digits of the first element of xc. + for (d = 1, k = xc[0]; k >= 10; k /= 10, d++); + i = sd - d; + + // If the rounding digit is in the first element of xc... + if (i < 0) { + i += LOG_BASE; + j = sd; + n = xc[ni = 0]; + + // Get the rounding digit at index j of n. + rd = n / pows10[d - j - 1] % 10 | 0; + } else { + ni = mathceil((i + 1) / LOG_BASE); + + if (ni >= xc.length) { + + if (r) { + + // Needed by sqrt. + for (; xc.length <= ni; xc.push(0)); + n = rd = 0; + d = 1; + i %= LOG_BASE; + j = i - LOG_BASE + 1; + } else { + break out; + } + } else { + n = k = xc[ni]; + + // Get the number of digits of n. + for (d = 1; k >= 10; k /= 10, d++); + + // Get the index of rd within n. + i %= LOG_BASE; + + // Get the index of rd within n, adjusted for leading zeros. + // The number of leading zeros of n is given by LOG_BASE - d. + j = i - LOG_BASE + d; + + // Get the rounding digit at index j of n. + rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0; + } + } + + r = r || sd < 0 || + + // Are there any non-zero digits after the rounding digit? + // The expression n % pows10[d - j - 1] returns all digits of n to the right + // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714. + xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]); + + r = rm < 4 + ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) + : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && + + // Check whether the digit to the left of the rounding digit is odd. + ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 || + rm == (x.s < 0 ? 8 : 7)); + + if (sd < 1 || !xc[0]) { + xc.length = 0; + + if (r) { + + // Convert sd to decimal places. + sd -= x.e + 1; + + // 1, 0.1, 0.01, 0.001, 0.0001 etc. + xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE]; + x.e = -sd || 0; + } else { + + // Zero. + xc[0] = x.e = 0; + } + + return x; + } + + // Remove excess digits. + if (i == 0) { + xc.length = ni; + k = 1; + ni--; + } else { + xc.length = ni + 1; + k = pows10[LOG_BASE - i]; + + // E.g. 56700 becomes 56000 if 7 is the rounding digit. + // j > 0 means i > number of leading zeros of n. + xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0; + } + + // Round up? + if (r) { + + for (; ;) { + + // If the digit to be rounded up is in the first element of xc... + if (ni == 0) { + + // i will be the length of xc[0] before k is added. + for (i = 1, j = xc[0]; j >= 10; j /= 10, i++); + j = xc[0] += k; + for (k = 1; j >= 10; j /= 10, k++); + + // if i != k the length has increased. + if (i != k) { + x.e++; + if (xc[0] == BASE) xc[0] = 1; + } + + break; + } else { + xc[ni] += k; + if (xc[ni] != BASE) break; + xc[ni--] = 0; + k = 1; + } + } + } + + // Remove trailing zeros. + for (i = xc.length; xc[--i] === 0; xc.pop()); + } + + // Overflow? Infinity. + if (x.e > MAX_EXP) { + x.c = x.e = null; + + // Underflow? Zero. + } else if (x.e < MIN_EXP) { + x.c = [x.e = 0]; + } + } + + return x; + } + + + function valueOf(n) { + var str, + e = n.e; + + if (e === null) return n.toString(); + + str = coeffToString(n.c); + + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(str, e) + : toFixedPoint(str, e, '0'); + + return n.s < 0 ? '-' + str : str; + } + + + // PROTOTYPE/INSTANCE METHODS + + + /* + * Return a new BigNumber whose value is the absolute value of this BigNumber. + */ + P.absoluteValue = P.abs = function () { + var x = new BigNumber(this); + if (x.s < 0) x.s = 1; + return x; + }; + + + /* + * Return + * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b), + * -1 if the value of this BigNumber is less than the value of BigNumber(y, b), + * 0 if they have the same value, + * or null if the value of either is NaN. + */ + P.comparedTo = function (y, b) { + return compare(this, new BigNumber(y, b)); + }; + + + /* + * If dp is undefined or null or true or false, return the number of decimal places of the + * value of this BigNumber, or null if the value of this BigNumber is 卤Infinity or NaN. + * + * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this + * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or + * ROUNDING_MODE if rm is omitted. + * + * [dp] {number} Decimal places: integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + */ + P.decimalPlaces = P.dp = function (dp, rm) { + var c, n, v, + x = this; + + if (dp != null) { + intCheck(dp, 0, MAX); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + + return round(new BigNumber(x), dp + x.e + 1, rm); + } + + if (!(c = x.c)) return null; + n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE; + + // Subtract the number of trailing zeros of the last number. + if (v = c[v]) for (; v % 10 == 0; v /= 10, n--); + if (n < 0) n = 0; + + return n; + }; + + + /* + * n / 0 = I + * n / N = N + * n / I = 0 + * 0 / n = 0 + * 0 / 0 = N + * 0 / N = N + * 0 / I = 0 + * N / n = N + * N / 0 = N + * N / N = N + * N / I = N + * I / n = I + * I / 0 = I + * I / N = N + * I / I = N + * + * Return a new BigNumber whose value is the value of this BigNumber divided by the value of + * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE. + */ + P.dividedBy = P.div = function (y, b) { + return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE); + }; + + + /* + * Return a new BigNumber whose value is the integer part of dividing the value of this + * BigNumber by the value of BigNumber(y, b). + */ + P.dividedToIntegerBy = P.idiv = function (y, b) { + return div(this, new BigNumber(y, b), 0, 1); + }; + + + /* + * Return a BigNumber whose value is the value of this BigNumber exponentiated by n. + * + * If m is present, return the result modulo m. + * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE. + * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE. + * + * The modular power operation works efficiently when x, n, and m are integers, otherwise it + * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0. + * + * n {number|string|BigNumber} The exponent. An integer. + * [m] {number|string|BigNumber} The modulus. + * + * '[BigNumber Error] Exponent not an integer: {n}' + */ + P.exponentiatedBy = P.pow = function (n, m) { + var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, + x = this; + + n = new BigNumber(n); + + // Allow NaN and 卤Infinity, but not other non-integers. + if (n.c && !n.isInteger()) { + throw Error + (bignumberError + 'Exponent not an integer: ' + valueOf(n)); + } + + if (m != null) m = new BigNumber(m); + + // Exponent of MAX_SAFE_INTEGER is 15. + nIsBig = n.e > 14; + + // If x is NaN, 卤Infinity, 卤0 or 卤1, or n is 卤Infinity, NaN or 卤0. + if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) { + + // The sign of the result of pow when x is negative depends on the evenness of n. + // If +n overflows to 卤Infinity, the evenness of n would be not be known. + y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n))); + return m ? y.mod(m) : y; + } + + nIsNeg = n.s < 0; + + if (m) { + + // x % m returns NaN if abs(m) is zero, or m is NaN. + if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN); + + isModExp = !nIsNeg && x.isInteger() && m.isInteger(); + + if (isModExp) x = x.mod(m); + + // Overflow to 卤Infinity: >=2**1e10 or >=1.0000024**1e15. + // Underflow to 卤0: <=0.79**1e10 or <=0.9999975**1e15. + } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 + // [1, 240000000] + ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 + // [80000000000000] [99999750000000] + : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) { + + // If x is negative and n is odd, k = -0, else k = 0. + k = x.s < 0 && isOdd(n) ? -0 : 0; + + // If x >= 1, k = 卤Infinity. + if (x.e > -1) k = 1 / k; + + // If n is negative return 卤0, else return 卤Infinity. + return new BigNumber(nIsNeg ? 1 / k : k); + + } else if (POW_PRECISION) { + + // Truncating each coefficient array to a length of k after each multiplication + // equates to truncating significant digits to POW_PRECISION + [28, 41], + // i.e. there will be a minimum of 28 guard digits retained. + k = mathceil(POW_PRECISION / LOG_BASE + 2); + } + + if (nIsBig) { + half = new BigNumber(0.5); + if (nIsNeg) n.s = 1; + nIsOdd = isOdd(n); + } else { + i = Math.abs(+valueOf(n)); + nIsOdd = i % 2; + } + + y = new BigNumber(ONE); + + // Performs 54 loop iterations for n of 9007199254740991. + for (; ;) { + + if (nIsOdd) { + y = y.times(x); + if (!y.c) break; + + if (k) { + if (y.c.length > k) y.c.length = k; + } else if (isModExp) { + y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m)); + } + } + + if (i) { + i = mathfloor(i / 2); + if (i === 0) break; + nIsOdd = i % 2; + } else { + n = n.times(half); + round(n, n.e + 1, 1); + + if (n.e > 14) { + nIsOdd = isOdd(n); + } else { + i = +valueOf(n); + if (i === 0) break; + nIsOdd = i % 2; + } + } + + x = x.times(x); + + if (k) { + if (x.c && x.c.length > k) x.c.length = k; + } else if (isModExp) { + x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m)); + } + } + + if (isModExp) return y; + if (nIsNeg) y = ONE.div(y); + + return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y; + }; + + + /* + * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer + * using rounding mode rm, or ROUNDING_MODE if rm is omitted. + * + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}' + */ + P.integerValue = function (rm) { + var n = new BigNumber(this); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + return round(n, n.e + 1, rm); + }; + + + /* + * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b), + * otherwise return false. + */ + P.isEqualTo = P.eq = function (y, b) { + return compare(this, new BigNumber(y, b)) === 0; + }; + + + /* + * Return true if the value of this BigNumber is a finite number, otherwise return false. + */ + P.isFinite = function () { + return !!this.c; + }; + + + /* + * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b), + * otherwise return false. + */ + P.isGreaterThan = P.gt = function (y, b) { + return compare(this, new BigNumber(y, b)) > 0; + }; + + + /* + * Return true if the value of this BigNumber is greater than or equal to the value of + * BigNumber(y, b), otherwise return false. + */ + P.isGreaterThanOrEqualTo = P.gte = function (y, b) { + return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0; + + }; + + + /* + * Return true if the value of this BigNumber is an integer, otherwise return false. + */ + P.isInteger = function () { + return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2; + }; + + + /* + * Return true if the value of this BigNumber is less than the value of BigNumber(y, b), + * otherwise return false. + */ + P.isLessThan = P.lt = function (y, b) { + return compare(this, new BigNumber(y, b)) < 0; + }; + + + /* + * Return true if the value of this BigNumber is less than or equal to the value of + * BigNumber(y, b), otherwise return false. + */ + P.isLessThanOrEqualTo = P.lte = function (y, b) { + return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0; + }; + + + /* + * Return true if the value of this BigNumber is NaN, otherwise return false. + */ + P.isNaN = function () { + return !this.s; + }; + + + /* + * Return true if the value of this BigNumber is negative, otherwise return false. + */ + P.isNegative = function () { + return this.s < 0; + }; + + + /* + * Return true if the value of this BigNumber is positive, otherwise return false. + */ + P.isPositive = function () { + return this.s > 0; + }; + + + /* + * Return true if the value of this BigNumber is 0 or -0, otherwise return false. + */ + P.isZero = function () { + return !!this.c && this.c[0] == 0; + }; + + + /* + * n - 0 = n + * n - N = N + * n - I = -I + * 0 - n = -n + * 0 - 0 = 0 + * 0 - N = N + * 0 - I = -I + * N - n = N + * N - 0 = N + * N - N = N + * N - I = N + * I - n = I + * I - 0 = I + * I - N = N + * I - I = N + * + * Return a new BigNumber whose value is the value of this BigNumber minus the value of + * BigNumber(y, b). + */ + P.minus = function (y, b) { + var i, j, t, xLTy, + x = this, + a = x.s; + + y = new BigNumber(y, b); + b = y.s; + + // Either NaN? + if (!a || !b) return new BigNumber(NaN); + + // Signs differ? + if (a != b) { + y.s = -b; + return x.plus(y); + } + + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; + + if (!xe || !ye) { + + // Either Infinity? + if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN); + + // Either zero? + if (!xc[0] || !yc[0]) { + + // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. + return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x : + + // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity + ROUNDING_MODE == 3 ? -0 : 0); + } + } + + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + + // Determine which is the bigger number. + if (a = xe - ye) { + + if (xLTy = a < 0) { + a = -a; + t = xc; + } else { + ye = xe; + t = yc; + } + + t.reverse(); + + // Prepend zeros to equalise exponents. + for (b = a; b--; t.push(0)); + t.reverse(); + } else { + + // Exponents equal. Check digit by digit. + j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b; + + for (a = b = 0; b < j; b++) { + + if (xc[b] != yc[b]) { + xLTy = xc[b] < yc[b]; + break; + } + } + } + + // x < y? Point xc to the array of the bigger number. + if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s; + + b = (j = yc.length) - (i = xc.length); + + // Append zeros to xc if shorter. + // No need to add zeros to yc if shorter as subtract only needs to start at yc.length. + if (b > 0) for (; b--; xc[i++] = 0); + b = BASE - 1; + + // Subtract yc from xc. + for (; j > a;) { + + if (xc[--j] < yc[j]) { + for (i = j; i && !xc[--i]; xc[i] = b); + --xc[i]; + xc[j] += BASE; + } + + xc[j] -= yc[j]; + } + + // Remove leading zeros and adjust exponent accordingly. + for (; xc[0] == 0; xc.splice(0, 1), --ye); + + // Zero? + if (!xc[0]) { + + // Following IEEE 754 (2008) 6.3, + // n - n = +0 but n - n = -0 when rounding towards -Infinity. + y.s = ROUNDING_MODE == 3 ? -1 : 1; + y.c = [y.e = 0]; + return y; + } + + // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity + // for finite x and y. + return normalise(y, xc, ye); + }; + + + /* + * n % 0 = N + * n % N = N + * n % I = n + * 0 % n = 0 + * -0 % n = -0 + * 0 % 0 = N + * 0 % N = N + * 0 % I = 0 + * N % n = N + * N % 0 = N + * N % N = N + * N % I = N + * I % n = N + * I % 0 = N + * I % N = N + * I % I = N + * + * Return a new BigNumber whose value is the value of this BigNumber modulo the value of + * BigNumber(y, b). The result depends on the value of MODULO_MODE. + */ + P.modulo = P.mod = function (y, b) { + var q, s, + x = this; + + y = new BigNumber(y, b); + + // Return NaN if x is Infinity or NaN, or y is NaN or zero. + if (!x.c || !y.s || y.c && !y.c[0]) { + return new BigNumber(NaN); + + // Return x if y is Infinity or x is zero. + } else if (!y.c || x.c && !x.c[0]) { + return new BigNumber(x); + } + + if (MODULO_MODE == 9) { + + // Euclidian division: q = sign(y) * floor(x / abs(y)) + // r = x - qy where 0 <= r < abs(y) + s = y.s; + y.s = 1; + q = div(x, y, 0, 3); + y.s = s; + q.s *= s; + } else { + q = div(x, y, 0, MODULO_MODE); + } + + y = x.minus(q.times(y)); + + // To match JavaScript %, ensure sign of zero is sign of dividend. + if (!y.c[0] && MODULO_MODE == 1) y.s = x.s; + + return y; + }; + + + /* + * n * 0 = 0 + * n * N = N + * n * I = I + * 0 * n = 0 + * 0 * 0 = 0 + * 0 * N = N + * 0 * I = N + * N * n = N + * N * 0 = N + * N * N = N + * N * I = N + * I * n = I + * I * 0 = N + * I * N = N + * I * I = I + * + * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value + * of BigNumber(y, b). + */ + P.multipliedBy = P.times = function (y, b) { + var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, + base, sqrtBase, + x = this, + xc = x.c, + yc = (y = new BigNumber(y, b)).c; + + // Either NaN, 卤Infinity or 卤0? + if (!xc || !yc || !xc[0] || !yc[0]) { + + // Return NaN if either is NaN, or one is 0 and the other is Infinity. + if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) { + y.c = y.e = y.s = null; + } else { + y.s *= x.s; + + // Return 卤Infinity if either is 卤Infinity. + if (!xc || !yc) { + y.c = y.e = null; + + // Return 卤0 if either is 卤0. + } else { + y.c = [0]; + y.e = 0; + } + } + + return y; + } + + e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE); + y.s *= x.s; + xcL = xc.length; + ycL = yc.length; + + // Ensure xc points to longer array and xcL to its length. + if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i; + + // Initialise the result array with zeros. + for (i = xcL + ycL, zc = []; i--; zc.push(0)); + + base = BASE; + sqrtBase = SQRT_BASE; + + for (i = ycL; --i >= 0;) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; + + for (k = xcL, j = i + k; j > i;) { + xlo = xc[--k] % sqrtBase; + xhi = xc[k] / sqrtBase | 0; + m = yhi * xlo + xhi * ylo; + xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c; + c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi; + zc[j--] = xlo % base; + } + + zc[j] = c; + } + + if (c) { + ++e; + } else { + zc.splice(0, 1); + } + + return normalise(y, zc, e); + }; + + + /* + * Return a new BigNumber whose value is the value of this BigNumber negated, + * i.e. multiplied by -1. + */ + P.negated = function () { + var x = new BigNumber(this); + x.s = -x.s || null; + return x; + }; + + + /* + * n + 0 = n + * n + N = N + * n + I = I + * 0 + n = n + * 0 + 0 = 0 + * 0 + N = N + * 0 + I = I + * N + n = N + * N + 0 = N + * N + N = N + * N + I = N + * I + n = I + * I + 0 = I + * I + N = N + * I + I = I + * + * Return a new BigNumber whose value is the value of this BigNumber plus the value of + * BigNumber(y, b). + */ + P.plus = function (y, b) { + var t, + x = this, + a = x.s; + + y = new BigNumber(y, b); + b = y.s; + + // Either NaN? + if (!a || !b) return new BigNumber(NaN); + + // Signs differ? + if (a != b) { + y.s = -b; + return x.minus(y); + } + + var xe = x.e / LOG_BASE, + ye = y.e / LOG_BASE, + xc = x.c, + yc = y.c; + + if (!xe || !ye) { + + // Return 卤Infinity if either 卤Infinity. + if (!xc || !yc) return new BigNumber(a / 0); + + // Either zero? + // Return y if y is non-zero, x if x is non-zero, or zero if both are zero. + if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0); + } + + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + + // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts. + if (a = xe - ye) { + if (a > 0) { + ye = xe; + t = yc; + } else { + a = -a; + t = xc; + } + + t.reverse(); + for (; a--; t.push(0)); + t.reverse(); + } + + a = xc.length; + b = yc.length; + + // Point xc to the longer array, and b to the shorter length. + if (a - b < 0) t = yc, yc = xc, xc = t, b = a; + + // Only start adding at yc.length - 1 as the further digits of xc can be ignored. + for (a = 0; b;) { + a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0; + xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; + } + + if (a) { + xc = [a].concat(xc); + ++ye; + } + + // No need to check for zero, as +x + +y != 0 && -x + -y != 0 + // ye = MAX_EXP + 1 possible + return normalise(y, xc, ye); + }; + + + /* + * If sd is undefined or null or true or false, return the number of significant digits of + * the value of this BigNumber, or null if the value of this BigNumber is 卤Infinity or NaN. + * If sd is true include integer-part trailing zeros in the count. + * + * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this + * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or + * ROUNDING_MODE if rm is omitted. + * + * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive. + * boolean: whether to count integer-part trailing zeros: true or false. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' + */ + P.precision = P.sd = function (sd, rm) { + var c, n, v, + x = this; + + if (sd != null && sd !== !!sd) { + intCheck(sd, 1, MAX); + if (rm == null) rm = ROUNDING_MODE; + else intCheck(rm, 0, 8); + + return round(new BigNumber(x), sd, rm); + } + + if (!(c = x.c)) return null; + v = c.length - 1; + n = v * LOG_BASE + 1; + + if (v = c[v]) { + + // Subtract the number of trailing zeros of the last element. + for (; v % 10 == 0; v /= 10, n--); + + // Add the number of digits of the first element. + for (v = c[0]; v >= 10; v /= 10, n++); + } + + if (sd && x.e + 1 > n) n = x.e + 1; + + return n; + }; + + + /* + * Return a new BigNumber whose value is the value of this BigNumber shifted by k places + * (powers of 10). Shift to the right if n > 0, and to the left if n < 0. + * + * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}' + */ + P.shiftedBy = function (k) { + intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); + return this.times('1e' + k); + }; + + + /* + * sqrt(-n) = N + * sqrt(N) = N + * sqrt(-I) = N + * sqrt(I) = I + * sqrt(0) = 0 + * sqrt(-0) = -0 + * + * Return a new BigNumber whose value is the square root of the value of this BigNumber, + * rounded according to DECIMAL_PLACES and ROUNDING_MODE. + */ + P.squareRoot = P.sqrt = function () { + var m, n, r, rep, t, + x = this, + c = x.c, + s = x.s, + e = x.e, + dp = DECIMAL_PLACES + 4, + half = new BigNumber('0.5'); + + // Negative/NaN/Infinity/zero? + if (s !== 1 || !c || !c[0]) { + return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0); + } + + // Initial estimate. + s = Math.sqrt(+valueOf(x)); + + // Math.sqrt underflow/overflow? + // Pass x to Math.sqrt as integer, then adjust the exponent of the result. + if (s == 0 || s == 1 / 0) { + n = coeffToString(c); + if ((n.length + e) % 2 == 0) n += '0'; + s = Math.sqrt(+n); + e = bitFloor((e + 1) / 2) - (e < 0 || e % 2); + + if (s == 1 / 0) { + n = '1e' + e; + } else { + n = s.toExponential(); + n = n.slice(0, n.indexOf('e') + 1) + e; + } + + r = new BigNumber(n); + } else { + r = new BigNumber(s + ''); + } + + // Check for zero. + // r could be zero if MIN_EXP is changed after the this value was created. + // This would cause a division by zero (x/t) and hence Infinity below, which would cause + // coeffToString to throw. + if (r.c[0]) { + e = r.e; + s = e + dp; + if (s < 3) s = 0; + + // Newton-Raphson iteration. + for (; ;) { + t = r; + r = half.times(t.plus(div(x, t, dp, 1))); + + if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) { + + // The exponent of r may here be one less than the final result exponent, + // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits + // are indexed correctly. + if (r.e < e) --s; + n = n.slice(s - 3, s + 1); + + // The 4th rounding digit may be in error by -1 so if the 4 rounding digits + // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the + // iteration. + if (n == '9999' || !rep && n == '4999') { + + // On the first iteration only, check to see if rounding up gives the + // exact result as the nines may infinitely repeat. + if (!rep) { + round(t, t.e + DECIMAL_PLACES + 2, 0); + + if (t.times(t).eq(x)) { + r = t; + break; + } + } + + dp += 4; + s += 4; + rep = 1; + } else { + + // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact + // result. If not, then there are further digits and m will be truthy. + if (!+n || !+n.slice(1) && n.charAt(0) == '5') { + + // Truncate to the first rounding digit. + round(r, r.e + DECIMAL_PLACES + 2, 1); + m = !r.times(r).eq(x); + } + + break; + } + } + } + } + + return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); + }; + + + /* + * Return a string representing the value of this BigNumber in exponential notation and + * rounded using ROUNDING_MODE to dp fixed decimal places. + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + */ + P.toExponential = function (dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp++; + } + return format(this, dp, rm, 1); + }; + + + /* + * Return a string representing the value of this BigNumber in fixed-point notation rounding + * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted. + * + * Note: as with JavaScript's number type, (-0).toFixed(0) is '0', + * but e.g. (-0.00001).toFixed(0) is '-0'. + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + */ + P.toFixed = function (dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp = dp + this.e + 1; + } + return format(this, dp, rm); + }; + + + /* + * Return a string representing the value of this BigNumber in fixed-point notation rounded + * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties + * of the format or FORMAT object (see BigNumber.set). + * + * The formatting object may contain some or all of the properties shown below. + * + * FORMAT = { + * prefix: '', + * groupSize: 3, + * secondaryGroupSize: 0, + * groupSeparator: ',', + * decimalSeparator: '.', + * fractionGroupSize: 0, + * fractionGroupSeparator: '\xA0', // non-breaking space + * suffix: '' + * }; + * + * [dp] {number} Decimal places. Integer, 0 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * [format] {object} Formatting options. See FORMAT pbject above. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}' + * '[BigNumber Error] Argument not an object: {format}' + */ + P.toFormat = function (dp, rm, format) { + var str, + x = this; + + if (format == null) { + if (dp != null && rm && typeof rm == 'object') { + format = rm; + rm = null; + } else if (dp && typeof dp == 'object') { + format = dp; + dp = rm = null; + } else { + format = FORMAT; + } + } else if (typeof format != 'object') { + throw Error + (bignumberError + 'Argument not an object: ' + format); + } + + str = x.toFixed(dp, rm); + + if (x.c) { + var i, + arr = str.split('.'), + g1 = +format.groupSize, + g2 = +format.secondaryGroupSize, + groupSeparator = format.groupSeparator || '', + intPart = arr[0], + fractionPart = arr[1], + isNeg = x.s < 0, + intDigits = isNeg ? intPart.slice(1) : intPart, + len = intDigits.length; + + if (g2) i = g1, g1 = g2, g2 = i, len -= i; + + if (g1 > 0 && len > 0) { + i = len % g1 || g1; + intPart = intDigits.substr(0, i); + for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1); + if (g2 > 0) intPart += groupSeparator + intDigits.slice(i); + if (isNeg) intPart = '-' + intPart; + } + + str = fractionPart + ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize) + ? fractionPart.replace(new RegExp('\\d{' + g2 + '}\\B', 'g'), + '$&' + (format.fractionGroupSeparator || '')) + : fractionPart) + : intPart; + } + + return (format.prefix || '') + str + (format.suffix || ''); + }; + + + /* + * Return an array of two BigNumbers representing the value of this BigNumber as a simple + * fraction with an integer numerator and an integer denominator. + * The denominator will be a positive non-zero value less than or equal to the specified + * maximum denominator. If a maximum denominator is not specified, the denominator will be + * the lowest value necessary to represent the number exactly. + * + * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator. + * + * '[BigNumber Error] Argument {not an integer|out of range} : {md}' + */ + P.toFraction = function (md) { + var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, + x = this, + xc = x.c; + + if (md != null) { + n = new BigNumber(md); + + // Throw if md is less than one or is not an integer, unless it is Infinity. + if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) { + throw Error + (bignumberError + 'Argument ' + + (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n)); + } + } + + if (!xc) return new BigNumber(x); + + d = new BigNumber(ONE); + n1 = d0 = new BigNumber(ONE); + d1 = n0 = new BigNumber(ONE); + s = coeffToString(xc); + + // Determine initial denominator. + // d is a power of 10 and the minimum max denominator that specifies the value exactly. + e = d.e = s.length - x.e - 1; + d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp]; + md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n; + + exp = MAX_EXP; + MAX_EXP = 1 / 0; + n = new BigNumber(s); + + // n0 = d1 = 0 + n0.c[0] = 0; + + for (; ;) { + q = div(n, d, 0, 1); + d2 = d0.plus(q.times(d1)); + if (d2.comparedTo(md) == 1) break; + d0 = d1; + d1 = d2; + n1 = n0.plus(q.times(d2 = n1)); + n0 = d2; + d = n.minus(q.times(d2 = d)); + n = d2; + } + + d2 = div(md.minus(d0), d1, 0, 1); + n0 = n0.plus(d2.times(n1)); + d0 = d0.plus(d2.times(d1)); + n0.s = n1.s = x.s; + e = e * 2; + + // Determine which fraction is closer to x, n0/d0 or n1/d1 + r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo( + div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0]; + + MAX_EXP = exp; + + return r; + }; + + + /* + * Return the value of this BigNumber converted to a number primitive. + */ + P.toNumber = function () { + return +valueOf(this); + }; + + + /* + * Return a string representing the value of this BigNumber rounded to sd significant digits + * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits + * necessary to represent the integer part of the value in fixed-point notation, then use + * exponential notation. + * + * [sd] {number} Significant digits. Integer, 1 to MAX inclusive. + * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. + * + * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}' + */ + P.toPrecision = function (sd, rm) { + if (sd != null) intCheck(sd, 1, MAX); + return format(this, sd, rm, 2); + }; + + + /* + * Return a string representing the value of this BigNumber in base b, or base 10 if b is + * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and + * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent + * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than + * TO_EXP_NEG, return exponential notation. + * + * [b] {number} Integer, 2 to ALPHABET.length inclusive. + * + * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}' + */ + P.toString = function (b) { + var str, + n = this, + s = n.s, + e = n.e; + + // Infinity or NaN? + if (e === null) { + if (s) { + str = 'Infinity'; + if (s < 0) str = '-' + str; + } else { + str = 'NaN'; + } + } else { + if (b == null) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS + ? toExponential(coeffToString(n.c), e) + : toFixedPoint(coeffToString(n.c), e, '0'); + } else if (b === 10) { + n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); + str = toFixedPoint(coeffToString(n.c), n.e, '0'); + } else { + intCheck(b, 2, ALPHABET.length, 'Base'); + str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true); + } + + if (s < 0 && n.c[0]) str = '-' + str; + } + + return str; + }; + + + /* + * Return as toString, but do not accept a base argument, and include the minus sign for + * negative zero. + */ + P.valueOf = P.toJSON = function () { + return valueOf(this); + }; + + + P._isBigNumber = true; + + P[Symbol.toStringTag] = 'BigNumber'; + + // Node.js v10.12.0+ + P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf; + + if (configObject != null) BigNumber.set(configObject); + + return BigNumber; +} + + +// PRIVATE HELPER FUNCTIONS + +// These functions don't need access to variables, +// e.g. DECIMAL_PLACES, in the scope of the `clone` function above. + + +function bitFloor(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 1; +} + + +// Return a coefficient array as a string of base 10 digits. +function coeffToString(a) { + var s, z, + i = 1, + j = a.length, + r = a[0] + ''; + + for (; i < j;) { + s = a[i++] + ''; + z = LOG_BASE - s.length; + for (; z--; s = '0' + s); + r += s; + } + + // Determine trailing zeros. + for (j = r.length; r.charCodeAt(--j) === 48;); + + return r.slice(0, j + 1 || 1); +} + + +// Compare the value of BigNumbers x and y. +function compare(x, y) { + var a, b, + xc = x.c, + yc = y.c, + i = x.s, + j = y.s, + k = x.e, + l = y.e; + + // Either NaN? + if (!i || !j) return null; + + a = xc && !xc[0]; + b = yc && !yc[0]; + + // Either zero? + if (a || b) return a ? b ? 0 : -j : i; + + // Signs differ? + if (i != j) return i; + + a = i < 0; + b = k == l; + + // Either Infinity? + if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1; + + // Compare exponents. + if (!b) return k > l ^ a ? 1 : -1; + + j = (k = xc.length) < (l = yc.length) ? k : l; + + // Compare digit by digit. + for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1; + + // Compare lengths. + return k == l ? 0 : k > l ^ a ? 1 : -1; +} + + +/* + * Check that n is a primitive number, an integer, and in range, otherwise throw. + */ +function intCheck(n, min, max, name) { + if (n < min || n > max || n !== mathfloor(n)) { + throw Error + (bignumberError + (name || 'Argument') + (typeof n == 'number' + ? n < min || n > max ? ' out of range: ' : ' not an integer: ' + : ' not a primitive number: ') + String(n)); + } +} + + +// Assumes finite n. +function isOdd(n) { + var k = n.c.length - 1; + return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0; +} + + +function toExponential(str, e) { + return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) + + (e < 0 ? 'e' : 'e+') + e; +} + + +function toFixedPoint(str, e, z) { + var len, zs; + + // Negative exponent? + if (e < 0) { + + // Prepend zeros. + for (zs = z + '.'; ++e; zs += z); + str = zs + str; + + // Positive exponent + } else { + len = str.length; + + // Append zeros. + if (++e > len) { + for (zs = z, e -= len; --e; zs += z); + str += zs; + } else if (e < len) { + str = str.slice(0, e) + '.' + str.slice(e); + } + } + + return str; +} + + +// EXPORT + + +export var BigNumber = clone(); + +export default BigNumber; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/doc/API.html" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/doc/API.html" new file mode 100644 index 0000000000000000000000000000000000000000..424a9145e96971c2a6b0b5fd090666c841ff357c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/doc/API.html" @@ -0,0 +1,2237 @@ + + + + + + +bignumber.js API + + + + + + +
    + +

    bignumber.js

    + +

    A JavaScript library for arbitrary-precision arithmetic.

    +

    Hosted on GitHub.

    + +

    API

    + +

    + See the README on GitHub for a + quick-start introduction. +

    +

    + In all examples below, var and semicolons are not shown, and if a commented-out + value is in quotes it means toString has been called on the preceding expression. +

    + + +

    CONSTRUCTOR

    + + +
    + BigNumberBigNumber(n [, base]) ⇒ BigNumber +
    +

    + n: number|string|BigNumber
    + base: number: integer, 2 to 36 inclusive. (See + ALPHABET to extend this range). +

    +

    + Returns a new instance of a BigNumber object with value n, where n + is a numeric value in the specified base, or base 10 if + base is omitted or is null or undefined. +

    +
    +x = new BigNumber(123.4567)                // '123.4567'
    +// 'new' is optional
    +y = BigNumber(x)                           // '123.4567'
    +

    + If n is a base 10 value it can be in normal (fixed-point) or + exponential notation. Values in other bases must be in normal notation. Values in any base can + have fraction digits, i.e. digits after the decimal point. +

    +
    +new BigNumber(43210)                       // '43210'
    +new BigNumber('4.321e+4')                  // '43210'
    +new BigNumber('-735.0918e-430')            // '-7.350918e-428'
    +new BigNumber('123412421.234324', 5)       // '607236.557696'
    +

    + Signed 0, signed Infinity and NaN are supported. +

    +
    +new BigNumber('-Infinity')                 // '-Infinity'
    +new BigNumber(NaN)                         // 'NaN'
    +new BigNumber(-0)                          // '0'
    +new BigNumber('.5')                        // '0.5'
    +new BigNumber('+2')                        // '2'
    +

    + String values in hexadecimal literal form, e.g. '0xff', are valid, as are + string values with the octal and binary prefixs '0o' and '0b'. + String values in octal literal form without the prefix will be interpreted as + decimals, e.g. '011' is interpreted as 11, not 9. +

    +
    +new BigNumber(-10110100.1, 2)              // '-180.5'
    +new BigNumber('-0b10110100.1')             // '-180.5'
    +new BigNumber('ff.8', 16)                  // '255.5'
    +new BigNumber('0xff.8')                    // '255.5'
    +

    + If a base is specified, n is rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. This includes base + 10 so don't include a base parameter for decimal values unless + this behaviour is wanted. +

    +
    BigNumber.config({ DECIMAL_PLACES: 5 })
    +new BigNumber(1.23456789)                  // '1.23456789'
    +new BigNumber(1.23456789, 10)              // '1.23457'
    +

    An error is thrown if base is invalid. See Errors.

    +

    + There is no limit to the number of digits of a value of type string (other than + that of JavaScript's maximum array size). See RANGE to set + the maximum and minimum possible exponent value of a BigNumber. +

    +
    +new BigNumber('5032485723458348569331745.33434346346912144534543')
    +new BigNumber('4.321e10000000')
    +

    BigNumber NaN is returned if n is invalid + (unless BigNumber.DEBUG is true, see below).

    +
    +new BigNumber('.1*')                       // 'NaN'
    +new BigNumber('blurgh')                    // 'NaN'
    +new BigNumber(9, 2)                        // 'NaN'
    +

    + To aid in debugging, if BigNumber.DEBUG is true then an error will + be thrown on an invalid n. An error will also be thrown if n is of + type number with more than 15 significant digits, as calling + toString or valueOf on + these numbers may not result in the intended value. +

    +
    +console.log(823456789123456.3)            //  823456789123456.2
    +new BigNumber(823456789123456.3)          // '823456789123456.2'
    +BigNumber.DEBUG = true
    +// '[BigNumber Error] Number primitive has more than 15 significant digits'
    +new BigNumber(823456789123456.3)
    +// '[BigNumber Error] Not a base 2 number'
    +new BigNumber(9, 2)
    +

    + A BigNumber can also be created from an object literal. + Use isBigNumber to check that it is well-formed. +

    +
    new BigNumber({ s: 1, e: 2, c: [ 777, 12300000000000 ], _isBigNumber: true })    // '777.123'
    + + + + +

    Methods

    +

    The static methods of a BigNumber constructor.

    + + + + +
    clone + .clone([object]) ⇒ BigNumber constructor +
    +

    object: object

    +

    + Returns a new independent BigNumber constructor with configuration as described by + object (see config), or with the default + configuration if object is null or undefined. +

    +

    + Throws if object is not an object. See Errors. +

    +
    BigNumber.config({ DECIMAL_PLACES: 5 })
    +BN = BigNumber.clone({ DECIMAL_PLACES: 9 })
    +
    +x = new BigNumber(1)
    +y = new BN(1)
    +
    +x.div(3)                        // 0.33333
    +y.div(3)                        // 0.333333333
    +
    +// BN = BigNumber.clone({ DECIMAL_PLACES: 9 }) is equivalent to:
    +BN = BigNumber.clone()
    +BN.config({ DECIMAL_PLACES: 9 })
    + + + +
    configset([object]) ⇒ object
    +

    + object: object: an object that contains some or all of the following + properties. +

    +

    Configures the settings for this particular BigNumber constructor.

    + +
    +
    DECIMAL_PLACES
    +
    + number: integer, 0 to 1e+9 inclusive
    + Default value: 20 +
    +
    + The maximum number of decimal places of the results of operations involving + division, i.e. division, square root and base conversion operations, and power + operations with negative exponents.
    +
    +
    +
    BigNumber.config({ DECIMAL_PLACES: 5 })
    +BigNumber.set({ DECIMAL_PLACES: 5 })    // equivalent
    +
    + + + +
    ROUNDING_MODE
    +
    + number: integer, 0 to 8 inclusive
    + Default value: 4 (ROUND_HALF_UP) +
    +
    + The rounding mode used in the above operations and the default rounding mode of + decimalPlaces, + precision, + toExponential, + toFixed, + toFormat and + toPrecision. +
    +
    The modes are available as enumerated properties of the BigNumber constructor.
    +
    +
    BigNumber.config({ ROUNDING_MODE: 0 })
    +BigNumber.set({ ROUNDING_MODE: BigNumber.ROUND_UP })    // equivalent
    +
    + + + +
    EXPONENTIAL_AT
    +
    + number: integer, magnitude 0 to 1e+9 inclusive, or +
    + number[]: [ integer -1e+9 to 0 inclusive, integer + 0 to 1e+9 inclusive ]
    + Default value: [-7, 20] +
    +
    + The exponent value(s) at which toString returns exponential notation. +
    +
    + If a single number is assigned, the value is the exponent magnitude.
    + If an array of two numbers is assigned then the first number is the negative exponent + value at and beneath which exponential notation is used, and the second number is the + positive exponent value at and above which the same. +
    +
    + For example, to emulate JavaScript numbers in terms of the exponent values at which they + begin to use exponential notation, use [-7, 20]. +
    +
    +
    BigNumber.config({ EXPONENTIAL_AT: 2 })
    +new BigNumber(12.3)         // '12.3'        e is only 1
    +new BigNumber(123)          // '1.23e+2'
    +new BigNumber(0.123)        // '0.123'       e is only -1
    +new BigNumber(0.0123)       // '1.23e-2'
    +
    +BigNumber.config({ EXPONENTIAL_AT: [-7, 20] })
    +new BigNumber(123456789)    // '123456789'   e is only 8
    +new BigNumber(0.000000123)  // '1.23e-7'
    +
    +// Almost never return exponential notation:
    +BigNumber.config({ EXPONENTIAL_AT: 1e+9 })
    +
    +// Always return exponential notation:
    +BigNumber.config({ EXPONENTIAL_AT: 0 })
    +
    +
    + Regardless of the value of EXPONENTIAL_AT, the toFixed method + will always return a value in normal notation and the toExponential method + will always return a value in exponential form. +
    +
    + Calling toString with a base argument, e.g. toString(10), will + also always return normal notation. +
    + + + +
    RANGE
    +
    + number: integer, magnitude 1 to 1e+9 inclusive, or +
    + number[]: [ integer -1e+9 to -1 inclusive, integer + 1 to 1e+9 inclusive ]
    + Default value: [-1e+9, 1e+9] +
    +
    + The exponent value(s) beyond which overflow to Infinity and underflow to + zero occurs. +
    +
    + If a single number is assigned, it is the maximum exponent magnitude: values wth a + positive exponent of greater magnitude become Infinity and those with a + negative exponent of greater magnitude become zero. +
    + If an array of two numbers is assigned then the first number is the negative exponent + limit and the second number is the positive exponent limit. +
    +
    + For example, to emulate JavaScript numbers in terms of the exponent values at which they + become zero and Infinity, use [-324, 308]. +
    +
    +
    BigNumber.config({ RANGE: 500 })
    +BigNumber.config().RANGE     // [ -500, 500 ]
    +new BigNumber('9.999e499')   // '9.999e+499'
    +new BigNumber('1e500')       // 'Infinity'
    +new BigNumber('1e-499')      // '1e-499'
    +new BigNumber('1e-500')      // '0'
    +
    +BigNumber.config({ RANGE: [-3, 4] })
    +new BigNumber(99999)         // '99999'      e is only 4
    +new BigNumber(100000)        // 'Infinity'   e is 5
    +new BigNumber(0.001)         // '0.01'       e is only -3
    +new BigNumber(0.0001)        // '0'          e is -4
    +
    +
    + The largest possible magnitude of a finite BigNumber is + 9.999...e+1000000000.
    + The smallest possible magnitude of a non-zero BigNumber is 1e-1000000000. +
    + + + +
    CRYPTO
    +
    + boolean: true or false.
    + Default value: false +
    +
    + The value that determines whether cryptographically-secure pseudo-random number + generation is used. +
    +
    + If CRYPTO is set to true then the + random method will generate random digits using + crypto.getRandomValues in browsers that support it, or + crypto.randomBytes if using Node.js. +
    +
    + If neither function is supported by the host environment then attempting to set + CRYPTO to true will fail and an exception will be thrown. +
    +
    + If CRYPTO is false then the source of randomness used will be + Math.random (which is assumed to generate at least 30 bits of + randomness). +
    +
    See random.
    +
    +
    +// Node.js
    +global.crypto = require('crypto')
    +
    +BigNumber.config({ CRYPTO: true })
    +BigNumber.config().CRYPTO       // true
    +BigNumber.random()              // 0.54340758610486147524
    +
    + + + +
    MODULO_MODE
    +
    + number: integer, 0 to 9 inclusive
    + Default value: 1 (ROUND_DOWN) +
    +
    The modulo mode used when calculating the modulus: a mod n.
    +
    + The quotient, q = a / n, is calculated according to the + ROUNDING_MODE that corresponds to the chosen + MODULO_MODE. +
    +
    The remainder, r, is calculated as: r = a - n * q.
    +
    + The modes that are most commonly used for the modulus/remainder operation are shown in + the following table. Although the other rounding modes can be used, they may not give + useful results. +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValueDescription
    ROUND_UP0 + The remainder is positive if the dividend is negative, otherwise it is negative. +
    ROUND_DOWN1 + The remainder has the same sign as the dividend.
    + This uses 'truncating division' and matches the behaviour of JavaScript's + remainder operator %. +
    ROUND_FLOOR3 + The remainder has the same sign as the divisor.
    + This matches Python's % operator. +
    ROUND_HALF_EVEN6The IEEE 754 remainder function.
    EUCLID9 + The remainder is always positive. Euclidian division:
    + q = sign(n) * floor(a / abs(n)) +
    +
    +
    + The rounding/modulo modes are available as enumerated properties of the BigNumber + constructor. +
    +
    See modulo.
    +
    +
    BigNumber.config({ MODULO_MODE: BigNumber.EUCLID })
    +BigNumber.config({ MODULO_MODE: 9 })          // equivalent
    +
    + + + +
    POW_PRECISION
    +
    + number: integer, 0 to 1e+9 inclusive.
    + Default value: 0 +
    +
    + The maximum precision, i.e. number of significant digits, of the result of the power + operation (unless a modulus is specified). +
    +
    If set to 0, the number of significant digits will not be limited.
    +
    See exponentiatedBy.
    +
    BigNumber.config({ POW_PRECISION: 100 })
    + + + +
    FORMAT
    +
    object
    +
    + The FORMAT object configures the format of the string returned by the + toFormat method. +
    +
    + The example below shows the properties of the FORMAT object that are + recognised, and their default values. +
    +
    + Unlike the other configuration properties, the values of the properties of the + FORMAT object will not be checked for validity. The existing + FORMAT object will simply be replaced by the object that is passed in. + The object can include any number of the properties shown below. +
    +
    See toFormat for examples of usage.
    +
    +
    +BigNumber.config({
    +  FORMAT: {
    +    // string to prepend
    +    prefix: '',
    +    // decimal separator
    +    decimalSeparator: '.',
    +    // grouping separator of the integer part
    +    groupSeparator: ',',
    +    // primary grouping size of the integer part
    +    groupSize: 3,
    +    // secondary grouping size of the integer part
    +    secondaryGroupSize: 0,
    +    // grouping separator of the fraction part
    +    fractionGroupSeparator: ' ',
    +    // grouping size of the fraction part
    +    fractionGroupSize: 0,
    +    // string to append
    +    suffix: ''
    +  }
    +});
    +
    + + + +
    ALPHABET
    +
    + string
    + Default value: '0123456789abcdefghijklmnopqrstuvwxyz' +
    +
    + The alphabet used for base conversion. The length of the alphabet corresponds to the + maximum value of the base argument that can be passed to the + BigNumber constructor or + toString. +
    +
    + There is no maximum length for the alphabet, but it must be at least 2 characters long, and + it must not contain whitespace or a repeated character, or the sign indicators + '+' and '-', or the decimal separator '.'. +
    +
    +
    // duodecimal (base 12)
    +BigNumber.config({ ALPHABET: '0123456789TE' })
    +x = new BigNumber('T', 12)
    +x.toString()                // '10'
    +x.toString(12)              // 'T'
    +
    + + + +
    +

    +

    Returns an object with the above properties and their current values.

    +

    + Throws if object is not an object, or if an invalid value is assigned to + one or more of the above properties. See Errors. +

    +
    +BigNumber.config({
    +  DECIMAL_PLACES: 40,
    +  ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL,
    +  EXPONENTIAL_AT: [-10, 20],
    +  RANGE: [-500, 500],
    +  CRYPTO: true,
    +  MODULO_MODE: BigNumber.ROUND_FLOOR,
    +  POW_PRECISION: 80,
    +  FORMAT: {
    +    groupSize: 3,
    +    groupSeparator: ' ',
    +    decimalSeparator: ','
    +  },
    +  ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'
    +});
    +
    +obj = BigNumber.config();
    +obj.DECIMAL_PLACES        // 40
    +obj.RANGE                 // [-500, 500]
    + + + +
    + isBigNumber.isBigNumber(value) ⇒ boolean +
    +

    value: any

    +

    + Returns true if value is a BigNumber instance, otherwise returns + false. +

    +
    x = 42
    +y = new BigNumber(x)
    +
    +BigNumber.isBigNumber(x)             // false
    +y instanceof BigNumber               // true
    +BigNumber.isBigNumber(y)             // true
    +
    +BN = BigNumber.clone();
    +z = new BN(x)
    +z instanceof BigNumber               // false
    +BigNumber.isBigNumber(z)             // true
    +

    + If value is a BigNumber instance and BigNumber.DEBUG is true, + then this method will also check if value is well-formed, and throw if it is not. + See Errors. +

    +

    + The check can be useful if creating a BigNumber from an object literal. + See BigNumber. +

    +
    +x = new BigNumber(10)
    +
    +// Change x.c to an illegitimate value.
    +x.c = NaN
    +
    +BigNumber.DEBUG = false
    +
    +// No error.
    +BigNumber.isBigNumber(x)    // true
    +
    +BigNumber.DEBUG = true
    +
    +// Error.
    +BigNumber.isBigNumber(x)    // '[BigNumber Error] Invalid BigNumber'
    + + + +
    maximum.max(n...) ⇒ BigNumber
    +

    + n: number|string|BigNumber
    + See BigNumber for further parameter details. +

    +

    + Returns a BigNumber whose value is the maximum of the arguments. +

    +

    The return value is always exact and unrounded.

    +
    x = new BigNumber('3257869345.0378653')
    +BigNumber.maximum(4e9, x, '123456789.9')      // '4000000000'
    +
    +arr = [12, '13', new BigNumber(14)]
    +BigNumber.max.apply(null, arr)                // '14'
    + + + +
    minimum.min(n...) ⇒ BigNumber
    +

    + n: number|string|BigNumber
    + See BigNumber for further parameter details. +

    +

    + Returns a BigNumber whose value is the minimum of the arguments. +

    +

    The return value is always exact and unrounded.

    +
    x = new BigNumber('3257869345.0378653')
    +BigNumber.minimum(4e9, x, '123456789.9')      // '123456789.9'
    +
    +arr = [2, new BigNumber(-14), '-15.9999', -12]
    +BigNumber.min.apply(null, arr)                // '-15.9999'
    + + + +
    + random.random([dp]) ⇒ BigNumber +
    +

    dp: number: integer, 0 to 1e+9 inclusive

    +

    + Returns a new BigNumber with a pseudo-random value equal to or greater than 0 and + less than 1. +

    +

    + The return value will have dp decimal places (or less if trailing zeros are + produced).
    + If dp is omitted then the number of decimal places will default to the current + DECIMAL_PLACES setting. +

    +

    + Depending on the value of this BigNumber constructor's + CRYPTO setting and the support for the + crypto object in the host environment, the random digits of the return value are + generated by either Math.random (fastest), crypto.getRandomValues + (Web Cryptography API in recent browsers) or crypto.randomBytes (Node.js). +

    +

    + To be able to set CRYPTO to true when using + Node.js, the crypto object must be available globally: +

    +
    global.crypto = require('crypto')
    +

    + If CRYPTO is true, i.e. one of the + crypto methods is to be used, the value of a returned BigNumber should be + cryptographically-secure and statistically indistinguishable from a random value. +

    +

    + Throws if dp is invalid. See Errors. +

    +
    BigNumber.config({ DECIMAL_PLACES: 10 })
    +BigNumber.random()              // '0.4117936847'
    +BigNumber.random(20)            // '0.78193327636914089009'
    + + + +
    sum.sum(n...) ⇒ BigNumber
    +

    + n: number|string|BigNumber
    + See BigNumber for further parameter details. +

    +

    Returns a BigNumber whose value is the sum of the arguments.

    +

    The return value is always exact and unrounded.

    +
    x = new BigNumber('3257869345.0378653')
    +BigNumber.sum(4e9, x, '123456789.9')      // '7381326134.9378653'
    +
    +arr = [2, new BigNumber(14), '15.9999', 12]
    +BigNumber.sum.apply(null, arr)            // '43.9999'
    + + + +

    Properties

    +

    + The library's enumerated rounding modes are stored as properties of the constructor.
    + (They are not referenced internally by the library itself.) +

    +

    + Rounding modes 0 to 6 (inclusive) are the same as those of Java's + BigDecimal class. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValueDescription
    ROUND_UP0Rounds away from zero
    ROUND_DOWN1Rounds towards zero
    ROUND_CEIL2Rounds towards Infinity
    ROUND_FLOOR3Rounds towards -Infinity
    ROUND_HALF_UP4 + Rounds towards nearest neighbour.
    + If equidistant, rounds away from zero +
    ROUND_HALF_DOWN5 + Rounds towards nearest neighbour.
    + If equidistant, rounds towards zero +
    ROUND_HALF_EVEN6 + Rounds towards nearest neighbour.
    + If equidistant, rounds towards even neighbour +
    ROUND_HALF_CEIL7 + Rounds towards nearest neighbour.
    + If equidistant, rounds towards Infinity +
    ROUND_HALF_FLOOR8 + Rounds towards nearest neighbour.
    + If equidistant, rounds towards -Infinity +
    +
    +BigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_CEIL })
    +BigNumber.config({ ROUNDING_MODE: 2 })     // equivalent
    + +
    DEBUG
    +

    undefined|false|true

    +

    + If BigNumber.DEBUG is set true then an error will be thrown + if this BigNumber constructor receives an invalid value, such as + a value of type number with more than 15 significant digits. + See BigNumber. +

    +

    + An error will also be thrown if the isBigNumber + method receives a BigNumber that is not well-formed. + See isBigNumber. +

    +
    BigNumber.DEBUG = true
    + + +

    INSTANCE

    + + +

    Methods

    +

    The methods inherited by a BigNumber instance from its constructor's prototype object.

    +

    A BigNumber is immutable in the sense that it is not changed by its methods.

    +

    + The treatment of ±0, ±Infinity and NaN is + consistent with how JavaScript treats these values. +

    +

    Many method names have a shorter alias.

    + + + +
    absoluteValue.abs() ⇒ BigNumber
    +

    + Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of + this BigNumber. +

    +

    The return value is always exact and unrounded.

    +
    +x = new BigNumber(-0.8)
    +y = x.absoluteValue()           // '0.8'
    +z = y.abs()                     // '0.8'
    + + + +
    + comparedTo.comparedTo(n [, base]) ⇒ number +
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    + + + + + + + + + + + + + + + + + + +
    Returns 
    1If the value of this BigNumber is greater than the value of n
    -1If the value of this BigNumber is less than the value of n
    0If this BigNumber and n have the same value
    nullIf the value of either this BigNumber or n is NaN
    +
    +x = new BigNumber(Infinity)
    +y = new BigNumber(5)
    +x.comparedTo(y)                 // 1
    +x.comparedTo(x.minus(1))        // 0
    +y.comparedTo(NaN)               // null
    +y.comparedTo('110', 2)          // -1
    + + + +
    + decimalPlaces.dp([dp [, rm]]) ⇒ BigNumber|number +
    +

    + dp: number: integer, 0 to 1e+9 inclusive
    + rm: number: integer, 0 to 8 inclusive +

    +

    + If dp is a number, returns a BigNumber whose value is the value of this BigNumber + rounded by rounding mode rm to a maximum of dp decimal places. +

    +

    + If dp is omitted, or is null or undefined, the return + value is the number of decimal places of the value of this BigNumber, or null if + the value of this BigNumber is ±Infinity or NaN. +

    +

    + If rm is omitted, or is null or undefined, + ROUNDING_MODE is used. +

    +

    + Throws if dp or rm is invalid. See Errors. +

    +
    +x = new BigNumber(1234.56)
    +x.decimalPlaces(1)                     // '1234.6'
    +x.dp()                                 // 2
    +x.decimalPlaces(2)                     // '1234.56'
    +x.dp(10)                               // '1234.56'
    +x.decimalPlaces(0, 1)                  // '1234'
    +x.dp(0, 6)                             // '1235'
    +x.decimalPlaces(1, 1)                  // '1234.5'
    +x.dp(1, BigNumber.ROUND_HALF_EVEN)     // '1234.6'
    +x                                      // '1234.56'
    +y = new BigNumber('9.9e-101')
    +y.dp()                                 // 102
    + + + +
    dividedBy.div(n [, base]) ⇒ BigNumber +
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns a BigNumber whose value is the value of this BigNumber divided by + n, rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. +

    +
    +x = new BigNumber(355)
    +y = new BigNumber(113)
    +x.dividedBy(y)                  // '3.14159292035398230088'
    +x.div(5)                        // '71'
    +x.div(47, 16)                   // '5'
    + + + +
    + dividedToIntegerBy.idiv(n [, base]) ⇒ + BigNumber +
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by + n. +

    +
    +x = new BigNumber(5)
    +y = new BigNumber(3)
    +x.dividedToIntegerBy(y)         // '1'
    +x.idiv(0.7)                     // '7'
    +x.idiv('0.f', 16)               // '5'
    + + + +
    + exponentiatedBy.pow(n [, m]) ⇒ BigNumber +
    +

    + n: number|string|BigNumber: integer
    + m: number|string|BigNumber +

    +

    + Returns a BigNumber whose value is the value of this BigNumber exponentiated by + n, i.e. raised to the power n, and optionally modulo a modulus + m. +

    +

    + Throws if n is not an integer. See Errors. +

    +

    + If n is negative the result is rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. +

    +

    + As the number of digits of the result of the power operation can grow so large so quickly, + e.g. 123.45610000 has over 50000 digits, the number of significant + digits calculated is limited to the value of the + POW_PRECISION setting (unless a modulus + m is specified). +

    +

    + By default POW_PRECISION is set to 0. + This means that an unlimited number of significant digits will be calculated, and that the + method's performance will decrease dramatically for larger exponents. +

    +

    + If m is specified and the value of m, n and this + BigNumber are integers, and n is positive, then a fast modular exponentiation + algorithm is used, otherwise the operation will be performed as + x.exponentiatedBy(n).modulo(m) with a + POW_PRECISION of 0. +

    +
    +Math.pow(0.7, 2)                // 0.48999999999999994
    +x = new BigNumber(0.7)
    +x.exponentiatedBy(2)            // '0.49'
    +BigNumber(3).pow(-2)            // '0.11111111111111111111'
    + + + +
    + integerValue.integerValue([rm]) ⇒ BigNumber +
    +

    + rm: number: integer, 0 to 8 inclusive +

    +

    + Returns a BigNumber whose value is the value of this BigNumber rounded to an integer using + rounding mode rm. +

    +

    + If rm is omitted, or is null or undefined, + ROUNDING_MODE is used. +

    +

    + Throws if rm is invalid. See Errors. +

    +
    +x = new BigNumber(123.456)
    +x.integerValue()                        // '123'
    +x.integerValue(BigNumber.ROUND_CEIL)    // '124'
    +y = new BigNumber(-12.7)
    +y.integerValue()                        // '-13'
    +y.integerValue(BigNumber.ROUND_DOWN)    // '-12'
    +

    + The following is an example of how to add a prototype method that emulates JavaScript's + Math.round function. Math.ceil, Math.floor and + Math.trunc can be emulated in the same way with + BigNumber.ROUND_CEIL, BigNumber.ROUND_FLOOR and + BigNumber.ROUND_DOWN respectively. +

    +
    +BigNumber.prototype.round = function (n) {
    +  return n.integerValue(BigNumber.ROUND_HALF_CEIL);
    +};
    +x.round()                               // '123'
    + + + +
    isEqualTo.eq(n [, base]) ⇒ boolean
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns true if the value of this BigNumber is equal to the value of + n, otherwise returns false.
    + As with JavaScript, NaN does not equal NaN. +

    +

    Note: This method uses the comparedTo method internally.

    +
    +0 === 1e-324                    // true
    +x = new BigNumber(0)
    +x.isEqualTo('1e-324')           // false
    +BigNumber(-0).eq(x)             // true  ( -0 === 0 )
    +BigNumber(255).eq('ff', 16)     // true
    +
    +y = new BigNumber(NaN)
    +y.isEqualTo(NaN)                // false
    + + + +
    isFinite.isFinite() ⇒ boolean
    +

    + Returns true if the value of this BigNumber is a finite number, otherwise + returns false. +

    +

    + The only possible non-finite values of a BigNumber are NaN, Infinity + and -Infinity. +

    +
    +x = new BigNumber(1)
    +x.isFinite()                    // true
    +y = new BigNumber(Infinity)
    +y.isFinite()                    // false
    +

    + Note: The native method isFinite() can be used if + n <= Number.MAX_VALUE. +

    + + + +
    isGreaterThan.gt(n [, base]) ⇒ boolean
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns true if the value of this BigNumber is greater than the value of + n, otherwise returns false. +

    +

    Note: This method uses the comparedTo method internally.

    +
    +0.1 > (0.3 - 0.2)                             // true
    +x = new BigNumber(0.1)
    +x.isGreaterThan(BigNumber(0.3).minus(0.2))    // false
    +BigNumber(0).gt(x)                            // false
    +BigNumber(11, 3).gt(11.1, 2)                  // true
    + + + +
    + isGreaterThanOrEqualTo.gte(n [, base]) ⇒ boolean +
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns true if the value of this BigNumber is greater than or equal to the value + of n, otherwise returns false. +

    +

    Note: This method uses the comparedTo method internally.

    +
    +(0.3 - 0.2) >= 0.1                     // false
    +x = new BigNumber(0.3).minus(0.2)
    +x.isGreaterThanOrEqualTo(0.1)          // true
    +BigNumber(1).gte(x)                    // true
    +BigNumber(10, 18).gte('i', 36)         // true
    + + + +
    isInteger.isInteger() ⇒ boolean
    +

    + Returns true if the value of this BigNumber is an integer, otherwise returns + false. +

    +
    +x = new BigNumber(1)
    +x.isInteger()                   // true
    +y = new BigNumber(123.456)
    +y.isInteger()                   // false
    + + + +
    isLessThan.lt(n [, base]) ⇒ boolean
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns true if the value of this BigNumber is less than the value of + n, otherwise returns false. +

    +

    Note: This method uses the comparedTo method internally.

    +
    +(0.3 - 0.2) < 0.1                       // true
    +x = new BigNumber(0.3).minus(0.2)
    +x.isLessThan(0.1)                       // false
    +BigNumber(0).lt(x)                      // true
    +BigNumber(11.1, 2).lt(11, 3)            // true
    + + + +
    + isLessThanOrEqualTo.lte(n [, base]) ⇒ boolean +
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns true if the value of this BigNumber is less than or equal to the value of + n, otherwise returns false. +

    +

    Note: This method uses the comparedTo method internally.

    +
    +0.1 <= (0.3 - 0.2)                                // false
    +x = new BigNumber(0.1)
    +x.isLessThanOrEqualTo(BigNumber(0.3).minus(0.2))  // true
    +BigNumber(-1).lte(x)                              // true
    +BigNumber(10, 18).lte('i', 36)                    // true
    + + + +
    isNaN.isNaN() ⇒ boolean
    +

    + Returns true if the value of this BigNumber is NaN, otherwise + returns false. +

    +
    +x = new BigNumber(NaN)
    +x.isNaN()                       // true
    +y = new BigNumber('Infinity')
    +y.isNaN()                       // false
    +

    Note: The native method isNaN() can also be used.

    + + + +
    isNegative.isNegative() ⇒ boolean
    +

    + Returns true if the sign of this BigNumber is negative, otherwise returns + false. +

    +
    +x = new BigNumber(-0)
    +x.isNegative()                  // true
    +y = new BigNumber(2)
    +y.isNegative()                  // false
    +

    Note: n < 0 can be used if n <= -Number.MIN_VALUE.

    + + + +
    isPositive.isPositive() ⇒ boolean
    +

    + Returns true if the sign of this BigNumber is positive, otherwise returns + false. +

    +
    +x = new BigNumber(-0)
    +x.isPositive()                  // false
    +y = new BigNumber(2)
    +y.isPositive()                  // true
    + + + +
    isZero.isZero() ⇒ boolean
    +

    + Returns true if the value of this BigNumber is zero or minus zero, otherwise + returns false. +

    +
    +x = new BigNumber(-0)
    +x.isZero() && x.isNegative()         // true
    +y = new BigNumber(Infinity)
    +y.isZero()                      // false
    +

    Note: n == 0 can be used if n >= Number.MIN_VALUE.

    + + + +
    + minus.minus(n [, base]) ⇒ BigNumber +
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    Returns a BigNumber whose value is the value of this BigNumber minus n.

    +

    The return value is always exact and unrounded.

    +
    +0.3 - 0.1                       // 0.19999999999999998
    +x = new BigNumber(0.3)
    +x.minus(0.1)                    // '0.2'
    +x.minus(0.6, 20)                // '0'
    + + + +
    modulo.mod(n [, base]) ⇒ BigNumber
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns a BigNumber whose value is the value of this BigNumber modulo n, i.e. + the integer remainder of dividing this BigNumber by n. +

    +

    + The value returned, and in particular its sign, is dependent on the value of the + MODULO_MODE setting of this BigNumber constructor. + If it is 1 (default value), the result will have the same sign as this BigNumber, + and it will match that of Javascript's % operator (within the limits of double + precision) and BigDecimal's remainder method. +

    +

    The return value is always exact and unrounded.

    +

    + See MODULO_MODE for a description of the other + modulo modes. +

    +
    +1 % 0.9                         // 0.09999999999999998
    +x = new BigNumber(1)
    +x.modulo(0.9)                   // '0.1'
    +y = new BigNumber(33)
    +y.mod('a', 33)                  // '3'
    + + + +
    + multipliedBy.times(n [, base]) ⇒ BigNumber +
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    + Returns a BigNumber whose value is the value of this BigNumber multiplied by n. +

    +

    The return value is always exact and unrounded.

    +
    +0.6 * 3                         // 1.7999999999999998
    +x = new BigNumber(0.6)
    +y = x.multipliedBy(3)           // '1.8'
    +BigNumber('7e+500').times(y)    // '1.26e+501'
    +x.multipliedBy('-a', 16)        // '-6'
    + + + +
    negated.negated() ⇒ BigNumber
    +

    + Returns a BigNumber whose value is the value of this BigNumber negated, i.e. multiplied by + -1. +

    +
    +x = new BigNumber(1.8)
    +x.negated()                     // '-1.8'
    +y = new BigNumber(-1.3)
    +y.negated()                     // '1.3'
    + + + +
    plus.plus(n [, base]) ⇒ BigNumber
    +

    + n: number|string|BigNumber
    + base: number
    + See BigNumber for further parameter details. +

    +

    Returns a BigNumber whose value is the value of this BigNumber plus n.

    +

    The return value is always exact and unrounded.

    +
    +0.1 + 0.2                       // 0.30000000000000004
    +x = new BigNumber(0.1)
    +y = x.plus(0.2)                 // '0.3'
    +BigNumber(0.7).plus(x).plus(y)  // '1'
    +x.plus('0.1', 8)                // '0.225'
    + + + +
    + precision.sd([d [, rm]]) ⇒ BigNumber|number +
    +

    + d: number|boolean: integer, 1 to 1e+9 + inclusive, or true or false
    + rm: number: integer, 0 to 8 inclusive. +

    +

    + If d is a number, returns a BigNumber whose value is the value of this BigNumber + rounded to a precision of d significant digits using rounding mode + rm. +

    +

    + If d is omitted or is null or undefined, the return + value is the number of significant digits of the value of this BigNumber, or null + if the value of this BigNumber is ±Infinity or NaN.

    +

    +

    + If d is true then any trailing zeros of the integer + part of a number are counted as significant digits, otherwise they are not. +

    +

    + If rm is omitted or is null or undefined, + ROUNDING_MODE will be used. +

    +

    + Throws if d or rm is invalid. See Errors. +

    +
    +x = new BigNumber(9876.54321)
    +x.precision(6)                         // '9876.54'
    +x.sd()                                 // 9
    +x.precision(6, BigNumber.ROUND_UP)     // '9876.55'
    +x.sd(2)                                // '9900'
    +x.precision(2, 1)                      // '9800'
    +x                                      // '9876.54321'
    +y = new BigNumber(987000)
    +y.precision()                          // 3
    +y.sd(true)                             // 6
    + + + +
    shiftedBy.shiftedBy(n) ⇒ BigNumber
    +

    + n: number: integer, + -9007199254740991 to 9007199254740991 inclusive +

    +

    + Returns a BigNumber whose value is the value of this BigNumber shifted by n + places. +

    + The shift is of the decimal point, i.e. of powers of ten, and is to the left if n + is negative or to the right if n is positive. +

    +

    The return value is always exact and unrounded.

    +

    + Throws if n is invalid. See Errors. +

    +
    +x = new BigNumber(1.23)
    +x.shiftedBy(3)                      // '1230'
    +x.shiftedBy(-3)                     // '0.00123'
    + + + +
    squareRoot.sqrt() ⇒ BigNumber
    +

    + Returns a BigNumber whose value is the square root of the value of this BigNumber, + rounded according to the current + DECIMAL_PLACES and + ROUNDING_MODE settings. +

    +

    + The return value will be correctly rounded, i.e. rounded as if the result was first calculated + to an infinite number of correct digits before rounding. +

    +
    +x = new BigNumber(16)
    +x.squareRoot()                  // '4'
    +y = new BigNumber(3)
    +y.sqrt()                        // '1.73205080756887729353'
    + + + +
    + toExponential.toExponential([dp [, rm]]) ⇒ string +
    +

    + dp: number: integer, 0 to 1e+9 inclusive
    + rm: number: integer, 0 to 8 inclusive +

    +

    + Returns a string representing the value of this BigNumber in exponential notation rounded + using rounding mode rm to dp decimal places, i.e with one digit + before the decimal point and dp digits after it. +

    +

    + If the value of this BigNumber in exponential notation has fewer than dp fraction + digits, the return value will be appended with zeros accordingly. +

    +

    + If dp is omitted, or is null or undefined, the number + of digits after the decimal point defaults to the minimum number of digits necessary to + represent the value exactly.
    + If rm is omitted or is null or undefined, + ROUNDING_MODE is used. +

    +

    + Throws if dp or rm is invalid. See Errors. +

    +
    +x = 45.6
    +y = new BigNumber(x)
    +x.toExponential()               // '4.56e+1'
    +y.toExponential()               // '4.56e+1'
    +x.toExponential(0)              // '5e+1'
    +y.toExponential(0)              // '5e+1'
    +x.toExponential(1)              // '4.6e+1'
    +y.toExponential(1)              // '4.6e+1'
    +y.toExponential(1, 1)           // '4.5e+1'  (ROUND_DOWN)
    +x.toExponential(3)              // '4.560e+1'
    +y.toExponential(3)              // '4.560e+1'
    + + + +
    + toFixed.toFixed([dp [, rm]]) ⇒ string +
    +

    + dp: number: integer, 0 to 1e+9 inclusive
    + rm: number: integer, 0 to 8 inclusive +

    +

    + Returns a string representing the value of this BigNumber in normal (fixed-point) notation + rounded to dp decimal places using rounding mode rm. +

    +

    + If the value of this BigNumber in normal notation has fewer than dp fraction + digits, the return value will be appended with zeros accordingly. +

    +

    + Unlike Number.prototype.toFixed, which returns exponential notation if a number + is greater or equal to 1021, this method will always return normal + notation. +

    +

    + If dp is omitted or is null or undefined, the return + value will be unrounded and in normal notation. This is also unlike + Number.prototype.toFixed, which returns the value to zero decimal places.
    + It is useful when fixed-point notation is required and the current + EXPONENTIAL_AT setting causes + toString to return exponential notation.
    + If rm is omitted or is null or undefined, + ROUNDING_MODE is used. +

    +

    + Throws if dp or rm is invalid. See Errors. +

    +
    +x = 3.456
    +y = new BigNumber(x)
    +x.toFixed()                     // '3'
    +y.toFixed()                     // '3.456'
    +y.toFixed(0)                    // '3'
    +x.toFixed(2)                    // '3.46'
    +y.toFixed(2)                    // '3.46'
    +y.toFixed(2, 1)                 // '3.45'  (ROUND_DOWN)
    +x.toFixed(5)                    // '3.45600'
    +y.toFixed(5)                    // '3.45600'
    + + + +
    + toFormat.toFormat([dp [, rm[, format]]]) ⇒ string +
    +

    + dp: number: integer, 0 to 1e+9 inclusive
    + rm: number: integer, 0 to 8 inclusive
    + format: object: see FORMAT +

    +

    +

    + Returns a string representing the value of this BigNumber in normal (fixed-point) notation + rounded to dp decimal places using rounding mode rm, and formatted + according to the properties of the format object. +

    +

    + See FORMAT and the examples below for the properties of the + format object, their types, and their usage. A formatting object may contain + some or all of the recognised properties. +

    +

    + If dp is omitted or is null or undefined, then the + return value is not rounded to a fixed number of decimal places.
    + If rm is omitted or is null or undefined, + ROUNDING_MODE is used.
    + If format is omitted or is null or undefined, the + FORMAT object is used. +

    +

    + Throws if dp, rm or format is invalid. See + Errors. +

    +
    +fmt = {
    +  prefix = '',
    +  decimalSeparator: '.',
    +  groupSeparator: ',',
    +  groupSize: 3,
    +  secondaryGroupSize: 0,
    +  fractionGroupSeparator: ' ',
    +  fractionGroupSize: 0,
    +  suffix = ''
    +}
    +
    +x = new BigNumber('123456789.123456789')
    +
    +// Set the global formatting options
    +BigNumber.config({ FORMAT: fmt })
    +
    +x.toFormat()                              // '123,456,789.123456789'
    +x.toFormat(3)                             // '123,456,789.123'
    +
    +// If a reference to the object assigned to FORMAT has been retained,
    +// the format properties can be changed directly
    +fmt.groupSeparator = ' '
    +fmt.fractionGroupSize = 5
    +x.toFormat()                              // '123 456 789.12345 6789'
    +
    +// Alternatively, pass the formatting options as an argument
    +fmt = {
    +  prefix: '=> ',
    +  decimalSeparator: ',',
    +  groupSeparator: '.',
    +  groupSize: 3,
    +  secondaryGroupSize: 2
    +}
    +
    +x.toFormat()                              // '123 456 789.12345 6789'
    +x.toFormat(fmt)                           // '=> 12.34.56.789,123456789'
    +x.toFormat(2, fmt)                        // '=> 12.34.56.789,12'
    +x.toFormat(3, BigNumber.ROUND_UP, fmt)    // '=> 12.34.56.789,124'
    + + + +
    + toFraction.toFraction([maximum_denominator]) + ⇒ [BigNumber, BigNumber] +
    +

    + maximum_denominator: + number|string|BigNumber: integer >= 1 and <= + Infinity +

    +

    + Returns an array of two BigNumbers representing the value of this BigNumber as a simple + fraction with an integer numerator and an integer denominator. The denominator will be a + positive non-zero value less than or equal to maximum_denominator. +

    +

    + If a maximum_denominator is not specified, or is null or + undefined, the denominator will be the lowest value necessary to represent the + number exactly. +

    +

    + Throws if maximum_denominator is invalid. See Errors. +

    +
    +x = new BigNumber(1.75)
    +x.toFraction()                  // '7, 4'
    +
    +pi = new BigNumber('3.14159265358')
    +pi.toFraction()                 // '157079632679,50000000000'
    +pi.toFraction(100000)           // '312689, 99532'
    +pi.toFraction(10000)            // '355, 113'
    +pi.toFraction(100)              // '311, 99'
    +pi.toFraction(10)               // '22, 7'
    +pi.toFraction(1)                // '3, 1'
    + + + +
    toJSON.toJSON() ⇒ string
    +

    As valueOf.

    +
    +x = new BigNumber('177.7e+457')
    +y = new BigNumber(235.4325)
    +z = new BigNumber('0.0098074')
    +
    +// Serialize an array of three BigNumbers
    +str = JSON.stringify( [x, y, z] )
    +// "["1.777e+459","235.4325","0.0098074"]"
    +
    +// Return an array of three BigNumbers
    +JSON.parse(str, function (key, val) {
    +    return key === '' ? val : new BigNumber(val)
    +})
    + + + +
    toNumber.toNumber() ⇒ number
    +

    Returns the value of this BigNumber as a JavaScript number primitive.

    +

    + This method is identical to using type coercion with the unary plus operator. +

    +
    +x = new BigNumber(456.789)
    +x.toNumber()                    // 456.789
    ++x                              // 456.789
    +
    +y = new BigNumber('45987349857634085409857349856430985')
    +y.toNumber()                    // 4.598734985763409e+34
    +
    +z = new BigNumber(-0)
    +1 / z.toNumber()                // -Infinity
    +1 / +z                          // -Infinity
    + + + +
    + toPrecision.toPrecision([sd [, rm]]) ⇒ string +
    +

    + sd: number: integer, 1 to 1e+9 inclusive
    + rm: number: integer, 0 to 8 inclusive +

    +

    + Returns a string representing the value of this BigNumber rounded to sd + significant digits using rounding mode rm. +

    +

    + If sd is less than the number of digits necessary to represent the integer part + of the value in normal (fixed-point) notation, then exponential notation is used. +

    +

    + If sd is omitted, or is null or undefined, then the + return value is the same as n.toString().
    + If rm is omitted or is null or undefined, + ROUNDING_MODE is used. +

    +

    + Throws if sd or rm is invalid. See Errors. +

    +
    +x = 45.6
    +y = new BigNumber(x)
    +x.toPrecision()                 // '45.6'
    +y.toPrecision()                 // '45.6'
    +x.toPrecision(1)                // '5e+1'
    +y.toPrecision(1)                // '5e+1'
    +y.toPrecision(2, 0)             // '4.6e+1'  (ROUND_UP)
    +y.toPrecision(2, 1)             // '4.5e+1'  (ROUND_DOWN)
    +x.toPrecision(5)                // '45.600'
    +y.toPrecision(5)                // '45.600'
    + + + +
    toString.toString([base]) ⇒ string
    +

    + base: number: integer, 2 to ALPHABET.length + inclusive (see ALPHABET). +

    +

    + Returns a string representing the value of this BigNumber in the specified base, or base + 10 if base is omitted or is null or + undefined. +

    +

    + For bases above 10, and using the default base conversion alphabet + (see ALPHABET), values from 10 to + 35 are represented by a-z + (as with Number.prototype.toString). +

    +

    + If a base is specified the value is rounded according to the current + DECIMAL_PLACES + and ROUNDING_MODE settings. +

    +

    + If a base is not specified, and this BigNumber has a positive + exponent that is equal to or greater than the positive component of the + current EXPONENTIAL_AT setting, + or a negative exponent equal to or less than the negative component of the + setting, then exponential notation is returned. +

    +

    If base is null or undefined it is ignored.

    +

    + Throws if base is invalid. See Errors. +

    +
    +x = new BigNumber(750000)
    +x.toString()                    // '750000'
    +BigNumber.config({ EXPONENTIAL_AT: 5 })
    +x.toString()                    // '7.5e+5'
    +
    +y = new BigNumber(362.875)
    +y.toString(2)                   // '101101010.111'
    +y.toString(9)                   // '442.77777777777777777778'
    +y.toString(32)                  // 'ba.s'
    +
    +BigNumber.config({ DECIMAL_PLACES: 4 });
    +z = new BigNumber('1.23456789')
    +z.toString()                    // '1.23456789'
    +z.toString(10)                  // '1.2346'
    + + + +
    valueOf.valueOf() ⇒ string
    +

    + As toString, but does not accept a base argument and includes + the minus sign for negative zero. +

    +
    +x = new BigNumber('-0')
    +x.toString()                    // '0'
    +x.valueOf()                     // '-0'
    +y = new BigNumber('1.777e+457')
    +y.valueOf()                     // '1.777e+457'
    + + + +

    Properties

    +

    The properties of a BigNumber instance:

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyDescriptionTypeValue
    ccoefficient*number[] Array of base 1e14 numbers
    eexponentnumberInteger, -1000000000 to 1000000000 inclusive
    ssignnumber-1 or 1
    +

    *significand

    +

    + The value of any of the c, e and s properties may also + be null. +

    +

    + The above properties are best considered to be read-only. In early versions of this library it + was okay to change the exponent of a BigNumber by writing to its exponent property directly, + but this is no longer reliable as the value of the first element of the coefficient array is + now dependent on the exponent. +

    +

    + Note that, as with JavaScript numbers, the original exponent and fractional trailing zeros are + not necessarily preserved. +

    +
    x = new BigNumber(0.123)              // '0.123'
    +x.toExponential()                     // '1.23e-1'
    +x.c                                   // '1,2,3'
    +x.e                                   // -1
    +x.s                                   // 1
    +
    +y = new Number(-123.4567000e+2)       // '-12345.67'
    +y.toExponential()                     // '-1.234567e+4'
    +z = new BigNumber('-123.4567000e+2')  // '-12345.67'
    +z.toExponential()                     // '-1.234567e+4'
    +z.c                                   // '1,2,3,4,5,6,7'
    +z.e                                   // 4
    +z.s                                   // -1
    + + + +

    Zero, NaN and Infinity

    +

    + The table below shows how ±0, NaN and + ±Infinity are stored. +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ces
    ±0[0]0±1
    NaNnullnullnull
    ±Infinitynullnull±1
    +
    +x = new Number(-0)              // 0
    +1 / x == -Infinity              // true
    +
    +y = new BigNumber(-0)           // '0'
    +y.c                             // '0' ( [0].toString() )
    +y.e                             // 0
    +y.s                             // -1
    + + + +

    Errors

    +

    The table below shows the errors that are thrown.

    +

    + The errors are generic Error objects whose message begins + '[BigNumber Error]'. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodThrows
    + BigNumber
    + comparedTo
    + dividedBy
    + dividedToIntegerBy
    + isEqualTo
    + isGreaterThan
    + isGreaterThanOrEqualTo
    + isLessThan
    + isLessThanOrEqualTo
    + minus
    + modulo
    + plus
    + multipliedBy +
    Base not a primitive number
    Base not an integer
    Base out of range
    Number primitive has more than 15 significant digits*
    Not a base... number*
    Not a number*
    cloneObject expected
    configObject expected
    DECIMAL_PLACES not a primitive number
    DECIMAL_PLACES not an integer
    DECIMAL_PLACES out of range
    ROUNDING_MODE not a primitive number
    ROUNDING_MODE not an integer
    ROUNDING_MODE out of range
    EXPONENTIAL_AT not a primitive number
    EXPONENTIAL_AT not an integer
    EXPONENTIAL_AT out of range
    RANGE not a primitive number
    RANGE not an integer
    RANGE cannot be zero
    RANGE cannot be zero
    CRYPTO not true or false
    crypto unavailable
    MODULO_MODE not a primitive number
    MODULO_MODE not an integer
    MODULO_MODE out of range
    POW_PRECISION not a primitive number
    POW_PRECISION not an integer
    POW_PRECISION out of range
    FORMAT not an object
    ALPHABET invalid
    + decimalPlaces
    + precision
    + random
    + shiftedBy
    + toExponential
    + toFixed
    + toFormat
    + toPrecision +
    Argument not a primitive number
    Argument not an integer
    Argument out of range
    + decimalPlaces
    + precision +
    Argument not true or false
    exponentiatedByArgument not an integer
    isBigNumberInvalid BigNumber*
    + minimum
    + maximum +
    Not a number*
    + random + crypto unavailable
    + toFormat + Argument not an object
    toFractionArgument not an integer
    Argument out of range
    toStringBase not a primitive number
    Base not an integer
    Base out of range
    +

    *Only thrown if BigNumber.DEBUG is true.

    +

    To determine if an exception is a BigNumber Error:

    +
    +try {
    +  // ...
    +} catch (e) {
    +  if (e instanceof Error && e.message.indexOf('[BigNumber Error]') === 0) {
    +      // ...
    +  }
    +}
    + + + +

    Type coercion

    +

    + To prevent the accidental use of a BigNumber in primitive number operations, or the + accidental addition of a BigNumber to a string, the valueOf method can be safely + overwritten as shown below. +

    +

    + The valueOf method is the same as the + toJSON method, and both are the same as the + toString method except they do not take a base + argument and they include the minus sign for negative zero. +

    +
    +BigNumber.prototype.valueOf = function () {
    +  throw Error('valueOf called!')
    +}
    +
    +x = new BigNumber(1)
    +x / 2                    // '[BigNumber Error] valueOf called!'
    +x + 'abc'                // '[BigNumber Error] valueOf called!'
    +
    + + + +

    FAQ

    + +
    Why are trailing fractional zeros removed from BigNumbers?
    +

    + Some arbitrary-precision libraries retain trailing fractional zeros as they can indicate the + precision of a value. This can be useful but the results of arithmetic operations can be + misleading. +

    +
    +x = new BigDecimal("1.0")
    +y = new BigDecimal("1.1000")
    +z = x.add(y)                      // 2.1000
    +
    +x = new BigDecimal("1.20")
    +y = new BigDecimal("3.45000")
    +z = x.multiply(y)                 // 4.1400000
    +

    + To specify the precision of a value is to specify that the value lies + within a certain range. +

    +

    + In the first example, x has a value of 1.0. The trailing zero shows + the precision of the value, implying that it is in the range 0.95 to + 1.05. Similarly, the precision indicated by the trailing zeros of y + indicates that the value is in the range 1.09995 to 1.10005. +

    +

    + If we add the two lowest values in the ranges we have, 0.95 + 1.09995 = 2.04995, + and if we add the two highest values we have, 1.05 + 1.10005 = 2.15005, so the + range of the result of the addition implied by the precision of its operands is + 2.04995 to 2.15005. +

    +

    + The result given by BigDecimal of 2.1000 however, indicates that the value is in + the range 2.09995 to 2.10005 and therefore the precision implied by + its trailing zeros may be misleading. +

    +

    + In the second example, the true range is 4.122744 to 4.157256 yet + the BigDecimal answer of 4.1400000 indicates a range of 4.13999995 + to 4.14000005. Again, the precision implied by the trailing zeros may be + misleading. +

    +

    + This library, like binary floating point and most calculators, does not retain trailing + fractional zeros. Instead, the toExponential, toFixed and + toPrecision methods enable trailing zeros to be added if and when required.
    +

    +
    + + + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..1cc15b0deed904f0748cea7c04b18f7253e24e50 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bignumber.js/package.json" @@ -0,0 +1,69 @@ +{ + "_from": "bignumber.js@9.0.0", + "_id": "bignumber.js@9.0.0", + "_inBundle": false, + "_integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "_location": "/bignumber.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bignumber.js@9.0.0", + "name": "bignumber.js", + "escapedName": "bignumber.js", + "rawSpec": "9.0.0", + "saveSpec": null, + "fetchSpec": "9.0.0" + }, + "_requiredBy": [ + "/mysql" + ], + "_resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "_shasum": "805880f84a329b5eac6e7cb6f8274b6d82bdf075", + "_spec": "bignumber.js@9.0.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\mysql", + "author": { + "name": "Michael Mclaughlin", + "email": "M8ch88l@gmail.com" + }, + "browser": "bignumber.js", + "bugs": { + "url": "https://github.com/MikeMcl/bignumber.js/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "A library for arbitrary-precision decimal and non-decimal arithmetic", + "engines": { + "node": "*" + }, + "homepage": "https://github.com/MikeMcl/bignumber.js#readme", + "keywords": [ + "arbitrary", + "precision", + "arithmetic", + "big", + "number", + "decimal", + "float", + "biginteger", + "bigdecimal", + "bignumber", + "bigint", + "bignum" + ], + "license": "MIT", + "main": "bignumber", + "module": "bignumber.mjs", + "name": "bignumber.js", + "repository": { + "type": "git", + "url": "git+https://github.com/MikeMcl/bignumber.js.git" + }, + "scripts": { + "build": "uglifyjs bignumber.js --source-map -c -m -o bignumber.min.js", + "test": "node test/test" + }, + "types": "bignumber.d.ts", + "version": "9.0.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..622f40c688dc4eb93856ed5146ebb4c4ed2df00e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/HISTORY.md" @@ -0,0 +1,633 @@ +1.19.2 / 2022-02-15 +=================== + + * deps: bytes@3.1.2 + * deps: qs@6.9.7 + * Fix handling of `__proto__` keys + * deps: raw-body@2.4.3 + - deps: bytes@3.1.2 + +1.19.1 / 2021-12-10 +=================== + + * deps: bytes@3.1.1 + * deps: http-errors@1.8.1 + - deps: inherits@2.0.4 + - deps: toidentifier@1.0.1 + - deps: setprototypeof@1.2.0 + * deps: qs@6.9.6 + * deps: raw-body@2.4.2 + - deps: bytes@3.1.1 + - deps: http-errors@1.8.1 + * deps: safe-buffer@5.2.1 + * deps: type-is@~1.6.18 + +1.19.0 / 2019-04-25 +=================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..386b7b6946e47bc46f8138791049b4e6a7cef889 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..7d7fa882ce56e4342c019b1129263d37af6cb049 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/README.md" @@ -0,0 +1,456 @@ +# body-parser + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + +```js +var bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option, or an empty +object (`{}`) if there was no body to parse, the `Content-Type` was not matched, +or an error occurred. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip` and +`deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The `extended` option allows to choose between parsing the URL-encoded data +with the `querystring` library (when `false`) or the `qs` library (when +`true`). The "extended" syntax allows for rich objects and arrays to be +encoded into the URL-encoded format, allowing for a JSON-like experience +with URL-encoded. For more information, please +[see the qs library](https://www.npmjs.org/package/qs#readme). + +Defaults to `true`, but using the default has been deprecated. Please +research into the difference between `qs` and `querystring` and choose the +appropriate setting. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +## Errors + +The middlewares provided by this module create errors using the +[`http-errors` module](https://www.npmjs.com/package/http-errors). The errors +will typically have a `status`/`statusCode` property that contains the suggested +HTTP response code, an `expose` property to determine if the `message` property +should be displayed to the client, a `type` property to determine the type of +error without matching against the `message`, and a `body` property containing +the read body, if available. + +The following are the common errors created, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### entity parse failed + +This error will occur when the request contained an entity that could not be +parsed by the middleware. The `status` property is set to `400`, the `type` +property is set to `'entity.parse.failed'`, and the `body` property is set to +the entity value that failed parsing. + +### entity verify failed + +This error will occur when the request contained an entity that could not be +failed verification by the defined `verify` option. The `status` property is +set to `403`, the `type` property is set to `'entity.verify.failed'`, and the +`body` property is set to the entity value that failed verification. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(JSON.stringify(req.body, null, 2)) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// create application/json parser +var jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +var urlencodedParser = bodyParser.urlencoded({ extended: false }) + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/body-parser.svg +[npm-url]: https://npmjs.org/package/body-parser +[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg +[downloads-url]: https://npmjs.org/package/body-parser +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/expressjs/body-parser/ci/master?label=ci +[github-actions-ci-url]: https://github.com/expressjs/body-parser?query=workflow%3Aci diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..93c3a1fffa7fe990582eb24e8f02d24d3bdc97ed --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/index.js" @@ -0,0 +1,157 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('body-parser') + +/** + * Cache of loaded parsers. + * @private + */ + +var parsers = Object.create(null) + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = deprecate.function(bodyParser, + 'bodyParser: use individual json/urlencoded middlewares') + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: createParserGetter('json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: createParserGetter('raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: createParserGetter('text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: createParserGetter('urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser (options) { + var opts = {} + + // exclude type option + if (options) { + for (var prop in options) { + if (prop !== 'type') { + opts[prop] = options[prop] + } + } + } + + var _urlencoded = exports.urlencoded(opts) + var _json = exports.json(opts) + + return function bodyParser (req, res, next) { + _json(req, res, function (err) { + if (err) return next(err) + _urlencoded(req, res, next) + }) + } +} + +/** + * Create a getter for loading a parser. + * @private + */ + +function createParserGetter (name) { + return function get () { + return loadParser(name) + } +} + +/** + * Load a parser module. + * @private + */ + +function loadParser (parserName) { + var parser = parsers[parserName] + + if (parser !== undefined) { + return parser + } + + // this uses a switch for static require analysis + switch (parserName) { + case 'json': + parser = require('./lib/types/json') + break + case 'raw': + parser = require('./lib/types/raw') + break + case 'text': + parser = require('./lib/types/text') + break + case 'urlencoded': + parser = require('./lib/types/urlencoded') + break + } + + // store to prevent invoking require() + return (parsers[parserName] = parser) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/read.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/read.js" new file mode 100644 index 0000000000000000000000000000000000000000..c10260958f4c0ce6a713682312005e064f9bf1c0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/read.js" @@ -0,0 +1,181 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var zlib = require('zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // flag as parsed + req._body = true + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // read off entire request + stream.resume() + onFinished(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + var stream + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + switch (encoding) { + case 'deflate': + stream = zlib.createInflate() + debug('inflate body') + req.pipe(stream) + break + case 'gzip': + stream = zlib.createGunzip() + debug('gunzip body') + req.pipe(stream) + break + case 'identity': + stream = req + stream.length = length + break + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + return stream +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/json.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/json.js" new file mode 100644 index 0000000000000000000000000000000000000000..2971dc14d9951e4837a491bb008e2071b6c4118f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/json.js" @@ -0,0 +1,230 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var opts = options || {} + + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var inflate = opts.inflate !== false + var reviver = opts.reviver + var strict = opts.strict !== false + var type = opts.type || 'application/json' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.substr(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = str.substring(0, index) + '#' + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace('#', char), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + return FIRST_CHAR_REGEXP.exec(str)[1] +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/raw.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/raw.js" new file mode 100644 index 0000000000000000000000000000000000000000..f5d1b67475405284e3dac312f92ade101571329f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/raw.js" @@ -0,0 +1,101 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var debug = require('debug')('body-parser:raw') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var opts = options || {} + + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/octet-stream' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/text.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/text.js" new file mode 100644 index 0000000000000000000000000000000000000000..083a00908a6299a8ef72f477983359f5675f82ef --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/text.js" @@ -0,0 +1,121 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var debug = require('debug')('body-parser:text') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var opts = options || {} + + var defaultCharset = opts.defaultCharset || 'utf-8' + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'text/plain' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/urlencoded.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/urlencoded.js" new file mode 100644 index 0000000000000000000000000000000000000000..b2ca8f16d0c105424acd16282e629346698e140b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/lib/types/urlencoded.js" @@ -0,0 +1,284 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var deprecate = require('depd')('body-parser') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Cache of parser modules. + */ + +var parsers = Object.create(null) + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var opts = options || {} + + // notice because option default will flip in next major + if (opts.extended === undefined) { + deprecate('undefined extended: provide extended option') + } + + var extended = opts.extended !== false + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/x-www-form-urlencoded' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate query parser + var queryparse = extended + ? extendedparser(opts) + : simpleparser(opts) + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + return body.length + ? queryparse(body) + : {} + } + + return function urlencodedParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || 'utf-8' + if (charset !== 'utf-8') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + debug: debug, + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function extendedparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('qs') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = Math.max(100, paramCount) + + debug('parse extended urlencoding') + return parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: Infinity, + parameterLimit: parameterLimit + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var count = 0 + var index = 0 + + while ((index = body.indexOf('&', index)) !== -1) { + count++ + index++ + + if (count === limit) { + return undefined + } + } + + return count +} + +/** + * Get parser for module name dynamically. + * + * @param {string} name + * @return {function} + * @api private + */ + +function parser (name) { + var mod = parsers[name] + + if (mod !== undefined) { + return mod.parse + } + + // this uses a switch for static require analysis + switch (name) { + case 'qs': + mod = require('qs') + break + case 'querystring': + mod = require('querystring') + break + } + + // store to prevent invoking require() + parsers[name] = mod + + return mod.parse +} + +/** + * Get the simple query parser. + * + * @param {object} options + */ + +function simpleparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('querystring') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + debug('parse urlencoding') + return parse(body, undefined, undefined, { maxKeys: parameterLimit }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..1788ac138a6b0b6365ed58d8ae1e676619f13114 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/body-parser/package.json" @@ -0,0 +1,91 @@ +{ + "_from": "body-parser@1.19.2", + "_id": "body-parser@1.19.2", + "_inBundle": false, + "_integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "_location": "/body-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "body-parser@1.19.2", + "name": "body-parser", + "escapedName": "body-parser", + "rawSpec": "1.19.2", + "saveSpec": null, + "fetchSpec": "1.19.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "_shasum": "4714ccd9c157d44797b8b5607d72c0b89952f26e", + "_spec": "body-parser@1.19.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/expressjs/body-parser/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + }, + "deprecated": false, + "description": "Node.js body parsing middleware", + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "methods": "1.1.2", + "mocha": "9.2.0", + "nyc": "15.1.0", + "safe-buffer": "5.2.1", + "supertest": "6.2.2" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/expressjs/body-parser#readme", + "license": "MIT", + "name": "body-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/body-parser.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "1.19.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/History.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/History.md" new file mode 100644 index 0000000000000000000000000000000000000000..d60ce0e6df2efd3f83c08b098d1b7b683b96ec84 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/History.md" @@ -0,0 +1,97 @@ +3.1.2 / 2022-01-27 +================== + + * Fix return value for un-parsable strings + +3.1.1 / 2021-11-15 +================== + + * Fix "thousandsSeparator" incorrecting formatting fractional part + +3.1.0 / 2019-01-22 +================== + + * Add petabyte (`pb`) support + +3.0.0 / 2017-08-31 +================== + + * Change "kB" to "KB" in format output + * Remove support for Node.js 0.6 + * Remove support for ComponentJS + +2.5.0 / 2017-03-24 +================== + + * Add option "unit" + +2.4.0 / 2016-06-01 +================== + + * Add option "unitSeparator" + +2.3.0 / 2016-02-15 +================== + + * Drop partial bytes on all parsed units + * Fix non-finite numbers to `.format` to return `null` + * Fix parsing byte string that looks like hex + * perf: hoist regular expressions + +2.2.0 / 2015-11-13 +================== + + * add option "decimalPlaces" + * add option "fixedDecimals" + +2.1.0 / 2015-05-21 +================== + + * add `.format` export + * add `.parse` export + +2.0.2 / 2015-05-20 +================== + + * remove map recreation + * remove unnecessary object construction + +2.0.1 / 2015-05-07 +================== + + * fix browserify require + * remove node.extend dependency + +2.0.0 / 2015-04-12 +================== + + * add option "case" + * add option "thousandsSeparator" + * return "null" on invalid parse input + * support proper round-trip: bytes(bytes(num)) === num + * units no longer case sensitive when parsing + +1.0.0 / 2014-05-05 +================== + + * add negative support. fixes #6 + +0.3.0 / 2014-03-19 +================== + + * added terabyte support + +0.2.1 / 2013-04-01 +================== + + * add .component + +0.2.0 / 2012-10-28 +================== + + * bytes(200).should.eql('200b') + +0.1.0 / 2012-07-04 +================== + + * add bytes to string conversion [yields] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..63e95a96338a608c218a7ef5805629878aaa951f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015 Jed Watson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..5790e23e328e045e66ec6f0b98526157b6c2abcf --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/Readme.md" @@ -0,0 +1,152 @@ +# Bytes utility + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install bytes +``` + +## Usage + +```js +var bytes = require('bytes'); +``` + +#### bytes(number锝渟tring value, [options]): number锝渟tring锝渘ull + +Default export function. Delegates to either `bytes.format` or `bytes.parse` based on the type of `value`. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number`锝渀string` | Number value to format or string value to parse | +| options | `Object` | Conversion options for `format` | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`锝渀number`锝渀null` | Return null upon error. Numeric value in bytes, or string value otherwise. | + +**Example** + +```js +bytes(1024); +// output: '1KB' + +bytes('1KB'); +// output: 1024 +``` + +#### bytes.format(number value, [options]): string锝渘ull + +Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is + rounded. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number` | Value in bytes | +| options | `Object` | Conversion options | + +**Options** + +| Property | Type | Description | +|-------------------|--------|-----------------------------------------------------------------------------------------| +| decimalPlaces | `number`锝渀null` | Maximum number of decimal places to include in output. Default value to `2`. | +| fixedDecimals | `boolean`锝渀null` | Whether to always display the maximum number of decimal places. Default value to `false` | +| thousandsSeparator | `string`锝渀null` | Example of values: `' '`, `','` and `'.'`... Default value to `''`. | +| unit | `string`锝渀null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | +| unitSeparator | `string`锝渀null` | Separator to use between number and unit. Default value to `''`. | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`锝渀null` | Return null upon error. String value otherwise. | + +**Example** + +```js +bytes.format(1024); +// output: '1KB' + +bytes.format(1000); +// output: '1000B' + +bytes.format(1000, {thousandsSeparator: ' '}); +// output: '1 000B' + +bytes.format(1024 * 1.7, {decimalPlaces: 0}); +// output: '2KB' + +bytes.format(1024, {unitSeparator: ' '}); +// output: '1 KB' +``` + +#### bytes.parse(string锝渘umber value): number锝渘ull + +Parse the string value into an integer in bytes. If no unit is given, or `value` +is a number, it is assumed the value is in bytes. + +Supported units and abbreviations are as follows and are case-insensitive: + + * `b` for bytes + * `kb` for kilobytes + * `mb` for megabytes + * `gb` for gigabytes + * `tb` for terabytes + * `pb` for petabytes + +The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. + +**Arguments** + +| Name | Type | Description | +|---------------|--------|--------------------| +| value | `string`锝渀number` | String to parse, or number in bytes. | + +**Returns** + +| Name | Type | Description | +|---------|-------------|-------------------------| +| results | `number`锝渀null` | Return null upon error. Value in bytes otherwise. | + +**Example** + +```js +bytes.parse('1KB'); +// output: 1024 + +bytes.parse('1024'); +// output: 1024 + +bytes.parse(1024); +// output: 1024 +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/visionmedia/bytes.js/master?label=ci +[ci-url]: https://github.com/visionmedia/bytes.js/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master +[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master +[downloads-image]: https://badgen.net/npm/dm/bytes +[downloads-url]: https://npmjs.org/package/bytes +[npm-image]: https://badgen.net/npm/v/bytes +[npm-url]: https://npmjs.org/package/bytes diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..6f2d0f89e1258564bad95175159e1d8a6abd9ddf --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/index.js" @@ -0,0 +1,170 @@ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = bytes; +module.exports.format = format; +module.exports.parse = parse; + +/** + * Module variables. + * @private + */ + +var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + +var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + +var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5), +}; + +var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + +/** + * Convert the given value in bytes into a string or parse to string to an integer in bytes. + * + * @param {string|number} value + * @param {{ + * case: [string], + * decimalPlaces: [number] + * fixedDecimals: [boolean] + * thousandsSeparator: [string] + * unitSeparator: [string] + * }} [options] bytes options. + * + * @returns {string|number|null} + */ + +function bytes(value, options) { + if (typeof value === 'string') { + return parse(value); + } + + if (typeof value === 'number') { + return format(value, options); + } + + return null; +} + +/** + * Format the given value in bytes into a string. + * + * If the value is negative, it is kept as such. If it is a float, + * it is rounded. + * + * @param {number} value + * @param {object} [options] + * @param {number} [options.decimalPlaces=2] + * @param {number} [options.fixedDecimals=false] + * @param {string} [options.thousandsSeparator=] + * @param {string} [options.unit=] + * @param {string} [options.unitSeparator=] + * + * @returns {string|null} + * @public + */ + +function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + + var mag = Math.abs(value); + var thousandsSeparator = (options && options.thousandsSeparator) || ''; + var unitSeparator = (options && options.unitSeparator) || ''; + var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = (options && options.unit) || ''; + + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = 'PB'; + } else if (mag >= map.tb) { + unit = 'TB'; + } else if (mag >= map.gb) { + unit = 'GB'; + } else if (mag >= map.mb) { + unit = 'MB'; + } else if (mag >= map.kb) { + unit = 'KB'; + } else { + unit = 'B'; + } + } + + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, '$1'); + } + + if (thousandsSeparator) { + str = str.split('.').map(function (s, i) { + return i === 0 + ? s.replace(formatThousandsRegExp, thousandsSeparator) + : s + }).join('.'); + } + + return str + unitSeparator + unit; +} + +/** + * Parse the string value into an integer in bytes. + * + * If no unit is given, it is assumed the value is in bytes. + * + * @param {number|string} val + * + * @returns {number|null} + * @public + */ + +function parse(val) { + if (typeof val === 'number' && !isNaN(val)) { + return val; + } + + if (typeof val !== 'string') { + return null; + } + + // Test if the string passed is valid + var results = parseRegExp.exec(val); + var floatValue; + var unit = 'b'; + + if (!results) { + // Nothing could be extracted from the given string + floatValue = parseInt(val, 10); + unit = 'b' + } else { + // Retrieve the value and the unit + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + + if (isNaN(floatValue)) { + return null; + } + + return Math.floor(map[unit] * floatValue); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..9d0e83c4bf570beb3b166c9d74cfd19c2fcbeeab --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/bytes/package.json" @@ -0,0 +1,85 @@ +{ + "_from": "bytes@3.1.2", + "_id": "bytes@3.1.2", + "_inBundle": false, + "_integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "_location": "/bytes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bytes@3.1.2", + "name": "bytes", + "escapedName": "bytes", + "rawSpec": "3.1.2", + "saveSpec": null, + "fetchSpec": "3.1.2" + }, + "_requiredBy": [ + "/body-parser", + "/raw-body" + ], + "_resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "_shasum": "8b0beeb98605adf1b128fa4386403c009e0221a5", + "_spec": "bytes@3.1.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\body-parser", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/visionmedia/bytes.js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jed Watson", + "email": "jed.watson@me.com" + }, + { + "name": "Th茅o FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "deprecated": false, + "description": "Utility to parse a string bytes to bytes and vice-versa", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "History.md", + "LICENSE", + "Readme.md", + "index.js" + ], + "homepage": "https://github.com/visionmedia/bytes.js#readme", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "license": "MIT", + "name": "bytes", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/bytes.js.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "3.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..488effa0c9440f4e214102980665781a62ba7059 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/HISTORY.md" @@ -0,0 +1,60 @@ +0.5.4 / 2021-12-10 +================== + + * deps: safe-buffer@5.2.1 + +0.5.3 / 2018-12-17 +================== + + * Use `safe-buffer` for improved Buffer API + +0.5.2 / 2016-12-08 +================== + + * Fix `parse` to accept any linear whitespace character + +0.5.1 / 2016-01-17 +================== + + * perf: enable strict mode + +0.5.0 / 2014-10-11 +================== + + * Add `parse` function + +0.4.0 / 2014-09-21 +================== + + * Expand non-Unicode `filename` to the full ISO-8859-1 charset + +0.3.0 / 2014-09-20 +================== + + * Add `fallback` option + * Add `type` option + +0.2.0 / 2014-09-19 +================== + + * Reduce ambiguity of file names with hex escape in buggy browsers + +0.1.2 / 2014-09-19 +================== + + * Fix periodic invalid Unicode filename header + +0.1.1 / 2014-09-19 +================== + + * Fix invalid characters appearing in `filename*` parameter + +0.1.0 / 2014-09-18 +================== + + * Make the `filename` argument optional + +0.0.0 / 2014-09-18 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..84441fbb5709262c2bfc9b5ff0166ad4f024a1b8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..3a0bb055949cdaed008f0f85e111624214213873 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/README.md" @@ -0,0 +1,142 @@ +# content-disposition + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create and parse HTTP `Content-Disposition` header + +## Installation + +```sh +$ npm install content-disposition +``` + +## API + +```js +var contentDisposition = require('content-disposition') +``` + +### contentDisposition(filename, options) + +Create an attachment `Content-Disposition` header value using the given file name, +if supplied. The `filename` is optional and if no file name is desired, but you +want to specify `options`, set `filename` to `undefined`. + +```js +res.setHeader('Content-Disposition', contentDisposition('鈭 maths.pdf')) +``` + +**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this +header through a means different from `setHeader` in Node.js, you'll want to specify +the `'binary'` encoding in Node.js. + +#### Options + +`contentDisposition` accepts these properties in the options object. + +##### fallback + +If the `filename` option is outside ISO-8859-1, then the file name is actually +stored in a supplemental field for clients that support Unicode file names and +a ISO-8859-1 version of the file name is automatically generated. + +This specifies the ISO-8859-1 file name to override the automatic generation or +disables the generation all together, defaults to `true`. + + - A string will specify the ISO-8859-1 file name to use in place of automatic + generation. + - `false` will disable including a ISO-8859-1 file name and only include the + Unicode version (unless the file name is already ISO-8859-1). + - `true` will enable automatic generation if the file name is outside ISO-8859-1. + +If the `filename` option is ISO-8859-1 and this option is specified and has a +different value, then the `filename` option is encoded in the extended field +and this set as the fallback field, even though they are both ISO-8859-1. + +##### type + +Specifies the disposition type, defaults to `"attachment"`. This can also be +`"inline"`, or any other value (all values except inline are treated like +`attachment`, but can convey additional information if both parties agree to +it). The type is normalized to lower-case. + +### contentDisposition.parse(string) + +```js +var disposition = contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt') +``` + +Parse a `Content-Disposition` header string. This automatically handles extended +("Unicode") parameters by decoding them and providing them under the standard +parameter name. This will return an object with the following properties (examples +are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`): + + - `type`: The disposition type (always lower case). Example: `'attachment'` + + - `parameters`: An object of the parameters in the disposition (name of parameter + always lower case and extended versions replace non-extended versions). Example: + `{filename: "鈧 rates.txt"}` + +## Examples + +### Send a file for download + +```js +var contentDisposition = require('content-disposition') +var destroy = require('destroy') +var fs = require('fs') +var http = require('http') +var onFinished = require('on-finished') + +var filePath = '/path/to/public/plans.pdf' + +http.createServer(function onRequest (req, res) { + // set headers + res.setHeader('Content-Type', 'application/pdf') + res.setHeader('Content-Disposition', contentDisposition(filePath)) + + // send file + var stream = fs.createReadStream(filePath) + stream.pipe(res) + onFinished(res, function () { + destroy(stream) + }) +}) +``` + +## Testing + +```sh +$ npm test +``` + +## References + +- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616] +- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987] +- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266] +- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231] + +[rfc-2616]: https://tools.ietf.org/html/rfc2616 +[rfc-5987]: https://tools.ietf.org/html/rfc5987 +[rfc-6266]: https://tools.ietf.org/html/rfc6266 +[tc-2231]: http://greenbytes.de/tech/tc2231/ + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/content-disposition.svg +[npm-url]: https://npmjs.org/package/content-disposition +[node-version-image]: https://img.shields.io/node/v/content-disposition.svg +[node-version-url]: https://nodejs.org/en/download +[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-disposition.svg +[coveralls-url]: https://coveralls.io/r/jshttp/content-disposition?branch=master +[downloads-image]: https://img.shields.io/npm/dm/content-disposition.svg +[downloads-url]: https://npmjs.org/package/content-disposition +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/content-disposition/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/content-disposition?query=workflow%3Aci diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..ecec899a992d46f2e903a87475b1c342f2ce4d30 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/index.js" @@ -0,0 +1,458 @@ +/*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = contentDisposition +module.exports.parse = parse + +/** + * Module dependencies. + * @private + */ + +var basename = require('path').basename +var Buffer = require('safe-buffer').Buffer + +/** + * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%") + * @private + */ + +var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g // eslint-disable-line no-control-regex + +/** + * RegExp to match percent encoding escape. + * @private + */ + +var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/ +var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g + +/** + * RegExp to match non-latin1 characters. + * @private + */ + +var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g + +/** + * RegExp to match quoted-pair in RFC 2616 + * + * quoted-pair = "\" CHAR + * CHAR = + * @private + */ + +var QESC_REGEXP = /\\([\u0000-\u007f])/g // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 2616 + * @private + */ + +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp for various RFC 2616 grammar + * + * parameter = token "=" ( token | quoted-string ) + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) + * qdtext = > + * quoted-pair = "\" CHAR + * CHAR = + * TEXT = + * LWS = [CRLF] 1*( SP | HT ) + * CRLF = CR LF + * CR = + * LF = + * SP = + * HT = + * CTL = + * OCTET = + * @private + */ + +var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/ +var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/ + +/** + * RegExp for various RFC 5987 grammar + * + * ext-value = charset "'" [ language ] "'" value-chars + * charset = "UTF-8" / "ISO-8859-1" / mime-charset + * mime-charset = 1*mime-charsetc + * mime-charsetc = ALPHA / DIGIT + * / "!" / "#" / "$" / "%" / "&" + * / "+" / "-" / "^" / "_" / "`" + * / "{" / "}" / "~" + * language = ( 2*3ALPHA [ extlang ] ) + * / 4ALPHA + * / 5*8ALPHA + * extlang = *3( "-" 3ALPHA ) + * value-chars = *( pct-encoded / attr-char ) + * pct-encoded = "%" HEXDIG HEXDIG + * attr-char = ALPHA / DIGIT + * / "!" / "#" / "$" / "&" / "+" / "-" / "." + * / "^" / "_" / "`" / "|" / "~" + * @private + */ + +var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/ + +/** + * RegExp for various RFC 6266 grammar + * + * disposition-type = "inline" | "attachment" | disp-ext-type + * disp-ext-type = token + * disposition-parm = filename-parm | disp-ext-parm + * filename-parm = "filename" "=" value + * | "filename*" "=" ext-value + * disp-ext-parm = token "=" value + * | ext-token "=" ext-value + * ext-token = + * @private + */ + +var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/ // eslint-disable-line no-control-regex + +/** + * Create an attachment Content-Disposition header. + * + * @param {string} [filename] + * @param {object} [options] + * @param {string} [options.type=attachment] + * @param {string|boolean} [options.fallback=true] + * @return {string} + * @public + */ + +function contentDisposition (filename, options) { + var opts = options || {} + + // get type + var type = opts.type || 'attachment' + + // get parameters + var params = createparams(filename, opts.fallback) + + // format into string + return format(new ContentDisposition(type, params)) +} + +/** + * Create parameters object from filename and fallback. + * + * @param {string} [filename] + * @param {string|boolean} [fallback=true] + * @return {object} + * @private + */ + +function createparams (filename, fallback) { + if (filename === undefined) { + return + } + + var params = {} + + if (typeof filename !== 'string') { + throw new TypeError('filename must be a string') + } + + // fallback defaults to true + if (fallback === undefined) { + fallback = true + } + + if (typeof fallback !== 'string' && typeof fallback !== 'boolean') { + throw new TypeError('fallback must be a string or boolean') + } + + if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback)) { + throw new TypeError('fallback must be ISO-8859-1 string') + } + + // restrict to file base name + var name = basename(filename) + + // determine if name is suitable for quoted string + var isQuotedString = TEXT_REGEXP.test(name) + + // generate fallback name + var fallbackName = typeof fallback !== 'string' + ? fallback && getlatin1(name) + : basename(fallback) + var hasFallback = typeof fallbackName === 'string' && fallbackName !== name + + // set extended filename parameter + if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) { + params['filename*'] = name + } + + // set filename parameter + if (isQuotedString || hasFallback) { + params.filename = hasFallback + ? fallbackName + : name + } + + return params +} + +/** + * Format object to Content-Disposition header. + * + * @param {object} obj + * @param {string} obj.type + * @param {object} [obj.parameters] + * @return {string} + * @private + */ + +function format (obj) { + var parameters = obj.parameters + var type = obj.type + + if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + // start with normalized type + var string = String(type).toLowerCase() + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + var val = param.substr(-1) === '*' + ? ustring(parameters[param]) + : qstring(parameters[param]) + + string += '; ' + param + '=' + val + } + } + + return string +} + +/** + * Decode a RFC 5987 field value (gracefully). + * + * @param {string} str + * @return {string} + * @private + */ + +function decodefield (str) { + var match = EXT_VALUE_REGEXP.exec(str) + + if (!match) { + throw new TypeError('invalid extended field value') + } + + var charset = match[1].toLowerCase() + var encoded = match[2] + var value + + // to binary string + var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode) + + switch (charset) { + case 'iso-8859-1': + value = getlatin1(binary) + break + case 'utf-8': + value = Buffer.from(binary, 'binary').toString('utf8') + break + default: + throw new TypeError('unsupported charset in extended field') + } + + return value +} + +/** + * Get ISO-8859-1 version of string. + * + * @param {string} val + * @return {string} + * @private + */ + +function getlatin1 (val) { + // simple Unicode -> ISO-8859-1 transformation + return String(val).replace(NON_LATIN1_REGEXP, '?') +} + +/** + * Parse Content-Disposition header string. + * + * @param {string} string + * @return {object} + * @public + */ + +function parse (string) { + if (!string || typeof string !== 'string') { + throw new TypeError('argument string is required') + } + + var match = DISPOSITION_TYPE_REGEXP.exec(string) + + if (!match) { + throw new TypeError('invalid type format') + } + + // normalize type + var index = match[0].length + var type = match[1].toLowerCase() + + var key + var names = [] + var params = {} + var value + + // calculate index to start at + index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ';' + ? index - 1 + : index + + // match parameters + while ((match = PARAM_REGEXP.exec(string))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (names.indexOf(key) !== -1) { + throw new TypeError('invalid duplicate parameter') + } + + names.push(key) + + if (key.indexOf('*') + 1 === key.length) { + // decode extended value + key = key.slice(0, -1) + value = decodefield(value) + + // overwrite existing value + params[key] = value + continue + } + + if (typeof params[key] === 'string') { + continue + } + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .substr(1, value.length - 2) + .replace(QESC_REGEXP, '$1') + } + + params[key] = value + } + + if (index !== -1 && index !== string.length) { + throw new TypeError('invalid parameter format') + } + + return new ContentDisposition(type, params) +} + +/** + * Percent decode a single character. + * + * @param {string} str + * @param {string} hex + * @return {string} + * @private + */ + +function pdecode (str, hex) { + return String.fromCharCode(parseInt(hex, 16)) +} + +/** + * Percent encode a single character. + * + * @param {string} char + * @return {string} + * @private + */ + +function pencode (char) { + return '%' + String(char) + .charCodeAt(0) + .toString(16) + .toUpperCase() +} + +/** + * Quote a string for HTTP. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Encode a Unicode string for HTTP (RFC 5987). + * + * @param {string} val + * @return {string} + * @private + */ + +function ustring (val) { + var str = String(val) + + // percent encode as UTF-8 + var encoded = encodeURIComponent(str) + .replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode) + + return 'UTF-8\'\'' + encoded +} + +/** + * Class for parsed Content-Disposition header for v8 optimization + * + * @public + * @param {string} type + * @param {object} parameters + * @constructor + */ + +function ContentDisposition (type, parameters) { + this.type = type + this.parameters = parameters +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..45ad91bb9efe0ba9de9fd1922cdb748d30b05556 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-disposition/package.json" @@ -0,0 +1,79 @@ +{ + "_from": "content-disposition@0.5.4", + "_id": "content-disposition@0.5.4", + "_inBundle": false, + "_integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "_location": "/content-disposition", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "content-disposition@0.5.4", + "name": "content-disposition", + "escapedName": "content-disposition", + "rawSpec": "0.5.4", + "saveSpec": null, + "fetchSpec": "0.5.4" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "_shasum": "8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe", + "_spec": "content-disposition@0.5.4", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/content-disposition/issues" + }, + "bundleDependencies": false, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "deprecated": false, + "description": "Create and parse Content-Disposition header", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "13.0.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "istanbul": "0.4.5", + "mocha": "9.1.3" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/content-disposition#readme", + "keywords": [ + "content-disposition", + "http", + "rfc6266", + "res" + ], + "license": "MIT", + "name": "content-disposition", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/content-disposition.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" + }, + "version": "0.5.4" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..8f5cb7030150011233dec9a7bbcd3f2c8f34a1dc --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/HISTORY.md" @@ -0,0 +1,24 @@ +1.0.4 / 2017-09-11 +================== + + * perf: skip parameter parsing when no parameters + +1.0.3 / 2017-09-10 +================== + + * perf: remove argument reassignment + +1.0.2 / 2016-05-09 +================== + + * perf: enable strict mode + +1.0.1 / 2015-02-13 +================== + + * Improve missing `Content-Type` header error message + +1.0.0 / 2015-02-01 +================== + + * Initial implementation, derived from `media-typer@0.3.0` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..34b1a2de37216b60b749c23b6f894e51d701ecf0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..3ed67413c7ba5a8e3eb00c989b3ac1ed43570c2b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/README.md" @@ -0,0 +1,92 @@ +# content-type + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create and parse HTTP Content-Type header according to RFC 7231 + +## Installation + +```sh +$ npm install content-type +``` + +## API + +```js +var contentType = require('content-type') +``` + +### contentType.parse(string) + +```js +var obj = contentType.parse('image/svg+xml; charset=utf-8') +``` + +Parse a content type string. This will return an object with the following +properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (the type and subtype, always lower case). + Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of parameter + always lower case). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the string is missing or invalid. + +### contentType.parse(req) + +```js +var obj = contentType.parse(req) +``` + +Parse the `content-type` header from the given `req`. Short-cut for +`contentType.parse(req.headers['content-type'])`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.parse(res) + +```js +var obj = contentType.parse(res) +``` + +Parse the `content-type` header set on the given `res`. Short-cut for +`contentType.parse(res.getHeader('content-type'))`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.format(obj) + +```js +var str = contentType.format({type: 'image/svg+xml'}) +``` + +Format an object into a content type string. This will return a string of the +content type for the given object with the following properties (examples are +shown that produce the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of the + parameter will be lower-cased). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the object contains an invalid type or parameter names. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/content-type.svg +[npm-url]: https://npmjs.org/package/content-type +[node-version-image]: https://img.shields.io/node/v/content-type.svg +[node-version-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/jshttp/content-type/master.svg +[travis-url]: https://travis-ci.org/jshttp/content-type +[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-type/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/content-type +[downloads-image]: https://img.shields.io/npm/dm/content-type.svg +[downloads-url]: https://npmjs.org/package/content-type diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..6ce03f2085aa72584bbd24a028ca35ecd9ab4915 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/index.js" @@ -0,0 +1,222 @@ +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 + * + * parameter = token "=" ( token / quoted-string ) + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + * obs-text = %x80-FF + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + */ +var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g +var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ +var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 + * + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + * obs-text = %x80-FF + */ +var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g + +/** + * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 + */ +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp to match type in RFC 7231 sec 3.1.1.1 + * + * media-type = type "/" subtype + * type = token + * subtype = token + */ +var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * Module exports. + * @public + */ + +exports.format = format +exports.parse = parse + +/** + * Format object to media type. + * + * @param {object} obj + * @return {string} + * @public + */ + +function format (obj) { + if (!obj || typeof obj !== 'object') { + throw new TypeError('argument obj is required') + } + + var parameters = obj.parameters + var type = obj.type + + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + var string = type + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError('invalid parameter name') + } + + string += '; ' + param + '=' + qstring(parameters[param]) + } + } + + return string +} + +/** + * Parse media type to object. + * + * @param {string|object} string + * @return {Object} + * @public + */ + +function parse (string) { + if (!string) { + throw new TypeError('argument string is required') + } + + // support req/res-like objects as argument + var header = typeof string === 'object' + ? getcontenttype(string) + : string + + if (typeof header !== 'string') { + throw new TypeError('argument string is required to be a string') + } + + var index = header.indexOf(';') + var type = index !== -1 + ? header.substr(0, index).trim() + : header.trim() + + if (!TYPE_REGEXP.test(type)) { + throw new TypeError('invalid media type') + } + + var obj = new ContentType(type.toLowerCase()) + + // parse parameters + if (index !== -1) { + var key + var match + var value + + PARAM_REGEXP.lastIndex = index + + while ((match = PARAM_REGEXP.exec(header))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .substr(1, value.length - 2) + .replace(QESC_REGEXP, '$1') + } + + obj.parameters[key] = value + } + + if (index !== header.length) { + throw new TypeError('invalid parameter format') + } + } + + return obj +} + +/** + * Get content-type from req/res objects. + * + * @param {object} + * @return {Object} + * @private + */ + +function getcontenttype (obj) { + var header + + if (typeof obj.getHeader === 'function') { + // res-like + header = obj.getHeader('content-type') + } else if (typeof obj.headers === 'object') { + // req-like + header = obj.headers && obj.headers['content-type'] + } + + if (typeof header !== 'string') { + throw new TypeError('content-type header is missing from object') + } + + return header +} + +/** + * Quote a string if necessary. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + // no need to quote tokens + if (TOKEN_REGEXP.test(str)) { + return str + } + + if (str.length > 0 && !TEXT_REGEXP.test(str)) { + throw new TypeError('invalid parameter value') + } + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Class to represent a content type. + * @private + */ +function ContentType (type) { + this.parameters = Object.create(null) + this.type = type +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..075ddb86a2ad7dc1a5a7f6e2df64bfdfe0bc56f4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/content-type/package.json" @@ -0,0 +1,76 @@ +{ + "_from": "content-type@~1.0.4", + "_id": "content-type@1.0.4", + "_inBundle": false, + "_integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "_location": "/content-type", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "content-type@~1.0.4", + "name": "content-type", + "escapedName": "content-type", + "rawSpec": "~1.0.4", + "saveSpec": null, + "fetchSpec": "~1.0.4" + }, + "_requiredBy": [ + "/body-parser", + "/express" + ], + "_resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "_shasum": "e138cc75e040c727b1966fe5e5f8c9aee256fe3b", + "_spec": "content-type@~1.0.4", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/content-type/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Create and parse HTTP Content-Type header", + "devDependencies": { + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-node": "5.1.1", + "eslint-plugin-promise": "3.5.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "~1.21.5" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/content-type#readme", + "keywords": [ + "content-type", + "http", + "req", + "res", + "rfc7231" + ], + "license": "MIT", + "name": "content-type", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/content-type.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" + }, + "version": "1.0.4" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/.npmignore" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/.npmignore" new file mode 100644 index 0000000000000000000000000000000000000000..f1250e584c94b80208b61cf7cae29db8e486a5c7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/.npmignore" @@ -0,0 +1,4 @@ +support +test +examples +*.sock diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/History.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/History.md" new file mode 100644 index 0000000000000000000000000000000000000000..78513cc3d28ce3516c93b4d425f83df247486ae5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/History.md" @@ -0,0 +1,38 @@ +1.0.6 / 2015-02-03 +================== + +* use `npm test` instead of `make test` to run tests +* clearer assertion messages when checking input + + +1.0.5 / 2014-09-05 +================== + +* add license to package.json + +1.0.4 / 2014-06-25 +================== + + * corrected avoidance of timing attacks (thanks @tenbits!) + +1.0.3 / 2014-01-28 +================== + + * [incorrect] fix for timing attacks + +1.0.2 / 2014-01-28 +================== + + * fix missing repository warning + * fix typo in test + +1.0.1 / 2013-04-15 +================== + + * Revert "Changed underlying HMAC algo. to sha512." + * Revert "Fix for timing attacks on MAC verification." + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..2559e841b02edfdc128176bfbdc0b938209a99ea --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/Readme.md" @@ -0,0 +1,42 @@ + +# cookie-signature + + Sign and unsign cookies. + +## Example + +```js +var cookie = require('cookie-signature'); + +var val = cookie.sign('hello', 'tobiiscool'); +val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); + +var val = cookie.sign('hello', 'tobiiscool'); +cookie.unsign(val, 'tobiiscool').should.equal('hello'); +cookie.unsign(val, 'luna').should.be.false; +``` + +## License + +(The MIT License) + +Copyright (c) 2012 LearnBoost <tj@learnboost.com> + +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/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..b8c9463a238b7ec090ff9090234e3f34322a36df --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/index.js" @@ -0,0 +1,51 @@ +/** + * Module dependencies. + */ + +var crypto = require('crypto'); + +/** + * Sign the given `val` with `secret`. + * + * @param {String} val + * @param {String} secret + * @return {String} + * @api private + */ + +exports.sign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + return val + '.' + crypto + .createHmac('sha256', secret) + .update(val) + .digest('base64') + .replace(/\=+$/, ''); +}; + +/** + * Unsign and decode the given `val` with `secret`, + * returning `false` if the signature is invalid. + * + * @param {String} val + * @param {String} secret + * @return {String|Boolean} + * @api private + */ + +exports.unsign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + var str = val.slice(0, val.lastIndexOf('.')) + , mac = exports.sign(str, secret); + + return sha1(mac) == sha1(val) ? str : false; +}; + +/** + * Private + */ + +function sha1(str){ + return crypto.createHash('sha1').update(str).digest('hex'); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..166415b6598cb8c12c8883e5f77bf446d19f73b5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie-signature/package.json" @@ -0,0 +1,57 @@ +{ + "_from": "cookie-signature@1.0.6", + "_id": "cookie-signature@1.0.6", + "_inBundle": false, + "_integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "_location": "/cookie-signature", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cookie-signature@1.0.6", + "name": "cookie-signature", + "escapedName": "cookie-signature", + "rawSpec": "1.0.6", + "saveSpec": null, + "fetchSpec": "1.0.6" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "_shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", + "_spec": "cookie-signature@1.0.6", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@learnboost.com" + }, + "bugs": { + "url": "https://github.com/visionmedia/node-cookie-signature/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Sign and unsign cookies", + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "homepage": "https://github.com/visionmedia/node-cookie-signature#readme", + "keywords": [ + "cookie", + "sign", + "unsign" + ], + "license": "MIT", + "main": "index", + "name": "cookie-signature", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/node-cookie-signature.git" + }, + "scripts": { + "test": "mocha --require should --reporter spec" + }, + "version": "1.0.6" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..2d21760efc128493f84eef41b254089a1469a78e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/HISTORY.md" @@ -0,0 +1,134 @@ +0.4.2 / 2022-02-02 +================== + + * pref: read value only when assigning in parse + * pref: remove unnecessary regexp in parse + +0.4.1 / 2020-04-21 +================== + + * Fix `maxAge` option to reject invalid values + +0.4.0 / 2019-05-15 +================== + + * Add `SameSite=None` support + +0.3.1 / 2016-05-26 +================== + + * Fix `sameSite: true` to work with draft-7 clients + - `true` now sends `SameSite=Strict` instead of `SameSite` + +0.3.0 / 2016-05-26 +================== + + * Add `sameSite` option + - Replaces `firstPartyOnly` option, never implemented by browsers + * Improve error message when `encode` is not a function + * Improve error message when `expires` is not a `Date` + +0.2.4 / 2016-05-20 +================== + + * perf: enable strict mode + * perf: use for loop in parse + * perf: use string concatination for serialization + +0.2.3 / 2015-10-25 +================== + + * Fix cookie `Max-Age` to never be a floating point number + +0.2.2 / 2015-09-17 +================== + + * Fix regression when setting empty cookie value + - Ease the new restriction, which is just basic header-level validation + * Fix typo in invalid value errors + +0.2.1 / 2015-09-17 +================== + + * Throw on invalid values provided to `serialize` + - Ensures the resulting string is a valid HTTP header value + +0.2.0 / 2015-08-13 +================== + + * Add `firstPartyOnly` option + * Throw better error for invalid argument to parse + * perf: hoist regular expression + +0.1.5 / 2015-09-17 +================== + + * Fix regression when setting empty cookie value + - Ease the new restriction, which is just basic header-level validation + * Fix typo in invalid value errors + +0.1.4 / 2015-09-17 +================== + + * Throw better error for invalid argument to parse + * Throw on invalid values provided to `serialize` + - Ensures the resulting string is a valid HTTP header value + +0.1.3 / 2015-05-19 +================== + + * Reduce the scope of try-catch deopt + * Remove argument reassignments + +0.1.2 / 2014-04-16 +================== + + * Remove unnecessary files from npm package + +0.1.1 / 2014-02-23 +================== + + * Fix bad parse when cookie value contained a comma + * Fix support for `maxAge` of `0` + +0.1.0 / 2013-05-01 +================== + + * Add `decode` option + * Add `encode` option + +0.0.6 / 2013-04-08 +================== + + * Ignore cookie parts missing `=` + +0.0.5 / 2012-10-29 +================== + + * Return raw cookie value if value unescape errors + +0.0.4 / 2012-06-21 +================== + + * Use encode/decodeURIComponent for cookie encoding/decoding + - Improve server/client interoperability + +0.0.3 / 2012-06-06 +================== + + * Only escape special characters per the cookie RFC + +0.0.2 / 2012-06-01 +================== + + * Fix `maxAge` option to not throw error + +0.0.1 / 2012-05-28 +================== + + * Add more tests + +0.0.0 / 2012-05-28 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..058b6b4efa3f45896ae691f2558a2a1aca05bebd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/LICENSE" @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2014 Roman Shtylman +Copyright (c) 2015 Douglas Christopher Wilson + +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. + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..e275c705bde03ce56130df39a78213f41d210804 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/README.md" @@ -0,0 +1,286 @@ +# cookie + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Basic HTTP cookie parser and serializer for HTTP servers. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install cookie +``` + +## API + +```js +var cookie = require('cookie'); +``` + +### cookie.parse(str, options) + +Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs. +The `str` argument is the string representing a `Cookie` header value and `options` is an +optional object containing additional parsing options. + +```js +var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2'); +// { foo: 'bar', equation: 'E=mc^2' } +``` + +#### Options + +`cookie.parse` accepts these properties in the options object. + +##### decode + +Specifies a function that will be used to decode a cookie's value. Since the value of a cookie +has a limited character set (and must be a simple string), this function can be used to decode +a previously-encoded cookie value into a JavaScript string or other object. + +The default function is the global `decodeURIComponent`, which will decode any URL-encoded +sequences into their byte representations. + +**note** if an error is thrown from this function, the original, non-decoded cookie value will +be returned as the cookie's value. + +### cookie.serialize(name, value, options) + +Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the +name for the cookie, the `value` argument is the value to set the cookie to, and the `options` +argument is an optional object containing additional serialization options. + +```js +var setCookie = cookie.serialize('foo', 'bar'); +// foo=bar +``` + +#### Options + +`cookie.serialize` accepts these properties in the options object. + +##### domain + +Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no +domain is set, and most clients will consider the cookie to apply to only the current domain. + +##### encode + +Specifies a function that will be used to encode a cookie's value. Since value of a cookie +has a limited character set (and must be a simple string), this function can be used to encode +a value into a string suited for a cookie's value. + +The default function is the global `encodeURIComponent`, which will encode a JavaScript string +into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range. + +##### expires + +Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1]. +By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and +will delete it on a condition like exiting a web browser application. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### httpOnly + +Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy, +the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not allow client-side +JavaScript to see the cookie in `document.cookie`. + +##### maxAge + +Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2]. +The given number will be converted to an integer by rounding down. By default, no maximum age is set. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### path + +Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path +is considered the ["default path"][rfc-6265-5.1.4]. + +##### sameSite + +Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-03-4.1.2.7]. + + - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + - `false` will not set the `SameSite` attribute. + - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. + - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie. + - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + +More information about the different enforcement levels can be found in +[the specification][rfc-6265bis-03-4.1.2.7]. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +##### secure + +Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy, +the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to +the server in the future if the browser does not have an HTTPS connection. + +## Example + +The following example uses this module in conjunction with the Node.js core HTTP server +to prompt a user for their name and display it back on future visits. + +```js +var cookie = require('cookie'); +var escapeHtml = require('escape-html'); +var http = require('http'); +var url = require('url'); + +function onRequest(req, res) { + // Parse the query string + var query = url.parse(req.url, true, true).query; + + if (query && query.name) { + // Set a new cookie with the name + res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), { + httpOnly: true, + maxAge: 60 * 60 * 24 * 7 // 1 week + })); + + // Redirect back after setting cookie + res.statusCode = 302; + res.setHeader('Location', req.headers.referer || '/'); + res.end(); + return; + } + + // Parse the cookies on the request + var cookies = cookie.parse(req.headers.cookie || ''); + + // Get the visitor name set in the cookie + var name = cookies.name; + + res.setHeader('Content-Type', 'text/html; charset=UTF-8'); + + if (name) { + res.write('

    Welcome back, ' + escapeHtml(name) + '!

    '); + } else { + res.write('

    Hello, new visitor!

    '); + } + + res.write('
    '); + res.write(' '); + res.end('
    '); +} + +http.createServer(onRequest).listen(3000); +``` + +## Testing + +```sh +$ npm test +``` + +## Benchmark + +``` +$ npm run bench + +> cookie@0.4.1 bench +> node benchmark/index.js + + node@16.13.1 + v8@9.4.146.24-node.14 + uv@1.42.0 + zlib@1.2.11 + brotli@1.0.9 + ares@1.18.1 + modules@93 + nghttp2@1.45.1 + napi@8 + llhttp@6.0.4 + openssl@1.1.1l+quic + cldr@39.0 + icu@69.1 + tz@2021a + unicode@13.0 + ngtcp2@0.1.0-DEV + nghttp3@0.1.0-DEV + +> node benchmark/parse-top.js + + cookie.parse - top sites + + 15 tests completed. + + parse accounts.google.com x 504,358 ops/sec 卤6.55% (171 runs sampled) + parse apple.com x 1,369,991 ops/sec 卤0.84% (189 runs sampled) + parse cloudflare.com x 360,669 ops/sec 卤3.75% (182 runs sampled) + parse docs.google.com x 521,496 ops/sec 卤4.90% (180 runs sampled) + parse drive.google.com x 553,514 ops/sec 卤0.59% (189 runs sampled) + parse en.wikipedia.org x 286,052 ops/sec 卤0.62% (188 runs sampled) + parse linkedin.com x 178,817 ops/sec 卤0.61% (192 runs sampled) + parse maps.google.com x 284,585 ops/sec 卤0.68% (188 runs sampled) + parse microsoft.com x 161,230 ops/sec 卤0.56% (192 runs sampled) + parse play.google.com x 352,144 ops/sec 卤1.01% (181 runs sampled) + parse plus.google.com x 275,204 ops/sec 卤7.78% (156 runs sampled) + parse support.google.com x 339,493 ops/sec 卤1.02% (191 runs sampled) + parse www.google.com x 286,110 ops/sec 卤0.90% (191 runs sampled) + parse youtu.be x 548,557 ops/sec 卤0.60% (184 runs sampled) + parse youtube.com x 545,293 ops/sec 卤0.65% (191 runs sampled) + +> node benchmark/parse.js + + cookie.parse - generic + + 6 tests completed. + + simple x 1,266,646 ops/sec 卤0.65% (191 runs sampled) + decode x 838,413 ops/sec 卤0.60% (191 runs sampled) + unquote x 877,820 ops/sec 卤0.72% (189 runs sampled) + duplicates x 516,680 ops/sec 卤0.61% (191 runs sampled) + 10 cookies x 156,874 ops/sec 卤0.52% (189 runs sampled) + 100 cookies x 14,663 ops/sec 卤0.53% (191 runs sampled) +``` + +## References + +- [RFC 6265: HTTP State Management Mechanism][rfc-6265] +- [Same-site Cookies][rfc-6265bis-03-4.1.2.7] + +[rfc-6265bis-03-4.1.2.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7 +[rfc-6265]: https://tools.ietf.org/html/rfc6265 +[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4 +[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1 +[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2 +[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3 +[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4 +[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5 +[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6 +[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3 + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master +[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/cookie/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml +[node-version-image]: https://badgen.net/npm/node/cookie +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/cookie +[npm-url]: https://npmjs.org/package/cookie +[npm-version-image]: https://badgen.net/npm/v/cookie diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..55331d9a62a30457223c452c6e1445c5312dc862 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/index.js" @@ -0,0 +1,202 @@ +/*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +exports.parse = parse; +exports.serialize = serialize; + +/** + * Module variables. + * @private + */ + +var decode = decodeURIComponent; +var encode = encodeURIComponent; + +/** + * RegExp to match field-content in RFC 7230 sec 3.2 + * + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + * obs-text = %x80-FF + */ + +var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; + +/** + * Parse a cookie header. + * + * Parse the given cookie header string into an object + * The object has the various cookies as keys(names) => values + * + * @param {string} str + * @param {object} [options] + * @return {object} + * @public + */ + +function parse(str, options) { + if (typeof str !== 'string') { + throw new TypeError('argument str must be a string'); + } + + var obj = {} + var opt = options || {}; + var pairs = str.split(';') + var dec = opt.decode || decode; + + for (var i = 0; i < pairs.length; i++) { + var pair = pairs[i]; + var index = pair.indexOf('=') + + // skip things that don't look like key=value + if (index < 0) { + continue; + } + + var key = pair.substring(0, index).trim() + + // only assign once + if (undefined == obj[key]) { + var val = pair.substring(index + 1, pair.length).trim() + + // quoted values + if (val[0] === '"') { + val = val.slice(1, -1) + } + + obj[key] = tryDecode(val, dec); + } + } + + return obj; +} + +/** + * Serialize data into a cookie header. + * + * Serialize the a name value pair into a cookie string suitable for + * http headers. An optional options object specified cookie parameters. + * + * serialize('foo', 'bar', { httpOnly: true }) + * => "foo=bar; httpOnly" + * + * @param {string} name + * @param {string} val + * @param {object} [options] + * @return {string} + * @public + */ + +function serialize(name, val, options) { + var opt = options || {}; + var enc = opt.encode || encode; + + if (typeof enc !== 'function') { + throw new TypeError('option encode is invalid'); + } + + if (!fieldContentRegExp.test(name)) { + throw new TypeError('argument name is invalid'); + } + + var value = enc(val); + + if (value && !fieldContentRegExp.test(value)) { + throw new TypeError('argument val is invalid'); + } + + var str = name + '=' + value; + + if (null != opt.maxAge) { + var maxAge = opt.maxAge - 0; + + if (isNaN(maxAge) || !isFinite(maxAge)) { + throw new TypeError('option maxAge is invalid') + } + + str += '; Max-Age=' + Math.floor(maxAge); + } + + if (opt.domain) { + if (!fieldContentRegExp.test(opt.domain)) { + throw new TypeError('option domain is invalid'); + } + + str += '; Domain=' + opt.domain; + } + + if (opt.path) { + if (!fieldContentRegExp.test(opt.path)) { + throw new TypeError('option path is invalid'); + } + + str += '; Path=' + opt.path; + } + + if (opt.expires) { + if (typeof opt.expires.toUTCString !== 'function') { + throw new TypeError('option expires is invalid'); + } + + str += '; Expires=' + opt.expires.toUTCString(); + } + + if (opt.httpOnly) { + str += '; HttpOnly'; + } + + if (opt.secure) { + str += '; Secure'; + } + + if (opt.sameSite) { + var sameSite = typeof opt.sameSite === 'string' + ? opt.sameSite.toLowerCase() : opt.sameSite; + + switch (sameSite) { + case true: + str += '; SameSite=Strict'; + break; + case 'lax': + str += '; SameSite=Lax'; + break; + case 'strict': + str += '; SameSite=Strict'; + break; + case 'none': + str += '; SameSite=None'; + break; + default: + throw new TypeError('option sameSite is invalid'); + } + } + + return str; +} + +/** + * Try decoding a string using a decoding function. + * + * @param {string} str + * @param {function} decode + * @private + */ + +function tryDecode(str, decode) { + try { + return decode(str); + } catch (e) { + return str; + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..caf6f7c0350b6df8bbd7ed36ecde90452707c5f6 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/cookie/package.json" @@ -0,0 +1,80 @@ +{ + "_from": "cookie@0.4.2", + "_id": "cookie@0.4.2", + "_inBundle": false, + "_integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "_location": "/cookie", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cookie@0.4.2", + "name": "cookie", + "escapedName": "cookie", + "rawSpec": "0.4.2", + "saveSpec": null, + "fetchSpec": "0.4.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "_shasum": "0e41f24de5ecf317947c82fc789e06a884824432", + "_spec": "cookie@0.4.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Roman Shtylman", + "email": "shtylman@gmail.com" + }, + "bugs": { + "url": "https://github.com/jshttp/cookie/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } + ], + "deprecated": false, + "description": "HTTP server cookie parsing and serialization", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.2.0", + "nyc": "15.1.0", + "top-sites": "1.1.85" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/cookie#readme", + "keywords": [ + "cookie", + "cookies" + ], + "license": "MIT", + "name": "cookie", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/cookie.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks --ui qunit test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "update-bench": "node scripts/update-benchmark.js", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "0.4.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..d8d7f9437dbf5ad54701a187f05988bcf0006fd8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/LICENSE" @@ -0,0 +1,19 @@ +Copyright Node.js contributors. All rights reserved. + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..5a76b4149c5eb5077c09578e349820bccbbd266e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/README.md" @@ -0,0 +1,3 @@ +# core-util-is + +The `util.is*` functions introduced in Node v0.12. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/lib/util.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/lib/util.js" new file mode 100644 index 0000000000000000000000000000000000000000..6e5a20d7dc09e280bf06302f4f872b8eb168aac0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/lib/util.js" @@ -0,0 +1,107 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = require('buffer').Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..2c72143c97cddcef48cda6f1bf97a97a5ad8df97 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/core-util-is/package.json" @@ -0,0 +1,68 @@ +{ + "_from": "core-util-is@~1.0.0", + "_id": "core-util-is@1.0.3", + "_inBundle": false, + "_integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "_location": "/core-util-is", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "core-util-is@~1.0.0", + "name": "core-util-is", + "escapedName": "core-util-is", + "rawSpec": "~1.0.0", + "saveSpec": null, + "fetchSpec": "~1.0.0" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "_shasum": "a6042d3634c2b27e9328f837b965fac83808db85", + "_spec": "core-util-is@~1.0.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\readable-stream", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/core-util-is/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "The `util.is*` functions introduced in Node v0.12.", + "devDependencies": { + "tap": "^15.0.9" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/isaacs/core-util-is#readme", + "keywords": [ + "util", + "isBuffer", + "isArray", + "isNumber", + "isString", + "isRegExp", + "isThis", + "isThat", + "polyfill" + ], + "license": "MIT", + "main": "lib/util.js", + "name": "core-util-is", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/core-util-is.git" + }, + "scripts": { + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "test": "tap test.js" + }, + "version": "1.0.3" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.coveralls.yml" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.coveralls.yml" new file mode 100644 index 0000000000000000000000000000000000000000..20a7068581791335487166ddc5001a2ca3a3b060 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.coveralls.yml" @@ -0,0 +1 @@ +repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.eslintrc" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.eslintrc" new file mode 100644 index 0000000000000000000000000000000000000000..8a37ae2c2e5a35db74b4607b4c74e0f4fe39a3e4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.eslintrc" @@ -0,0 +1,11 @@ +{ + "env": { + "browser": true, + "node": true + }, + "rules": { + "no-console": 0, + "no-empty": [1, { "allowEmptyCatch": true }] + }, + "extends": "eslint:recommended" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.npmignore" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.npmignore" new file mode 100644 index 0000000000000000000000000000000000000000..5f60eecc84e219e52554407ad38d04abd1cf2111 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.npmignore" @@ -0,0 +1,9 @@ +support +test +examples +example +*.sock +dist +yarn.lock +coverage +bower.json diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.travis.yml" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.travis.yml" new file mode 100644 index 0000000000000000000000000000000000000000..6c6090c3b09f2e45d8c0a1dc77ff5f4a81e78a3c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/.travis.yml" @@ -0,0 +1,14 @@ + +language: node_js +node_js: + - "6" + - "5" + - "4" + +install: + - make node_modules + +script: + - make lint + - make test + - make coveralls diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/CHANGELOG.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/CHANGELOG.md" new file mode 100644 index 0000000000000000000000000000000000000000..eadaa189517bbcfb2a6784a48ac8d05d2edafe7c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/CHANGELOG.md" @@ -0,0 +1,362 @@ + +2.6.9 / 2017-09-22 +================== + + * remove ReDoS regexp in %o formatter (#504) + +2.6.8 / 2017-05-18 +================== + + * Fix: Check for undefined on browser globals (#462, @marbemac) + +2.6.7 / 2017-05-16 +================== + + * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom) + * Fix: Inline extend function in node implementation (#452, @dougwilson) + * Docs: Fix typo (#455, @msasad) + +2.6.5 / 2017-04-27 +================== + + * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek) + * Misc: clean up browser reference checks (#447, @thebigredgeek) + * Misc: add npm-debug.log to .gitignore (@thebigredgeek) + + +2.6.4 / 2017-04-20 +================== + + * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo) + * Chore: ignore bower.json in npm installations. (#437, @joaovieira) + * Misc: update "ms" to v0.7.3 (@tootallnate) + +2.6.3 / 2017-03-13 +================== + + * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts) + * Docs: Changelog fix (@thebigredgeek) + +2.6.2 / 2017-03-10 +================== + + * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin) + * Docs: Add backers and sponsors from Open Collective (#422, @piamancini) + * Docs: Add Slackin invite badge (@tootallnate) + +2.6.1 / 2017-02-10 +================== + + * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error + * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0) + * Fix: IE8 "Expected identifier" error (#414, @vgoma) + * Fix: Namespaces would not disable once enabled (#409, @musikov) + +2.6.0 / 2016-12-28 +================== + + * Fix: added better null pointer checks for browser useColors (@thebigredgeek) + * Improvement: removed explicit `window.debug` export (#404, @tootallnate) + * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate) + +2.5.2 / 2016-12-25 +================== + + * Fix: reference error on window within webworkers (#393, @KlausTrainer) + * Docs: fixed README typo (#391, @lurch) + * Docs: added notice about v3 api discussion (@thebigredgeek) + +2.5.1 / 2016-12-20 +================== + + * Fix: babel-core compatibility + +2.5.0 / 2016-12-20 +================== + + * Fix: wrong reference in bower file (@thebigredgeek) + * Fix: webworker compatibility (@thebigredgeek) + * Fix: output formatting issue (#388, @kribblo) + * Fix: babel-loader compatibility (#383, @escwald) + * Misc: removed built asset from repo and publications (@thebigredgeek) + * Misc: moved source files to /src (#378, @yamikuronue) + * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue) + * Test: coveralls integration (#378, @yamikuronue) + * Docs: simplified language in the opening paragraph (#373, @yamikuronue) + +2.4.5 / 2016-12-17 +================== + + * Fix: `navigator` undefined in Rhino (#376, @jochenberger) + * Fix: custom log function (#379, @hsiliev) + * Improvement: bit of cleanup + linting fixes (@thebigredgeek) + * Improvement: rm non-maintainted `dist/` dir (#375, @freewil) + * Docs: simplified language in the opening paragraph. (#373, @yamikuronue) + +2.4.4 / 2016-12-14 +================== + + * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts) + +2.4.3 / 2016-12-14 +================== + + * Fix: navigation.userAgent error for react native (#364, @escwald) + +2.4.2 / 2016-12-14 +================== + + * Fix: browser colors (#367, @tootallnate) + * Misc: travis ci integration (@thebigredgeek) + * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek) + +2.4.1 / 2016-12-13 +================== + + * Fix: typo that broke the package (#356) + +2.4.0 / 2016-12-13 +================== + + * Fix: bower.json references unbuilt src entry point (#342, @justmatt) + * Fix: revert "handle regex special characters" (@tootallnate) + * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate) + * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate) + * Improvement: allow colors in workers (#335, @botverse) + * Improvement: use same color for same namespace. (#338, @lchenay) + +2.3.3 / 2016-11-09 +================== + + * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne) + * Fix: Returning `localStorage` saved values (#331, Levi Thomason) + * Improvement: Don't create an empty object when no `process` (Nathan Rajlich) + +2.3.2 / 2016-11-09 +================== + + * Fix: be super-safe in index.js as well (@TooTallNate) + * Fix: should check whether process exists (Tom Newby) + +2.3.1 / 2016-11-09 +================== + + * Fix: Added electron compatibility (#324, @paulcbetts) + * Improvement: Added performance optimizations (@tootallnate) + * Readme: Corrected PowerShell environment variable example (#252, @gimre) + * Misc: Removed yarn lock file from source control (#321, @fengmk2) + +2.3.0 / 2016-11-07 +================== + + * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic) + * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos) + * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15) + * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran) + * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom) + * Package: Update "ms" to 0.7.2 (#315, @DevSide) + * Package: removed superfluous version property from bower.json (#207 @kkirsche) + * Readme: fix USE_COLORS to DEBUG_COLORS + * Readme: Doc fixes for format string sugar (#269, @mlucool) + * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0) + * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable) + * Readme: better docs for browser support (#224, @matthewmueller) + * Tooling: Added yarn integration for development (#317, @thebigredgeek) + * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek) + * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman) + * Misc: Updated contributors (@thebigredgeek) + +2.2.0 / 2015-05-09 +================== + + * package: update "ms" to v0.7.1 (#202, @dougwilson) + * README: add logging to file example (#193, @DanielOchoa) + * README: fixed a typo (#191, @amir-s) + * browser: expose `storage` (#190, @stephenmathieson) + * Makefile: add a `distclean` target (#189, @stephenmathieson) + +2.1.3 / 2015-03-13 +================== + + * Updated stdout/stderr example (#186) + * Updated example/stdout.js to match debug current behaviour + * Renamed example/stderr.js to stdout.js + * Update Readme.md (#184) + * replace high intensity foreground color for bold (#182, #183) + +2.1.2 / 2015-03-01 +================== + + * dist: recompile + * update "ms" to v0.7.0 + * package: update "browserify" to v9.0.3 + * component: fix "ms.js" repo location + * changed bower package name + * updated documentation about using debug in a browser + * fix: security error on safari (#167, #168, @yields) + +2.1.1 / 2014-12-29 +================== + + * browser: use `typeof` to check for `console` existence + * browser: check for `console.log` truthiness (fix IE 8/9) + * browser: add support for Chrome apps + * Readme: added Windows usage remarks + * Add `bower.json` to properly support bower install + +2.1.0 / 2014-10-15 +================== + + * node: implement `DEBUG_FD` env variable support + * package: update "browserify" to v6.1.0 + * package: add "license" field to package.json (#135, @panuhorsmalahti) + +2.0.0 / 2014-09-01 +================== + + * package: update "browserify" to v5.11.0 + * node: use stderr rather than stdout for logging (#29, @stephenmathieson) + +1.0.4 / 2014-07-15 +================== + + * dist: recompile + * example: remove `console.info()` log usage + * example: add "Content-Type" UTF-8 header to browser example + * browser: place %c marker after the space character + * browser: reset the "content" color via `color: inherit` + * browser: add colors support for Firefox >= v31 + * debug: prefer an instance `log()` function over the global one (#119) + * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) + +1.0.3 / 2014-07-09 +================== + + * Add support for multiple wildcards in namespaces (#122, @seegno) + * browser: fix lint + +1.0.2 / 2014-06-10 +================== + + * browser: update color palette (#113, @gscottolson) + * common: make console logging function configurable (#108, @timoxley) + * node: fix %o colors on old node <= 0.8.x + * Makefile: find node path using shell/which (#109, @timoxley) + +1.0.1 / 2014-06-06 +================== + + * browser: use `removeItem()` to clear localStorage + * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) + * package: add "contributors" section + * node: fix comment typo + * README: list authors + +1.0.0 / 2014-06-04 +================== + + * make ms diff be global, not be scope + * debug: ignore empty strings in enable() + * node: make DEBUG_COLORS able to disable coloring + * *: export the `colors` array + * npmignore: don't publish the `dist` dir + * Makefile: refactor to use browserify + * package: add "browserify" as a dev dependency + * Readme: add Web Inspector Colors section + * node: reset terminal color for the debug content + * node: map "%o" to `util.inspect()` + * browser: map "%j" to `JSON.stringify()` + * debug: add custom "formatters" + * debug: use "ms" module for humanizing the diff + * Readme: add "bash" syntax highlighting + * browser: add Firebug color support + * browser: add colors for WebKit browsers + * node: apply log to `console` + * rewrite: abstract common logic for Node & browsers + * add .jshintrc file + +0.8.1 / 2014-04-14 +================== + + * package: re-add the "component" section + +0.8.0 / 2014-03-30 +================== + + * add `enable()` method for nodejs. Closes #27 + * change from stderr to stdout + * remove unnecessary index.js file + +0.7.4 / 2013-11-13 +================== + + * remove "browserify" key from package.json (fixes something in browserify) + +0.7.3 / 2013-10-30 +================== + + * fix: catch localStorage security error when cookies are blocked (Chrome) + * add debug(err) support. Closes #46 + * add .browser prop to package.json. Closes #42 + +0.7.2 / 2013-02-06 +================== + + * fix package.json + * fix: Mobile Safari (private mode) is broken with debug + * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript + +0.7.1 / 2013-02-05 +================== + + * add repository URL to package.json + * add DEBUG_COLORED to force colored output + * add browserify support + * fix component. Closes #24 + +0.7.0 / 2012-05-04 +================== + + * Added .component to package.json + * Added debug.component.js build + +0.6.0 / 2012-03-16 +================== + + * Added support for "-" prefix in DEBUG [Vinay Pulim] + * Added `.enabled` flag to the node version [TooTallNate] + +0.5.0 / 2012-02-02 +================== + + * Added: humanize diffs. Closes #8 + * Added `debug.disable()` to the CS variant + * Removed padding. Closes #10 + * Fixed: persist client-side variant again. Closes #9 + +0.4.0 / 2012-02-01 +================== + + * Added browser variant support for older browsers [TooTallNate] + * Added `debug.enable('project:*')` to browser variant [TooTallNate] + * Added padding to diff (moved it to the right) + +0.3.0 / 2012-01-26 +================== + + * Added millisecond diff when isatty, otherwise UTC string + +0.2.0 / 2012-01-22 +================== + + * Added wildcard support + +0.1.0 / 2011-12-02 +================== + + * Added: remove colors unless stderr isatty [TooTallNate] + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..658c933d28255e8c716899789e8c0f846e5dc125 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/LICENSE" @@ -0,0 +1,19 @@ +(The MIT License) + +Copyright (c) 2014 TJ Holowaychuk + +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. + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/Makefile" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/Makefile" new file mode 100644 index 0000000000000000000000000000000000000000..584da8bf938e639ece3ba2bd4105c215c2b1ff51 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/Makefile" @@ -0,0 +1,50 @@ +# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 +THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) +THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) + +# BIN directory +BIN := $(THIS_DIR)/node_modules/.bin + +# Path +PATH := node_modules/.bin:$(PATH) +SHELL := /bin/bash + +# applications +NODE ?= $(shell which node) +YARN ?= $(shell which yarn) +PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) +BROWSERIFY ?= $(NODE) $(BIN)/browserify + +.FORCE: + +install: node_modules + +node_modules: package.json + @NODE_ENV= $(PKG) install + @touch node_modules + +lint: .FORCE + eslint browser.js debug.js index.js node.js + +test-node: .FORCE + istanbul cover node_modules/mocha/bin/_mocha -- test/**.js + +test-browser: .FORCE + mkdir -p dist + + @$(BROWSERIFY) \ + --standalone debug \ + . > dist/debug.js + + karma start --single-run + rimraf dist + +test: .FORCE + concurrently \ + "make test-node" \ + "make test-browser" + +coveralls: + cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js + +.PHONY: all install clean distclean diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f67be6b317c19952bb506a9e15e797615eea4533 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/README.md" @@ -0,0 +1,312 @@ +# debug +[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) +[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) + + + +A tiny node.js debugging utility modelled after node core's debugging technique. + +**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)** + +## Installation + +```bash +$ npm install debug +``` + +## Usage + +`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. + +Example _app.js_: + +```js +var debug = require('debug')('http') + , http = require('http') + , name = 'My App'; + +// fake app + +debug('booting %s', name); + +http.createServer(function(req, res){ + debug(req.method + ' ' + req.url); + res.end('hello\n'); +}).listen(3000, function(){ + debug('listening'); +}); + +// fake worker of some kind + +require('./worker'); +``` + +Example _worker.js_: + +```js +var debug = require('debug')('worker'); + +setInterval(function(){ + debug('doing some work'); +}, 1000); +``` + + The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: + + ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) + + ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) + +#### Windows note + + On Windows the environment variable is set using the `set` command. + + ```cmd + set DEBUG=*,-not_this + ``` + + Note that PowerShell uses different syntax to set environment variables. + + ```cmd + $env:DEBUG = "*,-not_this" + ``` + +Then, run the program to be debugged as usual. + +## Millisecond diff + + When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. + + ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) + + When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: + + ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) + +## Conventions + + If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". + +## Wildcards + + The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. + + You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". + +## Environment Variables + + When running through Node.js, you can set a few environment variables that will + change the behavior of the debug logging: + +| Name | Purpose | +|-----------|-------------------------------------------------| +| `DEBUG` | Enables/disables specific debugging namespaces. | +| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | +| `DEBUG_DEPTH` | Object inspection depth. | +| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | + + + __Note:__ The environment variables beginning with `DEBUG_` end up being + converted into an Options object that gets used with `%o`/`%O` formatters. + See the Node.js documentation for + [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) + for the complete list. + +## Formatters + + + Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters: + +| Formatter | Representation | +|-----------|----------------| +| `%O` | Pretty-print an Object on multiple lines. | +| `%o` | Pretty-print an Object all on a single line. | +| `%s` | String. | +| `%d` | Number (both integer and float). | +| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | +| `%%` | Single percent sign ('%'). This does not consume an argument. | + +### Custom formatters + + You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like: + +```js +const createDebug = require('debug') +createDebug.formatters.h = (v) => { + return v.toString('hex') +} + +// 鈥lsewhere +const debug = createDebug('foo') +debug('this is hex: %h', new Buffer('hello world')) +// foo this is hex: 68656c6c6f20776f726c6421 +0ms +``` + +## Browser support + You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), + or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), + if you don't want to build it yourself. + + Debug's enable state is currently persisted by `localStorage`. + Consider the situation shown below where you have `worker:a` and `worker:b`, + and wish to debug both. You can enable this using `localStorage.debug`: + +```js +localStorage.debug = 'worker:*' +``` + +And then refresh the page. + +```js +a = debug('worker:a'); +b = debug('worker:b'); + +setInterval(function(){ + a('doing some work'); +}, 1000); + +setInterval(function(){ + b('doing some work'); +}, 1200); +``` + +#### Web Inspector Colors + + Colors are also enabled on "Web Inspectors" that understand the `%c` formatting + option. These are WebKit web inspectors, Firefox ([since version + 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) + and the Firebug plugin for Firefox (any version). + + Colored output looks something like: + + ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) + + +## Output streams + + By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: + +Example _stdout.js_: + +```js +var debug = require('debug'); +var error = debug('app:error'); + +// by default stderr is used +error('goes to stderr!'); + +var log = debug('app:log'); +// set this namespace to log via console.log +log.log = console.log.bind(console); // don't forget to bind to console! +log('goes to stdout'); +error('still goes to stderr!'); + +// set all output to go via console.info +// overrides all per-namespace log settings +debug.log = console.info.bind(console); +error('now goes to stdout via console.info'); +log('still goes to stdout, but via console.info now'); +``` + + +## Authors + + - TJ Holowaychuk + - Nathan Rajlich + - Andrew Rhyne + +## Backers + +Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## License + +(The MIT License) + +Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca> + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/component.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/component.json" new file mode 100644 index 0000000000000000000000000000000000000000..9de26410f0d0bba2e48a07f094407d602eb5dd89 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/component.json" @@ -0,0 +1,19 @@ +{ + "name": "debug", + "repo": "visionmedia/debug", + "description": "small debugging utility", + "version": "2.6.9", + "keywords": [ + "debug", + "log", + "debugger" + ], + "main": "src/browser.js", + "scripts": [ + "src/browser.js", + "src/debug.js" + ], + "dependencies": { + "rauchg/ms.js": "0.7.1" + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/karma.conf.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/karma.conf.js" new file mode 100644 index 0000000000000000000000000000000000000000..103a82d15bd72b3cdf9ba4108272985f7e0bfdb3 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/karma.conf.js" @@ -0,0 +1,70 @@ +// Karma configuration +// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC) + +module.exports = function(config) { + config.set({ + + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: '', + + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['mocha', 'chai', 'sinon'], + + + // list of files / patterns to load in the browser + files: [ + 'dist/debug.js', + 'test/*spec.js' + ], + + + // list of files to exclude + exclude: [ + 'src/node.js' + ], + + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + }, + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ['progress'], + + + // web server port + port: 9876, + + + // enable / disable colors in the output (reporters and logs) + colors: true, + + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: ['PhantomJS'], + + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: false, + + // Concurrency level + // how many browser should be started simultaneous + concurrency: Infinity + }) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/node.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/node.js" new file mode 100644 index 0000000000000000000000000000000000000000..7fc36fe6dbecbfd41530c5a490cc738ec2968653 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/node.js" @@ -0,0 +1 @@ +module.exports = require('./src/node'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..86934c16370f38188f71305246d5f46e5670b640 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/package.json" @@ -0,0 +1,91 @@ +{ + "_from": "debug@2.6.9", + "_id": "debug@2.6.9", + "_inBundle": false, + "_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "_location": "/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@2.6.9", + "name": "debug", + "escapedName": "debug", + "rawSpec": "2.6.9", + "saveSpec": null, + "fetchSpec": "2.6.9" + }, + "_requiredBy": [ + "/body-parser", + "/express", + "/finalhandler", + "/send" + ], + "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f", + "_spec": "debug@2.6.9", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, + "bundleDependencies": false, + "component": { + "scripts": { + "debug/index.js": "browser.js", + "debug/debug.js": "debug.js" + } + }, + "contributors": [ + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } + ], + "dependencies": { + "ms": "2.0.0" + }, + "deprecated": false, + "description": "small debugging utility", + "devDependencies": { + "browserify": "9.0.3", + "chai": "^3.5.0", + "concurrently": "^3.1.0", + "coveralls": "^2.11.15", + "eslint": "^3.12.1", + "istanbul": "^0.4.5", + "karma": "^1.3.0", + "karma-chai": "^0.1.0", + "karma-mocha": "^1.3.0", + "karma-phantomjs-launcher": "^1.0.2", + "karma-sinon": "^1.0.5", + "mocha": "^3.2.0", + "mocha-lcov-reporter": "^1.2.0", + "rimraf": "^2.5.4", + "sinon": "^1.17.6", + "sinon-chai": "^2.8.0" + }, + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "version": "2.6.9" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/browser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/browser.js" new file mode 100644 index 0000000000000000000000000000000000000000..7106924934501fd4035efe78678281020328acc5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/browser.js" @@ -0,0 +1,185 @@ +/** + * This is the web browser implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = require('./debug'); +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = 'undefined' != typeof chrome + && 'undefined' != typeof chrome.storage + ? chrome.storage.local + : localstorage(); + +/** + * Colors. + */ + +exports.colors = [ + 'lightseagreen', + 'forestgreen', + 'goldenrod', + 'dodgerblue', + 'darkorchid', + 'crimson' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + return true; + } + + // is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +exports.formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (err) { + return '[UnexpectedJSONParseError]: ' + err.message; + } +}; + + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + var useColors = this.useColors; + + args[0] = (useColors ? '%c' : '') + + this.namespace + + (useColors ? ' %c' : ' ') + + args[0] + + (useColors ? '%c ' : ' ') + + '+' + exports.humanize(this.diff); + + if (!useColors) return; + + var c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit') + + // the final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + var index = 0; + var lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, function(match) { + if ('%%' === match) return; + index++; + if ('%c' === match) { + // we only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.log()` when available. + * No-op when `console.log` is not a "function". + * + * @api public + */ + +function log() { + // this hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return 'object' === typeof console + && console.log + && Function.prototype.apply.call(console.log, console, arguments); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + try { + if (null == namespaces) { + exports.storage.removeItem('debug'); + } else { + exports.storage.debug = namespaces; + } + } catch(e) {} +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + var r; + try { + r = exports.storage.debug; + } catch(e) {} + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Enable namespaces listed in `localStorage.debug` initially. + */ + +exports.enable(load()); + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + return window.localStorage; + } catch (e) {} +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/debug.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/debug.js" new file mode 100644 index 0000000000000000000000000000000000000000..6a5e3fc94c3ab80e123c3056b6c5dbe056d21658 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/debug.js" @@ -0,0 +1,202 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; +exports.coerce = coerce; +exports.disable = disable; +exports.enable = enable; +exports.enabled = enabled; +exports.humanize = require('ms'); + +/** + * The currently active debug mode names, and names to skip. + */ + +exports.names = []; +exports.skips = []; + +/** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + +exports.formatters = {}; + +/** + * Previous log timestamp. + */ + +var prevTime; + +/** + * Select a color. + * @param {String} namespace + * @return {Number} + * @api private + */ + +function selectColor(namespace) { + var hash = 0, i; + + for (i in namespace) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return exports.colors[Math.abs(hash) % exports.colors.length]; +} + +/** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + +function createDebug(namespace) { + + function debug() { + // disabled? + if (!debug.enabled) return; + + var self = debug; + + // set `diff` timestamp + var curr = +new Date(); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + // turn the `arguments` into a proper Array + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + + args[0] = exports.coerce(args[0]); + + if ('string' !== typeof args[0]) { + // anything else let's inspect with %O + args.unshift('%O'); + } + + // apply any `formatters` transformations + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { + // if we encounter an escaped % then don't increase the array index + if (match === '%%') return match; + index++; + var formatter = exports.formatters[format]; + if ('function' === typeof formatter) { + var val = args[index]; + match = formatter.call(self, val); + + // now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // apply env-specific formatting (colors, etc.) + exports.formatArgs.call(self, args); + + var logFn = debug.log || exports.log || console.log.bind(console); + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = exports.enabled(namespace); + debug.useColors = exports.useColors(); + debug.color = selectColor(namespace); + + // env-specific initialization logic for debug instances + if ('function' === typeof exports.init) { + exports.init(debug); + } + + return debug; +} + +/** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + +function enable(namespaces) { + exports.save(namespaces); + + exports.names = []; + exports.skips = []; + + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; + + for (var i = 0; i < len; i++) { + if (!split[i]) continue; // ignore empty strings + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + exports.names.push(new RegExp('^' + namespaces + '$')); + } + } +} + +/** + * Disable debug output. + * + * @api public + */ + +function disable() { + exports.enable(''); +} + +/** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + +function enabled(name) { + var i, len; + for (i = 0, len = exports.skips.length; i < len; i++) { + if (exports.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = exports.names.length; i < len; i++) { + if (exports.names[i].test(name)) { + return true; + } + } + return false; +} + +/** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + +function coerce(val) { + if (val instanceof Error) return val.stack || val.message; + return val; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..e12cf4d58c9f2d6d2d2e656f9cbb0f703cb5fa29 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/index.js" @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer process, which is node, but we should + * treat as a browser. + */ + +if (typeof process !== 'undefined' && process.type === 'renderer') { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/inspector-log.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/inspector-log.js" new file mode 100644 index 0000000000000000000000000000000000000000..60ea6c04aafd41d0ea3bcd78f58312ecf0eda436 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/inspector-log.js" @@ -0,0 +1,15 @@ +module.exports = inspectorLog; + +// black hole +const nullStream = new (require('stream').Writable)(); +nullStream._write = () => {}; + +/** + * Outputs a `console.log()` to the Node.js Inspector console *only*. + */ +function inspectorLog() { + const stdout = console._stdout; + console._stdout = nullStream; + console.log.apply(console, arguments); + console._stdout = stdout; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/node.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/node.js" new file mode 100644 index 0000000000000000000000000000000000000000..b15109c905a45bcb5db701cf37cf4e19385c3167 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/debug/src/node.js" @@ -0,0 +1,248 @@ +/** + * Module dependencies. + */ + +var tty = require('tty'); +var util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + * + * Expose `debug()` as the module. + */ + +exports = module.exports = require('./debug'); +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(function (key) { + return /^debug_/i.test(key); +}).reduce(function (obj, key) { + // camel-case + var prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); + + // coerce string value into JS value + var val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) val = true; + else if (/^(no|off|false|disabled)$/i.test(val)) val = false; + else if (val === 'null') val = null; + else val = Number(val); + + obj[prop] = val; + return obj; +}, {}); + +/** + * The file descriptor to write the `debug()` calls to. + * Set the `DEBUG_FD` env variable to override with another value. i.e.: + * + * $ DEBUG_FD=3 node script.js 3>debug.log + */ + +var fd = parseInt(process.env.DEBUG_FD, 10) || 2; + +if (1 !== fd && 2 !== fd) { + util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() +} + +var stream = 1 === fd ? process.stdout : + 2 === fd ? process.stderr : + createWritableStdioStream(fd); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts + ? Boolean(exports.inspectOpts.colors) + : tty.isatty(fd); +} + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +exports.formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n').map(function(str) { + return str.trim() + }).join(' '); +}; + +/** + * Map %o to `util.inspect()`, allowing multiple lines if needed. + */ + +exports.formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + var name = this.namespace; + var useColors = this.useColors; + + if (useColors) { + var c = this.color; + var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); + } else { + args[0] = new Date().toUTCString() + + ' ' + name + ' ' + args[0]; + } +} + +/** + * Invokes `util.format()` with the specified arguments and writes to `stream`. + */ + +function log() { + return stream.write(util.format.apply(util, arguments) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + +function save(namespaces) { + if (null == namespaces) { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } else { + process.env.DEBUG = namespaces; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Copied from `node/src/node.js`. + * + * XXX: It's lame that node doesn't expose this API out-of-the-box. It also + * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. + */ + +function createWritableStdioStream (fd) { + var stream; + var tty_wrap = process.binding('tty_wrap'); + + // Note stream._type is used for test-module-load-list.js + + switch (tty_wrap.guessHandleType(fd)) { + case 'TTY': + stream = new tty.WriteStream(fd); + stream._type = 'tty'; + + // Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; + + case 'FILE': + var fs = require('fs'); + stream = new fs.SyncWriteStream(fd, { autoClose: false }); + stream._type = 'fs'; + break; + + case 'PIPE': + case 'TCP': + var net = require('net'); + stream = new net.Socket({ + fd: fd, + readable: false, + writable: true + }); + + // FIXME Should probably have an option in net.Socket to create a + // stream from an existing fd which is writable only. But for now + // we'll just add this hack and set the `readable` member to false. + // Test: ./node test/fixtures/echo.js < /etc/passwd + stream.readable = false; + stream.read = null; + stream._type = 'pipe'; + + // FIXME Hack to have stream not keep the event loop alive. + // See https://github.com/joyent/node/issues/1726 + if (stream._handle && stream._handle.unref) { + stream._handle.unref(); + } + break; + + default: + // Probably an error on in uv_guess_handle() + throw new Error('Implement me. Unknown stream file type!'); + } + + // For supporting legacy API we put the FD here. + stream.fd = fd; + + stream._isStdio = true; + + return stream; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init (debug) { + debug.inspectOpts = {}; + + var keys = Object.keys(exports.inspectOpts); + for (var i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +/** + * Enable namespaces listed in `process.env.DEBUG` initially. + */ + +exports.enable(load()); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/History.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/History.md" new file mode 100644 index 0000000000000000000000000000000000000000..507ecb8de21d5d0d2db42ec03b99a5efd610acf7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/History.md" @@ -0,0 +1,96 @@ +1.1.2 / 2018-01-11 +================== + + * perf: remove argument reassignment + * Support Node.js 0.6 to 9.x + +1.1.1 / 2017-07-27 +================== + + * Remove unnecessary `Buffer` loading + * Support Node.js 0.6 to 8.x + +1.1.0 / 2015-09-14 +================== + + * Enable strict mode in more places + * Support io.js 3.x + * Support io.js 2.x + * Support web browser loading + - Requires bundler like Browserify or webpack + +1.0.1 / 2015-04-07 +================== + + * Fix `TypeError`s when under `'use strict'` code + * Fix useless type name on auto-generated messages + * Support io.js 1.x + * Support Node.js 0.12 + +1.0.0 / 2014-09-17 +================== + + * No changes + +0.4.5 / 2014-09-09 +================== + + * Improve call speed to functions using the function wrapper + * Support Node.js 0.6 + +0.4.4 / 2014-07-27 +================== + + * Work-around v8 generating empty stack traces + +0.4.3 / 2014-07-26 +================== + + * Fix exception when global `Error.stackTraceLimit` is too low + +0.4.2 / 2014-07-19 +================== + + * Correct call site for wrapped functions and properties + +0.4.1 / 2014-07-19 +================== + + * Improve automatic message generation for function properties + +0.4.0 / 2014-07-19 +================== + + * Add `TRACE_DEPRECATION` environment variable + * Remove non-standard grey color from color output + * Support `--no-deprecation` argument + * Support `--trace-deprecation` argument + * Support `deprecate.property(fn, prop, message)` + +0.3.0 / 2014-06-16 +================== + + * Add `NO_DEPRECATION` environment variable + +0.2.0 / 2014-06-15 +================== + + * Add `deprecate.property(obj, prop, message)` + * Remove `supports-color` dependency for node.js 0.8 + +0.1.0 / 2014-06-15 +================== + + * Add `deprecate.function(fn, message)` + * Add `process.on('deprecation', fn)` emitter + * Automatically generate message when omitted from `deprecate()` + +0.0.1 / 2014-06-15 +================== + + * Fix warning for dynamic calls at singe call site + +0.0.0 / 2014-06-15 +================== + + * Initial implementation diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..84441fbb5709262c2bfc9b5ff0166ad4f024a1b8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..77906702044fe2ff41a4a50695666a48df89aa29 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/Readme.md" @@ -0,0 +1,280 @@ +# depd + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Linux Build][travis-image]][travis-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Deprecate all the things + +> With great modules comes great responsibility; mark things deprecated! + +## Install + +This module is installed directly using `npm`: + +```sh +$ npm install depd +``` + +This module can also be bundled with systems like +[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), +though by default this module will alter it's API to no longer display or +track deprecations. + +## API + + + +```js +var deprecate = require('depd')('my-module') +``` + +This library allows you to display deprecation messages to your users. +This library goes above and beyond with deprecation warnings by +introspection of the call stack (but only the bits that it is interested +in). + +Instead of just warning on the first invocation of a deprecated +function and never again, this module will warn on the first invocation +of a deprecated function per unique call site, making it ideal to alert +users of all deprecated uses across the code base, rather than just +whatever happens to execute first. + +The deprecation warnings from this module also include the file and line +information for the call into the module that the deprecated function was +in. + +**NOTE** this library has a similar interface to the `debug` module, and +this module uses the calling file to get the boundary for the call stacks, +so you should always create a new `deprecate` object in each file and not +within some central file. + +### depd(namespace) + +Create a new deprecate function that uses the given namespace name in the +messages and will display the call site prior to the stack entering the +file this function was called from. It is highly suggested you use the +name of your module as the namespace. + +### deprecate(message) + +Call this function from deprecated code to display a deprecation message. +This message will appear once per unique caller site. Caller site is the +first call site in the stack in a different file from the caller of this +function. + +If the message is omitted, a message is generated for you based on the site +of the `deprecate()` call and will display the name of the function called, +similar to the name displayed in a stack trace. + +### deprecate.function(fn, message) + +Call this function to wrap a given function in a deprecation message on any +call to the function. An optional message can be supplied to provide a custom +message. + +### deprecate.property(obj, prop, message) + +Call this function to wrap a given property on object in a deprecation message +on any accessing or setting of the property. An optional message can be supplied +to provide a custom message. + +The method must be called on the object where the property belongs (not +inherited from the prototype). + +If the property is a data descriptor, it will be converted to an accessor +descriptor in order to display the deprecation message. + +### process.on('deprecation', fn) + +This module will allow easy capturing of deprecation errors by emitting the +errors as the type "deprecation" on the global `process`. If there are no +listeners for this type, the errors are written to STDERR as normal, but if +there are any listeners, nothing will be written to STDERR and instead only +emitted. From there, you can write the errors in a different format or to a +logging source. + +The error represents the deprecation and is emitted only once with the same +rules as writing to STDERR. The error has the following properties: + + - `message` - This is the message given by the library + - `name` - This is always `'DeprecationError'` + - `namespace` - This is the namespace the deprecation came from + - `stack` - This is the stack of the call to the deprecated thing + +Example `error.stack` output: + +``` +DeprecationError: my-cool-module deprecated oldfunction + at Object. ([eval]-wrapper:6:22) + at Module._compile (module.js:456:26) + at evalScript (node.js:532:25) + at startup (node.js:80:7) + at node.js:902:3 +``` + +### process.env.NO_DEPRECATION + +As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` +is provided as a quick solution to silencing deprecation warnings from being +output. The format of this is similar to that of `DEBUG`: + +```sh +$ NO_DEPRECATION=my-module,othermod node app.js +``` + +This will suppress deprecations from being output for "my-module" and "othermod". +The value is a list of comma-separated namespaces. To suppress every warning +across all namespaces, use the value `*` for a namespace. + +Providing the argument `--no-deprecation` to the `node` executable will suppress +all deprecations (only available in Node.js 0.8 or higher). + +**NOTE** This will not suppress the deperecations given to any "deprecation" +event listeners, just the output to STDERR. + +### process.env.TRACE_DEPRECATION + +As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` +is provided as a solution to getting more detailed location information in deprecation +warnings by including the entire stack trace. The format of this is the same as +`NO_DEPRECATION`: + +```sh +$ TRACE_DEPRECATION=my-module,othermod node app.js +``` + +This will include stack traces for deprecations being output for "my-module" and +"othermod". The value is a list of comma-separated namespaces. To trace every +warning across all namespaces, use the value `*` for a namespace. + +Providing the argument `--trace-deprecation` to the `node` executable will trace +all deprecations (only available in Node.js 0.8 or higher). + +**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. + +## Display + +![message](files/message.png) + +When a user calls a function in your library that you mark deprecated, they +will see the following written to STDERR (in the given colors, similar colors +and layout to the `debug` module): + +``` +bright cyan bright yellow +| | reset cyan +| | | | +鈻 鈻 鈻 鈻 +my-cool-module deprecated oldfunction [eval]-wrapper:6:22 +鈻 鈻 鈻 鈻 +| | | | +namespace | | location of mycoolmod.oldfunction() call + | deprecation message + the word "deprecated" +``` + +If the user redirects their STDERR to a file or somewhere that does not support +colors, they see (similar layout to the `debug` module): + +``` +Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 +鈻 鈻 鈻 鈻 鈻 +| | | | | +timestamp of message namespace | | location of mycoolmod.oldfunction() call + | deprecation message + the word "deprecated" +``` + +## Examples + +### Deprecating all calls to a function + +This will display a deprecated message about "oldfunction" being deprecated +from "my-module" on STDERR. + +```js +var deprecate = require('depd')('my-cool-module') + +// message automatically derived from function name +// Object.oldfunction +exports.oldfunction = deprecate.function(function oldfunction () { + // all calls to function are deprecated +}) + +// specific message +exports.oldfunction = deprecate.function(function () { + // all calls to function are deprecated +}, 'oldfunction') +``` + +### Conditionally deprecating a function call + +This will display a deprecated message about "weirdfunction" being deprecated +from "my-module" on STDERR when called with less than 2 arguments. + +```js +var deprecate = require('depd')('my-cool-module') + +exports.weirdfunction = function () { + if (arguments.length < 2) { + // calls with 0 or 1 args are deprecated + deprecate('weirdfunction args < 2') + } +} +``` + +When calling `deprecate` as a function, the warning is counted per call site +within your own module, so you can display different deprecations depending +on different situations and the users will still get all the warnings: + +```js +var deprecate = require('depd')('my-cool-module') + +exports.weirdfunction = function () { + if (arguments.length < 2) { + // calls with 0 or 1 args are deprecated + deprecate('weirdfunction args < 2') + } else if (typeof arguments[0] !== 'string') { + // calls with non-string first argument are deprecated + deprecate('weirdfunction non-string first arg') + } +} +``` + +### Deprecating property access + +This will display a deprecated message about "oldprop" being deprecated +from "my-module" on STDERR when accessed. A deprecation will be displayed +when setting the value and when getting the value. + +```js +var deprecate = require('depd')('my-cool-module') + +exports.oldprop = 'something' + +// message automatically derives from property name +deprecate.property(exports, 'oldprop') + +// explicit message +deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') +``` + +## License + +[MIT](LICENSE) + +[npm-version-image]: https://img.shields.io/npm/v/depd.svg +[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg +[npm-url]: https://npmjs.org/package/depd +[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux +[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd +[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd +[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg +[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master +[node-image]: https://img.shields.io/node/v/depd.svg +[node-url]: https://nodejs.org/en/download/ diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..d758d3c8f58a60bf27ef377ad77639bf10ce7854 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/index.js" @@ -0,0 +1,522 @@ +/*! + * depd + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var callSiteToString = require('./lib/compat').callSiteToString +var eventListenerCount = require('./lib/compat').eventListenerCount +var relative = require('path').relative + +/** + * Module exports. + */ + +module.exports = depd + +/** + * Get the path to base files on. + */ + +var basePath = process.cwd() + +/** + * Determine if namespace is contained in the string. + */ + +function containsNamespace (str, namespace) { + var vals = str.split(/[ ,]+/) + var ns = String(namespace).toLowerCase() + + for (var i = 0; i < vals.length; i++) { + var val = vals[i] + + // namespace contained + if (val && (val === '*' || val.toLowerCase() === ns)) { + return true + } + } + + return false +} + +/** + * Convert a data descriptor to accessor descriptor. + */ + +function convertDataDescriptorToAccessor (obj, prop, message) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + var value = descriptor.value + + descriptor.get = function getter () { return value } + + if (descriptor.writable) { + descriptor.set = function setter (val) { return (value = val) } + } + + delete descriptor.value + delete descriptor.writable + + Object.defineProperty(obj, prop, descriptor) + + return descriptor +} + +/** + * Create arguments string to keep arity. + */ + +function createArgumentsString (arity) { + var str = '' + + for (var i = 0; i < arity; i++) { + str += ', arg' + i + } + + return str.substr(2) +} + +/** + * Create stack string from stack. + */ + +function createStackString (stack) { + var str = this.name + ': ' + this.namespace + + if (this.message) { + str += ' deprecated ' + this.message + } + + for (var i = 0; i < stack.length; i++) { + str += '\n at ' + callSiteToString(stack[i]) + } + + return str +} + +/** + * Create deprecate for namespace in caller. + */ + +function depd (namespace) { + if (!namespace) { + throw new TypeError('argument namespace is required') + } + + var stack = getStack() + var site = callSiteLocation(stack[1]) + var file = site[0] + + function deprecate (message) { + // call to self as log + log.call(deprecate, message) + } + + deprecate._file = file + deprecate._ignored = isignored(namespace) + deprecate._namespace = namespace + deprecate._traced = istraced(namespace) + deprecate._warned = Object.create(null) + + deprecate.function = wrapfunction + deprecate.property = wrapproperty + + return deprecate +} + +/** + * Determine if namespace is ignored. + */ + +function isignored (namespace) { + /* istanbul ignore next: tested in a child processs */ + if (process.noDeprecation) { + // --no-deprecation support + return true + } + + var str = process.env.NO_DEPRECATION || '' + + // namespace ignored + return containsNamespace(str, namespace) +} + +/** + * Determine if namespace is traced. + */ + +function istraced (namespace) { + /* istanbul ignore next: tested in a child processs */ + if (process.traceDeprecation) { + // --trace-deprecation support + return true + } + + var str = process.env.TRACE_DEPRECATION || '' + + // namespace traced + return containsNamespace(str, namespace) +} + +/** + * Display deprecation message. + */ + +function log (message, site) { + var haslisteners = eventListenerCount(process, 'deprecation') !== 0 + + // abort early if no destination + if (!haslisteners && this._ignored) { + return + } + + var caller + var callFile + var callSite + var depSite + var i = 0 + var seen = false + var stack = getStack() + var file = this._file + + if (site) { + // provided site + depSite = site + callSite = callSiteLocation(stack[1]) + callSite.name = depSite.name + file = callSite[0] + } else { + // get call site + i = 2 + depSite = callSiteLocation(stack[i]) + callSite = depSite + } + + // get caller of deprecated thing in relation to file + for (; i < stack.length; i++) { + caller = callSiteLocation(stack[i]) + callFile = caller[0] + + if (callFile === file) { + seen = true + } else if (callFile === this._file) { + file = this._file + } else if (seen) { + break + } + } + + var key = caller + ? depSite.join(':') + '__' + caller.join(':') + : undefined + + if (key !== undefined && key in this._warned) { + // already warned + return + } + + this._warned[key] = true + + // generate automatic message from call site + var msg = message + if (!msg) { + msg = callSite === depSite || !callSite.name + ? defaultMessage(depSite) + : defaultMessage(callSite) + } + + // emit deprecation if listeners exist + if (haslisteners) { + var err = DeprecationError(this._namespace, msg, stack.slice(i)) + process.emit('deprecation', err) + return + } + + // format and write message + var format = process.stderr.isTTY + ? formatColor + : formatPlain + var output = format.call(this, msg, caller, stack.slice(i)) + process.stderr.write(output + '\n', 'utf8') +} + +/** + * Get call site location as array. + */ + +function callSiteLocation (callSite) { + var file = callSite.getFileName() || '' + var line = callSite.getLineNumber() + var colm = callSite.getColumnNumber() + + if (callSite.isEval()) { + file = callSite.getEvalOrigin() + ', ' + file + } + + var site = [file, line, colm] + + site.callSite = callSite + site.name = callSite.getFunctionName() + + return site +} + +/** + * Generate a default message from the site. + */ + +function defaultMessage (site) { + var callSite = site.callSite + var funcName = site.name + + // make useful anonymous name + if (!funcName) { + funcName = '' + } + + var context = callSite.getThis() + var typeName = context && callSite.getTypeName() + + // ignore useless type name + if (typeName === 'Object') { + typeName = undefined + } + + // make useful type name + if (typeName === 'Function') { + typeName = context.name || typeName + } + + return typeName && callSite.getMethodName() + ? typeName + '.' + funcName + : funcName +} + +/** + * Format deprecation message without color. + */ + +function formatPlain (msg, caller, stack) { + var timestamp = new Date().toUTCString() + + var formatted = timestamp + + ' ' + this._namespace + + ' deprecated ' + msg + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n at ' + callSiteToString(stack[i]) + } + + return formatted + } + + if (caller) { + formatted += ' at ' + formatLocation(caller) + } + + return formatted +} + +/** + * Format deprecation message with color. + */ + +function formatColor (msg, caller, stack) { + var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan + ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow + ' \x1b[0m' + msg + '\x1b[39m' // reset + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan + } + + return formatted + } + + if (caller) { + formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan + } + + return formatted +} + +/** + * Format call site location. + */ + +function formatLocation (callSite) { + return relative(basePath, callSite[0]) + + ':' + callSite[1] + + ':' + callSite[2] +} + +/** + * Get the stack as array of call sites. + */ + +function getStack () { + var limit = Error.stackTraceLimit + var obj = {} + var prep = Error.prepareStackTrace + + Error.prepareStackTrace = prepareObjectStackTrace + Error.stackTraceLimit = Math.max(10, limit) + + // capture the stack + Error.captureStackTrace(obj) + + // slice this function off the top + var stack = obj.stack.slice(1) + + Error.prepareStackTrace = prep + Error.stackTraceLimit = limit + + return stack +} + +/** + * Capture call site stack from v8. + */ + +function prepareObjectStackTrace (obj, stack) { + return stack +} + +/** + * Return a wrapped function in a deprecation message. + */ + +function wrapfunction (fn, message) { + if (typeof fn !== 'function') { + throw new TypeError('argument fn must be a function') + } + + var args = createArgumentsString(fn.length) + var deprecate = this // eslint-disable-line no-unused-vars + var stack = getStack() + var site = callSiteLocation(stack[1]) + + site.name = fn.name + + // eslint-disable-next-line no-eval + var deprecatedfn = eval('(function (' + args + ') {\n' + + '"use strict"\n' + + 'log.call(deprecate, message, site)\n' + + 'return fn.apply(this, arguments)\n' + + '})') + + return deprecatedfn +} + +/** + * Wrap property in a deprecation message. + */ + +function wrapproperty (obj, prop, message) { + if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { + throw new TypeError('argument obj must be object') + } + + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + + if (!descriptor) { + throw new TypeError('must call property on owner object') + } + + if (!descriptor.configurable) { + throw new TypeError('property must be configurable') + } + + var deprecate = this + var stack = getStack() + var site = callSiteLocation(stack[1]) + + // set site name + site.name = prop + + // convert data descriptor + if ('value' in descriptor) { + descriptor = convertDataDescriptorToAccessor(obj, prop, message) + } + + var get = descriptor.get + var set = descriptor.set + + // wrap getter + if (typeof get === 'function') { + descriptor.get = function getter () { + log.call(deprecate, message, site) + return get.apply(this, arguments) + } + } + + // wrap setter + if (typeof set === 'function') { + descriptor.set = function setter () { + log.call(deprecate, message, site) + return set.apply(this, arguments) + } + } + + Object.defineProperty(obj, prop, descriptor) +} + +/** + * Create DeprecationError for deprecation + */ + +function DeprecationError (namespace, message, stack) { + var error = new Error() + var stackString + + Object.defineProperty(error, 'constructor', { + value: DeprecationError + }) + + Object.defineProperty(error, 'message', { + configurable: true, + enumerable: false, + value: message, + writable: true + }) + + Object.defineProperty(error, 'name', { + enumerable: false, + configurable: true, + value: 'DeprecationError', + writable: true + }) + + Object.defineProperty(error, 'namespace', { + configurable: true, + enumerable: false, + value: namespace, + writable: true + }) + + Object.defineProperty(error, 'stack', { + configurable: true, + enumerable: false, + get: function () { + if (stackString !== undefined) { + return stackString + } + + // prepare stack trace + return (stackString = createStackString.call(this, stack)) + }, + set: function setter (val) { + stackString = val + } + }) + + return error +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/browser/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/browser/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..6be45cc20b33f20dcdc580b9709f1a4a20bb87a1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/browser/index.js" @@ -0,0 +1,77 @@ +/*! + * depd + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = depd + +/** + * Create deprecate for namespace in caller. + */ + +function depd (namespace) { + if (!namespace) { + throw new TypeError('argument namespace is required') + } + + function deprecate (message) { + // no-op in browser + } + + deprecate._file = undefined + deprecate._ignored = true + deprecate._namespace = namespace + deprecate._traced = false + deprecate._warned = Object.create(null) + + deprecate.function = wrapfunction + deprecate.property = wrapproperty + + return deprecate +} + +/** + * Return a wrapped function in a deprecation message. + * + * This is a no-op version of the wrapper, which does nothing but call + * validation. + */ + +function wrapfunction (fn, message) { + if (typeof fn !== 'function') { + throw new TypeError('argument fn must be a function') + } + + return fn +} + +/** + * Wrap property in a deprecation message. + * + * This is a no-op version of the wrapper, which does nothing but call + * validation. + */ + +function wrapproperty (obj, prop, message) { + if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { + throw new TypeError('argument obj must be object') + } + + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + + if (!descriptor) { + throw new TypeError('must call property on owner object') + } + + if (!descriptor.configurable) { + throw new TypeError('property must be configurable') + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/callsite-tostring.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/callsite-tostring.js" new file mode 100644 index 0000000000000000000000000000000000000000..73186dc644a3667aaab933bd6a9c187f87afd055 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/callsite-tostring.js" @@ -0,0 +1,103 @@ +/*! + * depd + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + */ + +module.exports = callSiteToString + +/** + * Format a CallSite file location to a string. + */ + +function callSiteFileLocation (callSite) { + var fileName + var fileLocation = '' + + if (callSite.isNative()) { + fileLocation = 'native' + } else if (callSite.isEval()) { + fileName = callSite.getScriptNameOrSourceURL() + if (!fileName) { + fileLocation = callSite.getEvalOrigin() + } + } else { + fileName = callSite.getFileName() + } + + if (fileName) { + fileLocation += fileName + + var lineNumber = callSite.getLineNumber() + if (lineNumber != null) { + fileLocation += ':' + lineNumber + + var columnNumber = callSite.getColumnNumber() + if (columnNumber) { + fileLocation += ':' + columnNumber + } + } + } + + return fileLocation || 'unknown source' +} + +/** + * Format a CallSite to a string. + */ + +function callSiteToString (callSite) { + var addSuffix = true + var fileLocation = callSiteFileLocation(callSite) + var functionName = callSite.getFunctionName() + var isConstructor = callSite.isConstructor() + var isMethodCall = !(callSite.isToplevel() || isConstructor) + var line = '' + + if (isMethodCall) { + var methodName = callSite.getMethodName() + var typeName = getConstructorName(callSite) + + if (functionName) { + if (typeName && functionName.indexOf(typeName) !== 0) { + line += typeName + '.' + } + + line += functionName + + if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) { + line += ' [as ' + methodName + ']' + } + } else { + line += typeName + '.' + (methodName || '') + } + } else if (isConstructor) { + line += 'new ' + (functionName || '') + } else if (functionName) { + line += functionName + } else { + addSuffix = false + line += fileLocation + } + + if (addSuffix) { + line += ' (' + fileLocation + ')' + } + + return line +} + +/** + * Get constructor name of reviver. + */ + +function getConstructorName (obj) { + var receiver = obj.receiver + return (receiver.constructor && receiver.constructor.name) || null +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/event-listener-count.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/event-listener-count.js" new file mode 100644 index 0000000000000000000000000000000000000000..3a8925d136ae6efd96b42301d9e0962ec45eeb5b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/event-listener-count.js" @@ -0,0 +1,22 @@ +/*! + * depd + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = eventListenerCount + +/** + * Get the count of listeners on an event emitter of a specific type. + */ + +function eventListenerCount (emitter, type) { + return emitter.listeners(type).length +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..955b3336b25e790857ad269ae7794953f42f5682 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/lib/compat/index.js" @@ -0,0 +1,79 @@ +/*! + * depd + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var EventEmitter = require('events').EventEmitter + +/** + * Module exports. + * @public + */ + +lazyProperty(module.exports, 'callSiteToString', function callSiteToString () { + var limit = Error.stackTraceLimit + var obj = {} + var prep = Error.prepareStackTrace + + function prepareObjectStackTrace (obj, stack) { + return stack + } + + Error.prepareStackTrace = prepareObjectStackTrace + Error.stackTraceLimit = 2 + + // capture the stack + Error.captureStackTrace(obj) + + // slice the stack + var stack = obj.stack.slice() + + Error.prepareStackTrace = prep + Error.stackTraceLimit = limit + + return stack[0].toString ? toString : require('./callsite-tostring') +}) + +lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount () { + return EventEmitter.listenerCount || require('./event-listener-count') +}) + +/** + * Define a lazy property. + */ + +function lazyProperty (obj, prop, getter) { + function get () { + var val = getter() + + Object.defineProperty(obj, prop, { + configurable: true, + enumerable: true, + value: val + }) + + return val + } + + Object.defineProperty(obj, prop, { + configurable: true, + enumerable: true, + get: get + }) +} + +/** + * Call toString() on the obj + */ + +function toString (obj) { + return obj.toString() +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..758c6414abde66a2f89790d37878ee2d8d0bf461 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/depd/package.json" @@ -0,0 +1,79 @@ +{ + "_from": "depd@~1.1.2", + "_id": "depd@1.1.2", + "_inBundle": false, + "_integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "_location": "/depd", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "depd@~1.1.2", + "name": "depd", + "escapedName": "depd", + "rawSpec": "~1.1.2", + "saveSpec": null, + "fetchSpec": "~1.1.2" + }, + "_requiredBy": [ + "/body-parser", + "/express", + "/http-errors", + "/send" + ], + "_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "_shasum": "9bcd52e14c097763e749b274c4346ed2e560b5a9", + "_spec": "depd@~1.1.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "browser": "lib/browser/index.js", + "bugs": { + "url": "https://github.com/dougwilson/nodejs-depd/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Deprecate all the things", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "3.19.0", + "eslint-config-standard": "7.1.0", + "eslint-plugin-markdown": "1.0.0-beta.7", + "eslint-plugin-promise": "3.6.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "~1.21.5" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "lib/", + "History.md", + "LICENSE", + "index.js", + "Readme.md" + ], + "homepage": "https://github.com/dougwilson/nodejs-depd#readme", + "keywords": [ + "deprecate", + "deprecated" + ], + "license": "MIT", + "name": "depd", + "repository": { + "type": "git", + "url": "git+https://github.com/dougwilson/nodejs-depd.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/" + }, + "version": "1.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..a7ae8ee9b8a30ef2a73ff5a7a80adc3b1a845cae --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/LICENSE" @@ -0,0 +1,22 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..6474bc3ce680d5d9e7ef686a59a9f9e6e6b99f78 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/README.md" @@ -0,0 +1,60 @@ +# Destroy + +[![NPM version][npm-image]][npm-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] +[![Gittip][gittip-image]][gittip-url] + +Destroy a stream. + +This module is meant to ensure a stream gets destroyed, handling different APIs +and Node.js bugs. + +## API + +```js +var destroy = require('destroy') +``` + +### destroy(stream) + +Destroy the given stream. In most cases, this is identical to a simple +`stream.destroy()` call. The rules are as follows for a given stream: + + 1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()` + and add a listener to the `open` event to call `stream.close()` if it is + fired. This is for a Node.js bug that will leak a file descriptor if + `.destroy()` is called before `open`. + 2. If the `stream` is not an instance of `Stream`, then nothing happens. + 3. If the `stream` has a `.destroy()` method, then call it. + +The function returns the `stream` passed in as the argument. + +## Example + +```js +var destroy = require('destroy') + +var fs = require('fs') +var stream = fs.createReadStream('package.json') + +// ... and later +destroy(stream) +``` + +[npm-image]: https://img.shields.io/npm/v/destroy.svg?style=flat-square +[npm-url]: https://npmjs.org/package/destroy +[github-tag]: http://img.shields.io/github/tag/stream-utils/destroy.svg?style=flat-square +[github-url]: https://github.com/stream-utils/destroy/tags +[travis-image]: https://img.shields.io/travis/stream-utils/destroy.svg?style=flat-square +[travis-url]: https://travis-ci.org/stream-utils/destroy +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/destroy.svg?style=flat-square +[coveralls-url]: https://coveralls.io/r/stream-utils/destroy?branch=master +[license-image]: http://img.shields.io/npm/l/destroy.svg?style=flat-square +[license-url]: LICENSE.md +[downloads-image]: http://img.shields.io/npm/dm/destroy.svg?style=flat-square +[downloads-url]: https://npmjs.org/package/destroy +[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square +[gittip-url]: https://www.gittip.com/jonathanong/ diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..6da2d26eea4fece63d667b530d58f5243891b144 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/index.js" @@ -0,0 +1,75 @@ +/*! + * destroy + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var ReadStream = require('fs').ReadStream +var Stream = require('stream') + +/** + * Module exports. + * @public + */ + +module.exports = destroy + +/** + * Destroy a stream. + * + * @param {object} stream + * @public + */ + +function destroy(stream) { + if (stream instanceof ReadStream) { + return destroyReadStream(stream) + } + + if (!(stream instanceof Stream)) { + return stream + } + + if (typeof stream.destroy === 'function') { + stream.destroy() + } + + return stream +} + +/** + * Destroy a ReadStream. + * + * @param {object} stream + * @private + */ + +function destroyReadStream(stream) { + stream.destroy() + + if (typeof stream.close === 'function') { + // node.js core bug work-around + stream.on('open', onOpenClose) + } + + return stream +} + +/** + * On open handler to close stream. + * @private + */ + +function onOpenClose() { + if (typeof this.fd === 'number') { + // actually close down the fd + this.close() + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..bfb190c77e3272a2574a4f023c64d1e8b796e259 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/destroy/package.json" @@ -0,0 +1,71 @@ +{ + "_from": "destroy@~1.0.4", + "_id": "destroy@1.0.4", + "_inBundle": false, + "_integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "_location": "/destroy", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "destroy@~1.0.4", + "name": "destroy", + "escapedName": "destroy", + "rawSpec": "~1.0.4", + "saveSpec": null, + "fetchSpec": "~1.0.4" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "_shasum": "978857442c44749e4206613e37946205826abd80", + "_spec": "destroy@~1.0.4", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\send", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/destroy/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } + ], + "deprecated": false, + "description": "destroy a stream if possible", + "devDependencies": { + "istanbul": "0.4.2", + "mocha": "2.3.4" + }, + "files": [ + "index.js", + "LICENSE" + ], + "homepage": "https://github.com/stream-utils/destroy#readme", + "keywords": [ + "stream", + "streams", + "destroy", + "cleanup", + "leak", + "fd" + ], + "license": "MIT", + "name": "destroy", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/destroy.git" + }, + "scripts": { + "test": "mocha --reporter spec", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" + }, + "version": "1.0.4" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..a7ae8ee9b8a30ef2a73ff5a7a80adc3b1a845cae --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/LICENSE" @@ -0,0 +1,22 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..cbd2478beffb7e4e612f99e8bff383255c21f253 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/README.md" @@ -0,0 +1,80 @@ +# EE First + +[![NPM version][npm-image]][npm-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] +[![Gittip][gittip-image]][gittip-url] + +Get the first event in a set of event emitters and event pairs, +then clean up after itself. + +## Install + +```sh +$ npm install ee-first +``` + +## API + +```js +var first = require('ee-first') +``` + +### first(arr, listener) + +Invoke `listener` on the first event from the list specified in `arr`. `arr` is +an array of arrays, with each array in the format `[ee, ...event]`. `listener` +will be called only once, the first time any of the given events are emitted. If +`error` is one of the listened events, then if that fires first, the `listener` +will be given the `err` argument. + +The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the +first argument emitted from an `error` event, if applicable; `ee` is the event +emitter that fired; `event` is the string event name that fired; and `args` is an +array of the arguments that were emitted on the event. + +```js +var ee1 = new EventEmitter() +var ee2 = new EventEmitter() + +first([ + [ee1, 'close', 'end', 'error'], + [ee2, 'error'] +], function (err, ee, event, args) { + // listener invoked +}) +``` + +#### .cancel() + +The group of listeners can be cancelled before being invoked and have all the event +listeners removed from the underlying event emitters. + +```js +var thunk = first([ + [ee1, 'close', 'end', 'error'], + [ee2, 'error'] +], function (err, ee, event, args) { + // listener invoked +}) + +// cancel and clean up +thunk.cancel() +``` + +[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square +[npm-url]: https://npmjs.org/package/ee-first +[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square +[github-url]: https://github.com/jonathanong/ee-first/tags +[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square +[travis-url]: https://travis-ci.org/jonathanong/ee-first +[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square +[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master +[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square +[license-url]: LICENSE.md +[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square +[downloads-url]: https://npmjs.org/package/ee-first +[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square +[gittip-url]: https://www.gittip.com/jonathanong/ diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..501287cd3b7024435d85a872bb1ba0b234db8e7f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/index.js" @@ -0,0 +1,95 @@ +/*! + * ee-first + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = first + +/** + * Get the first event in a set of event emitters and event pairs. + * + * @param {array} stuff + * @param {function} done + * @public + */ + +function first(stuff, done) { + if (!Array.isArray(stuff)) + throw new TypeError('arg must be an array of [ee, events...] arrays') + + var cleanups = [] + + for (var i = 0; i < stuff.length; i++) { + var arr = stuff[i] + + if (!Array.isArray(arr) || arr.length < 2) + throw new TypeError('each array member must be [ee, events...]') + + var ee = arr[0] + + for (var j = 1; j < arr.length; j++) { + var event = arr[j] + var fn = listener(event, callback) + + // listen to the event + ee.on(event, fn) + // push this listener to the list of cleanups + cleanups.push({ + ee: ee, + event: event, + fn: fn, + }) + } + } + + function callback() { + cleanup() + done.apply(null, arguments) + } + + function cleanup() { + var x + for (var i = 0; i < cleanups.length; i++) { + x = cleanups[i] + x.ee.removeListener(x.event, x.fn) + } + } + + function thunk(fn) { + done = fn + } + + thunk.cancel = cleanup + + return thunk +} + +/** + * Create the event listener. + * @private + */ + +function listener(event, done) { + return function onevent(arg1) { + var args = new Array(arguments.length) + var ee = this + var err = event === 'error' + ? arg1 + : null + + // copy args to prevent arguments escaping scope + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + done(err, ee, event, args) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..7c22da1613007290217daab2832af0a8e0ff1d62 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ee-first/package.json" @@ -0,0 +1,63 @@ +{ + "_from": "ee-first@1.1.1", + "_id": "ee-first@1.1.1", + "_inBundle": false, + "_integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "_location": "/ee-first", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ee-first@1.1.1", + "name": "ee-first", + "escapedName": "ee-first", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/on-finished" + ], + "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "_shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", + "_spec": "ee-first@1.1.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\on-finished", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/jonathanong/ee-first/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } + ], + "deprecated": false, + "description": "return the first event in a set of ee/event pairs", + "devDependencies": { + "istanbul": "0.3.9", + "mocha": "2.2.5" + }, + "files": [ + "index.js", + "LICENSE" + ], + "homepage": "https://github.com/jonathanong/ee-first#readme", + "license": "MIT", + "name": "ee-first", + "repository": { + "type": "git", + "url": "git+https://github.com/jonathanong/ee-first.git" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.1.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..41313b2b3ee8a02ec17c62184bd6a31ebd5a9703 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/HISTORY.md" @@ -0,0 +1,14 @@ +1.0.2 / 2018-01-21 +================== + + * Fix encoding `%` as last character + +1.0.1 / 2016-06-09 +================== + + * Fix encoding unpaired surrogates at start/end of string + +1.0.0 / 2016-06-08 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..8812229bc59b5f365549fb3c799b32a4d4acdabc --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2016 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..127c5a0d491b284eab066ee42ef8a1e136160101 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/README.md" @@ -0,0 +1,128 @@ +# encodeurl + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Encode a URL to a percent-encoded form, excluding already-encoded sequences + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install encodeurl +``` + +## API + +```js +var encodeUrl = require('encodeurl') +``` + +### encodeUrl(url) + +Encode a URL to a percent-encoded form, excluding already-encoded sequences. + +This function will take an already-encoded URL and encode all the non-URL +code points (as UTF-8 byte sequences). This function will not encode the +"%" character unless it is not part of a valid sequence (`%20` will be +left as-is, but `%foo` will be encoded as `%25foo`). + +This encode is meant to be "safe" and does not throw errors. It will try as +hard as it can to properly encode the given URL, including replacing any raw, +unpaired surrogate pairs with the Unicode replacement character prior to +encoding. + +This function is _similar_ to the intrinsic function `encodeURI`, except it +will not encode the `%` character if that is part of a valid sequence, will +not encode `[` and `]` (for IPv6 hostnames) and will replace raw, unpaired +surrogate pairs with the Unicode replacement character (instead of throwing). + +## Examples + +### Encode a URL containing user-controled data + +```js +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') + +http.createServer(function onRequest (req, res) { + // get encoded form of inbound url + var url = encodeUrl(req.url) + + // create html message + var body = '

    Location ' + escapeHtml(url) + ' not found

    ' + + // send a 404 + res.statusCode = 404 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) + res.end(body, 'utf-8') +}) +``` + +### Encode a URL for use in a header field + +```js +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var url = require('url') + +http.createServer(function onRequest (req, res) { + // parse inbound url + var href = url.parse(req) + + // set new host for redirect + href.host = 'localhost' + href.protocol = 'https:' + href.slashes = true + + // create location header + var location = encodeUrl(url.format(href)) + + // create html message + var body = '

    Redirecting to new site: ' + escapeHtml(location) + '

    ' + + // send a 301 + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) + res.setHeader('Location', location) + res.end(body, 'utf-8') +}) +``` + +## Testing + +```sh +$ npm test +$ npm run lint +``` + +## References + +- [RFC 3986: Uniform Resource Identifier (URI): Generic Syntax][rfc-3986] +- [WHATWG URL Living Standard][whatwg-url] + +[rfc-3986]: https://tools.ietf.org/html/rfc3986 +[whatwg-url]: https://url.spec.whatwg.org/ + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/encodeurl.svg +[npm-url]: https://npmjs.org/package/encodeurl +[node-version-image]: https://img.shields.io/node/v/encodeurl.svg +[node-version-url]: https://nodejs.org/en/download +[travis-image]: https://img.shields.io/travis/pillarjs/encodeurl.svg +[travis-url]: https://travis-ci.org/pillarjs/encodeurl +[coveralls-image]: https://img.shields.io/coveralls/pillarjs/encodeurl.svg +[coveralls-url]: https://coveralls.io/r/pillarjs/encodeurl?branch=master +[downloads-image]: https://img.shields.io/npm/dm/encodeurl.svg +[downloads-url]: https://npmjs.org/package/encodeurl diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..fc4906c6c7896396a877e1f369c78f804e3afa10 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/index.js" @@ -0,0 +1,60 @@ +/*! + * encodeurl + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = encodeUrl + +/** + * RegExp to match non-URL code points, *after* encoding (i.e. not including "%") + * and including invalid escape sequences. + * @private + */ + +var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g + +/** + * RegExp to match unmatched surrogate pair. + * @private + */ + +var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g + +/** + * String to replace unmatched surrogate pair with. + * @private + */ + +var UNMATCHED_SURROGATE_PAIR_REPLACE = '$1\uFFFD$2' + +/** + * Encode a URL to a percent-encoded form, excluding already-encoded sequences. + * + * This function will take an already-encoded URL and encode all the non-URL + * code points. This function will not encode the "%" character unless it is + * not part of a valid sequence (`%20` will be left as-is, but `%foo` will + * be encoded as `%25foo`). + * + * This encode is meant to be "safe" and does not throw errors. It will try as + * hard as it can to properly encode the given URL, including replacing any raw, + * unpaired surrogate pairs with the Unicode replacement character prior to + * encoding. + * + * @param {string} url + * @return {string} + * @public + */ + +function encodeUrl (url) { + return String(url) + .replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE) + .replace(ENCODE_CHARS_REGEXP, encodeURI) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..dee8adee0923645040cfff5ae5ff51cedf54f5c7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/encodeurl/package.json" @@ -0,0 +1,78 @@ +{ + "_from": "encodeurl@~1.0.2", + "_id": "encodeurl@1.0.2", + "_inBundle": false, + "_integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "_location": "/encodeurl", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "encodeurl@~1.0.2", + "name": "encodeurl", + "escapedName": "encodeurl", + "rawSpec": "~1.0.2", + "saveSpec": null, + "fetchSpec": "~1.0.2" + }, + "_requiredBy": [ + "/express", + "/finalhandler", + "/send", + "/serve-static" + ], + "_resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "_shasum": "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59", + "_spec": "encodeurl@~1.0.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/pillarjs/encodeurl/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } + ], + "deprecated": false, + "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences", + "devDependencies": { + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.8.0", + "eslint-plugin-node": "5.2.1", + "eslint-plugin-promise": "3.6.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "2.5.3" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/pillarjs/encodeurl#readme", + "keywords": [ + "encode", + "encodeurl", + "url" + ], + "license": "MIT", + "name": "encodeurl", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/encodeurl.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.0.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..2e70de9717e715b4fc05c7f8bdc4e8d63a33b859 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/LICENSE" @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2013 TJ Holowaychuk +Copyright (c) 2015 Andreas Lubbe +Copyright (c) 2015 Tiancheng "Timothy" Gu + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..653d9eaa793317827ce724c4a0756110e9356fc8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/Readme.md" @@ -0,0 +1,43 @@ + +# escape-html + + Escape string for use in HTML + +## Example + +```js +var escape = require('escape-html'); +var html = escape('foo & bar'); +// -> foo & bar +``` + +## Benchmark + +``` +$ npm run-script bench + +> escape-html@1.0.3 bench nodejs-escape-html +> node benchmark/index.js + + + http_parser@1.0 + node@0.10.33 + v8@3.14.5.9 + ares@1.9.0-DEV + uv@0.10.29 + zlib@1.2.3 + modules@11 + openssl@1.0.1j + + 1 test completed. + 2 tests completed. + 3 tests completed. + + no special characters x 19,435,271 ops/sec 卤0.85% (187 runs sampled) + single special character x 6,132,421 ops/sec 卤0.67% (194 runs sampled) + many special characters x 3,175,826 ops/sec 卤0.65% (193 runs sampled) +``` + +## License + + MIT \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..bf9e226f4e872bee53a930739e5381d013c47568 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/index.js" @@ -0,0 +1,78 @@ +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */ + +'use strict'; + +/** + * Module variables. + * @private + */ + +var matchHtmlRegExp = /["'&<>]/; + +/** + * Module exports. + * @public + */ + +module.exports = escapeHtml; + +/** + * Escape special characters in the given string of html. + * + * @param {string} string The string to escape for inserting into HTML + * @return {string} + * @public + */ + +function escapeHtml(string) { + var str = '' + string; + var match = matchHtmlRegExp.exec(str); + + if (!match) { + return str; + } + + var escape; + var html = ''; + var index = 0; + var lastIndex = 0; + + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: // " + escape = '"'; + break; + case 38: // & + escape = '&'; + break; + case 39: // ' + escape = '''; + break; + case 60: // < + escape = '<'; + break; + case 62: // > + escape = '>'; + break; + default: + continue; + } + + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + + lastIndex = index + 1; + html += escape; + } + + return lastIndex !== index + ? html + str.substring(lastIndex, index) + : html; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..5685d2e44061adda0eb1d74f72af808d0e28df6d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/escape-html/package.json" @@ -0,0 +1,59 @@ +{ + "_from": "escape-html@~1.0.3", + "_id": "escape-html@1.0.3", + "_inBundle": false, + "_integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "_location": "/escape-html", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "escape-html@~1.0.3", + "name": "escape-html", + "escapedName": "escape-html", + "rawSpec": "~1.0.3", + "saveSpec": null, + "fetchSpec": "~1.0.3" + }, + "_requiredBy": [ + "/express", + "/finalhandler", + "/send", + "/serve-static" + ], + "_resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "_shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988", + "_spec": "escape-html@~1.0.3", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/component/escape-html/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Escape string for use in HTML", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "1.0.0" + }, + "files": [ + "LICENSE", + "Readme.md", + "index.js" + ], + "homepage": "https://github.com/component/escape-html#readme", + "keywords": [ + "escape", + "html", + "utility" + ], + "license": "MIT", + "name": "escape-html", + "repository": { + "type": "git", + "url": "git+https://github.com/component/escape-html.git" + }, + "scripts": { + "bench": "node benchmark/index.js" + }, + "version": "1.0.3" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..222b293dee9f8712b82a7e453c1f80e6e65348e7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/HISTORY.md" @@ -0,0 +1,83 @@ +1.8.1 / 2017-09-12 +================== + + * perf: replace regular expression with substring + +1.8.0 / 2017-02-18 +================== + + * Use SHA1 instead of MD5 for ETag hashing + - Improves performance for larger entities + - Works with FIPS 140-2 OpenSSL configuration + +1.7.0 / 2015-06-08 +================== + + * Always include entity length in ETags for hash length extensions + * Generate non-Stats ETags using MD5 only (no longer CRC32) + * Improve stat performance by removing hashing + * Remove base64 padding in ETags to shorten + * Use MD5 instead of MD4 in weak ETags over 1KB + +1.6.0 / 2015-05-10 +================== + + * Improve support for JXcore + * Remove requirement of `atime` in the stats object + * Support "fake" stats objects in environments without `fs` + +1.5.1 / 2014-11-19 +================== + + * deps: crc@3.2.1 + - Minor fixes + +1.5.0 / 2014-10-14 +================== + + * Improve string performance + * Slightly improve speed for weak ETags over 1KB + +1.4.0 / 2014-09-21 +================== + + * Support "fake" stats objects + * Support Node.js 0.6 + +1.3.1 / 2014-09-14 +================== + + * Use the (new and improved) `crc` for crc32 + +1.3.0 / 2014-08-29 +================== + + * Default strings to strong ETags + * Improve speed for weak ETags over 1KB + +1.2.1 / 2014-08-29 +================== + + * Use the (much faster) `buffer-crc32` for crc32 + +1.2.0 / 2014-08-24 +================== + + * Add support for file stat objects + +1.1.0 / 2014-08-24 +================== + + * Add fast-path for empty entity + * Add weak ETag generation + * Shrink size of generated ETags + +1.0.1 / 2014-08-24 +================== + + * Fix behavior of string containing Unicode + +1.0.0 / 2014-05-18 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..cab251c2b9a81318267600f68130faa3a290e5fd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2016 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..09c2169e7b3ab576199dfe890b2f04cb645c5ac7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/README.md" @@ -0,0 +1,159 @@ +# etag + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create simple HTTP ETags + +This module generates HTTP ETags (as defined in RFC 7232) for use in +HTTP responses. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install etag +``` + +## API + + + +```js +var etag = require('etag') +``` + +### etag(entity, [options]) + +Generate a strong ETag for the given entity. This should be the complete +body of the entity. Strings, `Buffer`s, and `fs.Stats` are accepted. By +default, a strong ETag is generated except for `fs.Stats`, which will +generate a weak ETag (this can be overwritten by `options.weak`). + + + +```js +res.setHeader('ETag', etag(body)) +``` + +#### Options + +`etag` accepts these properties in the options object. + +##### weak + +Specifies if the generated ETag will include the weak validator mark (that +is, the leading `W/`). The actual entity tag is the same. The default value +is `false`, unless the `entity` is `fs.Stats`, in which case it is `true`. + +## Testing + +```sh +$ npm test +``` + +## Benchmark + +```bash +$ npm run-script bench + +> etag@1.8.1 bench nodejs-etag +> node benchmark/index.js + + http_parser@2.7.0 + node@6.11.1 + v8@5.1.281.103 + uv@1.11.0 + zlib@1.2.11 + ares@1.10.1-DEV + icu@58.2 + modules@48 + openssl@1.0.2k + +> node benchmark/body0-100b.js + + 100B body + + 4 tests completed. + + buffer - strong x 258,647 ops/sec 卤1.07% (180 runs sampled) + buffer - weak x 263,812 ops/sec 卤0.61% (184 runs sampled) + string - strong x 259,955 ops/sec 卤1.19% (185 runs sampled) + string - weak x 264,356 ops/sec 卤1.09% (184 runs sampled) + +> node benchmark/body1-1kb.js + + 1KB body + + 4 tests completed. + + buffer - strong x 189,018 ops/sec 卤1.12% (182 runs sampled) + buffer - weak x 190,586 ops/sec 卤0.81% (186 runs sampled) + string - strong x 144,272 ops/sec 卤0.96% (188 runs sampled) + string - weak x 145,380 ops/sec 卤1.43% (187 runs sampled) + +> node benchmark/body2-5kb.js + + 5KB body + + 4 tests completed. + + buffer - strong x 92,435 ops/sec 卤0.42% (188 runs sampled) + buffer - weak x 92,373 ops/sec 卤0.58% (189 runs sampled) + string - strong x 48,850 ops/sec 卤0.56% (186 runs sampled) + string - weak x 49,380 ops/sec 卤0.56% (190 runs sampled) + +> node benchmark/body3-10kb.js + + 10KB body + + 4 tests completed. + + buffer - strong x 55,989 ops/sec 卤0.93% (188 runs sampled) + buffer - weak x 56,148 ops/sec 卤0.55% (190 runs sampled) + string - strong x 27,345 ops/sec 卤0.43% (188 runs sampled) + string - weak x 27,496 ops/sec 卤0.45% (190 runs sampled) + +> node benchmark/body4-100kb.js + + 100KB body + + 4 tests completed. + + buffer - strong x 7,083 ops/sec 卤0.22% (190 runs sampled) + buffer - weak x 7,115 ops/sec 卤0.26% (191 runs sampled) + string - strong x 3,068 ops/sec 卤0.34% (190 runs sampled) + string - weak x 3,096 ops/sec 卤0.35% (190 runs sampled) + +> node benchmark/stats.js + + stat + + 4 tests completed. + + real - strong x 871,642 ops/sec 卤0.34% (189 runs sampled) + real - weak x 867,613 ops/sec 卤0.39% (190 runs sampled) + fake - strong x 401,051 ops/sec 卤0.40% (189 runs sampled) + fake - weak x 400,100 ops/sec 卤0.47% (188 runs sampled) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/etag.svg +[npm-url]: https://npmjs.org/package/etag +[node-version-image]: https://img.shields.io/node/v/etag.svg +[node-version-url]: https://nodejs.org/en/download/ +[travis-image]: https://img.shields.io/travis/jshttp/etag/master.svg +[travis-url]: https://travis-ci.org/jshttp/etag +[coveralls-image]: https://img.shields.io/coveralls/jshttp/etag/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/etag?branch=master +[downloads-image]: https://img.shields.io/npm/dm/etag.svg +[downloads-url]: https://npmjs.org/package/etag diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..2a585c91f07351e9566d50faec67a0272367ba81 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/index.js" @@ -0,0 +1,131 @@ +/*! + * etag + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = etag + +/** + * Module dependencies. + * @private + */ + +var crypto = require('crypto') +var Stats = require('fs').Stats + +/** + * Module variables. + * @private + */ + +var toString = Object.prototype.toString + +/** + * Generate an entity tag. + * + * @param {Buffer|string} entity + * @return {string} + * @private + */ + +function entitytag (entity) { + if (entity.length === 0) { + // fast-path empty + return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"' + } + + // compute hash of entity + var hash = crypto + .createHash('sha1') + .update(entity, 'utf8') + .digest('base64') + .substring(0, 27) + + // compute length of entity + var len = typeof entity === 'string' + ? Buffer.byteLength(entity, 'utf8') + : entity.length + + return '"' + len.toString(16) + '-' + hash + '"' +} + +/** + * Create a simple ETag. + * + * @param {string|Buffer|Stats} entity + * @param {object} [options] + * @param {boolean} [options.weak] + * @return {String} + * @public + */ + +function etag (entity, options) { + if (entity == null) { + throw new TypeError('argument entity is required') + } + + // support fs.Stats object + var isStats = isstats(entity) + var weak = options && typeof options.weak === 'boolean' + ? options.weak + : isStats + + // validate argument + if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) { + throw new TypeError('argument entity must be string, Buffer, or fs.Stats') + } + + // generate entity tag + var tag = isStats + ? stattag(entity) + : entitytag(entity) + + return weak + ? 'W/' + tag + : tag +} + +/** + * Determine if object is a Stats object. + * + * @param {object} obj + * @return {boolean} + * @api private + */ + +function isstats (obj) { + // genuine fs.Stats + if (typeof Stats === 'function' && obj instanceof Stats) { + return true + } + + // quack quack + return obj && typeof obj === 'object' && + 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' && + 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' && + 'ino' in obj && typeof obj.ino === 'number' && + 'size' in obj && typeof obj.size === 'number' +} + +/** + * Generate a tag for a stat. + * + * @param {object} stat + * @return {string} + * @private + */ + +function stattag (stat) { + var mtime = stat.mtime.getTime().toString(16) + var size = stat.size.toString(16) + + return '"' + size + '-' + mtime + '"' +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..59a9fc9a4039dcee6d0b2ed2f1639b12a4544c98 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/etag/package.json" @@ -0,0 +1,86 @@ +{ + "_from": "etag@~1.8.1", + "_id": "etag@1.8.1", + "_inBundle": false, + "_integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "_location": "/etag", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "etag@~1.8.1", + "name": "etag", + "escapedName": "etag", + "rawSpec": "~1.8.1", + "saveSpec": null, + "fetchSpec": "~1.8.1" + }, + "_requiredBy": [ + "/express", + "/send" + ], + "_resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "_shasum": "41ae2eeb65efa62268aebfea83ac7d79299b0887", + "_spec": "etag@~1.8.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/etag/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "David Bj枚rklund", + "email": "david.bjorklund@gmail.com" + } + ], + "deprecated": false, + "description": "Create simple HTTP ETags", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "5.1.1", + "eslint-plugin-promise": "3.5.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "1.21.5", + "safe-buffer": "5.1.1", + "seedrandom": "2.4.3" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/etag#readme", + "keywords": [ + "etag", + "http", + "res" + ], + "license": "MIT", + "name": "etag", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/etag.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.8.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/History.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/History.md" new file mode 100644 index 0000000000000000000000000000000000000000..9f3f876512da9085b20cd84572e6f528ba9f39f7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/History.md" @@ -0,0 +1,3525 @@ +4.17.3 / 2022-02-16 +=================== + + * deps: accepts@~1.3.8 + - deps: mime-types@~2.1.34 + - deps: negotiator@0.6.3 + * deps: body-parser@1.19.2 + - deps: bytes@3.1.2 + - deps: qs@6.9.7 + - deps: raw-body@2.4.3 + * deps: cookie@0.4.2 + * deps: qs@6.9.7 + * Fix handling of `__proto__` keys + * pref: remove unnecessary regexp for trust proxy + +4.17.2 / 2021-12-16 +=================== + + * Fix handling of `undefined` in `res.jsonp` + * Fix handling of `undefined` when `"json escape"` is enabled + * Fix incorrect middleware execution with unanchored `RegExp`s + * Fix `res.jsonp(obj, status)` deprecation message + * Fix typo in `res.is` JSDoc + * deps: body-parser@1.19.1 + - deps: bytes@3.1.1 + - deps: http-errors@1.8.1 + - deps: qs@6.9.6 + - deps: raw-body@2.4.2 + - deps: safe-buffer@5.2.1 + - deps: type-is@~1.6.18 + * deps: content-disposition@0.5.4 + - deps: safe-buffer@5.2.1 + * deps: cookie@0.4.1 + - Fix `maxAge` option to reject invalid values + * deps: proxy-addr@~2.0.7 + - Use `req.socket` over deprecated `req.connection` + - deps: forwarded@0.2.0 + - deps: ipaddr.js@1.9.1 + * deps: qs@6.9.6 + * deps: safe-buffer@5.2.1 + * deps: send@0.17.2 + - deps: http-errors@1.8.1 + - deps: ms@2.1.3 + - pref: ignore empty http tokens + * deps: serve-static@1.14.2 + - deps: send@0.17.2 + * deps: setprototypeof@1.2.0 + +4.17.1 / 2019-05-25 +=================== + + * Revert "Improve error message for `null`/`undefined` to `res.status`" + +4.17.0 / 2019-05-16 +=================== + + * Add `express.raw` to parse bodies into `Buffer` + * Add `express.text` to parse bodies into string + * Improve error message for non-strings to `res.sendFile` + * Improve error message for `null`/`undefined` to `res.status` + * Support multiple hosts in `X-Forwarded-Host` + * deps: accepts@~1.3.7 + * deps: body-parser@1.19.0 + - Add encoding MIK + - Add petabyte (`pb`) support + - Fix parsing array brackets after index + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + - deps: qs@6.7.0 + - deps: raw-body@2.4.0 + - deps: type-is@~1.6.17 + * deps: content-disposition@0.5.3 + * deps: cookie@0.4.0 + - Add `SameSite=None` support + * deps: finalhandler@~1.1.2 + - Set stricter `Content-Security-Policy` header + - deps: parseurl@~1.3.3 + - deps: statuses@~1.5.0 + * deps: parseurl@~1.3.3 + * deps: proxy-addr@~2.0.5 + - deps: ipaddr.js@1.9.0 + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: range-parser@~1.2.1 + * deps: send@0.17.1 + - Set stricter CSP header in redirect & error responses + - deps: http-errors@~1.7.2 + - deps: mime@1.6.0 + - deps: ms@2.1.1 + - deps: range-parser@~1.2.1 + - deps: statuses@~1.5.0 + - perf: remove redundant `path.normalize` call + * deps: serve-static@1.14.1 + - Set stricter CSP header in redirect response + - deps: parseurl@~1.3.3 + - deps: send@0.17.1 + * deps: setprototypeof@1.1.1 + * deps: statuses@~1.5.0 + - Add `103 Early Hints` + * deps: type-is@~1.6.18 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +4.16.4 / 2018-10-10 +=================== + + * Fix issue where `"Request aborted"` may be logged in `res.sendfile` + * Fix JSDoc for `Router` constructor + * deps: body-parser@1.18.3 + - Fix deprecation warnings on Node.js 10+ + - Fix stack trace for strict json parse error + - deps: depd@~1.1.2 + - deps: http-errors@~1.6.3 + - deps: iconv-lite@0.4.23 + - deps: qs@6.5.2 + - deps: raw-body@2.3.3 + - deps: type-is@~1.6.16 + * deps: proxy-addr@~2.0.4 + - deps: ipaddr.js@1.8.0 + * deps: qs@6.5.2 + * deps: safe-buffer@5.1.2 + +4.16.3 / 2018-03-12 +=================== + + * deps: accepts@~1.3.5 + - deps: mime-types@~2.1.18 + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: finalhandler@1.1.1 + - Fix 404 output for bad / missing pathnames + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + * deps: proxy-addr@~2.0.3 + - deps: ipaddr.js@1.6.0 + * deps: send@0.16.2 + - Fix incorrect end tag in default error & redirects + - deps: depd@~1.1.2 + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + * deps: serve-static@1.13.2 + - Fix incorrect end tag in redirects + - deps: encodeurl@~1.0.2 + - deps: send@0.16.2 + * deps: statuses@~1.4.0 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +4.16.2 / 2017-10-09 +=================== + + * Fix `TypeError` in `res.send` when given `Buffer` and `ETag` header set + * perf: skip parsing of entire `X-Forwarded-Proto` header + +4.16.1 / 2017-09-29 +=================== + + * deps: send@0.16.1 + * deps: serve-static@1.13.1 + - Fix regression when `root` is incorrectly set to a file + - deps: send@0.16.1 + +4.16.0 / 2017-09-28 +=================== + + * Add `"json escape"` setting for `res.json` and `res.jsonp` + * Add `express.json` and `express.urlencoded` to parse bodies + * Add `options` argument to `res.download` + * Improve error message when autoloading invalid view engine + * Improve error messages when non-function provided as middleware + * Skip `Buffer` encoding when not generating ETag for small response + * Use `safe-buffer` for improved Buffer API + * deps: accepts@~1.3.4 + - deps: mime-types@~2.1.16 + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: etag@~1.8.1 + - perf: replace regular expression with substring + * deps: finalhandler@1.1.0 + - Use `res.headersSent` when available + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + * deps: proxy-addr@~2.0.2 + - Fix trimming leading / trailing OWS in `X-Forwarded-For` + - deps: forwarded@~0.1.2 + - deps: ipaddr.js@1.5.2 + - perf: reduce overhead when no `X-Forwarded-For` header + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: send@0.16.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Fix missing `` in default error & redirects + - Set charset as "UTF-8" for .js and .json + - Use instance methods on steam to check for listeners + - deps: mime@1.4.1 + - perf: improve path validation speed + * deps: serve-static@1.13.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Set charset as "UTF-8" for .js and .json + - deps: send@0.16.0 + * deps: setprototypeof@1.1.0 + * deps: utils-merge@1.0.1 + * deps: vary@~1.1.2 + - perf: improve header token parsing speed + * perf: re-use options object when generating ETags + * perf: remove dead `.charset` set in `res.jsonp` + +4.15.5 / 2017-09-24 +=================== + + * deps: debug@2.6.9 + * deps: finalhandler@~1.0.6 + - deps: debug@2.6.9 + - deps: parseurl@~1.3.2 + * deps: fresh@0.5.2 + - Fix handling of modified headers with invalid dates + - perf: improve ETag match loop + - perf: improve `If-None-Match` token parsing + * deps: send@0.15.6 + - Fix handling of modified headers with invalid dates + - deps: debug@2.6.9 + - deps: etag@~1.8.1 + - deps: fresh@0.5.2 + - perf: improve `If-Match` token parsing + * deps: serve-static@1.12.6 + - deps: parseurl@~1.3.2 + - deps: send@0.15.6 + - perf: improve slash collapsing + +4.15.4 / 2017-08-06 +=================== + + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: finalhandler@~1.0.4 + - deps: debug@2.6.8 + * deps: proxy-addr@~1.1.5 + - Fix array argument being altered + - deps: ipaddr.js@1.4.0 + * deps: qs@6.5.0 + * deps: send@0.15.4 + - deps: debug@2.6.8 + - deps: depd@~1.1.1 + - deps: http-errors@~1.6.2 + * deps: serve-static@1.12.4 + - deps: send@0.15.4 + +4.15.3 / 2017-05-16 +=================== + + * Fix error when `res.set` cannot add charset to `Content-Type` + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: finalhandler@~1.0.3 + - Fix missing `` in HTML document + - deps: debug@2.6.7 + * deps: proxy-addr@~1.1.4 + - deps: ipaddr.js@1.3.0 + * deps: send@0.15.3 + - deps: debug@2.6.7 + - deps: ms@2.0.0 + * deps: serve-static@1.12.3 + - deps: send@0.15.3 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + * deps: vary@~1.1.1 + - perf: hoist regular expression + +4.15.2 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +4.15.1 / 2017-03-05 +=================== + + * deps: send@0.15.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - Fix strict violation in broken environments + * deps: serve-static@1.12.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - deps: send@0.15.1 + +4.15.0 / 2017-03-01 +=================== + + * Add debug message when loading view engine + * Add `next("router")` to exit from router + * Fix case where `router.use` skipped requests routes did not + * Remove usage of `res._headers` private field + - Improves compatibility with Node.js 8 nightly + * Skip routing when `req.url` is not set + * Use `%o` in path debug to tell types apart + * Use `Object.create` to setup request & response prototypes + * Use `setprototypeof` module to replace `__proto__` setting + * Use `statuses` instead of `http` module for status messages + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: etag@~1.8.0 + - Use SHA1 instead of MD5 for ETag hashing + - Works with FIPS 140-2 OpenSSL configuration + * deps: finalhandler@~1.0.0 + - Fix exception when `err` cannot be converted to a string + - Fully URL-encode the pathname in the 404 + - Only include the pathname in the 404 message + - Send complete HTML document + - Set `Content-Security-Policy: default-src 'self'` header + - deps: debug@2.6.1 + * deps: fresh@0.5.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - perf: delay reading header values until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove duplicate conditional + - perf: remove unnecessary boolean coercions + - perf: skip checking modified time if ETag check failed + - perf: skip parsing `If-None-Match` when no `ETag` header + - perf: use `Date.parse` instead of `new Date` + * deps: qs@6.3.1 + - Fix array parsing from skipping empty values + - Fix compacting nested arrays + * deps: send@0.15.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: debug@2.6.1 + - deps: etag@~1.8.0 + - deps: fresh@0.5.0 + - deps: http-errors@~1.6.1 + * deps: serve-static@1.12.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Send complete HTML document in redirect response + - Set default CSP header in redirect response + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: send@0.15.0 + * perf: add fast match path for `*` route + * perf: improve `req.ips` performance + +4.14.1 / 2017-01-28 +=================== + + * deps: content-disposition@0.5.2 + * deps: finalhandler@0.5.1 + - Fix exception when `err.headers` is not an object + - deps: statuses@~1.3.1 + - perf: hoist regular expressions + - perf: remove duplicate validation path + * deps: proxy-addr@~1.1.3 + - deps: ipaddr.js@1.2.0 + * deps: send@0.14.2 + - deps: http-errors@~1.5.1 + - deps: ms@0.7.2 + - deps: statuses@~1.3.1 + * deps: serve-static@~1.11.2 + - deps: send@0.14.2 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +4.14.0 / 2016-06-16 +=================== + + * Add `acceptRanges` option to `res.sendFile`/`res.sendfile` + * Add `cacheControl` option to `res.sendFile`/`res.sendfile` + * Add `options` argument to `req.range` + - Includes the `combine` option + * Encode URL in `res.location`/`res.redirect` if not already encoded + * Fix some redirect handling in `res.sendFile`/`res.sendfile` + * Fix Windows absolute path check using forward slashes + * Improve error with invalid arguments to `req.get()` + * Improve performance for `res.json`/`res.jsonp` in most cases + * Improve `Range` header handling in `res.sendFile`/`res.sendfile` + * deps: accepts@~1.3.3 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Many performance improvements + - deps: mime-types@~2.1.11 + - deps: negotiator@0.6.1 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: cookie@0.3.1 + - Add `sameSite` option + - Fix cookie `Max-Age` to never be a floating point number + - Improve error message when `encode` is not a function + - Improve error message when `expires` is not a `Date` + - Throw better error for invalid argument to parse + - Throw on invalid values provided to `serialize` + - perf: enable strict mode + - perf: hoist regular expression + - perf: use for loop in parse + - perf: use string concatenation for serialization + * deps: finalhandler@0.5.0 + - Change invalid or non-numeric status code to 500 + - Overwrite status message to match set status code + - Prefer `err.statusCode` if `err.status` is invalid + - Set response headers from `err.headers` object + - Use `statuses` instead of `http` module for status messages + * deps: proxy-addr@~1.1.2 + - Fix accepting various invalid netmasks + - Fix IPv6-mapped IPv4 validation edge cases + - IPv4 netmasks must be contiguous + - IPv6 addresses cannot be used as a netmask + - deps: ipaddr.js@1.1.1 + * deps: qs@6.2.0 + - Add `decoder` option in `parse` function + * deps: range-parser@~1.2.0 + - Add `combine` option to combine overlapping ranges + - Fix incorrectly returning -1 when there is at least one valid range + - perf: remove internal function + * deps: send@0.14.1 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Correctly inherit from `Stream` class + - Fix `Content-Range` header in 416 responses when using `start`/`end` options + - Fix `Content-Range` header missing from default 416 responses + - Fix redirect error when `path` contains raw non-URL characters + - Fix redirect when `path` starts with multiple forward slashes + - Ignore non-byte `Range` headers + - deps: http-errors@~1.5.0 + - deps: range-parser@~1.2.0 + - deps: statuses@~1.3.0 + - perf: remove argument reassignment + * deps: serve-static@~1.11.1 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Fix redirect error when `req.url` contains raw non-URL characters + - Ignore non-byte `Range` headers + - Use status code 301 for redirects + - deps: send@0.14.1 + * deps: type-is@~1.6.13 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.11 + * deps: vary@~1.1.0 + - Only accept valid field names in the `field` argument + * perf: use strict equality when possible + +4.13.4 / 2016-01-21 +=================== + + * deps: content-disposition@0.5.1 + - perf: enable strict mode + * deps: cookie@0.1.5 + - Throw on invalid values provided to `serialize` + * deps: depd@~1.1.0 + - Support web browser loading + - perf: enable strict mode + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: finalhandler@0.4.1 + - deps: escape-html@~1.0.3 + * deps: merge-descriptors@1.0.1 + - perf: enable strict mode + * deps: methods@~1.1.2 + - perf: enable strict mode + * deps: parseurl@~1.3.1 + - perf: enable strict mode + * deps: proxy-addr@~1.0.10 + - deps: ipaddr.js@1.0.5 + - perf: enable strict mode + * deps: range-parser@~1.0.3 + - perf: enable strict mode + * deps: send@0.13.1 + - deps: depd@~1.1.0 + - deps: destroy@~1.0.4 + - deps: escape-html@~1.0.3 + - deps: range-parser@~1.0.3 + * deps: serve-static@~1.10.2 + - deps: escape-html@~1.0.3 + - deps: parseurl@~1.3.0 + - deps: send@0.13.1 + +4.13.3 / 2015-08-02 +=================== + + * Fix infinite loop condition using `mergeParams: true` + * Fix inner numeric indices incorrectly altering parent `req.params` + +4.13.2 / 2015-07-31 +=================== + + * deps: accepts@~1.2.12 + - deps: mime-types@~2.1.4 + * deps: array-flatten@1.1.1 + - perf: enable strict mode + * deps: path-to-regexp@0.1.7 + - Fix regression with escaped round brackets and matching groups + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +4.13.1 / 2015-07-05 +=================== + + * deps: accepts@~1.2.10 + - deps: mime-types@~2.1.2 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +4.13.0 / 2015-06-20 +=================== + + * Add settings to debug output + * Fix `res.format` error when only `default` provided + * Fix issue where `next('route')` in `app.param` would incorrectly skip values + * Fix hiding platform issues with `decodeURIComponent` + - Only `URIError`s are a 400 + * Fix using `*` before params in routes + * Fix using capture groups before params in routes + * Simplify `res.cookie` to call `res.append` + * Use `array-flatten` module for flattening arrays + * deps: accepts@~1.2.9 + - deps: mime-types@~2.1.1 + - perf: avoid argument reassignment & argument slice + - perf: avoid negotiator recursive construction + - perf: enable strict mode + - perf: remove unnecessary bitwise operator + * deps: cookie@0.1.3 + - perf: deduce the scope of try-catch deopt + - perf: remove argument reassignments + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Always include entity length in ETags for hash length extensions + - Generate non-Stats ETags using MD5 only (no longer CRC32) + - Improve stat performance by removing hashing + - Improve support for JXcore + - Remove base64 padding in ETags to shorten + - Support "fake" stats objects in environments without fs + - Use MD5 instead of MD4 in weak ETags over 1KB + * deps: finalhandler@0.4.0 + - Fix a false-positive when unpiping in Node.js 0.8 + - Support `statusCode` property on `Error` objects + - Use `unpipe` module for unpiping requests + - deps: escape-html@1.0.2 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove argument reassignment + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: path-to-regexp@0.1.6 + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + * deps: serve-static@~1.10.0 + - Add `fallthrough` option + - Fix reading options from options prototype + - Improve the default redirect response headers + - Malformed URLs now `next()` instead of 400 + - deps: escape-html@1.0.2 + - deps: send@0.13.0 + - perf: enable strict mode + - perf: remove argument reassignment + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: isolate `app.render` try block + * perf: remove argument reassignments in application + * perf: remove argument reassignments in request prototype + * perf: remove argument reassignments in response prototype + * perf: remove argument reassignments in routing + * perf: remove argument reassignments in `View` + * perf: skip attempting to decode zero length string + * perf: use saved reference to `http.STATUS_CODES` + +4.12.4 / 2015-05-17 +=================== + + * deps: accepts@~1.2.7 + - deps: mime-types@~2.0.11 + - deps: negotiator@0.5.3 + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: etag@~1.6.0 + - Improve support for JXcore + - Support "fake" stats objects in environments without `fs` + * deps: finalhandler@0.3.6 + - deps: debug@~2.2.0 + - deps: on-finished@~2.2.1 + * deps: on-finished@~2.2.1 + - Fix `isFinished(req)` when data buffered + * deps: proxy-addr@~1.0.8 + - deps: ipaddr.js@1.0.1 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + * deps: serve-static@~1.9.3 + - deps: send@0.12.3 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +4.12.3 / 2015-03-17 +=================== + + * deps: accepts@~1.2.5 + - deps: mime-types@~2.0.10 + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: finalhandler@0.3.4 + - deps: debug@~2.1.3 + * deps: proxy-addr@~1.0.7 + - deps: ipaddr.js@0.1.9 + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + * deps: serve-static@~1.9.2 + - deps: send@0.12.2 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +4.12.2 / 2015-03-02 +=================== + + * Fix regression where `"Request aborted"` is logged using `res.sendFile` + +4.12.1 / 2015-03-01 +=================== + + * Fix constructing application with non-configurable prototype properties + * Fix `ECONNRESET` errors from `res.sendFile` usage + * Fix `req.host` when using "trust proxy" hops count + * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count + * Fix wrong `code` on aborted connections from `res.sendFile` + * deps: merge-descriptors@1.0.0 + +4.12.0 / 2015-02-23 +=================== + + * Fix `"trust proxy"` setting to inherit when app is mounted + * Generate `ETag`s for all request responses + - No longer restricted to only responses for `GET` and `HEAD` requests + * Use `content-type` to parse `Content-Type` headers + * deps: accepts@~1.2.4 + - Fix preference sorting to be stable for long acceptable lists + - deps: mime-types@~2.0.9 + - deps: negotiator@0.5.1 + * deps: cookie-signature@1.0.6 + * deps: send@0.12.1 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + * deps: serve-static@~1.9.1 + - deps: send@0.12.1 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +4.11.2 / 2015-02-01 +=================== + + * Fix `res.redirect` double-calling `res.end` for `HEAD` requests + * deps: accepts@~1.2.3 + - deps: mime-types@~2.0.8 + * deps: proxy-addr@~1.0.6 + - deps: ipaddr.js@0.1.8 + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +4.11.1 / 2015-01-20 +=================== + + * deps: send@0.11.1 + - Fix root path disclosure + * deps: serve-static@~1.8.1 + - Fix redirect loop in Node.js 0.11.14 + - Fix root path disclosure + - deps: send@0.11.1 + +4.11.0 / 2015-01-13 +=================== + + * Add `res.append(field, val)` to append headers + * Deprecate leading `:` in `name` for `app.param(name, fn)` + * Deprecate `req.param()` -- use `req.params`, `req.body`, or `req.query` instead + * Deprecate `app.param(fn)` + * Fix `OPTIONS` responses to include the `HEAD` method properly + * Fix `res.sendFile` not always detecting aborted connection + * Match routes iteratively to prevent stack overflows + * deps: accepts@~1.2.2 + - deps: mime-types@~2.0.7 + - deps: negotiator@0.5.0 + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + * deps: serve-static@~1.8.0 + - deps: send@0.11.0 + +4.10.8 / 2015-01-13 +=================== + + * Fix crash from error within `OPTIONS` response handler + * deps: proxy-addr@~1.0.5 + - deps: ipaddr.js@0.1.6 + +4.10.7 / 2015-01-04 +=================== + + * Fix `Allow` header for `OPTIONS` to not contain duplicate methods + * Fix incorrect "Request aborted" for `res.sendFile` when `HEAD` or 304 + * deps: debug@~2.1.1 + * deps: finalhandler@0.3.3 + - deps: debug@~2.1.1 + - deps: on-finished@~2.2.0 + * deps: methods@~1.1.1 + * deps: on-finished@~2.2.0 + * deps: serve-static@~1.7.2 + - Fix potential open redirect when mounted at root + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +4.10.6 / 2014-12-12 +=================== + + * Fix exception in `req.fresh`/`req.stale` without response headers + +4.10.5 / 2014-12-10 +=================== + + * Fix `res.send` double-calling `res.end` for `HEAD` requests + * deps: accepts@~1.1.4 + - deps: mime-types@~2.0.4 + * deps: type-is@~1.5.4 + - deps: mime-types@~2.0.4 + +4.10.4 / 2014-11-24 +=================== + + * Fix `res.sendfile` logging standard write errors + +4.10.3 / 2014-11-23 +=================== + + * Fix `res.sendFile` logging standard write errors + * deps: etag@~1.5.1 + * deps: proxy-addr@~1.0.4 + - deps: ipaddr.js@0.1.5 + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + +4.10.2 / 2014-11-09 +=================== + + * Correctly invoke async router callback asynchronously + * deps: accepts@~1.1.3 + - deps: mime-types@~2.0.3 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +4.10.1 / 2014-10-28 +=================== + + * Fix handling of URLs containing `://` in the path + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +4.10.0 / 2014-10-23 +=================== + + * Add support for `app.set('views', array)` + - Views are looked up in sequence in array of directories + * Fix `res.send(status)` to mention `res.sendStatus(status)` + * Fix handling of invalid empty URLs + * Use `content-disposition` module for `res.attachment`/`res.download` + - Sends standards-compliant `Content-Disposition` header + - Full Unicode support + * Use `path.resolve` in view lookup + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: etag@~1.5.0 + - Improve string performance + - Slightly improve speed for weak ETags over 1KB + * deps: finalhandler@0.3.2 + - Terminate in progress response only on error + - Use `on-finished` to determine request status + - deps: debug@~2.1.0 + - deps: on-finished@~2.1.1 + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: send@0.10.1 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + - deps: on-finished@~2.1.1 + * deps: serve-static@~1.7.1 + - deps: send@0.10.1 + +4.9.8 / 2014-10-17 +================== + + * Fix `res.redirect` body when redirect status specified + * deps: accepts@~1.1.2 + - Fix error when media type has invalid parameter + - deps: negotiator@0.4.9 + +4.9.7 / 2014-10-10 +================== + + * Fix using same param name in array of paths + +4.9.6 / 2014-10-08 +================== + + * deps: accepts@~1.1.1 + - deps: mime-types@~2.0.2 + - deps: negotiator@0.4.8 + * deps: serve-static@~1.6.4 + - Fix redirect loop when index file serving disabled + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +4.9.5 / 2014-09-24 +================== + + * deps: etag@~1.4.0 + * deps: proxy-addr@~1.0.3 + - Use `forwarded` npm module + * deps: send@0.9.3 + - deps: etag@~1.4.0 + * deps: serve-static@~1.6.3 + - deps: send@0.9.3 + +4.9.4 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +4.9.3 / 2014-09-18 +================== + + * deps: proxy-addr@~1.0.2 + - Fix a global leak when multiple subnets are trusted + - deps: ipaddr.js@0.1.3 + +4.9.2 / 2014-09-17 +================== + + * Fix regression for empty string `path` in `app.use` + * Fix `router.use` to accept array of middleware without path + * Improve error message for bad `app.use` arguments + +4.9.1 / 2014-09-16 +================== + + * Fix `app.use` to accept array of middleware without path + * deps: depd@0.4.5 + * deps: etag@~1.3.1 + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + * deps: serve-static@~1.6.2 + - deps: send@0.9.2 + +4.9.0 / 2014-09-08 +================== + + * Add `res.sendStatus` + * Invoke callback for sendfile when client aborts + - Applies to `res.sendFile`, `res.sendfile`, and `res.download` + - `err` will be populated with request aborted error + * Support IP address host in `req.subdomains` + * Use `etag` to generate `ETag` headers + * deps: accepts@~1.1.0 + - update `mime-types` + * deps: cookie-signature@1.0.5 + * deps: debug@~2.0.0 + * deps: finalhandler@0.2.0 + - Set `X-Content-Type-Options: nosniff` header + - deps: debug@~2.0.0 + * deps: fresh@0.2.4 + * deps: media-typer@0.3.0 + - Throw error when parameter format invalid on parse + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: range-parser@~1.0.2 + * deps: send@0.9.1 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + - deps: fresh@0.2.4 + * deps: serve-static@~1.6.1 + - Add `lastModified` option + - deps: send@0.9.1 + * deps: type-is@~1.5.1 + - fix `hasbody` to be true for `content-length: 0` + - deps: media-typer@0.3.0 + - deps: mime-types@~2.0.1 + * deps: vary@~1.0.0 + - Accept valid `Vary` header string as `field` + +4.8.8 / 2014-09-04 +================== + + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + * deps: serve-static@~1.5.4 + - deps: send@0.8.5 + +4.8.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +4.8.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +4.8.5 / 2014-08-18 +================== + + * deps: send@0.8.3 + - deps: destroy@1.0.3 + - deps: on-finished@2.1.0 + * deps: serve-static@~1.5.3 + - deps: send@0.8.3 + +4.8.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + * deps: serve-static@~1.5.2 + - deps: send@0.8.2 + +4.8.3 / 2014-08-10 +================== + + * deps: parseurl@~1.3.0 + * deps: qs@1.2.1 + * deps: serve-static@~1.5.1 + - Fix parsing of weird `req.originalUrl` values + - deps: parseurl@~1.3.0 + - deps: utils-merge@1.0.0 + +4.8.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +4.8.1 / 2014-08-06 +================== + + * fix incorrect deprecation warnings on `res.download` + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +4.8.0 / 2014-08-05 +================== + + * add `res.sendFile` + - accepts a file system path instead of a URL + - requires an absolute path or `root` option specified + * deprecate `res.sendfile` -- use `res.sendFile` instead + * support mounted app as any argument to `app.use()` + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + * deps: send@0.8.1 + - Add `extensions` option + * deps: serve-static@~1.5.0 + - Add `extensions` option + - deps: send@0.8.1 + +4.7.4 / 2014-08-04 +================== + + * fix `res.sendfile` regression for serving directory index files + * deps: send@0.7.4 + - Fix incorrect 403 on Windows and Node.js 0.11 + - Fix serving index files without root dir + * deps: serve-static@~1.4.4 + - deps: send@0.7.4 + +4.7.3 / 2014-08-04 +================== + + * deps: send@0.7.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + * deps: serve-static@~1.4.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + - deps: send@0.7.3 + +4.7.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + * deps: send@0.7.2 + - deps: depd@0.4.4 + * deps: serve-static@~1.4.2 + +4.7.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + * deps: send@0.7.1 + - deps: depd@0.4.3 + * deps: serve-static@~1.4.1 + +4.7.0 / 2014-07-25 +================== + + * fix `req.protocol` for proxy-direct connections + * configurable query parser with `app.set('query parser', parser)` + - `app.set('query parser', 'extended')` parse with "qs" module + - `app.set('query parser', 'simple')` parse with "querystring" core module + - `app.set('query parser', false)` disable query string parsing + - `app.set('query parser', true)` enable simple parsing + * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead + * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead + * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: finalhandler@0.1.0 + - Respond after request fully read + - deps: debug@1.0.4 + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - Cap `maxAge` value to 1 year + - deps: debug@1.0.4 + - deps: depd@0.4.2 + * deps: serve-static@~1.4.0 + - deps: parseurl@~1.2.0 + - deps: send@0.7.0 + * perf: prevent multiple `Buffer` creation in `res.send` + +4.6.1 / 2014-07-12 +================== + + * fix `subapp.mountpath` regression for `app.use(subapp)` + +4.6.0 / 2014-07-11 +================== + + * accept multiple callbacks to `app.use()` + * add explicit "Rosetta Flash JSONP abuse" protection + - previous versions are not vulnerable; this is just explicit protection + * catch errors in multiple `req.param(name, fn)` handlers + * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead + * fix `res.send(status, num)` to send `num` as json (not error) + * remove unnecessary escaping when `res.jsonp` returns JSON response + * support non-string `path` in `app.use(path, fn)` + - supports array of paths + - supports `RegExp` + * router: fix optimization on router exit + * router: refactor location of `try` blocks + * router: speed up standard `app.use(fn)` + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + * deps: finalhandler@0.0.3 + - deps: debug@1.0.3 + * deps: methods@1.1.0 + - add `CONNECT` + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + * deps: path-to-regexp@0.1.3 + * deps: send@0.6.0 + - deps: debug@1.0.3 + * deps: serve-static@~1.3.2 + - deps: parseurl@~1.1.3 + - deps: send@0.6.0 + * perf: fix arguments reassign deopt in some `res` methods + +4.5.1 / 2014-07-06 +================== + + * fix routing regression when altering `req.method` + +4.5.0 / 2014-07-04 +================== + + * add deprecation message to non-plural `req.accepts*` + * add deprecation message to `res.send(body, status)` + * add deprecation message to `res.vary()` + * add `headers` option to `res.sendfile` + - use to set headers on successful file transfer + * add `mergeParams` option to `Router` + - merges `req.params` from parent routes + * add `req.hostname` -- correct name for what `req.host` returns + * deprecate things with `depd` module + * deprecate `req.host` -- use `req.hostname` instead + * fix behavior when handling request without routes + * fix handling when `route.all` is only route + * invoke `router.param()` only when route matches + * restore `req.params` after invoking router + * use `finalhandler` for final response handling + * use `media-typer` to alter content-type charset + * deps: accepts@~1.0.7 + * deps: send@0.5.0 + - Accept string for `maxage` (converted by `ms`) + - Include link in default redirect response + * deps: serve-static@~1.3.0 + - Accept string for `maxAge` (converted by `ms`) + - Add `setHeaders` option + - Include HTML link in redirect response + - deps: send@0.5.0 + * deps: type-is@~1.3.2 + +4.4.5 / 2014-06-26 +================== + + * deps: cookie-signature@1.0.4 + - fix for timing attacks + +4.4.4 / 2014-06-20 +================== + + * fix `res.attachment` Unicode filenames in Safari + * fix "trim prefix" debug message in `express:router` + * deps: accepts@~1.0.5 + * deps: buffer-crc32@0.2.3 + +4.4.3 / 2014-06-11 +================== + + * fix persistence of modified `req.params[name]` from `app.param()` + * deps: accepts@1.0.3 + - deps: negotiator@0.4.6 + * deps: debug@1.0.2 + * deps: send@0.4.3 + - Do not throw uncatchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + * deps: serve-static@1.2.3 + - Do not throw uncatchable error on file open race condition + - deps: send@0.4.3 + +4.4.2 / 2014-06-09 +================== + + * fix catching errors from top-level handlers + * use `vary` module for `res.vary` + * deps: debug@1.0.1 + * deps: proxy-addr@1.0.1 + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: debug@1.0.1 + - deps: finished@1.2.1 + * deps: serve-static@1.2.2 + - fix "event emitter leak" warnings + - deps: send@0.4.2 + * deps: type-is@1.2.1 + +4.4.1 / 2014-06-02 +================== + + * deps: methods@1.0.1 + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + * deps: serve-static@1.2.1 + - use `escape-html` for escaping + - deps: send@0.4.1 + +4.4.0 / 2014-05-30 +================== + + * custom etag control with `app.set('etag', val)` + - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation + - `app.set('etag', 'weak')` weak tag + - `app.set('etag', 'strong')` strong etag + - `app.set('etag', false)` turn off + - `app.set('etag', true)` standard etag + * mark `res.send` ETag as weak and reduce collisions + * update accepts to 1.0.2 + - Fix interpretation when header not in request + * update send to 0.4.0 + - Calculate ETag with md5 for reduced collisions + - Ignore stream errors after request ends + - deps: debug@0.8.1 + * update serve-static to 1.2.0 + - Calculate ETag with md5 for reduced collisions + - Ignore stream errors after request ends + - deps: send@0.4.0 + +4.3.2 / 2014-05-28 +================== + + * fix handling of errors from `router.param()` callbacks + +4.3.1 / 2014-05-23 +================== + + * revert "fix behavior of multiple `app.VERB` for the same path" + - this caused a regression in the order of route execution + +4.3.0 / 2014-05-21 +================== + + * add `req.baseUrl` to access the path stripped from `req.url` in routes + * fix behavior of multiple `app.VERB` for the same path + * fix issue routing requests among sub routers + * invoke `router.param()` only when necessary instead of every match + * proper proxy trust with `app.set('trust proxy', trust)` + - `app.set('trust proxy', 1)` trust first hop + - `app.set('trust proxy', 'loopback')` trust loopback addresses + - `app.set('trust proxy', '10.0.0.1')` trust single IP + - `app.set('trust proxy', '10.0.0.1/16')` trust subnet + - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list + - `app.set('trust proxy', false)` turn off + - `app.set('trust proxy', true)` trust everything + * set proper `charset` in `Content-Type` for `res.send` + * update type-is to 1.2.0 + - support suffix matching + +4.2.0 / 2014-05-11 +================== + + * deprecate `app.del()` -- use `app.delete()` instead + * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead + - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` + * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead + - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` + * fix `req.next` when inside router instance + * include `ETag` header in `HEAD` requests + * keep previous `Content-Type` for `res.jsonp` + * support PURGE method + - add `app.purge` + - add `router.purge` + - include PURGE in `app.all` + * update debug to 0.8.0 + - add `enable()` method + - change from stderr to stdout + * update methods to 1.0.0 + - add PURGE + +4.1.2 / 2014-05-08 +================== + + * fix `req.host` for IPv6 literals + * fix `res.jsonp` error if callback param is object + +4.1.1 / 2014-04-27 +================== + + * fix package.json to reflect supported node version + +4.1.0 / 2014-04-24 +================== + + * pass options from `res.sendfile` to `send` + * preserve casing of headers in `res.header` and `res.set` + * support unicode file names in `res.attachment` and `res.download` + * update accepts to 1.0.1 + - deps: negotiator@0.4.0 + * update cookie to 0.1.2 + - Fix for maxAge == 0 + - made compat with expires field + * update send to 0.3.0 + - Accept API options in options object + - Coerce option types + - Control whether to generate etags + - Default directory access to 403 when index disabled + - Fix sending files with dots without root set + - Include file path in etag + - Make "Can't set headers after they are sent." catchable + - Send full entity-body for multi range requests + - Set etags to "weak" + - Support "If-Range" header + - Support multiple index paths + - deps: mime@1.2.11 + * update serve-static to 1.1.0 + - Accept options directly to `send` module + - Resolve relative paths at middleware setup + - Use parseurl to parse the URL from request + - deps: send@0.3.0 + * update type-is to 1.1.0 + - add non-array values support + - add `multipart` as a shorthand + +4.0.0 / 2014-04-09 +================== + + * remove: + - node 0.8 support + - connect and connect's patches except for charset handling + - express(1) - moved to [express-generator](https://github.com/expressjs/generator) + - `express.createServer()` - it has been deprecated for a long time. Use `express()` + - `app.configure` - use logic in your own app code + - `app.router` - is removed + - `req.auth` - use `basic-auth` instead + - `req.accepted*` - use `req.accepts*()` instead + - `res.location` - relative URL resolution is removed + - `res.charset` - include the charset in the content type when using `res.set()` + - all bundled middleware except `static` + * change: + - `app.route` -> `app.mountpath` when mounting an express app in another express app + - `json spaces` no longer enabled by default in development + - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings` + - `req.params` is now an object instead of an array + - `res.locals` is no longer a function. It is a plain js object. Treat it as such. + - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object + * refactor: + - `req.accepts*` with [accepts](https://github.com/expressjs/accepts) + - `req.is` with [type-is](https://github.com/expressjs/type-is) + - [path-to-regexp](https://github.com/component/path-to-regexp) + * add: + - `app.router()` - returns the app Router instance + - `app.route()` - Proxy to the app's `Router#route()` method to create a new route + - Router & Route - public API + +3.21.2 / 2015-07-31 +=================== + + * deps: connect@2.30.2 + - deps: body-parser@~1.13.3 + - deps: compression@~1.5.2 + - deps: errorhandler@~1.4.2 + - deps: method-override@~2.3.5 + - deps: serve-index@~1.7.2 + - deps: type-is@~1.6.6 + - deps: vhost@~3.0.1 + * deps: vary@~1.0.1 + - Fix setting empty header from empty `field` + - perf: enable strict mode + - perf: remove argument reassignments + +3.21.1 / 2015-07-05 +=================== + + * deps: basic-auth@~1.0.3 + * deps: connect@2.30.1 + - deps: body-parser@~1.13.2 + - deps: compression@~1.5.1 + - deps: errorhandler@~1.4.1 + - deps: morgan@~1.6.1 + - deps: pause@0.1.0 + - deps: qs@4.0.0 + - deps: serve-index@~1.7.1 + - deps: type-is@~1.6.4 + +3.21.0 / 2015-06-18 +=================== + + * deps: basic-auth@1.0.2 + - perf: enable strict mode + - perf: hoist regular expression + - perf: parse with regular expressions + - perf: remove argument reassignment + * deps: connect@2.30.0 + - deps: body-parser@~1.13.1 + - deps: bytes@2.1.0 + - deps: compression@~1.5.0 + - deps: cookie@0.1.3 + - deps: cookie-parser@~1.3.5 + - deps: csurf@~1.8.3 + - deps: errorhandler@~1.4.0 + - deps: express-session@~1.11.3 + - deps: finalhandler@0.4.0 + - deps: fresh@0.3.0 + - deps: morgan@~1.6.0 + - deps: serve-favicon@~2.3.0 + - deps: serve-index@~1.7.0 + - deps: serve-static@~1.10.0 + - deps: type-is@~1.6.3 + * deps: cookie@0.1.3 + - perf: deduce the scope of try-catch deopt + - perf: remove argument reassignments + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Always include entity length in ETags for hash length extensions + - Generate non-Stats ETags using MD5 only (no longer CRC32) + - Improve stat performance by removing hashing + - Improve support for JXcore + - Remove base64 padding in ETags to shorten + - Support "fake" stats objects in environments without fs + - Use MD5 instead of MD4 in weak ETags over 1KB + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: mkdirp@0.5.1 + - Work in global strict mode + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + +3.20.3 / 2015-05-17 +=================== + + * deps: connect@2.29.2 + - deps: body-parser@~1.12.4 + - deps: compression@~1.4.4 + - deps: connect-timeout@~1.6.2 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: errorhandler@~1.3.6 + - deps: finalhandler@0.3.6 + - deps: method-override@~2.3.3 + - deps: morgan@~1.5.3 + - deps: qs@2.4.2 + - deps: response-time@~2.3.1 + - deps: serve-favicon@~2.2.1 + - deps: serve-index@~1.6.4 + - deps: serve-static@~1.9.3 + - deps: type-is@~1.6.2 + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: proxy-addr@~1.0.8 + - deps: ipaddr.js@1.0.1 + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + +3.20.2 / 2015-03-16 +=================== + + * deps: connect@2.29.1 + - deps: body-parser@~1.12.2 + - deps: compression@~1.4.3 + - deps: connect-timeout@~1.6.1 + - deps: debug@~2.1.3 + - deps: errorhandler@~1.3.5 + - deps: express-session@~1.10.4 + - deps: finalhandler@0.3.4 + - deps: method-override@~2.3.2 + - deps: morgan@~1.5.2 + - deps: qs@2.4.1 + - deps: serve-index@~1.6.3 + - deps: serve-static@~1.9.2 + - deps: type-is@~1.6.1 + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: merge-descriptors@1.0.0 + * deps: proxy-addr@~1.0.7 + - deps: ipaddr.js@0.1.9 + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + +3.20.1 / 2015-02-28 +=================== + + * Fix `req.host` when using "trust proxy" hops count + * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count + +3.20.0 / 2015-02-18 +=================== + + * Fix `"trust proxy"` setting to inherit when app is mounted + * Generate `ETag`s for all request responses + - No longer restricted to only responses for `GET` and `HEAD` requests + * Use `content-type` to parse `Content-Type` headers + * deps: connect@2.29.0 + - Use `content-type` to parse `Content-Type` headers + - deps: body-parser@~1.12.0 + - deps: compression@~1.4.1 + - deps: connect-timeout@~1.6.0 + - deps: cookie-parser@~1.3.4 + - deps: cookie-signature@1.0.6 + - deps: csurf@~1.7.0 + - deps: errorhandler@~1.3.4 + - deps: express-session@~1.10.3 + - deps: http-errors@~1.3.1 + - deps: response-time@~2.3.0 + - deps: serve-index@~1.6.2 + - deps: serve-static@~1.9.1 + - deps: type-is@~1.6.0 + * deps: cookie-signature@1.0.6 + * deps: send@0.12.1 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + +3.19.2 / 2015-02-01 +=================== + + * deps: connect@2.28.3 + - deps: compression@~1.3.1 + - deps: csurf@~1.6.6 + - deps: errorhandler@~1.3.3 + - deps: express-session@~1.10.2 + - deps: serve-index@~1.6.1 + - deps: type-is@~1.5.6 + * deps: proxy-addr@~1.0.6 + - deps: ipaddr.js@0.1.8 + +3.19.1 / 2015-01-20 +=================== + + * deps: connect@2.28.2 + - deps: body-parser@~1.10.2 + - deps: serve-static@~1.8.1 + * deps: send@0.11.1 + - Fix root path disclosure + +3.19.0 / 2015-01-09 +=================== + + * Fix `OPTIONS` responses to include the `HEAD` method property + * Use `readline` for prompt in `express(1)` + * deps: commander@2.6.0 + * deps: connect@2.28.1 + - deps: body-parser@~1.10.1 + - deps: compression@~1.3.0 + - deps: connect-timeout@~1.5.0 + - deps: csurf@~1.6.4 + - deps: debug@~2.1.1 + - deps: errorhandler@~1.3.2 + - deps: express-session@~1.10.1 + - deps: finalhandler@0.3.3 + - deps: method-override@~2.3.1 + - deps: morgan@~1.5.1 + - deps: serve-favicon@~2.2.0 + - deps: serve-index@~1.6.0 + - deps: serve-static@~1.8.0 + - deps: type-is@~1.5.5 + * deps: debug@~2.1.1 + * deps: methods@~1.1.1 + * deps: proxy-addr@~1.0.5 + - deps: ipaddr.js@0.1.6 + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + +3.18.6 / 2014-12-12 +=================== + + * Fix exception in `req.fresh`/`req.stale` without response headers + +3.18.5 / 2014-12-11 +=================== + + * deps: connect@2.27.6 + - deps: compression@~1.2.2 + - deps: express-session@~1.9.3 + - deps: http-errors@~1.2.8 + - deps: serve-index@~1.5.3 + - deps: type-is@~1.5.4 + +3.18.4 / 2014-11-23 +=================== + + * deps: connect@2.27.4 + - deps: body-parser@~1.9.3 + - deps: compression@~1.2.1 + - deps: errorhandler@~1.2.3 + - deps: express-session@~1.9.2 + - deps: qs@2.3.3 + - deps: serve-favicon@~2.1.7 + - deps: serve-static@~1.5.1 + - deps: type-is@~1.5.3 + * deps: etag@~1.5.1 + * deps: proxy-addr@~1.0.4 + - deps: ipaddr.js@0.1.5 + +3.18.3 / 2014-11-09 +=================== + + * deps: connect@2.27.3 + - Correctly invoke async callback asynchronously + - deps: csurf@~1.6.3 + +3.18.2 / 2014-10-28 +=================== + + * deps: connect@2.27.2 + - Fix handling of URLs containing `://` in the path + - deps: body-parser@~1.9.2 + - deps: qs@2.3.2 + +3.18.1 / 2014-10-22 +=================== + + * Fix internal `utils.merge` deprecation warnings + * deps: connect@2.27.1 + - deps: body-parser@~1.9.1 + - deps: express-session@~1.9.1 + - deps: finalhandler@0.3.2 + - deps: morgan@~1.4.1 + - deps: qs@2.3.0 + - deps: serve-static@~1.7.1 + * deps: send@0.10.1 + - deps: on-finished@~2.1.1 + +3.18.0 / 2014-10-17 +=================== + + * Use `content-disposition` module for `res.attachment`/`res.download` + - Sends standards-compliant `Content-Disposition` header + - Full Unicode support + * Use `etag` module to generate `ETag` headers + * deps: connect@2.27.0 + - Use `http-errors` module for creating errors + - Use `utils-merge` module for merging objects + - deps: body-parser@~1.9.0 + - deps: compression@~1.2.0 + - deps: connect-timeout@~1.4.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: express-session@~1.9.0 + - deps: finalhandler@0.3.1 + - deps: method-override@~2.3.0 + - deps: morgan@~1.4.0 + - deps: response-time@~2.2.0 + - deps: serve-favicon@~2.1.6 + - deps: serve-index@~1.5.0 + - deps: serve-static@~1.7.0 + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: send@0.10.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + +3.17.8 / 2014-10-15 +=================== + + * deps: connect@2.26.6 + - deps: compression@~1.1.2 + - deps: csurf@~1.6.2 + - deps: errorhandler@~1.2.2 + +3.17.7 / 2014-10-08 +=================== + + * deps: connect@2.26.5 + - Fix accepting non-object arguments to `logger` + - deps: serve-static@~1.6.4 + +3.17.6 / 2014-10-02 +=================== + + * deps: connect@2.26.4 + - deps: morgan@~1.3.2 + - deps: type-is@~1.5.2 + +3.17.5 / 2014-09-24 +=================== + + * deps: connect@2.26.3 + - deps: body-parser@~1.8.4 + - deps: serve-favicon@~2.1.5 + - deps: serve-static@~1.6.3 + * deps: proxy-addr@~1.0.3 + - Use `forwarded` npm module + * deps: send@0.9.3 + - deps: etag@~1.4.0 + +3.17.4 / 2014-09-19 +=================== + + * deps: connect@2.26.2 + - deps: body-parser@~1.8.3 + - deps: qs@2.2.4 + +3.17.3 / 2014-09-18 +=================== + + * deps: proxy-addr@~1.0.2 + - Fix a global leak when multiple subnets are trusted + - deps: ipaddr.js@0.1.3 + +3.17.2 / 2014-09-15 +=================== + + * Use `crc` instead of `buffer-crc32` for speed + * deps: connect@2.26.1 + - deps: body-parser@~1.8.2 + - deps: depd@0.4.5 + - deps: express-session@~1.8.2 + - deps: morgan@~1.3.1 + - deps: serve-favicon@~2.1.3 + - deps: serve-static@~1.6.2 + * deps: depd@0.4.5 + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + +3.17.1 / 2014-09-08 +=================== + + * Fix error in `req.subdomains` on empty host + +3.17.0 / 2014-09-08 +=================== + + * Support `X-Forwarded-Host` in `req.subdomains` + * Support IP address host in `req.subdomains` + * deps: connect@2.26.0 + - deps: body-parser@~1.8.1 + - deps: compression@~1.1.0 + - deps: connect-timeout@~1.3.0 + - deps: cookie-parser@~1.3.3 + - deps: cookie-signature@1.0.5 + - deps: csurf@~1.6.1 + - deps: debug@~2.0.0 + - deps: errorhandler@~1.2.0 + - deps: express-session@~1.8.1 + - deps: finalhandler@0.2.0 + - deps: fresh@0.2.4 + - deps: media-typer@0.3.0 + - deps: method-override@~2.2.0 + - deps: morgan@~1.3.0 + - deps: qs@2.2.3 + - deps: serve-favicon@~2.1.3 + - deps: serve-index@~1.2.1 + - deps: serve-static@~1.6.1 + - deps: type-is@~1.5.1 + - deps: vhost@~3.0.0 + * deps: cookie-signature@1.0.5 + * deps: debug@~2.0.0 + * deps: fresh@0.2.4 + * deps: media-typer@0.3.0 + - Throw error when parameter format invalid on parse + * deps: range-parser@~1.0.2 + * deps: send@0.9.1 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + - deps: fresh@0.2.4 + * deps: vary@~1.0.0 + - Accept valid `Vary` header string as `field` + +3.16.10 / 2014-09-04 +==================== + + * deps: connect@2.25.10 + - deps: serve-static@~1.5.4 + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + +3.16.9 / 2014-08-29 +=================== + + * deps: connect@2.25.9 + - deps: body-parser@~1.6.7 + - deps: qs@2.2.2 + +3.16.8 / 2014-08-27 +=================== + + * deps: connect@2.25.8 + - deps: body-parser@~1.6.6 + - deps: csurf@~1.4.1 + - deps: qs@2.2.0 + +3.16.7 / 2014-08-18 +=================== + + * deps: connect@2.25.7 + - deps: body-parser@~1.6.5 + - deps: express-session@~1.7.6 + - deps: morgan@~1.2.3 + - deps: serve-static@~1.5.3 + * deps: send@0.8.3 + - deps: destroy@1.0.3 + - deps: on-finished@2.1.0 + +3.16.6 / 2014-08-14 +=================== + + * deps: connect@2.25.6 + - deps: body-parser@~1.6.4 + - deps: qs@1.2.2 + - deps: serve-static@~1.5.2 + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + +3.16.5 / 2014-08-11 +=================== + + * deps: connect@2.25.5 + - Fix backwards compatibility in `logger` + +3.16.4 / 2014-08-10 +=================== + + * Fix original URL parsing in `res.location` + * deps: connect@2.25.4 + - Fix `query` middleware breaking with argument + - deps: body-parser@~1.6.3 + - deps: compression@~1.0.11 + - deps: connect-timeout@~1.2.2 + - deps: express-session@~1.7.5 + - deps: method-override@~2.1.3 + - deps: on-headers@~1.0.0 + - deps: parseurl@~1.3.0 + - deps: qs@1.2.1 + - deps: response-time@~2.0.1 + - deps: serve-index@~1.1.6 + - deps: serve-static@~1.5.1 + * deps: parseurl@~1.3.0 + +3.16.3 / 2014-08-07 +=================== + + * deps: connect@2.25.3 + - deps: multiparty@3.3.2 + +3.16.2 / 2014-08-07 +=================== + + * deps: connect@2.25.2 + - deps: body-parser@~1.6.2 + - deps: qs@1.2.0 + +3.16.1 / 2014-08-06 +=================== + + * deps: connect@2.25.1 + - deps: body-parser@~1.6.1 + - deps: qs@1.1.0 + +3.16.0 / 2014-08-05 +=================== + + * deps: connect@2.25.0 + - deps: body-parser@~1.6.0 + - deps: compression@~1.0.10 + - deps: csurf@~1.4.0 + - deps: express-session@~1.7.4 + - deps: qs@1.0.2 + - deps: serve-static@~1.5.0 + * deps: send@0.8.1 + - Add `extensions` option + +3.15.3 / 2014-08-04 +=================== + + * fix `res.sendfile` regression for serving directory index files + * deps: connect@2.24.3 + - deps: serve-index@~1.1.5 + - deps: serve-static@~1.4.4 + * deps: send@0.7.4 + - Fix incorrect 403 on Windows and Node.js 0.11 + - Fix serving index files without root dir + +3.15.2 / 2014-07-27 +=================== + + * deps: connect@2.24.2 + - deps: body-parser@~1.5.2 + - deps: depd@0.4.4 + - deps: express-session@~1.7.2 + - deps: morgan@~1.2.2 + - deps: serve-static@~1.4.2 + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + * deps: send@0.7.2 + - deps: depd@0.4.4 + +3.15.1 / 2014-07-26 +=================== + + * deps: connect@2.24.1 + - deps: body-parser@~1.5.1 + - deps: depd@0.4.3 + - deps: express-session@~1.7.1 + - deps: morgan@~1.2.1 + - deps: serve-index@~1.1.4 + - deps: serve-static@~1.4.1 + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + * deps: send@0.7.1 + - deps: depd@0.4.3 + +3.15.0 / 2014-07-22 +=================== + + * Fix `req.protocol` for proxy-direct connections + * Pass options from `res.sendfile` to `send` + * deps: connect@2.24.0 + - deps: body-parser@~1.5.0 + - deps: compression@~1.0.9 + - deps: connect-timeout@~1.2.1 + - deps: debug@1.0.4 + - deps: depd@0.4.2 + - deps: express-session@~1.7.0 + - deps: finalhandler@0.1.0 + - deps: method-override@~2.1.2 + - deps: morgan@~1.2.0 + - deps: multiparty@3.3.1 + - deps: parseurl@~1.2.0 + - deps: serve-static@~1.4.0 + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - Cap `maxAge` value to 1 year + - deps: debug@1.0.4 + - deps: depd@0.4.2 + +3.14.0 / 2014-07-11 +=================== + + * add explicit "Rosetta Flash JSONP abuse" protection + - previous versions are not vulnerable; this is just explicit protection + * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead + * fix `res.send(status, num)` to send `num` as json (not error) + * remove unnecessary escaping when `res.jsonp` returns JSON response + * deps: basic-auth@1.0.0 + - support empty password + - support empty username + * deps: connect@2.23.0 + - deps: debug@1.0.3 + - deps: express-session@~1.6.4 + - deps: method-override@~2.1.0 + - deps: parseurl@~1.1.3 + - deps: serve-static@~1.3.1 + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + * deps: methods@1.1.0 + - add `CONNECT` + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + +3.13.0 / 2014-07-03 +=================== + + * add deprecation message to `app.configure` + * add deprecation message to `req.auth` + * use `basic-auth` to parse `Authorization` header + * deps: connect@2.22.0 + - deps: csurf@~1.3.0 + - deps: express-session@~1.6.1 + - deps: multiparty@3.3.0 + - deps: serve-static@~1.3.0 + * deps: send@0.5.0 + - Accept string for `maxage` (converted by `ms`) + - Include link in default redirect response + +3.12.1 / 2014-06-26 +=================== + + * deps: connect@2.21.1 + - deps: cookie-parser@1.3.2 + - deps: cookie-signature@1.0.4 + - deps: express-session@~1.5.2 + - deps: type-is@~1.3.2 + * deps: cookie-signature@1.0.4 + - fix for timing attacks + +3.12.0 / 2014-06-21 +=================== + + * use `media-typer` to alter content-type charset + * deps: connect@2.21.0 + - deprecate `connect(middleware)` -- use `app.use(middleware)` instead + - deprecate `connect.createServer()` -- use `connect()` instead + - fix `res.setHeader()` patch to work with with get -> append -> set pattern + - deps: compression@~1.0.8 + - deps: errorhandler@~1.1.1 + - deps: express-session@~1.5.0 + - deps: serve-index@~1.1.3 + +3.11.0 / 2014-06-19 +=================== + + * deprecate things with `depd` module + * deps: buffer-crc32@0.2.3 + * deps: connect@2.20.2 + - deprecate `verify` option to `json` -- use `body-parser` npm module instead + - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead + - deprecate things with `depd` module + - use `finalhandler` for final response handling + - use `media-typer` to parse `content-type` for charset + - deps: body-parser@1.4.3 + - deps: connect-timeout@1.1.1 + - deps: cookie-parser@1.3.1 + - deps: csurf@1.2.2 + - deps: errorhandler@1.1.0 + - deps: express-session@1.4.0 + - deps: multiparty@3.2.9 + - deps: serve-index@1.1.2 + - deps: type-is@1.3.1 + - deps: vhost@2.0.0 + +3.10.5 / 2014-06-11 +=================== + + * deps: connect@2.19.6 + - deps: body-parser@1.3.1 + - deps: compression@1.0.7 + - deps: debug@1.0.2 + - deps: serve-index@1.1.1 + - deps: serve-static@1.2.3 + * deps: debug@1.0.2 + * deps: send@0.4.3 + - Do not throw uncatchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + +3.10.4 / 2014-06-09 +=================== + + * deps: connect@2.19.5 + - fix "event emitter leak" warnings + - deps: csurf@1.2.1 + - deps: debug@1.0.1 + - deps: serve-static@1.2.2 + - deps: type-is@1.2.1 + * deps: debug@1.0.1 + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: finished@1.2.1 + - deps: debug@1.0.1 + +3.10.3 / 2014-06-05 +=================== + + * use `vary` module for `res.vary` + * deps: connect@2.19.4 + - deps: errorhandler@1.0.2 + - deps: method-override@2.0.2 + - deps: serve-favicon@2.0.1 + * deps: debug@1.0.0 + +3.10.2 / 2014-06-03 +=================== + + * deps: connect@2.19.3 + - deps: compression@1.0.6 + +3.10.1 / 2014-06-03 +=================== + + * deps: connect@2.19.2 + - deps: compression@1.0.4 + * deps: proxy-addr@1.0.1 + +3.10.0 / 2014-06-02 +=================== + + * deps: connect@2.19.1 + - deprecate `methodOverride()` -- use `method-override` npm module instead + - deps: body-parser@1.3.0 + - deps: method-override@2.0.1 + - deps: multiparty@3.2.8 + - deps: response-time@2.0.0 + - deps: serve-static@1.2.1 + * deps: methods@1.0.1 + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + +3.9.0 / 2014-05-30 +================== + + * custom etag control with `app.set('etag', val)` + - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation + - `app.set('etag', 'weak')` weak tag + - `app.set('etag', 'strong')` strong etag + - `app.set('etag', false)` turn off + - `app.set('etag', true)` standard etag + * Include ETag in HEAD requests + * mark `res.send` ETag as weak and reduce collisions + * update connect to 2.18.0 + - deps: compression@1.0.3 + - deps: serve-index@1.1.0 + - deps: serve-static@1.2.0 + * update send to 0.4.0 + - Calculate ETag with md5 for reduced collisions + - Ignore stream errors after request ends + - deps: debug@0.8.1 + +3.8.1 / 2014-05-27 +================== + + * update connect to 2.17.3 + - deps: body-parser@1.2.2 + - deps: express-session@1.2.1 + - deps: method-override@1.0.2 + +3.8.0 / 2014-05-21 +================== + + * keep previous `Content-Type` for `res.jsonp` + * set proper `charset` in `Content-Type` for `res.send` + * update connect to 2.17.1 + - fix `res.charset` appending charset when `content-type` has one + - deps: express-session@1.2.0 + - deps: morgan@1.1.1 + - deps: serve-index@1.0.3 + +3.7.0 / 2014-05-18 +================== + + * proper proxy trust with `app.set('trust proxy', trust)` + - `app.set('trust proxy', 1)` trust first hop + - `app.set('trust proxy', 'loopback')` trust loopback addresses + - `app.set('trust proxy', '10.0.0.1')` trust single IP + - `app.set('trust proxy', '10.0.0.1/16')` trust subnet + - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list + - `app.set('trust proxy', false)` turn off + - `app.set('trust proxy', true)` trust everything + * update connect to 2.16.2 + - deprecate `res.headerSent` -- use `res.headersSent` + - deprecate `res.on("header")` -- use on-headers module instead + - fix edge-case in `res.appendHeader` that would append in wrong order + - json: use body-parser + - urlencoded: use body-parser + - dep: bytes@1.0.0 + - dep: cookie-parser@1.1.0 + - dep: csurf@1.2.0 + - dep: express-session@1.1.0 + - dep: method-override@1.0.1 + +3.6.0 / 2014-05-09 +================== + + * deprecate `app.del()` -- use `app.delete()` instead + * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead + - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` + * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead + - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` + * support PURGE method + - add `app.purge` + - add `router.purge` + - include PURGE in `app.all` + * update connect to 2.15.0 + * Add `res.appendHeader` + * Call error stack even when response has been sent + * Patch `res.headerSent` to return Boolean + * Patch `res.headersSent` for node.js 0.8 + * Prevent default 404 handler after response sent + * dep: compression@1.0.2 + * dep: connect-timeout@1.1.0 + * dep: debug@^0.8.0 + * dep: errorhandler@1.0.1 + * dep: express-session@1.0.4 + * dep: morgan@1.0.1 + * dep: serve-favicon@2.0.0 + * dep: serve-index@1.0.2 + * update debug to 0.8.0 + * add `enable()` method + * change from stderr to stdout + * update methods to 1.0.0 + - add PURGE + * update mkdirp to 0.5.0 + +3.5.3 / 2014-05-08 +================== + + * fix `req.host` for IPv6 literals + * fix `res.jsonp` error if callback param is object + +3.5.2 / 2014-04-24 +================== + + * update connect to 2.14.5 + * update cookie to 0.1.2 + * update mkdirp to 0.4.0 + * update send to 0.3.0 + +3.5.1 / 2014-03-25 +================== + + * pin less-middleware in generated app + +3.5.0 / 2014-03-06 +================== + + * bump deps + +3.4.8 / 2014-01-13 +================== + + * prevent incorrect automatic OPTIONS responses #1868 @dpatti + * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi + * throw 400 in case of malformed paths @rlidwka + +3.4.7 / 2013-12-10 +================== + + * update connect + +3.4.6 / 2013-12-01 +================== + + * update connect (raw-body) + +3.4.5 / 2013-11-27 +================== + + * update connect + * res.location: remove leading ./ #1802 @kapouer + * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra + * res.send: always send ETag when content-length > 0 + * router: add Router.all() method + +3.4.4 / 2013-10-29 +================== + + * update connect + * update supertest + * update methods + * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04 + +3.4.3 / 2013-10-23 +================== + + * update connect + +3.4.2 / 2013-10-18 +================== + + * update connect + * downgrade commander + +3.4.1 / 2013-10-15 +================== + + * update connect + * update commander + * jsonp: check if callback is a function + * router: wrap encodeURIComponent in a try/catch #1735 (@lxe) + * res.format: now includes charset @1747 (@sorribas) + * res.links: allow multiple calls @1746 (@sorribas) + +3.4.0 / 2013-09-07 +================== + + * add res.vary(). Closes #1682 + * update connect + +3.3.8 / 2013-09-02 +================== + + * update connect + +3.3.7 / 2013-08-28 +================== + + * update connect + +3.3.6 / 2013-08-27 +================== + + * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients) + * add: req.accepts take an argument list + +3.3.4 / 2013-07-08 +================== + + * update send and connect + +3.3.3 / 2013-07-04 +================== + + * update connect + +3.3.2 / 2013-07-03 +================== + + * update connect + * update send + * remove .version export + +3.3.1 / 2013-06-27 +================== + + * update connect + +3.3.0 / 2013-06-26 +================== + + * update connect + * add support for multiple X-Forwarded-Proto values. Closes #1646 + * change: remove charset from json responses. Closes #1631 + * change: return actual booleans from req.accept* functions + * fix jsonp callback array throw + +3.2.6 / 2013-06-02 +================== + + * update connect + +3.2.5 / 2013-05-21 +================== + + * update connect + * update node-cookie + * add: throw a meaningful error when there is no default engine + * change generation of ETags with res.send() to GET requests only. Closes #1619 + +3.2.4 / 2013-05-09 +================== + + * fix `req.subdomains` when no Host is present + * fix `req.host` when no Host is present, return undefined + +3.2.3 / 2013-05-07 +================== + + * update connect / qs + +3.2.2 / 2013-05-03 +================== + + * update qs + +3.2.1 / 2013-04-29 +================== + + * add app.VERB() paths array deprecation warning + * update connect + * update qs and remove all ~ semver crap + * fix: accept number as value of Signed Cookie + +3.2.0 / 2013-04-15 +================== + + * add "view" constructor setting to override view behaviour + * add req.acceptsEncoding(name) + * add req.acceptedEncodings + * revert cookie signature change causing session race conditions + * fix sorting of Accept values of the same quality + +3.1.2 / 2013-04-12 +================== + + * add support for custom Accept parameters + * update cookie-signature + +3.1.1 / 2013-04-01 +================== + + * add X-Forwarded-Host support to `req.host` + * fix relative redirects + * update mkdirp + * update buffer-crc32 + * remove legacy app.configure() method from app template. + +3.1.0 / 2013-01-25 +================== + + * add support for leading "." in "view engine" setting + * add array support to `res.set()` + * add node 0.8.x to travis.yml + * add "subdomain offset" setting for tweaking `req.subdomains` + * add `res.location(url)` implementing `res.redirect()`-like setting of Location + * use app.get() for x-powered-by setting for inheritance + * fix colons in passwords for `req.auth` + +3.0.6 / 2013-01-04 +================== + + * add http verb methods to Router + * update connect + * fix mangling of the `res.cookie()` options object + * fix jsonp whitespace escape. Closes #1132 + +3.0.5 / 2012-12-19 +================== + + * add throwing when a non-function is passed to a route + * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses + * revert "add 'etag' option" + +3.0.4 / 2012-12-05 +================== + + * add 'etag' option to disable `res.send()` Etags + * add escaping of urls in text/plain in `res.redirect()` + for old browsers interpreting as html + * change crc32 module for a more liberal license + * update connect + +3.0.3 / 2012-11-13 +================== + + * update connect + * update cookie module + * fix cookie max-age + +3.0.2 / 2012-11-08 +================== + + * add OPTIONS to cors example. Closes #1398 + * fix route chaining regression. Closes #1397 + +3.0.1 / 2012-11-01 +================== + + * update connect + +3.0.0 / 2012-10-23 +================== + + * add `make clean` + * add "Basic" check to req.auth + * add `req.auth` test coverage + * add cb && cb(payload) to `res.jsonp()`. Closes #1374 + * add backwards compat for `res.redirect()` status. Closes #1336 + * add support for `res.json()` to retain previously defined Content-Types. Closes #1349 + * update connect + * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382 + * remove non-primitive string support for `res.send()` + * fix view-locals example. Closes #1370 + * fix route-separation example + +3.0.0rc5 / 2012-09-18 +================== + + * update connect + * add redis search example + * add static-files example + * add "x-powered-by" setting (`app.disable('x-powered-by')`) + * add "application/octet-stream" redirect Accept test case. Closes #1317 + +3.0.0rc4 / 2012-08-30 +================== + + * add `res.jsonp()`. Closes #1307 + * add "verbose errors" option to error-pages example + * add another route example to express(1) so people are not so confused + * add redis online user activity tracking example + * update connect dep + * fix etag quoting. Closes #1310 + * fix error-pages 404 status + * fix jsonp callback char restrictions + * remove old OPTIONS default response + +3.0.0rc3 / 2012-08-13 +================== + + * update connect dep + * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds] + * fix `res.render()` clobbering of "locals" + +3.0.0rc2 / 2012-08-03 +================== + + * add CORS example + * update connect dep + * deprecate `.createServer()` & remove old stale examples + * fix: escape `res.redirect()` link + * fix vhost example + +3.0.0rc1 / 2012-07-24 +================== + + * add more examples to view-locals + * add scheme-relative redirects (`res.redirect("//foo.com")`) support + * update cookie dep + * update connect dep + * update send dep + * fix `express(1)` -h flag, use -H for hogan. Closes #1245 + * fix `res.sendfile()` socket error handling regression + +3.0.0beta7 / 2012-07-16 +================== + + * update connect dep for `send()` root normalization regression + +3.0.0beta6 / 2012-07-13 +================== + + * add `err.view` property for view errors. Closes #1226 + * add "jsonp callback name" setting + * add support for "/foo/:bar*" non-greedy matches + * change `res.sendfile()` to use `send()` module + * change `res.send` to use "response-send" module + * remove `app.locals.use` and `res.locals.use`, use regular middleware + +3.0.0beta5 / 2012-07-03 +================== + + * add "make check" support + * add route-map example + * add `res.json(obj, status)` support back for BC + * add "methods" dep, remove internal methods module + * update connect dep + * update auth example to utilize cores pbkdf2 + * updated tests to use "supertest" + +3.0.0beta4 / 2012-06-25 +================== + + * Added `req.auth` + * Added `req.range(size)` + * Added `res.links(obj)` + * Added `res.send(body, status)` support back for backwards compat + * Added `.default()` support to `res.format()` + * Added 2xx / 304 check to `req.fresh` + * Revert "Added + support to the router" + * Fixed `res.send()` freshness check, respect res.statusCode + +3.0.0beta3 / 2012-06-15 +================== + + * Added hogan `--hjs` to express(1) [nullfirm] + * Added another example to content-negotiation + * Added `fresh` dep + * Changed: `res.send()` always checks freshness + * Fixed: expose connects mime module. Closes #1165 + +3.0.0beta2 / 2012-06-06 +================== + + * Added `+` support to the router + * Added `req.host` + * Changed `req.param()` to check route first + * Update connect dep + +3.0.0beta1 / 2012-06-01 +================== + + * Added `res.format()` callback to override default 406 behaviour + * Fixed `res.redirect()` 406. Closes #1154 + +3.0.0alpha5 / 2012-05-30 +================== + + * Added `req.ip` + * Added `{ signed: true }` option to `res.cookie()` + * Removed `res.signedCookie()` + * Changed: dont reverse `req.ips` + * Fixed "trust proxy" setting check for `req.ips` + +3.0.0alpha4 / 2012-05-09 +================== + + * Added: allow `[]` in jsonp callback. Closes #1128 + * Added `PORT` env var support in generated template. Closes #1118 [benatkin] + * Updated: connect 2.2.2 + +3.0.0alpha3 / 2012-05-04 +================== + + * Added public `app.routes`. Closes #887 + * Added _view-locals_ example + * Added _mvc_ example + * Added `res.locals.use()`. Closes #1120 + * Added conditional-GET support to `res.send()` + * Added: coerce `res.set()` values to strings + * Changed: moved `static()` in generated apps below router + * Changed: `res.send()` only set ETag when not previously set + * Changed connect 2.2.1 dep + * Changed: `make test` now runs unit / acceptance tests + * Fixed req/res proto inheritance + +3.0.0alpha2 / 2012-04-26 +================== + + * Added `make benchmark` back + * Added `res.send()` support for `String` objects + * Added client-side data exposing example + * Added `res.header()` and `req.header()` aliases for BC + * Added `express.createServer()` for BC + * Perf: memoize parsed urls + * Perf: connect 2.2.0 dep + * Changed: make `expressInit()` middleware self-aware + * Fixed: use app.get() for all core settings + * Fixed redis session example + * Fixed session example. Closes #1105 + * Fixed generated express dep. Closes #1078 + +3.0.0alpha1 / 2012-04-15 +================== + + * Added `app.locals.use(callback)` + * Added `app.locals` object + * Added `app.locals(obj)` + * Added `res.locals` object + * Added `res.locals(obj)` + * Added `res.format()` for content-negotiation + * Added `app.engine()` + * Added `res.cookie()` JSON cookie support + * Added "trust proxy" setting + * Added `req.subdomains` + * Added `req.protocol` + * Added `req.secure` + * Added `req.path` + * Added `req.ips` + * Added `req.fresh` + * Added `req.stale` + * Added comma-delimited / array support for `req.accepts()` + * Added debug instrumentation + * Added `res.set(obj)` + * Added `res.set(field, value)` + * Added `res.get(field)` + * Added `app.get(setting)`. Closes #842 + * Added `req.acceptsLanguage()` + * Added `req.acceptsCharset()` + * Added `req.accepted` + * Added `req.acceptedLanguages` + * Added `req.acceptedCharsets` + * Added "json replacer" setting + * Added "json spaces" setting + * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92 + * Added `--less` support to express(1) + * Added `express.response` prototype + * Added `express.request` prototype + * Added `express.application` prototype + * Added `app.path()` + * Added `app.render()` + * Added `res.type()` to replace `res.contentType()` + * Changed: `res.redirect()` to add relative support + * Changed: enable "jsonp callback" by default + * Changed: renamed "case sensitive routes" to "case sensitive routing" + * Rewrite of all tests with mocha + * Removed "root" setting + * Removed `res.redirect('home')` support + * Removed `req.notify()` + * Removed `app.register()` + * Removed `app.redirect()` + * Removed `app.is()` + * Removed `app.helpers()` + * Removed `app.dynamicHelpers()` + * Fixed `res.sendfile()` with non-GET. Closes #723 + * Fixed express(1) public dir for windows. Closes #866 + +2.5.9/ 2012-04-02 +================== + + * Added support for PURGE request method [pbuyle] + * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki] + +2.5.8 / 2012-02-08 +================== + + * Update mkdirp dep. Closes #991 + +2.5.7 / 2012-02-06 +================== + + * Fixed `app.all` duplicate DELETE requests [mscdex] + +2.5.6 / 2012-01-13 +================== + + * Updated hamljs dev dep. Closes #953 + +2.5.5 / 2012-01-08 +================== + + * Fixed: set `filename` on cached templates [matthewleon] + +2.5.4 / 2012-01-02 +================== + + * Fixed `express(1)` eol on 0.4.x. Closes #947 + +2.5.3 / 2011-12-30 +================== + + * Fixed `req.is()` when a charset is present + +2.5.2 / 2011-12-10 +================== + + * Fixed: express(1) LF -> CRLF for windows + +2.5.1 / 2011-11-17 +================== + + * Changed: updated connect to 1.8.x + * Removed sass.js support from express(1) + +2.5.0 / 2011-10-24 +================== + + * Added ./routes dir for generated app by default + * Added npm install reminder to express(1) app gen + * Added 0.5.x support + * Removed `make test-cov` since it wont work with node 0.5.x + * Fixed express(1) public dir for windows. Closes #866 + +2.4.7 / 2011-10-05 +================== + + * Added mkdirp to express(1). Closes #795 + * Added simple _json-config_ example + * Added shorthand for the parsed request's pathname via `req.path` + * Changed connect dep to 1.7.x to fix npm issue... + * Fixed `res.redirect()` __HEAD__ support. [reported by xerox] + * Fixed `req.flash()`, only escape args + * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie] + +2.4.6 / 2011-08-22 +================== + + * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode] + +2.4.5 / 2011-08-19 +================== + + * Added support for routes to handle errors. Closes #809 + * Added `app.routes.all()`. Closes #803 + * Added "basepath" setting to work in conjunction with reverse proxies etc. + * Refactored `Route` to use a single array of callbacks + * Added support for multiple callbacks for `app.param()`. Closes #801 +Closes #805 + * Changed: removed .call(self) for route callbacks + * Dependency: `qs >= 0.3.1` + * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808 + +2.4.4 / 2011-08-05 +================== + + * Fixed `res.header()` intention of a set, even when `undefined` + * Fixed `*`, value no longer required + * Fixed `res.send(204)` support. Closes #771 + +2.4.3 / 2011-07-14 +================== + + * Added docs for `status` option special-case. Closes #739 + * Fixed `options.filename`, exposing the view path to template engines + +2.4.2. / 2011-07-06 +================== + + * Revert "removed jsonp stripping" for XSS + +2.4.1 / 2011-07-06 +================== + + * Added `res.json()` JSONP support. Closes #737 + * Added _extending-templates_ example. Closes #730 + * Added "strict routing" setting for trailing slashes + * Added support for multiple envs in `app.configure()` calls. Closes #735 + * Changed: `res.send()` using `res.json()` + * Changed: when cookie `path === null` don't default it + * Changed; default cookie path to "home" setting. Closes #731 + * Removed _pids/logs_ creation from express(1) + +2.4.0 / 2011-06-28 +================== + + * Added chainable `res.status(code)` + * Added `res.json()`, an explicit version of `res.send(obj)` + * Added simple web-service example + +2.3.12 / 2011-06-22 +================== + + * \#express is now on freenode! come join! + * Added `req.get(field, param)` + * Added links to Japanese documentation, thanks @hideyukisaito! + * Added; the `express(1)` generated app outputs the env + * Added `content-negotiation` example + * Dependency: connect >= 1.5.1 < 2.0.0 + * Fixed view layout bug. Closes #720 + * Fixed; ignore body on 304. Closes #701 + +2.3.11 / 2011-06-04 +================== + + * Added `npm test` + * Removed generation of dummy test file from `express(1)` + * Fixed; `express(1)` adds express as a dep + * Fixed; prune on `prepublish` + +2.3.10 / 2011-05-27 +================== + + * Added `req.route`, exposing the current route + * Added _package.json_ generation support to `express(1)` + * Fixed call to `app.param()` function for optional params. Closes #682 + +2.3.9 / 2011-05-25 +================== + + * Fixed bug-ish with `../' in `res.partial()` calls + +2.3.8 / 2011-05-24 +================== + + * Fixed `app.options()` + +2.3.7 / 2011-05-23 +================== + + * Added route `Collection`, ex: `app.get('/user/:id').remove();` + * Added support for `app.param(fn)` to define param logic + * Removed `app.param()` support for callback with return value + * Removed module.parent check from express(1) generated app. Closes #670 + * Refactored router. Closes #639 + +2.3.6 / 2011-05-20 +================== + + * Changed; using devDependencies instead of git submodules + * Fixed redis session example + * Fixed markdown example + * Fixed view caching, should not be enabled in development + +2.3.5 / 2011-05-20 +================== + + * Added export `.view` as alias for `.View` + +2.3.4 / 2011-05-08 +================== + + * Added `./examples/say` + * Fixed `res.sendfile()` bug preventing the transfer of files with spaces + +2.3.3 / 2011-05-03 +================== + + * Added "case sensitive routes" option. + * Changed; split methods supported per rfc [slaskis] + * Fixed route-specific middleware when using the same callback function several times + +2.3.2 / 2011-04-27 +================== + + * Fixed view hints + +2.3.1 / 2011-04-26 +================== + + * Added `app.match()` as `app.match.all()` + * Added `app.lookup()` as `app.lookup.all()` + * Added `app.remove()` for `app.remove.all()` + * Added `app.remove.VERB()` + * Fixed template caching collision issue. Closes #644 + * Moved router over from connect and started refactor + +2.3.0 / 2011-04-25 +================== + + * Added options support to `res.clearCookie()` + * Added `res.helpers()` as alias of `res.locals()` + * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0` + * Changed; auto set Content-Type in res.attachement [Aaron Heckmann] + * Renamed "cache views" to "view cache". Closes #628 + * Fixed caching of views when using several apps. Closes #637 + * Fixed gotcha invoking `app.param()` callbacks once per route middleware. +Closes #638 + * Fixed partial lookup precedence. Closes #631 +Shaw] + +2.2.2 / 2011-04-12 +================== + + * Added second callback support for `res.download()` connection errors + * Fixed `filename` option passing to template engine + +2.2.1 / 2011-04-04 +================== + + * Added `layout(path)` helper to change the layout within a view. Closes #610 + * Fixed `partial()` collection object support. + Previously only anything with `.length` would work. + When `.length` is present one must still be aware of holes, + however now `{ collection: {foo: 'bar'}}` is valid, exposes + `keyInCollection` and `keysInCollection`. + + * Performance improved with better view caching + * Removed `request` and `response` locals + * Changed; errorHandler page title is now `Express` instead of `Connect` + +2.2.0 / 2011-03-30 +================== + + * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606 + * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606 + * Added `app.VERB(path)` as alias of `app.lookup.VERB()`. + * Dependency `connect >= 1.2.0` + +2.1.1 / 2011-03-29 +================== + + * Added; expose `err.view` object when failing to locate a view + * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann] + * Fixed; `res.send(undefined)` responds with 204 [aheckmann] + +2.1.0 / 2011-03-24 +================== + + * Added `/_?` partial lookup support. Closes #447 + * Added `request`, `response`, and `app` local variables + * Added `settings` local variable, containing the app's settings + * Added `req.flash()` exception if `req.session` is not available + * Added `res.send(bool)` support (json response) + * Fixed stylus example for latest version + * Fixed; wrap try/catch around `res.render()` + +2.0.0 / 2011-03-17 +================== + + * Fixed up index view path alternative. + * Changed; `res.locals()` without object returns the locals + +2.0.0rc3 / 2011-03-17 +================== + + * Added `res.locals(obj)` to compliment `res.local(key, val)` + * Added `res.partial()` callback support + * Fixed recursive error reporting issue in `res.render()` + +2.0.0rc2 / 2011-03-17 +================== + + * Changed; `partial()` "locals" are now optional + * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01] + * Fixed .filename view engine option [reported by drudge] + * Fixed blog example + * Fixed `{req,res}.app` reference when mounting [Ben Weaver] + +2.0.0rc / 2011-03-14 +================== + + * Fixed; expose `HTTPSServer` constructor + * Fixed express(1) default test charset. Closes #579 [reported by secoif] + * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP] + +2.0.0beta3 / 2011-03-09 +================== + + * Added support for `res.contentType()` literal + The original `res.contentType('.json')`, + `res.contentType('application/json')`, and `res.contentType('json')` + will work now. + * Added `res.render()` status option support back + * Added charset option for `res.render()` + * Added `.charset` support (via connect 1.0.4) + * Added view resolution hints when in development and a lookup fails + * Added layout lookup support relative to the page view. + For example while rendering `./views/user/index.jade` if you create + `./views/user/layout.jade` it will be used in favour of the root layout. + * Fixed `res.redirect()`. RFC states absolute url [reported by unlink] + * Fixed; default `res.send()` string charset to utf8 + * Removed `Partial` constructor (not currently used) + +2.0.0beta2 / 2011-03-07 +================== + + * Added res.render() `.locals` support back to aid in migration process + * Fixed flash example + +2.0.0beta / 2011-03-03 +================== + + * Added HTTPS support + * Added `res.cookie()` maxAge support + * Added `req.header()` _Referrer_ / _Referer_ special-case, either works + * Added mount support for `res.redirect()`, now respects the mount-point + * Added `union()` util, taking place of `merge(clone())` combo + * Added stylus support to express(1) generated app + * Added secret to session middleware used in examples and generated app + * Added `res.local(name, val)` for progressive view locals + * Added default param support to `req.param(name, default)` + * Added `app.disabled()` and `app.enabled()` + * Added `app.register()` support for omitting leading ".", either works + * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539 + * Added `app.param()` to map route params to async/sync logic + * Added; aliased `app.helpers()` as `app.locals()`. Closes #481 + * Added extname with no leading "." support to `res.contentType()` + * Added `cache views` setting, defaulting to enabled in "production" env + * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_. + * Added `req.accepts()` support for extensions + * Changed; `res.download()` and `res.sendfile()` now utilize Connect's + static file server `connect.static.send()`. + * Changed; replaced `connect.utils.mime()` with npm _mime_ module + * Changed; allow `req.query` to be pre-defined (via middleware or other parent + * Changed view partial resolution, now relative to parent view + * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`. + * Fixed `req.param()` bug returning Array.prototype methods. Closes #552 + * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()` + * Fixed; using _qs_ module instead of _querystring_ + * Fixed; strip unsafe chars from jsonp callbacks + * Removed "stream threshold" setting + +1.0.8 / 2011-03-01 +================== + + * Allow `req.query` to be pre-defined (via middleware or other parent app) + * "connect": ">= 0.5.0 < 1.0.0". Closes #547 + * Removed the long deprecated __EXPRESS_ENV__ support + +1.0.7 / 2011-02-07 +================== + + * Fixed `render()` setting inheritance. + Mounted apps would not inherit "view engine" + +1.0.6 / 2011-02-07 +================== + + * Fixed `view engine` setting bug when period is in dirname + +1.0.5 / 2011-02-05 +================== + + * Added secret to generated app `session()` call + +1.0.4 / 2011-02-05 +================== + + * Added `qs` dependency to _package.json_ + * Fixed namespaced `require()`s for latest connect support + +1.0.3 / 2011-01-13 +================== + + * Remove unsafe characters from JSONP callback names [Ryan Grove] + +1.0.2 / 2011-01-10 +================== + + * Removed nested require, using `connect.router` + +1.0.1 / 2010-12-29 +================== + + * Fixed for middleware stacked via `createServer()` + previously the `foo` middleware passed to `createServer(foo)` + would not have access to Express methods such as `res.send()` + or props like `req.query` etc. + +1.0.0 / 2010-11-16 +================== + + * Added; deduce partial object names from the last segment. + For example by default `partial('forum/post', postObject)` will + give you the _post_ object, providing a meaningful default. + * Added http status code string representation to `res.redirect()` body + * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__. + * Added `req.is()` to aid in content negotiation + * Added partial local inheritance [suggested by masylum]. Closes #102 + providing access to parent template locals. + * Added _-s, --session[s]_ flag to express(1) to add session related middleware + * Added _--template_ flag to express(1) to specify the + template engine to use. + * Added _--css_ flag to express(1) to specify the + stylesheet engine to use (or just plain css by default). + * Added `app.all()` support [thanks aheckmann] + * Added partial direct object support. + You may now `partial('user', user)` providing the "user" local, + vs previously `partial('user', { object: user })`. + * Added _route-separation_ example since many people question ways + to do this with CommonJS modules. Also view the _blog_ example for + an alternative. + * Performance; caching view path derived partial object names + * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454 + * Fixed jsonp support; _text/javascript_ as per mailinglist discussion + +1.0.0rc4 / 2010-10-14 +================== + + * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0 + * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware)) + * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass] + * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass] + * Added `partial()` support for array-like collections. Closes #434 + * Added support for swappable querystring parsers + * Added session usage docs. Closes #443 + * Added dynamic helper caching. Closes #439 [suggested by maritz] + * Added authentication example + * Added basic Range support to `res.sendfile()` (and `res.download()` etc) + * Changed; `express(1)` generated app using 2 spaces instead of 4 + * Default env to "development" again [aheckmann] + * Removed _context_ option is no more, use "scope" + * Fixed; exposing _./support_ libs to examples so they can run without installs + * Fixed mvc example + +1.0.0rc3 / 2010-09-20 +================== + + * Added confirmation for `express(1)` app generation. Closes #391 + * Added extending of flash formatters via `app.flashFormatters` + * Added flash formatter support. Closes #411 + * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold" + * Added _stream threshold_ setting for `res.sendfile()` + * Added `res.send()` __HEAD__ support + * Added `res.clearCookie()` + * Added `res.cookie()` + * Added `res.render()` headers option + * Added `res.redirect()` response bodies + * Added `res.render()` status option support. Closes #425 [thanks aheckmann] + * Fixed `res.sendfile()` responding with 403 on malicious path + * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_ + * Fixed; mounted apps settings now inherit from parent app [aheckmann] + * Fixed; stripping Content-Length / Content-Type when 204 + * Fixed `res.send()` 204. Closes #419 + * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402 + * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo] + + +1.0.0rc2 / 2010-08-17 +================== + + * Added `app.register()` for template engine mapping. Closes #390 + * Added `res.render()` callback support as second argument (no options) + * Added callback support to `res.download()` + * Added callback support for `res.sendfile()` + * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()` + * Added "partials" setting to docs + * Added default expresso tests to `express(1)` generated app. Closes #384 + * Fixed `res.sendfile()` error handling, defer via `next()` + * Fixed `res.render()` callback when a layout is used [thanks guillermo] + * Fixed; `make install` creating ~/.node_libraries when not present + * Fixed issue preventing error handlers from being defined anywhere. Closes #387 + +1.0.0rc / 2010-07-28 +================== + + * Added mounted hook. Closes #369 + * Added connect dependency to _package.json_ + + * Removed "reload views" setting and support code + development env never caches, production always caches. + + * Removed _param_ in route callbacks, signature is now + simply (req, res, next), previously (req, res, params, next). + Use _req.params_ for path captures, _req.query_ for GET params. + + * Fixed "home" setting + * Fixed middleware/router precedence issue. Closes #366 + * Fixed; _configure()_ callbacks called immediately. Closes #368 + +1.0.0beta2 / 2010-07-23 +================== + + * Added more examples + * Added; exporting `Server` constructor + * Added `Server#helpers()` for view locals + * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349 + * Added support for absolute view paths + * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363 + * Added Guillermo Rauch to the contributor list + * Added support for "as" for non-collection partials. Closes #341 + * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf] + * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo] + * Fixed instanceof `Array` checks, now `Array.isArray()` + * Fixed express(1) expansion of public dirs. Closes #348 + * Fixed middleware precedence. Closes #345 + * Fixed view watcher, now async [thanks aheckmann] + +1.0.0beta / 2010-07-15 +================== + + * Re-write + - much faster + - much lighter + - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs + +0.14.0 / 2010-06-15 +================== + + * Utilize relative requires + * Added Static bufferSize option [aheckmann] + * Fixed caching of view and partial subdirectories [aheckmann] + * Fixed mime.type() comments now that ".ext" is not supported + * Updated haml submodule + * Updated class submodule + * Removed bin/express + +0.13.0 / 2010-06-01 +================== + + * Added node v0.1.97 compatibility + * Added support for deleting cookies via Request#cookie('key', null) + * Updated haml submodule + * Fixed not-found page, now using using charset utf-8 + * Fixed show-exceptions page, now using using charset utf-8 + * Fixed view support due to fs.readFile Buffers + * Changed; mime.type() no longer accepts ".type" due to node extname() changes + +0.12.0 / 2010-05-22 +================== + + * Added node v0.1.96 compatibility + * Added view `helpers` export which act as additional local variables + * Updated haml submodule + * Changed ETag; removed inode, modified time only + * Fixed LF to CRLF for setting multiple cookies + * Fixed cookie compilation; values are now urlencoded + * Fixed cookies parsing; accepts quoted values and url escaped cookies + +0.11.0 / 2010-05-06 +================== + + * Added support for layouts using different engines + - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' }) + - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml' + - this.render('page.html.haml', { layout: false }) // no layout + * Updated ext submodule + * Updated haml submodule + * Fixed EJS partial support by passing along the context. Issue #307 + +0.10.1 / 2010-05-03 +================== + + * Fixed binary uploads. + +0.10.0 / 2010-04-30 +================== + + * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s + encoding is set to 'utf8' or 'utf-8'. + * Added "encoding" option to Request#render(). Closes #299 + * Added "dump exceptions" setting, which is enabled by default. + * Added simple ejs template engine support + * Added error response support for text/plain, application/json. Closes #297 + * Added callback function param to Request#error() + * Added Request#sendHead() + * Added Request#stream() + * Added support for Request#respond(304, null) for empty response bodies + * Added ETag support to Request#sendfile() + * Added options to Request#sendfile(), passed to fs.createReadStream() + * Added filename arg to Request#download() + * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request + * Performance enhanced by preventing several calls to toLowerCase() in Router#match() + * Changed; Request#sendfile() now streams + * Changed; Renamed Request#halt() to Request#respond(). Closes #289 + * Changed; Using sys.inspect() instead of JSON.encode() for error output + * Changed; run() returns the http.Server instance. Closes #298 + * Changed; Defaulting Server#host to null (INADDR_ANY) + * Changed; Logger "common" format scale of 0.4f + * Removed Logger "request" format + * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found + * Fixed several issues with http client + * Fixed Logger Content-Length output + * Fixed bug preventing Opera from retaining the generated session id. Closes #292 + +0.9.0 / 2010-04-14 +================== + + * Added DSL level error() route support + * Added DSL level notFound() route support + * Added Request#error() + * Added Request#notFound() + * Added Request#render() callback function. Closes #258 + * Added "max upload size" setting + * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254 + * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js + * Added callback function support to Request#halt() as 3rd/4th arg + * Added preprocessing of route param wildcards using param(). Closes #251 + * Added view partial support (with collections etc) + * Fixed bug preventing falsey params (such as ?page=0). Closes #286 + * Fixed setting of multiple cookies. Closes #199 + * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml) + * Changed; session cookie is now httpOnly + * Changed; Request is no longer global + * Changed; Event is no longer global + * Changed; "sys" module is no longer global + * Changed; moved Request#download to Static plugin where it belongs + * Changed; Request instance created before body parsing. Closes #262 + * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253 + * Changed; Pre-caching view partials in memory when "cache view partials" is enabled + * Updated support to node --version 0.1.90 + * Updated dependencies + * Removed set("session cookie") in favour of use(Session, { cookie: { ... }}) + * Removed utils.mixin(); use Object#mergeDeep() + +0.8.0 / 2010-03-19 +================== + + * Added coffeescript example app. Closes #242 + * Changed; cache api now async friendly. Closes #240 + * Removed deprecated 'express/static' support. Use 'express/plugins/static' + +0.7.6 / 2010-03-19 +================== + + * Added Request#isXHR. Closes #229 + * Added `make install` (for the executable) + * Added `express` executable for setting up simple app templates + * Added "GET /public/*" to Static plugin, defaulting to /public + * Added Static plugin + * Fixed; Request#render() only calls cache.get() once + * Fixed; Namespacing View caches with "view:" + * Fixed; Namespacing Static caches with "static:" + * Fixed; Both example apps now use the Static plugin + * Fixed set("views"). Closes #239 + * Fixed missing space for combined log format + * Deprecated Request#sendfile() and 'express/static' + * Removed Server#running + +0.7.5 / 2010-03-16 +================== + + * Added Request#flash() support without args, now returns all flashes + * Updated ext submodule + +0.7.4 / 2010-03-16 +================== + + * Fixed session reaper + * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft) + +0.7.3 / 2010-03-16 +================== + + * Added package.json + * Fixed requiring of haml / sass due to kiwi removal + +0.7.2 / 2010-03-16 +================== + + * Fixed GIT submodules (HAH!) + +0.7.1 / 2010-03-16 +================== + + * Changed; Express now using submodules again until a PM is adopted + * Changed; chat example using millisecond conversions from ext + +0.7.0 / 2010-03-15 +================== + + * Added Request#pass() support (finds the next matching route, or the given path) + * Added Logger plugin (default "common" format replaces CommonLogger) + * Removed Profiler plugin + * Removed CommonLogger plugin + +0.6.0 / 2010-03-11 +================== + + * Added seed.yml for kiwi package management support + * Added HTTP client query string support when method is GET. Closes #205 + + * Added support for arbitrary view engines. + For example "foo.engine.html" will now require('engine'), + the exports from this module are cached after the first require(). + + * Added async plugin support + + * Removed usage of RESTful route funcs as http client + get() etc, use http.get() and friends + + * Removed custom exceptions + +0.5.0 / 2010-03-10 +================== + + * Added ext dependency (library of js extensions) + * Removed extname() / basename() utils. Use path module + * Removed toArray() util. Use arguments.values + * Removed escapeRegexp() util. Use RegExp.escape() + * Removed process.mixin() dependency. Use utils.mixin() + * Removed Collection + * Removed ElementCollection + * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;) + +0.4.0 / 2010-02-11 +================== + + * Added flash() example to sample upload app + * Added high level restful http client module (express/http) + * Changed; RESTful route functions double as HTTP clients. Closes #69 + * Changed; throwing error when routes are added at runtime + * Changed; defaulting render() context to the current Request. Closes #197 + * Updated haml submodule + +0.3.0 / 2010-02-11 +================== + + * Updated haml / sass submodules. Closes #200 + * Added flash message support. Closes #64 + * Added accepts() now allows multiple args. fixes #117 + * Added support for plugins to halt. Closes #189 + * Added alternate layout support. Closes #119 + * Removed Route#run(). Closes #188 + * Fixed broken specs due to use(Cookie) missing + +0.2.1 / 2010-02-05 +================== + + * Added "plot" format option for Profiler (for gnuplot processing) + * Added request number to Profiler plugin + * Fixed binary encoding for multipart file uploads, was previously defaulting to UTF8 + * Fixed issue with routes not firing when not files are present. Closes #184 + * Fixed process.Promise -> events.Promise + +0.2.0 / 2010-02-03 +================== + + * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180 + * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174 + * Added expiration support to cache api with reaper. Closes #133 + * Added cache Store.Memory#reap() + * Added Cache; cache api now uses first class Cache instances + * Added abstract session Store. Closes #172 + * Changed; cache Memory.Store#get() utilizing Collection + * Renamed MemoryStore -> Store.Memory + * Fixed use() of the same plugin several time will always use latest options. Closes #176 + +0.1.0 / 2010-02-03 +================== + + * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context + * Updated node support to 0.1.27 Closes #169 + * Updated dirname(__filename) -> __dirname + * Updated libxmljs support to v0.2.0 + * Added session support with memory store / reaping + * Added quick uid() helper + * Added multi-part upload support + * Added Sass.js support / submodule + * Added production env caching view contents and static files + * Added static file caching. Closes #136 + * Added cache plugin with memory stores + * Added support to StaticFile so that it works with non-textual files. + * Removed dirname() helper + * Removed several globals (now their modules must be required) + +0.0.2 / 2010-01-10 +================== + + * Added view benchmarks; currently haml vs ejs + * Added Request#attachment() specs. Closes #116 + * Added use of node's parseQuery() util. Closes #123 + * Added `make init` for submodules + * Updated Haml + * Updated sample chat app to show messages on load + * Updated libxmljs parseString -> parseHtmlString + * Fixed `make init` to work with older versions of git + * Fixed specs can now run independent specs for those who can't build deps. Closes #127 + * Fixed issues introduced by the node url module changes. Closes 126. + * Fixed two assertions failing due to Collection#keys() returning strings + * Fixed faulty Collection#toArray() spec due to keys() returning strings + * Fixed `make test` now builds libxmljs.node before testing + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..aa927e44e31d486f807634887662efa39256bf84 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/LICENSE" @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2009-2014 TJ Holowaychuk +Copyright (c) 2013-2014 Roman Shtylman +Copyright (c) 2014-2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..b60d588c4132cf626c50dc16e343558b45f96c0f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/Readme.md" @@ -0,0 +1,158 @@ +[![Express Logo](https://i.cloudup.com/zfY6lL7eFa-3000x3000.png)](http://expressjs.com/) + + Fast, unopinionated, minimalist web framework for [node](http://nodejs.org). + + [![NPM Version][npm-image]][npm-url] + [![NPM Downloads][downloads-image]][downloads-url] + [![Linux Build][ci-image]][ci-url] + [![Windows Build][appveyor-image]][appveyor-url] + [![Test Coverage][coveralls-image]][coveralls-url] + +```js +const express = require('express') +const app = express() + +app.get('/', function (req, res) { + res.send('Hello World') +}) + +app.listen(3000) +``` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). + +Before installing, [download and install Node.js](https://nodejs.org/en/download/). +Node.js 0.10 or higher is required. + +If this is a brand new project, make sure to create a `package.json` first with +the [`npm init` command](https://docs.npmjs.com/creating-a-package-json-file). + +Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install express +``` + +Follow [our installing guide](http://expressjs.com/en/starter/installing.html) +for more information. + +## Features + + * Robust routing + * Focus on high performance + * Super-high test coverage + * HTTP helpers (redirection, caching, etc) + * View system supporting 14+ template engines + * Content negotiation + * Executable for generating applications quickly + +## Docs & Community + + * [Website and Documentation](http://expressjs.com/) - [[website repo](https://github.com/expressjs/expressjs.com)] + * [#express](https://webchat.freenode.net/?channels=express) on freenode IRC + * [GitHub Organization](https://github.com/expressjs) for Official Middleware & Modules + * Visit the [Wiki](https://github.com/expressjs/express/wiki) + * [Google Group](https://groups.google.com/group/express-js) for discussion + * [Gitter](https://gitter.im/expressjs/express) for support and discussion + +**PROTIP** Be sure to read [Migrating from 3.x to 4.x](https://github.com/expressjs/express/wiki/Migrating-from-3.x-to-4.x) as well as [New features in 4.x](https://github.com/expressjs/express/wiki/New-features-in-4.x). + +### Security Issues + +If you discover a security vulnerability in Express, please see [Security Policies and Procedures](Security.md). + +## Quick Start + + The quickest way to get started with express is to utilize the executable [`express(1)`](https://github.com/expressjs/generator) to generate an application as shown below: + + Install the executable. The executable's major version will match Express's: + +```bash +$ npm install -g express-generator@4 +``` + + Create the app: + +```bash +$ express /tmp/foo && cd /tmp/foo +``` + + Install dependencies: + +```bash +$ npm install +``` + + Start the server: + +```bash +$ npm start +``` + + View the website at: http://localhost:3000 + +## Philosophy + + The Express philosophy is to provide small, robust tooling for HTTP servers, making + it a great solution for single page applications, websites, hybrids, or public + HTTP APIs. + + Express does not force you to use any specific ORM or template engine. With support for over + 14 template engines via [Consolidate.js](https://github.com/tj/consolidate.js), + you can quickly craft your perfect framework. + +## Examples + + To view the examples, clone the Express repo and install the dependencies: + +```bash +$ git clone git://github.com/expressjs/express.git --depth 1 +$ cd express +$ npm install +``` + + Then run whichever example you want: + +```bash +$ node examples/content-negotiation +``` + +## Tests + + To run the test suite, first install the dependencies, then run `npm test`: + +```bash +$ npm install +$ npm test +``` + +## Contributing + +[Contributing Guide](Contributing.md) + +## People + +The original author of Express is [TJ Holowaychuk](https://github.com/tj) + +The current lead maintainer is [Douglas Christopher Wilson](https://github.com/dougwilson) + +[List of all contributors](https://github.com/expressjs/express/graphs/contributors) + +## License + + [MIT](LICENSE) + +[ci-image]: https://img.shields.io/github/workflow/status/expressjs/express/ci/master.svg?label=linux +[ci-url]: https://github.com/expressjs/express/actions?query=workflow%3Aci +[npm-image]: https://img.shields.io/npm/v/express.svg +[npm-url]: https://npmjs.org/package/express +[downloads-image]: https://img.shields.io/npm/dm/express.svg +[downloads-url]: https://npmcharts.com/compare/express?minimal=true +[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/express/master.svg?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/express +[coveralls-image]: https://img.shields.io/coveralls/expressjs/express/master.svg +[coveralls-url]: https://coveralls.io/r/expressjs/express?branch=master diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..d219b0c878dc6136eb2096cffa140bf6bf2b8e9c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/index.js" @@ -0,0 +1,11 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +module.exports = require('./lib/express'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/application.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/application.js" new file mode 100644 index 0000000000000000000000000000000000000000..e65ba5889596b5b45eebad33109ef86a83db0374 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/application.js" @@ -0,0 +1,644 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var finalhandler = require('finalhandler'); +var Router = require('./router'); +var methods = require('methods'); +var middleware = require('./middleware/init'); +var query = require('./middleware/query'); +var debug = require('debug')('express:application'); +var View = require('./view'); +var http = require('http'); +var compileETag = require('./utils').compileETag; +var compileQueryParser = require('./utils').compileQueryParser; +var compileTrust = require('./utils').compileTrust; +var deprecate = require('depd')('express'); +var flatten = require('array-flatten'); +var merge = require('utils-merge'); +var resolve = require('path').resolve; +var setPrototypeOf = require('setprototypeof') +var slice = Array.prototype.slice; + +/** + * Application prototype. + */ + +var app = exports = module.exports = {}; + +/** + * Variable for trust proxy inheritance back-compat + * @private + */ + +var trustProxyDefaultSymbol = '@@symbol:trust_proxy_default'; + +/** + * Initialize the server. + * + * - setup default configuration + * - setup default middleware + * - setup route reflection methods + * + * @private + */ + +app.init = function init() { + this.cache = {}; + this.engines = {}; + this.settings = {}; + + this.defaultConfiguration(); +}; + +/** + * Initialize application configuration. + * @private + */ + +app.defaultConfiguration = function defaultConfiguration() { + var env = process.env.NODE_ENV || 'development'; + + // default settings + this.enable('x-powered-by'); + this.set('etag', 'weak'); + this.set('env', env); + this.set('query parser', 'extended'); + this.set('subdomain offset', 2); + this.set('trust proxy', false); + + // trust proxy inherit back-compat + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: true + }); + + debug('booting in %s mode', env); + + this.on('mount', function onmount(parent) { + // inherit trust proxy + if (this.settings[trustProxyDefaultSymbol] === true + && typeof parent.settings['trust proxy fn'] === 'function') { + delete this.settings['trust proxy']; + delete this.settings['trust proxy fn']; + } + + // inherit protos + setPrototypeOf(this.request, parent.request) + setPrototypeOf(this.response, parent.response) + setPrototypeOf(this.engines, parent.engines) + setPrototypeOf(this.settings, parent.settings) + }); + + // setup locals + this.locals = Object.create(null); + + // top-most app is mounted at / + this.mountpath = '/'; + + // default locals + this.locals.settings = this.settings; + + // default configuration + this.set('view', View); + this.set('views', resolve('views')); + this.set('jsonp callback name', 'callback'); + + if (env === 'production') { + this.enable('view cache'); + } + + Object.defineProperty(this, 'router', { + get: function() { + throw new Error('\'app.router\' is deprecated!\nPlease see the 3.x to 4.x migration guide for details on how to update your app.'); + } + }); +}; + +/** + * lazily adds the base router if it has not yet been added. + * + * We cannot add the base router in the defaultConfiguration because + * it reads app settings which might be set after that has run. + * + * @private + */ +app.lazyrouter = function lazyrouter() { + if (!this._router) { + this._router = new Router({ + caseSensitive: this.enabled('case sensitive routing'), + strict: this.enabled('strict routing') + }); + + this._router.use(query(this.get('query parser fn'))); + this._router.use(middleware.init(this)); + } +}; + +/** + * Dispatch a req, res pair into the application. Starts pipeline processing. + * + * If no callback is provided, then default error handlers will respond + * in the event of an error bubbling through the stack. + * + * @private + */ + +app.handle = function handle(req, res, callback) { + var router = this._router; + + // final handler + var done = callback || finalhandler(req, res, { + env: this.get('env'), + onerror: logerror.bind(this) + }); + + // no routes + if (!router) { + debug('no routes defined on app'); + done(); + return; + } + + router.handle(req, res, done); +}; + +/** + * Proxy `Router#use()` to add middleware to the app router. + * See Router#use() documentation for details. + * + * If the _fn_ parameter is an express app, then it will be + * mounted at the _route_ specified. + * + * @public + */ + +app.use = function use(fn) { + var offset = 0; + var path = '/'; + + // default path to '/' + // disambiguate app.use([fn]) + if (typeof fn !== 'function') { + var arg = fn; + + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + + // first arg is the path + if (typeof arg !== 'function') { + offset = 1; + path = fn; + } + } + + var fns = flatten(slice.call(arguments, offset)); + + if (fns.length === 0) { + throw new TypeError('app.use() requires a middleware function') + } + + // setup router + this.lazyrouter(); + var router = this._router; + + fns.forEach(function (fn) { + // non-express app + if (!fn || !fn.handle || !fn.set) { + return router.use(path, fn); + } + + debug('.use app under %s', path); + fn.mountpath = path; + fn.parent = this; + + // restore .app property on req and res + router.use(path, function mounted_app(req, res, next) { + var orig = req.app; + fn.handle(req, res, function (err) { + setPrototypeOf(req, orig.request) + setPrototypeOf(res, orig.response) + next(err); + }); + }); + + // mounted an app + fn.emit('mount', this); + }, this); + + return this; +}; + +/** + * Proxy to the app `Router#route()` + * Returns a new `Route` instance for the _path_. + * + * Routes are isolated middleware stacks for specific paths. + * See the Route api docs for details. + * + * @public + */ + +app.route = function route(path) { + this.lazyrouter(); + return this._router.route(path); +}; + +/** + * Register the given template engine callback `fn` + * as `ext`. + * + * By default will `require()` the engine based on the + * file extension. For example if you try to render + * a "foo.ejs" file Express will invoke the following internally: + * + * app.engine('ejs', require('ejs').__express); + * + * For engines that do not provide `.__express` out of the box, + * or if you wish to "map" a different extension to the template engine + * you may use this method. For example mapping the EJS template engine to + * ".html" files: + * + * app.engine('html', require('ejs').renderFile); + * + * In this case EJS provides a `.renderFile()` method with + * the same signature that Express expects: `(path, options, callback)`, + * though note that it aliases this method as `ejs.__express` internally + * so if you're using ".ejs" extensions you don't need to do anything. + * + * Some template engines do not follow this convention, the + * [Consolidate.js](https://github.com/tj/consolidate.js) + * library was created to map all of node's popular template + * engines to follow this convention, thus allowing them to + * work seamlessly within Express. + * + * @param {String} ext + * @param {Function} fn + * @return {app} for chaining + * @public + */ + +app.engine = function engine(ext, fn) { + if (typeof fn !== 'function') { + throw new Error('callback function required'); + } + + // get file extension + var extension = ext[0] !== '.' + ? '.' + ext + : ext; + + // store engine + this.engines[extension] = fn; + + return this; +}; + +/** + * Proxy to `Router#param()` with one added api feature. The _name_ parameter + * can be an array of names. + * + * See the Router#param() docs for more details. + * + * @param {String|Array} name + * @param {Function} fn + * @return {app} for chaining + * @public + */ + +app.param = function param(name, fn) { + this.lazyrouter(); + + if (Array.isArray(name)) { + for (var i = 0; i < name.length; i++) { + this.param(name[i], fn); + } + + return this; + } + + this._router.param(name, fn); + + return this; +}; + +/** + * Assign `setting` to `val`, or return `setting`'s value. + * + * app.set('foo', 'bar'); + * app.set('foo'); + * // => "bar" + * + * Mounted servers inherit their parent server's settings. + * + * @param {String} setting + * @param {*} [val] + * @return {Server} for chaining + * @public + */ + +app.set = function set(setting, val) { + if (arguments.length === 1) { + // app.get(setting) + return this.settings[setting]; + } + + debug('set "%s" to %o', setting, val); + + // set value + this.settings[setting] = val; + + // trigger matched settings + switch (setting) { + case 'etag': + this.set('etag fn', compileETag(val)); + break; + case 'query parser': + this.set('query parser fn', compileQueryParser(val)); + break; + case 'trust proxy': + this.set('trust proxy fn', compileTrust(val)); + + // trust proxy inherit back-compat + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: false + }); + + break; + } + + return this; +}; + +/** + * Return the app's absolute pathname + * based on the parent(s) that have + * mounted it. + * + * For example if the application was + * mounted as "/admin", which itself + * was mounted as "/blog" then the + * return value would be "/blog/admin". + * + * @return {String} + * @private + */ + +app.path = function path() { + return this.parent + ? this.parent.path() + this.mountpath + : ''; +}; + +/** + * Check if `setting` is enabled (truthy). + * + * app.enabled('foo') + * // => false + * + * app.enable('foo') + * app.enabled('foo') + * // => true + * + * @param {String} setting + * @return {Boolean} + * @public + */ + +app.enabled = function enabled(setting) { + return Boolean(this.set(setting)); +}; + +/** + * Check if `setting` is disabled. + * + * app.disabled('foo') + * // => true + * + * app.enable('foo') + * app.disabled('foo') + * // => false + * + * @param {String} setting + * @return {Boolean} + * @public + */ + +app.disabled = function disabled(setting) { + return !this.set(setting); +}; + +/** + * Enable `setting`. + * + * @param {String} setting + * @return {app} for chaining + * @public + */ + +app.enable = function enable(setting) { + return this.set(setting, true); +}; + +/** + * Disable `setting`. + * + * @param {String} setting + * @return {app} for chaining + * @public + */ + +app.disable = function disable(setting) { + return this.set(setting, false); +}; + +/** + * Delegate `.VERB(...)` calls to `router.VERB(...)`. + */ + +methods.forEach(function(method){ + app[method] = function(path){ + if (method === 'get' && arguments.length === 1) { + // app.get(setting) + return this.set(path); + } + + this.lazyrouter(); + + var route = this._router.route(path); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; +}); + +/** + * Special-cased "all" method, applying the given route `path`, + * middleware, and callback to _every_ HTTP method. + * + * @param {String} path + * @param {Function} ... + * @return {app} for chaining + * @public + */ + +app.all = function all(path) { + this.lazyrouter(); + + var route = this._router.route(path); + var args = slice.call(arguments, 1); + + for (var i = 0; i < methods.length; i++) { + route[methods[i]].apply(route, args); + } + + return this; +}; + +// del -> delete alias + +app.del = deprecate.function(app.delete, 'app.del: Use app.delete instead'); + +/** + * Render the given view `name` name with `options` + * and a callback accepting an error and the + * rendered template string. + * + * Example: + * + * app.render('email', { name: 'Tobi' }, function(err, html){ + * // ... + * }) + * + * @param {String} name + * @param {Object|Function} options or fn + * @param {Function} callback + * @public + */ + +app.render = function render(name, options, callback) { + var cache = this.cache; + var done = callback; + var engines = this.engines; + var opts = options; + var renderOptions = {}; + var view; + + // support callback function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + // merge app.locals + merge(renderOptions, this.locals); + + // merge options._locals + if (opts._locals) { + merge(renderOptions, opts._locals); + } + + // merge options + merge(renderOptions, opts); + + // set .cache unless explicitly provided + if (renderOptions.cache == null) { + renderOptions.cache = this.enabled('view cache'); + } + + // primed cache + if (renderOptions.cache) { + view = cache[name]; + } + + // view + if (!view) { + var View = this.get('view'); + + view = new View(name, { + defaultEngine: this.get('view engine'), + root: this.get('views'), + engines: engines + }); + + if (!view.path) { + var dirs = Array.isArray(view.root) && view.root.length > 1 + ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' + : 'directory "' + view.root + '"' + var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs); + err.view = view; + return done(err); + } + + // prime the cache + if (renderOptions.cache) { + cache[name] = view; + } + } + + // render + tryRender(view, renderOptions, done); +}; + +/** + * Listen for connections. + * + * A node `http.Server` is returned, with this + * application (which is a `Function`) as its + * callback. If you wish to create both an HTTP + * and HTTPS server you may do so with the "http" + * and "https" modules as shown here: + * + * var http = require('http') + * , https = require('https') + * , express = require('express') + * , app = express(); + * + * http.createServer(app).listen(80); + * https.createServer({ ... }, app).listen(443); + * + * @return {http.Server} + * @public + */ + +app.listen = function listen() { + var server = http.createServer(this); + return server.listen.apply(server, arguments); +}; + +/** + * Log error using console.error. + * + * @param {Error} err + * @private + */ + +function logerror(err) { + /* istanbul ignore next */ + if (this.get('env') !== 'test') console.error(err.stack || err.toString()); +} + +/** + * Try rendering a view. + * @private + */ + +function tryRender(view, options, callback) { + try { + view.render(options, callback); + } catch (err) { + callback(err); + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/express.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/express.js" new file mode 100644 index 0000000000000000000000000000000000000000..d188a16db70387967e0f913c2ee7c0bf9f7ffb09 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/express.js" @@ -0,0 +1,116 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + */ + +var bodyParser = require('body-parser') +var EventEmitter = require('events').EventEmitter; +var mixin = require('merge-descriptors'); +var proto = require('./application'); +var Route = require('./router/route'); +var Router = require('./router'); +var req = require('./request'); +var res = require('./response'); + +/** + * Expose `createApplication()`. + */ + +exports = module.exports = createApplication; + +/** + * Create an express application. + * + * @return {Function} + * @api public + */ + +function createApplication() { + var app = function(req, res, next) { + app.handle(req, res, next); + }; + + mixin(app, EventEmitter.prototype, false); + mixin(app, proto, false); + + // expose the prototype that will get set on requests + app.request = Object.create(req, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }) + + // expose the prototype that will get set on responses + app.response = Object.create(res, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }) + + app.init(); + return app; +} + +/** + * Expose the prototypes. + */ + +exports.application = proto; +exports.request = req; +exports.response = res; + +/** + * Expose constructors. + */ + +exports.Route = Route; +exports.Router = Router; + +/** + * Expose middleware + */ + +exports.json = bodyParser.json +exports.query = require('./middleware/query'); +exports.raw = bodyParser.raw +exports.static = require('serve-static'); +exports.text = bodyParser.text +exports.urlencoded = bodyParser.urlencoded + +/** + * Replace removed middleware with an appropriate error message. + */ + +var removedMiddlewares = [ + 'bodyParser', + 'compress', + 'cookieSession', + 'session', + 'logger', + 'cookieParser', + 'favicon', + 'responseTime', + 'errorHandler', + 'timeout', + 'methodOverride', + 'vhost', + 'csrf', + 'directory', + 'limit', + 'multipart', + 'staticCache' +] + +removedMiddlewares.forEach(function (name) { + Object.defineProperty(exports, name, { + get: function () { + throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.'); + }, + configurable: true + }); +}); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/middleware/init.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/middleware/init.js" new file mode 100644 index 0000000000000000000000000000000000000000..dfd042747bdb971d9760e9575241ddaa1b776cd8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/middleware/init.js" @@ -0,0 +1,43 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var setPrototypeOf = require('setprototypeof') + +/** + * Initialization middleware, exposing the + * request and response to each other, as well + * as defaulting the X-Powered-By header field. + * + * @param {Function} app + * @return {Function} + * @api private + */ + +exports.init = function(app){ + return function expressInit(req, res, next){ + if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); + req.res = res; + res.req = req; + req.next = next; + + setPrototypeOf(req, app.request) + setPrototypeOf(res, app.response) + + res.locals = res.locals || Object.create(null); + + next(); + }; +}; + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/middleware/query.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/middleware/query.js" new file mode 100644 index 0000000000000000000000000000000000000000..7e9166947aff3be10f7ffec3771c92581ce211da --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/middleware/query.js" @@ -0,0 +1,47 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + */ + +var merge = require('utils-merge') +var parseUrl = require('parseurl'); +var qs = require('qs'); + +/** + * @param {Object} options + * @return {Function} + * @api public + */ + +module.exports = function query(options) { + var opts = merge({}, options) + var queryparse = qs.parse; + + if (typeof options === 'function') { + queryparse = options; + opts = undefined; + } + + if (opts !== undefined && opts.allowPrototypes === undefined) { + // back-compat for qs module + opts.allowPrototypes = true; + } + + return function query(req, res, next){ + if (!req.query) { + var val = parseUrl(req).query; + req.query = queryparse(val, opts); + } + + next(); + }; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/request.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/request.js" new file mode 100644 index 0000000000000000000000000000000000000000..3f1eeca6c1ac502dfb12ae0144a3a5cced4f34a3 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/request.js" @@ -0,0 +1,525 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var accepts = require('accepts'); +var deprecate = require('depd')('express'); +var isIP = require('net').isIP; +var typeis = require('type-is'); +var http = require('http'); +var fresh = require('fresh'); +var parseRange = require('range-parser'); +var parse = require('parseurl'); +var proxyaddr = require('proxy-addr'); + +/** + * Request prototype. + * @public + */ + +var req = Object.create(http.IncomingMessage.prototype) + +/** + * Module exports. + * @public + */ + +module.exports = req + +/** + * Return request header. + * + * The `Referrer` header field is special-cased, + * both `Referrer` and `Referer` are interchangeable. + * + * Examples: + * + * req.get('Content-Type'); + * // => "text/plain" + * + * req.get('content-type'); + * // => "text/plain" + * + * req.get('Something'); + * // => undefined + * + * Aliased as `req.header()`. + * + * @param {String} name + * @return {String} + * @public + */ + +req.get = +req.header = function header(name) { + if (!name) { + throw new TypeError('name argument is required to req.get'); + } + + if (typeof name !== 'string') { + throw new TypeError('name must be a string to req.get'); + } + + var lc = name.toLowerCase(); + + switch (lc) { + case 'referer': + case 'referrer': + return this.headers.referrer + || this.headers.referer; + default: + return this.headers[lc]; + } +}; + +/** + * To do: update docs. + * + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single MIME type string + * such as "application/json", an extension name + * such as "json", a comma-delimited list such as "json, html, text/plain", + * an argument list such as `"json", "html", "text/plain"`, + * or an array `["json", "html", "text/plain"]`. When a list + * or array is given, the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * req.accepts('html'); + * // => "html" + * + * // Accept: text/*, application/json + * req.accepts('html'); + * // => "html" + * req.accepts('text/html'); + * // => "text/html" + * req.accepts('json, text'); + * // => "json" + * req.accepts('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * req.accepts('image/png'); + * req.accepts('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * req.accepts(['html', 'json']); + * req.accepts('html', 'json'); + * req.accepts('html, json'); + * // => "json" + * + * @param {String|Array} type(s) + * @return {String|Array|Boolean} + * @public + */ + +req.accepts = function(){ + var accept = accepts(this); + return accept.types.apply(accept, arguments); +}; + +/** + * Check if the given `encoding`s are accepted. + * + * @param {String} ...encoding + * @return {String|Array} + * @public + */ + +req.acceptsEncodings = function(){ + var accept = accepts(this); + return accept.encodings.apply(accept, arguments); +}; + +req.acceptsEncoding = deprecate.function(req.acceptsEncodings, + 'req.acceptsEncoding: Use acceptsEncodings instead'); + +/** + * Check if the given `charset`s are acceptable, + * otherwise you should respond with 406 "Not Acceptable". + * + * @param {String} ...charset + * @return {String|Array} + * @public + */ + +req.acceptsCharsets = function(){ + var accept = accepts(this); + return accept.charsets.apply(accept, arguments); +}; + +req.acceptsCharset = deprecate.function(req.acceptsCharsets, + 'req.acceptsCharset: Use acceptsCharsets instead'); + +/** + * Check if the given `lang`s are acceptable, + * otherwise you should respond with 406 "Not Acceptable". + * + * @param {String} ...lang + * @return {String|Array} + * @public + */ + +req.acceptsLanguages = function(){ + var accept = accepts(this); + return accept.languages.apply(accept, arguments); +}; + +req.acceptsLanguage = deprecate.function(req.acceptsLanguages, + 'req.acceptsLanguage: Use acceptsLanguages instead'); + +/** + * Parse Range header field, capping to the given `size`. + * + * Unspecified ranges such as "0-" require knowledge of your resource length. In + * the case of a byte range this is of course the total number of bytes. If the + * Range header field is not given `undefined` is returned, `-1` when unsatisfiable, + * and `-2` when syntactically invalid. + * + * When ranges are returned, the array has a "type" property which is the type of + * range that is required (most commonly, "bytes"). Each array element is an object + * with a "start" and "end" property for the portion of the range. + * + * The "combine" option can be set to `true` and overlapping & adjacent ranges + * will be combined into a single range. + * + * NOTE: remember that ranges are inclusive, so for example "Range: users=0-3" + * should respond with 4 users when available, not 3. + * + * @param {number} size + * @param {object} [options] + * @param {boolean} [options.combine=false] + * @return {number|array} + * @public + */ + +req.range = function range(size, options) { + var range = this.get('Range'); + if (!range) return; + return parseRange(size, range, options); +}; + +/** + * Return the value of param `name` when present or `defaultValue`. + * + * - Checks route placeholders, ex: _/user/:id_ + * - Checks body params, ex: id=12, {"id":12} + * - Checks query string params, ex: ?id=12 + * + * To utilize request bodies, `req.body` + * should be an object. This can be done by using + * the `bodyParser()` middleware. + * + * @param {String} name + * @param {Mixed} [defaultValue] + * @return {String} + * @public + */ + +req.param = function param(name, defaultValue) { + var params = this.params || {}; + var body = this.body || {}; + var query = this.query || {}; + + var args = arguments.length === 1 + ? 'name' + : 'name, default'; + deprecate('req.param(' + args + '): Use req.params, req.body, or req.query instead'); + + if (null != params[name] && params.hasOwnProperty(name)) return params[name]; + if (null != body[name]) return body[name]; + if (null != query[name]) return query[name]; + + return defaultValue; +}; + +/** + * Check if the incoming request contains the "Content-Type" + * header field, and it contains the given mime `type`. + * + * Examples: + * + * // With Content-Type: text/html; charset=utf-8 + * req.is('html'); + * req.is('text/html'); + * req.is('text/*'); + * // => true + * + * // When Content-Type is application/json + * req.is('json'); + * req.is('application/json'); + * req.is('application/*'); + * // => true + * + * req.is('html'); + * // => false + * + * @param {String|Array} types... + * @return {String|false|null} + * @public + */ + +req.is = function is(types) { + var arr = types; + + // support flattened arguments + if (!Array.isArray(types)) { + arr = new Array(arguments.length); + for (var i = 0; i < arr.length; i++) { + arr[i] = arguments[i]; + } + } + + return typeis(this, arr); +}; + +/** + * Return the protocol string "http" or "https" + * when requested with TLS. When the "trust proxy" + * setting trusts the socket address, the + * "X-Forwarded-Proto" header field will be trusted + * and used if present. + * + * If you're running behind a reverse proxy that + * supplies https for you this may be enabled. + * + * @return {String} + * @public + */ + +defineGetter(req, 'protocol', function protocol(){ + var proto = this.connection.encrypted + ? 'https' + : 'http'; + var trust = this.app.get('trust proxy fn'); + + if (!trust(this.connection.remoteAddress, 0)) { + return proto; + } + + // Note: X-Forwarded-Proto is normally only ever a + // single value, but this is to be safe. + var header = this.get('X-Forwarded-Proto') || proto + var index = header.indexOf(',') + + return index !== -1 + ? header.substring(0, index).trim() + : header.trim() +}); + +/** + * Short-hand for: + * + * req.protocol === 'https' + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'secure', function secure(){ + return this.protocol === 'https'; +}); + +/** + * Return the remote address from the trusted proxy. + * + * The is the remote address on the socket unless + * "trust proxy" is set. + * + * @return {String} + * @public + */ + +defineGetter(req, 'ip', function ip(){ + var trust = this.app.get('trust proxy fn'); + return proxyaddr(this, trust); +}); + +/** + * When "trust proxy" is set, trusted proxy addresses + client. + * + * For example if the value were "client, proxy1, proxy2" + * you would receive the array `["client", "proxy1", "proxy2"]` + * where "proxy2" is the furthest down-stream and "proxy1" and + * "proxy2" were trusted. + * + * @return {Array} + * @public + */ + +defineGetter(req, 'ips', function ips() { + var trust = this.app.get('trust proxy fn'); + var addrs = proxyaddr.all(this, trust); + + // reverse the order (to farthest -> closest) + // and remove socket address + addrs.reverse().pop() + + return addrs +}); + +/** + * Return subdomains as an array. + * + * Subdomains are the dot-separated parts of the host before the main domain of + * the app. By default, the domain of the app is assumed to be the last two + * parts of the host. This can be changed by setting "subdomain offset". + * + * For example, if the domain is "tobi.ferrets.example.com": + * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`. + * If "subdomain offset" is 3, req.subdomains is `["tobi"]`. + * + * @return {Array} + * @public + */ + +defineGetter(req, 'subdomains', function subdomains() { + var hostname = this.hostname; + + if (!hostname) return []; + + var offset = this.app.get('subdomain offset'); + var subdomains = !isIP(hostname) + ? hostname.split('.').reverse() + : [hostname]; + + return subdomains.slice(offset); +}); + +/** + * Short-hand for `url.parse(req.url).pathname`. + * + * @return {String} + * @public + */ + +defineGetter(req, 'path', function path() { + return parse(this).pathname; +}); + +/** + * Parse the "Host" header field to a hostname. + * + * When the "trust proxy" setting trusts the socket + * address, the "X-Forwarded-Host" header field will + * be trusted. + * + * @return {String} + * @public + */ + +defineGetter(req, 'hostname', function hostname(){ + var trust = this.app.get('trust proxy fn'); + var host = this.get('X-Forwarded-Host'); + + if (!host || !trust(this.connection.remoteAddress, 0)) { + host = this.get('Host'); + } else if (host.indexOf(',') !== -1) { + // Note: X-Forwarded-Host is normally only ever a + // single value, but this is to be safe. + host = host.substring(0, host.indexOf(',')).trimRight() + } + + if (!host) return; + + // IPv6 literal support + var offset = host[0] === '[' + ? host.indexOf(']') + 1 + : 0; + var index = host.indexOf(':', offset); + + return index !== -1 + ? host.substring(0, index) + : host; +}); + +// TODO: change req.host to return host in next major + +defineGetter(req, 'host', deprecate.function(function host(){ + return this.hostname; +}, 'req.host: Use req.hostname instead')); + +/** + * Check if the request is fresh, aka + * Last-Modified and/or the ETag + * still match. + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'fresh', function(){ + var method = this.method; + var res = this.res + var status = res.statusCode + + // GET or HEAD for weak freshness validation only + if ('GET' !== method && 'HEAD' !== method) return false; + + // 2xx or 304 as per rfc2616 14.26 + if ((status >= 200 && status < 300) || 304 === status) { + return fresh(this.headers, { + 'etag': res.get('ETag'), + 'last-modified': res.get('Last-Modified') + }) + } + + return false; +}); + +/** + * Check if the request is stale, aka + * "Last-Modified" and / or the "ETag" for the + * resource has changed. + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'stale', function stale(){ + return !this.fresh; +}); + +/** + * Check if the request was an _XMLHttpRequest_. + * + * @return {Boolean} + * @public + */ + +defineGetter(req, 'xhr', function xhr(){ + var val = this.get('X-Requested-With') || ''; + return val.toLowerCase() === 'xmlhttprequest'; +}); + +/** + * Helper function for creating a getter on an object. + * + * @param {Object} obj + * @param {String} name + * @param {Function} getter + * @private + */ +function defineGetter(obj, name, getter) { + Object.defineProperty(obj, name, { + configurable: true, + enumerable: true, + get: getter + }); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/response.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/response.js" new file mode 100644 index 0000000000000000000000000000000000000000..ba02008522dce931f7222172278e0dc126816c41 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/response.js" @@ -0,0 +1,1147 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var Buffer = require('safe-buffer').Buffer +var contentDisposition = require('content-disposition'); +var deprecate = require('depd')('express'); +var encodeUrl = require('encodeurl'); +var escapeHtml = require('escape-html'); +var http = require('http'); +var isAbsolute = require('./utils').isAbsolute; +var onFinished = require('on-finished'); +var path = require('path'); +var statuses = require('statuses') +var merge = require('utils-merge'); +var sign = require('cookie-signature').sign; +var normalizeType = require('./utils').normalizeType; +var normalizeTypes = require('./utils').normalizeTypes; +var setCharset = require('./utils').setCharset; +var cookie = require('cookie'); +var send = require('send'); +var extname = path.extname; +var mime = send.mime; +var resolve = path.resolve; +var vary = require('vary'); + +/** + * Response prototype. + * @public + */ + +var res = Object.create(http.ServerResponse.prototype) + +/** + * Module exports. + * @public + */ + +module.exports = res + +/** + * Module variables. + * @private + */ + +var charsetRegExp = /;\s*charset\s*=/; + +/** + * Set status `code`. + * + * @param {Number} code + * @return {ServerResponse} + * @public + */ + +res.status = function status(code) { + this.statusCode = code; + return this; +}; + +/** + * Set Link header field with the given `links`. + * + * Examples: + * + * res.links({ + * next: 'http://api.example.com/users?page=2', + * last: 'http://api.example.com/users?page=5' + * }); + * + * @param {Object} links + * @return {ServerResponse} + * @public + */ + +res.links = function(links){ + var link = this.get('Link') || ''; + if (link) link += ', '; + return this.set('Link', link + Object.keys(links).map(function(rel){ + return '<' + links[rel] + '>; rel="' + rel + '"'; + }).join(', ')); +}; + +/** + * Send a response. + * + * Examples: + * + * res.send(Buffer.from('wahoo')); + * res.send({ some: 'json' }); + * res.send('

    some html

    '); + * + * @param {string|number|boolean|object|Buffer} body + * @public + */ + +res.send = function send(body) { + var chunk = body; + var encoding; + var req = this.req; + var type; + + // settings + var app = this.app; + + // allow status / body + if (arguments.length === 2) { + // res.send(body, status) backwards compat + if (typeof arguments[0] !== 'number' && typeof arguments[1] === 'number') { + deprecate('res.send(body, status): Use res.status(status).send(body) instead'); + this.statusCode = arguments[1]; + } else { + deprecate('res.send(status, body): Use res.status(status).send(body) instead'); + this.statusCode = arguments[0]; + chunk = arguments[1]; + } + } + + // disambiguate res.send(status) and res.send(status, num) + if (typeof chunk === 'number' && arguments.length === 1) { + // res.send(status) will set status message as text string + if (!this.get('Content-Type')) { + this.type('txt'); + } + + deprecate('res.send(status): Use res.sendStatus(status) instead'); + this.statusCode = chunk; + chunk = statuses[chunk] + } + + switch (typeof chunk) { + // string defaulting to html + case 'string': + if (!this.get('Content-Type')) { + this.type('html'); + } + break; + case 'boolean': + case 'number': + case 'object': + if (chunk === null) { + chunk = ''; + } else if (Buffer.isBuffer(chunk)) { + if (!this.get('Content-Type')) { + this.type('bin'); + } + } else { + return this.json(chunk); + } + break; + } + + // write strings in utf-8 + if (typeof chunk === 'string') { + encoding = 'utf8'; + type = this.get('Content-Type'); + + // reflect this in content-type + if (typeof type === 'string') { + this.set('Content-Type', setCharset(type, 'utf-8')); + } + } + + // determine if ETag should be generated + var etagFn = app.get('etag fn') + var generateETag = !this.get('ETag') && typeof etagFn === 'function' + + // populate Content-Length + var len + if (chunk !== undefined) { + if (Buffer.isBuffer(chunk)) { + // get length of Buffer + len = chunk.length + } else if (!generateETag && chunk.length < 1000) { + // just calculate length when no ETag + small chunk + len = Buffer.byteLength(chunk, encoding) + } else { + // convert chunk to Buffer and calculate + chunk = Buffer.from(chunk, encoding) + encoding = undefined; + len = chunk.length + } + + this.set('Content-Length', len); + } + + // populate ETag + var etag; + if (generateETag && len !== undefined) { + if ((etag = etagFn(chunk, encoding))) { + this.set('ETag', etag); + } + } + + // freshness + if (req.fresh) this.statusCode = 304; + + // strip irrelevant headers + if (204 === this.statusCode || 304 === this.statusCode) { + this.removeHeader('Content-Type'); + this.removeHeader('Content-Length'); + this.removeHeader('Transfer-Encoding'); + chunk = ''; + } + + if (req.method === 'HEAD') { + // skip body for HEAD + this.end(); + } else { + // respond + this.end(chunk, encoding); + } + + return this; +}; + +/** + * Send JSON response. + * + * Examples: + * + * res.json(null); + * res.json({ user: 'tj' }); + * + * @param {string|number|boolean|object} obj + * @public + */ + +res.json = function json(obj) { + var val = obj; + + // allow status / body + if (arguments.length === 2) { + // res.json(body, status) backwards compat + if (typeof arguments[1] === 'number') { + deprecate('res.json(obj, status): Use res.status(status).json(obj) instead'); + this.statusCode = arguments[1]; + } else { + deprecate('res.json(status, obj): Use res.status(status).json(obj) instead'); + this.statusCode = arguments[0]; + val = arguments[1]; + } + } + + // settings + var app = this.app; + var escape = app.get('json escape') + var replacer = app.get('json replacer'); + var spaces = app.get('json spaces'); + var body = stringify(val, replacer, spaces, escape) + + // content-type + if (!this.get('Content-Type')) { + this.set('Content-Type', 'application/json'); + } + + return this.send(body); +}; + +/** + * Send JSON response with JSONP callback support. + * + * Examples: + * + * res.jsonp(null); + * res.jsonp({ user: 'tj' }); + * + * @param {string|number|boolean|object} obj + * @public + */ + +res.jsonp = function jsonp(obj) { + var val = obj; + + // allow status / body + if (arguments.length === 2) { + // res.jsonp(body, status) backwards compat + if (typeof arguments[1] === 'number') { + deprecate('res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead'); + this.statusCode = arguments[1]; + } else { + deprecate('res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead'); + this.statusCode = arguments[0]; + val = arguments[1]; + } + } + + // settings + var app = this.app; + var escape = app.get('json escape') + var replacer = app.get('json replacer'); + var spaces = app.get('json spaces'); + var body = stringify(val, replacer, spaces, escape) + var callback = this.req.query[app.get('jsonp callback name')]; + + // content-type + if (!this.get('Content-Type')) { + this.set('X-Content-Type-Options', 'nosniff'); + this.set('Content-Type', 'application/json'); + } + + // fixup callback + if (Array.isArray(callback)) { + callback = callback[0]; + } + + // jsonp + if (typeof callback === 'string' && callback.length !== 0) { + this.set('X-Content-Type-Options', 'nosniff'); + this.set('Content-Type', 'text/javascript'); + + // restrict callback charset + callback = callback.replace(/[^\[\]\w$.]/g, ''); + + if (body === undefined) { + // empty argument + body = '' + } else if (typeof body === 'string') { + // replace chars not allowed in JavaScript that are in JSON + body = body + .replace(/\u2028/g, '\\u2028') + .replace(/\u2029/g, '\\u2029') + } + + // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse" + // the typeof check is just to reduce client error noise + body = '/**/ typeof ' + callback + ' === \'function\' && ' + callback + '(' + body + ');'; + } + + return this.send(body); +}; + +/** + * Send given HTTP status code. + * + * Sets the response status to `statusCode` and the body of the + * response to the standard description from node's http.STATUS_CODES + * or the statusCode number if no description. + * + * Examples: + * + * res.sendStatus(200); + * + * @param {number} statusCode + * @public + */ + +res.sendStatus = function sendStatus(statusCode) { + var body = statuses[statusCode] || String(statusCode) + + this.statusCode = statusCode; + this.type('txt'); + + return this.send(body); +}; + +/** + * Transfer the file at the given `path`. + * + * Automatically sets the _Content-Type_ response header field. + * The callback `callback(err)` is invoked when the transfer is complete + * or when an error occurs. Be sure to check `res.headersSent` + * if you wish to attempt responding, as the header and some data + * may have already been transferred. + * + * Options: + * + * - `maxAge` defaulting to 0 (can be string converted by `ms`) + * - `root` root directory for relative filenames + * - `headers` object of headers to serve with file + * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them + * + * Other options are passed along to `send`. + * + * Examples: + * + * The following example illustrates how `res.sendFile()` may + * be used as an alternative for the `static()` middleware for + * dynamic situations. The code backing `res.sendFile()` is actually + * the same code, so HTTP cache support etc is identical. + * + * app.get('/user/:uid/photos/:file', function(req, res){ + * var uid = req.params.uid + * , file = req.params.file; + * + * req.user.mayViewFilesFrom(uid, function(yes){ + * if (yes) { + * res.sendFile('/uploads/' + uid + '/' + file); + * } else { + * res.send(403, 'Sorry! you cant see that.'); + * } + * }); + * }); + * + * @public + */ + +res.sendFile = function sendFile(path, options, callback) { + var done = callback; + var req = this.req; + var res = this; + var next = req.next; + var opts = options || {}; + + if (!path) { + throw new TypeError('path argument is required to res.sendFile'); + } + + if (typeof path !== 'string') { + throw new TypeError('path must be a string to res.sendFile') + } + + // support function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + if (!opts.root && !isAbsolute(path)) { + throw new TypeError('path must be absolute or specify root to res.sendFile'); + } + + // create file stream + var pathname = encodeURI(path); + var file = send(req, pathname, opts); + + // transfer + sendfile(res, file, opts, function (err) { + if (done) return done(err); + if (err && err.code === 'EISDIR') return next(); + + // next() all but write errors + if (err && err.code !== 'ECONNABORTED' && err.syscall !== 'write') { + next(err); + } + }); +}; + +/** + * Transfer the file at the given `path`. + * + * Automatically sets the _Content-Type_ response header field. + * The callback `callback(err)` is invoked when the transfer is complete + * or when an error occurs. Be sure to check `res.headersSent` + * if you wish to attempt responding, as the header and some data + * may have already been transferred. + * + * Options: + * + * - `maxAge` defaulting to 0 (can be string converted by `ms`) + * - `root` root directory for relative filenames + * - `headers` object of headers to serve with file + * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them + * + * Other options are passed along to `send`. + * + * Examples: + * + * The following example illustrates how `res.sendfile()` may + * be used as an alternative for the `static()` middleware for + * dynamic situations. The code backing `res.sendfile()` is actually + * the same code, so HTTP cache support etc is identical. + * + * app.get('/user/:uid/photos/:file', function(req, res){ + * var uid = req.params.uid + * , file = req.params.file; + * + * req.user.mayViewFilesFrom(uid, function(yes){ + * if (yes) { + * res.sendfile('/uploads/' + uid + '/' + file); + * } else { + * res.send(403, 'Sorry! you cant see that.'); + * } + * }); + * }); + * + * @public + */ + +res.sendfile = function (path, options, callback) { + var done = callback; + var req = this.req; + var res = this; + var next = req.next; + var opts = options || {}; + + // support function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + // create file stream + var file = send(req, path, opts); + + // transfer + sendfile(res, file, opts, function (err) { + if (done) return done(err); + if (err && err.code === 'EISDIR') return next(); + + // next() all but write errors + if (err && err.code !== 'ECONNABORTED' && err.syscall !== 'write') { + next(err); + } + }); +}; + +res.sendfile = deprecate.function(res.sendfile, + 'res.sendfile: Use res.sendFile instead'); + +/** + * Transfer the file at the given `path` as an attachment. + * + * Optionally providing an alternate attachment `filename`, + * and optional callback `callback(err)`. The callback is invoked + * when the data transfer is complete, or when an error has + * occurred. Be sure to check `res.headersSent` if you plan to respond. + * + * Optionally providing an `options` object to use with `res.sendFile()`. + * This function will set the `Content-Disposition` header, overriding + * any `Content-Disposition` header passed as header options in order + * to set the attachment and filename. + * + * This method uses `res.sendFile()`. + * + * @public + */ + +res.download = function download (path, filename, options, callback) { + var done = callback; + var name = filename; + var opts = options || null + + // support function as second or third arg + if (typeof filename === 'function') { + done = filename; + name = null; + opts = null + } else if (typeof options === 'function') { + done = options + opts = null + } + + // set Content-Disposition when file is sent + var headers = { + 'Content-Disposition': contentDisposition(name || path) + }; + + // merge user-provided headers + if (opts && opts.headers) { + var keys = Object.keys(opts.headers) + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key.toLowerCase() !== 'content-disposition') { + headers[key] = opts.headers[key] + } + } + } + + // merge user-provided options + opts = Object.create(opts) + opts.headers = headers + + // Resolve the full path for sendFile + var fullPath = resolve(path); + + // send file + return this.sendFile(fullPath, opts, done) +}; + +/** + * Set _Content-Type_ response header with `type` through `mime.lookup()` + * when it does not contain "/", or set the Content-Type to `type` otherwise. + * + * Examples: + * + * res.type('.html'); + * res.type('html'); + * res.type('json'); + * res.type('application/json'); + * res.type('png'); + * + * @param {String} type + * @return {ServerResponse} for chaining + * @public + */ + +res.contentType = +res.type = function contentType(type) { + var ct = type.indexOf('/') === -1 + ? mime.lookup(type) + : type; + + return this.set('Content-Type', ct); +}; + +/** + * Respond to the Acceptable formats using an `obj` + * of mime-type callbacks. + * + * This method uses `req.accepted`, an array of + * acceptable types ordered by their quality values. + * When "Accept" is not present the _first_ callback + * is invoked, otherwise the first match is used. When + * no match is performed the server responds with + * 406 "Not Acceptable". + * + * Content-Type is set for you, however if you choose + * you may alter this within the callback using `res.type()` + * or `res.set('Content-Type', ...)`. + * + * res.format({ + * 'text/plain': function(){ + * res.send('hey'); + * }, + * + * 'text/html': function(){ + * res.send('

    hey

    '); + * }, + * + * 'application/json': function () { + * res.send({ message: 'hey' }); + * } + * }); + * + * In addition to canonicalized MIME types you may + * also use extnames mapped to these types: + * + * res.format({ + * text: function(){ + * res.send('hey'); + * }, + * + * html: function(){ + * res.send('

    hey

    '); + * }, + * + * json: function(){ + * res.send({ message: 'hey' }); + * } + * }); + * + * By default Express passes an `Error` + * with a `.status` of 406 to `next(err)` + * if a match is not made. If you provide + * a `.default` callback it will be invoked + * instead. + * + * @param {Object} obj + * @return {ServerResponse} for chaining + * @public + */ + +res.format = function(obj){ + var req = this.req; + var next = req.next; + + var fn = obj.default; + if (fn) delete obj.default; + var keys = Object.keys(obj); + + var key = keys.length > 0 + ? req.accepts(keys) + : false; + + this.vary("Accept"); + + if (key) { + this.set('Content-Type', normalizeType(key).value); + obj[key](req, this, next); + } else if (fn) { + fn(); + } else { + var err = new Error('Not Acceptable'); + err.status = err.statusCode = 406; + err.types = normalizeTypes(keys).map(function(o){ return o.value }); + next(err); + } + + return this; +}; + +/** + * Set _Content-Disposition_ header to _attachment_ with optional `filename`. + * + * @param {String} filename + * @return {ServerResponse} + * @public + */ + +res.attachment = function attachment(filename) { + if (filename) { + this.type(extname(filename)); + } + + this.set('Content-Disposition', contentDisposition(filename)); + + return this; +}; + +/** + * Append additional header `field` with value `val`. + * + * Example: + * + * res.append('Link', ['', '']); + * res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly'); + * res.append('Warning', '199 Miscellaneous warning'); + * + * @param {String} field + * @param {String|Array} val + * @return {ServerResponse} for chaining + * @public + */ + +res.append = function append(field, val) { + var prev = this.get(field); + var value = val; + + if (prev) { + // concat the new and prev vals + value = Array.isArray(prev) ? prev.concat(val) + : Array.isArray(val) ? [prev].concat(val) + : [prev, val] + } + + return this.set(field, value); +}; + +/** + * Set header `field` to `val`, or pass + * an object of header fields. + * + * Examples: + * + * res.set('Foo', ['bar', 'baz']); + * res.set('Accept', 'application/json'); + * res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' }); + * + * Aliased as `res.header()`. + * + * @param {String|Object} field + * @param {String|Array} val + * @return {ServerResponse} for chaining + * @public + */ + +res.set = +res.header = function header(field, val) { + if (arguments.length === 2) { + var value = Array.isArray(val) + ? val.map(String) + : String(val); + + // add charset to content-type + if (field.toLowerCase() === 'content-type') { + if (Array.isArray(value)) { + throw new TypeError('Content-Type cannot be set to an Array'); + } + if (!charsetRegExp.test(value)) { + var charset = mime.charsets.lookup(value.split(';')[0]); + if (charset) value += '; charset=' + charset.toLowerCase(); + } + } + + this.setHeader(field, value); + } else { + for (var key in field) { + this.set(key, field[key]); + } + } + return this; +}; + +/** + * Get value for header `field`. + * + * @param {String} field + * @return {String} + * @public + */ + +res.get = function(field){ + return this.getHeader(field); +}; + +/** + * Clear cookie `name`. + * + * @param {String} name + * @param {Object} [options] + * @return {ServerResponse} for chaining + * @public + */ + +res.clearCookie = function clearCookie(name, options) { + var opts = merge({ expires: new Date(1), path: '/' }, options); + + return this.cookie(name, '', opts); +}; + +/** + * Set cookie `name` to `value`, with the given `options`. + * + * Options: + * + * - `maxAge` max-age in milliseconds, converted to `expires` + * - `signed` sign the cookie + * - `path` defaults to "/" + * + * Examples: + * + * // "Remember Me" for 15 minutes + * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true }); + * + * // same as above + * res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true }) + * + * @param {String} name + * @param {String|Object} value + * @param {Object} [options] + * @return {ServerResponse} for chaining + * @public + */ + +res.cookie = function (name, value, options) { + var opts = merge({}, options); + var secret = this.req.secret; + var signed = opts.signed; + + if (signed && !secret) { + throw new Error('cookieParser("secret") required for signed cookies'); + } + + var val = typeof value === 'object' + ? 'j:' + JSON.stringify(value) + : String(value); + + if (signed) { + val = 's:' + sign(val, secret); + } + + if ('maxAge' in opts) { + opts.expires = new Date(Date.now() + opts.maxAge); + opts.maxAge /= 1000; + } + + if (opts.path == null) { + opts.path = '/'; + } + + this.append('Set-Cookie', cookie.serialize(name, String(val), opts)); + + return this; +}; + +/** + * Set the location header to `url`. + * + * The given `url` can also be "back", which redirects + * to the _Referrer_ or _Referer_ headers or "/". + * + * Examples: + * + * res.location('/foo/bar').; + * res.location('http://example.com'); + * res.location('../login'); + * + * @param {String} url + * @return {ServerResponse} for chaining + * @public + */ + +res.location = function location(url) { + var loc = url; + + // "back" is an alias for the referrer + if (url === 'back') { + loc = this.req.get('Referrer') || '/'; + } + + // set location + return this.set('Location', encodeUrl(loc)); +}; + +/** + * Redirect to the given `url` with optional response `status` + * defaulting to 302. + * + * The resulting `url` is determined by `res.location()`, so + * it will play nicely with mounted apps, relative paths, + * `"back"` etc. + * + * Examples: + * + * res.redirect('/foo/bar'); + * res.redirect('http://example.com'); + * res.redirect(301, 'http://example.com'); + * res.redirect('../login'); // /blog/post/1 -> /blog/login + * + * @public + */ + +res.redirect = function redirect(url) { + var address = url; + var body; + var status = 302; + + // allow status / url + if (arguments.length === 2) { + if (typeof arguments[0] === 'number') { + status = arguments[0]; + address = arguments[1]; + } else { + deprecate('res.redirect(url, status): Use res.redirect(status, url) instead'); + status = arguments[1]; + } + } + + // Set location header + address = this.location(address).get('Location'); + + // Support text/{plain,html} by default + this.format({ + text: function(){ + body = statuses[status] + '. Redirecting to ' + address + }, + + html: function(){ + var u = escapeHtml(address); + body = '

    ' + statuses[status] + '. Redirecting to ' + u + '

    ' + }, + + default: function(){ + body = ''; + } + }); + + // Respond + this.statusCode = status; + this.set('Content-Length', Buffer.byteLength(body)); + + if (this.req.method === 'HEAD') { + this.end(); + } else { + this.end(body); + } +}; + +/** + * Add `field` to Vary. If already present in the Vary set, then + * this call is simply ignored. + * + * @param {Array|String} field + * @return {ServerResponse} for chaining + * @public + */ + +res.vary = function(field){ + // checks for back-compat + if (!field || (Array.isArray(field) && !field.length)) { + deprecate('res.vary(): Provide a field name'); + return this; + } + + vary(this, field); + + return this; +}; + +/** + * Render `view` with the given `options` and optional callback `fn`. + * When a callback function is given a response will _not_ be made + * automatically, otherwise a response of _200_ and _text/html_ is given. + * + * Options: + * + * - `cache` boolean hinting to the engine it should cache + * - `filename` filename of the view being rendered + * + * @public + */ + +res.render = function render(view, options, callback) { + var app = this.req.app; + var done = callback; + var opts = options || {}; + var req = this.req; + var self = this; + + // support callback function as second arg + if (typeof options === 'function') { + done = options; + opts = {}; + } + + // merge res.locals + opts._locals = self.locals; + + // default callback to respond + done = done || function (err, str) { + if (err) return req.next(err); + self.send(str); + }; + + // render + app.render(view, opts, done); +}; + +// pipe the send file stream +function sendfile(res, file, options, callback) { + var done = false; + var streaming; + + // request aborted + function onaborted() { + if (done) return; + done = true; + + var err = new Error('Request aborted'); + err.code = 'ECONNABORTED'; + callback(err); + } + + // directory + function ondirectory() { + if (done) return; + done = true; + + var err = new Error('EISDIR, read'); + err.code = 'EISDIR'; + callback(err); + } + + // errors + function onerror(err) { + if (done) return; + done = true; + callback(err); + } + + // ended + function onend() { + if (done) return; + done = true; + callback(); + } + + // file + function onfile() { + streaming = false; + } + + // finished + function onfinish(err) { + if (err && err.code === 'ECONNRESET') return onaborted(); + if (err) return onerror(err); + if (done) return; + + setImmediate(function () { + if (streaming !== false && !done) { + onaborted(); + return; + } + + if (done) return; + done = true; + callback(); + }); + } + + // streaming + function onstream() { + streaming = true; + } + + file.on('directory', ondirectory); + file.on('end', onend); + file.on('error', onerror); + file.on('file', onfile); + file.on('stream', onstream); + onFinished(res, onfinish); + + if (options.headers) { + // set headers on successful transfer + file.on('headers', function headers(res) { + var obj = options.headers; + var keys = Object.keys(obj); + + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + res.setHeader(k, obj[k]); + } + }); + } + + // pipe + file.pipe(res); +} + +/** + * Stringify JSON, like JSON.stringify, but v8 optimized, with the + * ability to escape characters that can trigger HTML sniffing. + * + * @param {*} value + * @param {function} replaces + * @param {number} spaces + * @param {boolean} escape + * @returns {string} + * @private + */ + +function stringify (value, replacer, spaces, escape) { + // v8 checks arguments.length for optimizing simple call + // https://bugs.chromium.org/p/v8/issues/detail?id=4730 + var json = replacer || spaces + ? JSON.stringify(value, replacer, spaces) + : JSON.stringify(value); + + if (escape && typeof json === 'string') { + json = json.replace(/[<>&]/g, function (c) { + switch (c.charCodeAt(0)) { + case 0x3c: + return '\\u003c' + case 0x3e: + return '\\u003e' + case 0x26: + return '\\u0026' + /* istanbul ignore next: unreachable default */ + default: + return c + } + }) + } + + return json +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..fbe94acdb476d3d3db7699ac98169a3d6da35a4e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/index.js" @@ -0,0 +1,668 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var Route = require('./route'); +var Layer = require('./layer'); +var methods = require('methods'); +var mixin = require('utils-merge'); +var debug = require('debug')('express:router'); +var deprecate = require('depd')('express'); +var flatten = require('array-flatten'); +var parseUrl = require('parseurl'); +var setPrototypeOf = require('setprototypeof') + +/** + * Module variables. + * @private + */ + +var objectRegExp = /^\[object (\S+)\]$/; +var slice = Array.prototype.slice; +var toString = Object.prototype.toString; + +/** + * Initialize a new `Router` with the given `options`. + * + * @param {Object} [options] + * @return {Router} which is an callable function + * @public + */ + +var proto = module.exports = function(options) { + var opts = options || {}; + + function router(req, res, next) { + router.handle(req, res, next); + } + + // mixin Router class functions + setPrototypeOf(router, proto) + + router.params = {}; + router._params = []; + router.caseSensitive = opts.caseSensitive; + router.mergeParams = opts.mergeParams; + router.strict = opts.strict; + router.stack = []; + + return router; +}; + +/** + * Map the given param placeholder `name`(s) to the given callback. + * + * Parameter mapping is used to provide pre-conditions to routes + * which use normalized placeholders. For example a _:user_id_ parameter + * could automatically load a user's information from the database without + * any additional code, + * + * The callback uses the same signature as middleware, the only difference + * being that the value of the placeholder is passed, in this case the _id_ + * of the user. Once the `next()` function is invoked, just like middleware + * it will continue on to execute the route, or subsequent parameter functions. + * + * Just like in middleware, you must either respond to the request or call next + * to avoid stalling the request. + * + * app.param('user_id', function(req, res, next, id){ + * User.find(id, function(err, user){ + * if (err) { + * return next(err); + * } else if (!user) { + * return next(new Error('failed to load user')); + * } + * req.user = user; + * next(); + * }); + * }); + * + * @param {String} name + * @param {Function} fn + * @return {app} for chaining + * @public + */ + +proto.param = function param(name, fn) { + // param logic + if (typeof name === 'function') { + deprecate('router.param(fn): Refactor to use path params'); + this._params.push(name); + return; + } + + // apply param functions + var params = this._params; + var len = params.length; + var ret; + + if (name[0] === ':') { + deprecate('router.param(' + JSON.stringify(name) + ', fn): Use router.param(' + JSON.stringify(name.substr(1)) + ', fn) instead'); + name = name.substr(1); + } + + for (var i = 0; i < len; ++i) { + if (ret = params[i](name, fn)) { + fn = ret; + } + } + + // ensure we end up with a + // middleware function + if ('function' !== typeof fn) { + throw new Error('invalid param() call for ' + name + ', got ' + fn); + } + + (this.params[name] = this.params[name] || []).push(fn); + return this; +}; + +/** + * Dispatch a req, res into the router. + * @private + */ + +proto.handle = function handle(req, res, out) { + var self = this; + + debug('dispatching %s %s', req.method, req.url); + + var idx = 0; + var protohost = getProtohost(req.url) || '' + var removed = ''; + var slashAdded = false; + var paramcalled = {}; + + // store options for OPTIONS request + // only used if OPTIONS request + var options = []; + + // middleware and routes + var stack = self.stack; + + // manage inter-router variables + var parentParams = req.params; + var parentUrl = req.baseUrl || ''; + var done = restore(out, req, 'baseUrl', 'next', 'params'); + + // setup next layer + req.next = next; + + // for options requests, respond with a default if nothing else responds + if (req.method === 'OPTIONS') { + done = wrap(done, function(old, err) { + if (err || options.length === 0) return old(err); + sendOptionsResponse(res, options, old); + }); + } + + // setup basic req values + req.baseUrl = parentUrl; + req.originalUrl = req.originalUrl || req.url; + + next(); + + function next(err) { + var layerError = err === 'route' + ? null + : err; + + // remove added slash + if (slashAdded) { + req.url = req.url.substr(1); + slashAdded = false; + } + + // restore altered req.url + if (removed.length !== 0) { + req.baseUrl = parentUrl; + req.url = protohost + removed + req.url.substr(protohost.length); + removed = ''; + } + + // signal to exit router + if (layerError === 'router') { + setImmediate(done, null) + return + } + + // no more matching layers + if (idx >= stack.length) { + setImmediate(done, layerError); + return; + } + + // get pathname of request + var path = getPathname(req); + + if (path == null) { + return done(layerError); + } + + // find next matching layer + var layer; + var match; + var route; + + while (match !== true && idx < stack.length) { + layer = stack[idx++]; + match = matchLayer(layer, path); + route = layer.route; + + if (typeof match !== 'boolean') { + // hold on to layerError + layerError = layerError || match; + } + + if (match !== true) { + continue; + } + + if (!route) { + // process non-route handlers normally + continue; + } + + if (layerError) { + // routes do not match with a pending error + match = false; + continue; + } + + var method = req.method; + var has_method = route._handles_method(method); + + // build up automatic options response + if (!has_method && method === 'OPTIONS') { + appendMethods(options, route._options()); + } + + // don't even bother matching route + if (!has_method && method !== 'HEAD') { + match = false; + continue; + } + } + + // no match + if (match !== true) { + return done(layerError); + } + + // store route for dispatch on change + if (route) { + req.route = route; + } + + // Capture one-time layer values + req.params = self.mergeParams + ? mergeParams(layer.params, parentParams) + : layer.params; + var layerPath = layer.path; + + // this should be done for the layer + self.process_params(layer, paramcalled, req, res, function (err) { + if (err) { + return next(layerError || err); + } + + if (route) { + return layer.handle_request(req, res, next); + } + + trim_prefix(layer, layerError, layerPath, path); + }); + } + + function trim_prefix(layer, layerError, layerPath, path) { + if (layerPath.length !== 0) { + // Validate path is a prefix match + if (layerPath !== path.substr(0, layerPath.length)) { + next(layerError) + return + } + + // Validate path breaks on a path separator + var c = path[layerPath.length] + if (c && c !== '/' && c !== '.') return next(layerError) + + // Trim off the part of the url that matches the route + // middleware (.use stuff) needs to have the path stripped + debug('trim prefix (%s) from url %s', layerPath, req.url); + removed = layerPath; + req.url = protohost + req.url.substr(protohost.length + removed.length); + + // Ensure leading slash + if (!protohost && req.url[0] !== '/') { + req.url = '/' + req.url; + slashAdded = true; + } + + // Setup base URL (no trailing slash) + req.baseUrl = parentUrl + (removed[removed.length - 1] === '/' + ? removed.substring(0, removed.length - 1) + : removed); + } + + debug('%s %s : %s', layer.name, layerPath, req.originalUrl); + + if (layerError) { + layer.handle_error(layerError, req, res, next); + } else { + layer.handle_request(req, res, next); + } + } +}; + +/** + * Process any parameters for the layer. + * @private + */ + +proto.process_params = function process_params(layer, called, req, res, done) { + var params = this.params; + + // captured parameters from the layer, keys and values + var keys = layer.keys; + + // fast track + if (!keys || keys.length === 0) { + return done(); + } + + var i = 0; + var name; + var paramIndex = 0; + var key; + var paramVal; + var paramCallbacks; + var paramCalled; + + // process params in order + // param callbacks can be async + function param(err) { + if (err) { + return done(err); + } + + if (i >= keys.length ) { + return done(); + } + + paramIndex = 0; + key = keys[i++]; + name = key.name; + paramVal = req.params[name]; + paramCallbacks = params[name]; + paramCalled = called[name]; + + if (paramVal === undefined || !paramCallbacks) { + return param(); + } + + // param previously called with same value or error occurred + if (paramCalled && (paramCalled.match === paramVal + || (paramCalled.error && paramCalled.error !== 'route'))) { + // restore value + req.params[name] = paramCalled.value; + + // next param + return param(paramCalled.error); + } + + called[name] = paramCalled = { + error: null, + match: paramVal, + value: paramVal + }; + + paramCallback(); + } + + // single param callbacks + function paramCallback(err) { + var fn = paramCallbacks[paramIndex++]; + + // store updated value + paramCalled.value = req.params[key.name]; + + if (err) { + // store error + paramCalled.error = err; + param(err); + return; + } + + if (!fn) return param(); + + try { + fn(req, res, paramCallback, paramVal, key.name); + } catch (e) { + paramCallback(e); + } + } + + param(); +}; + +/** + * Use the given middleware function, with optional path, defaulting to "/". + * + * Use (like `.all`) will run for any http METHOD, but it will not add + * handlers for those methods so OPTIONS requests will not consider `.use` + * functions even if they could respond. + * + * The other difference is that _route_ path is stripped and not visible + * to the handler function. The main effect of this feature is that mounted + * handlers can operate without any code changes regardless of the "prefix" + * pathname. + * + * @public + */ + +proto.use = function use(fn) { + var offset = 0; + var path = '/'; + + // default path to '/' + // disambiguate router.use([fn]) + if (typeof fn !== 'function') { + var arg = fn; + + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + + // first arg is the path + if (typeof arg !== 'function') { + offset = 1; + path = fn; + } + } + + var callbacks = flatten(slice.call(arguments, offset)); + + if (callbacks.length === 0) { + throw new TypeError('Router.use() requires a middleware function') + } + + for (var i = 0; i < callbacks.length; i++) { + var fn = callbacks[i]; + + if (typeof fn !== 'function') { + throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn)) + } + + // add the middleware + debug('use %o %s', path, fn.name || '') + + var layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: false, + end: false + }, fn); + + layer.route = undefined; + + this.stack.push(layer); + } + + return this; +}; + +/** + * Create a new Route for the given path. + * + * Each route contains a separate middleware stack and VERB handlers. + * + * See the Route api documentation for details on adding handlers + * and middleware to routes. + * + * @param {String} path + * @return {Route} + * @public + */ + +proto.route = function route(path) { + var route = new Route(path); + + var layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: this.strict, + end: true + }, route.dispatch.bind(route)); + + layer.route = route; + + this.stack.push(layer); + return route; +}; + +// create Router#VERB functions +methods.concat('all').forEach(function(method){ + proto[method] = function(path){ + var route = this.route(path) + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; +}); + +// append methods to a list of methods +function appendMethods(list, addition) { + for (var i = 0; i < addition.length; i++) { + var method = addition[i]; + if (list.indexOf(method) === -1) { + list.push(method); + } + } +} + +// get pathname of request +function getPathname(req) { + try { + return parseUrl(req).pathname; + } catch (err) { + return undefined; + } +} + +// Get get protocol + host for a URL +function getProtohost(url) { + if (typeof url !== 'string' || url.length === 0 || url[0] === '/') { + return undefined + } + + var searchIndex = url.indexOf('?') + var pathLength = searchIndex !== -1 + ? searchIndex + : url.length + var fqdnIndex = url.substr(0, pathLength).indexOf('://') + + return fqdnIndex !== -1 + ? url.substr(0, url.indexOf('/', 3 + fqdnIndex)) + : undefined +} + +// get type for error message +function gettype(obj) { + var type = typeof obj; + + if (type !== 'object') { + return type; + } + + // inspect [[Class]] for objects + return toString.call(obj) + .replace(objectRegExp, '$1'); +} + +/** + * Match path to a layer. + * + * @param {Layer} layer + * @param {string} path + * @private + */ + +function matchLayer(layer, path) { + try { + return layer.match(path); + } catch (err) { + return err; + } +} + +// merge params with parent params +function mergeParams(params, parent) { + if (typeof parent !== 'object' || !parent) { + return params; + } + + // make copy of parent for base + var obj = mixin({}, parent); + + // simple non-numeric merging + if (!(0 in params) || !(0 in parent)) { + return mixin(obj, params); + } + + var i = 0; + var o = 0; + + // determine numeric gaps + while (i in params) { + i++; + } + + while (o in parent) { + o++; + } + + // offset numeric indices in params before merge + for (i--; i >= 0; i--) { + params[i + o] = params[i]; + + // create holes for the merge when necessary + if (i < o) { + delete params[i]; + } + } + + return mixin(obj, params); +} + +// restore obj props after function +function restore(fn, obj) { + var props = new Array(arguments.length - 2); + var vals = new Array(arguments.length - 2); + + for (var i = 0; i < props.length; i++) { + props[i] = arguments[i + 2]; + vals[i] = obj[props[i]]; + } + + return function () { + // restore vals + for (var i = 0; i < props.length; i++) { + obj[props[i]] = vals[i]; + } + + return fn.apply(this, arguments); + }; +} + +// send an OPTIONS response +function sendOptionsResponse(res, options, next) { + try { + var body = options.join(','); + res.set('Allow', body); + res.send(body); + } catch (err) { + next(err); + } +} + +// wrap a function +function wrap(old, fn) { + return function proxy() { + var args = new Array(arguments.length + 1); + + args[0] = old; + for (var i = 0, len = arguments.length; i < len; i++) { + args[i + 1] = arguments[i]; + } + + fn.apply(this, args); + }; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/layer.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/layer.js" new file mode 100644 index 0000000000000000000000000000000000000000..4dc8e86d4f7fac6a5849ec236359e2300b4e3654 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/layer.js" @@ -0,0 +1,181 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var pathRegexp = require('path-to-regexp'); +var debug = require('debug')('express:router:layer'); + +/** + * Module variables. + * @private + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * Module exports. + * @public + */ + +module.exports = Layer; + +function Layer(path, options, fn) { + if (!(this instanceof Layer)) { + return new Layer(path, options, fn); + } + + debug('new %o', path) + var opts = options || {}; + + this.handle = fn; + this.name = fn.name || ''; + this.params = undefined; + this.path = undefined; + this.regexp = pathRegexp(path, this.keys = [], opts); + + // set fast path flags + this.regexp.fast_star = path === '*' + this.regexp.fast_slash = path === '/' && opts.end === false +} + +/** + * Handle the error for the layer. + * + * @param {Error} error + * @param {Request} req + * @param {Response} res + * @param {function} next + * @api private + */ + +Layer.prototype.handle_error = function handle_error(error, req, res, next) { + var fn = this.handle; + + if (fn.length !== 4) { + // not a standard error handler + return next(error); + } + + try { + fn(error, req, res, next); + } catch (err) { + next(err); + } +}; + +/** + * Handle the request for the layer. + * + * @param {Request} req + * @param {Response} res + * @param {function} next + * @api private + */ + +Layer.prototype.handle_request = function handle(req, res, next) { + var fn = this.handle; + + if (fn.length > 3) { + // not a standard request handler + return next(); + } + + try { + fn(req, res, next); + } catch (err) { + next(err); + } +}; + +/** + * Check if this route matches `path`, if so + * populate `.params`. + * + * @param {String} path + * @return {Boolean} + * @api private + */ + +Layer.prototype.match = function match(path) { + var match + + if (path != null) { + // fast path non-ending match for / (any path matches) + if (this.regexp.fast_slash) { + this.params = {} + this.path = '' + return true + } + + // fast path for * (everything matched in a param) + if (this.regexp.fast_star) { + this.params = {'0': decode_param(path)} + this.path = path + return true + } + + // match the path + match = this.regexp.exec(path) + } + + if (!match) { + this.params = undefined; + this.path = undefined; + return false; + } + + // store values + this.params = {}; + this.path = match[0] + + var keys = this.keys; + var params = this.params; + + for (var i = 1; i < match.length; i++) { + var key = keys[i - 1]; + var prop = key.name; + var val = decode_param(match[i]) + + if (val !== undefined || !(hasOwnProperty.call(params, prop))) { + params[prop] = val; + } + } + + return true; +}; + +/** + * Decode param value. + * + * @param {string} val + * @return {string} + * @private + */ + +function decode_param(val) { + if (typeof val !== 'string' || val.length === 0) { + return val; + } + + try { + return decodeURIComponent(val); + } catch (err) { + if (err instanceof URIError) { + err.message = 'Failed to decode param \'' + val + '\''; + err.status = err.statusCode = 400; + } + + throw err; + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/route.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/route.js" new file mode 100644 index 0000000000000000000000000000000000000000..178df0d5160eae9ebbcc2e0d683a433716d56946 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/router/route.js" @@ -0,0 +1,216 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var debug = require('debug')('express:router:route'); +var flatten = require('array-flatten'); +var Layer = require('./layer'); +var methods = require('methods'); + +/** + * Module variables. + * @private + */ + +var slice = Array.prototype.slice; +var toString = Object.prototype.toString; + +/** + * Module exports. + * @public + */ + +module.exports = Route; + +/** + * Initialize `Route` with the given `path`, + * + * @param {String} path + * @public + */ + +function Route(path) { + this.path = path; + this.stack = []; + + debug('new %o', path) + + // route handlers for various http methods + this.methods = {}; +} + +/** + * Determine if the route handles a given method. + * @private + */ + +Route.prototype._handles_method = function _handles_method(method) { + if (this.methods._all) { + return true; + } + + var name = method.toLowerCase(); + + if (name === 'head' && !this.methods['head']) { + name = 'get'; + } + + return Boolean(this.methods[name]); +}; + +/** + * @return {Array} supported HTTP methods + * @private + */ + +Route.prototype._options = function _options() { + var methods = Object.keys(this.methods); + + // append automatic head + if (this.methods.get && !this.methods.head) { + methods.push('head'); + } + + for (var i = 0; i < methods.length; i++) { + // make upper case + methods[i] = methods[i].toUpperCase(); + } + + return methods; +}; + +/** + * dispatch req, res into this route + * @private + */ + +Route.prototype.dispatch = function dispatch(req, res, done) { + var idx = 0; + var stack = this.stack; + if (stack.length === 0) { + return done(); + } + + var method = req.method.toLowerCase(); + if (method === 'head' && !this.methods['head']) { + method = 'get'; + } + + req.route = this; + + next(); + + function next(err) { + // signal to exit route + if (err && err === 'route') { + return done(); + } + + // signal to exit router + if (err && err === 'router') { + return done(err) + } + + var layer = stack[idx++]; + if (!layer) { + return done(err); + } + + if (layer.method && layer.method !== method) { + return next(err); + } + + if (err) { + layer.handle_error(err, req, res, next); + } else { + layer.handle_request(req, res, next); + } + } +}; + +/** + * Add a handler for all HTTP verbs to this route. + * + * Behaves just like middleware and can respond or call `next` + * to continue processing. + * + * You can use multiple `.all` call to add multiple handlers. + * + * function check_something(req, res, next){ + * next(); + * }; + * + * function validate_user(req, res, next){ + * next(); + * }; + * + * route + * .all(validate_user) + * .all(check_something) + * .get(function(req, res, next){ + * res.send('hello world'); + * }); + * + * @param {function} handler + * @return {Route} for chaining + * @api public + */ + +Route.prototype.all = function all() { + var handles = flatten(slice.call(arguments)); + + for (var i = 0; i < handles.length; i++) { + var handle = handles[i]; + + if (typeof handle !== 'function') { + var type = toString.call(handle); + var msg = 'Route.all() requires a callback function but got a ' + type + throw new TypeError(msg); + } + + var layer = Layer('/', {}, handle); + layer.method = undefined; + + this.methods._all = true; + this.stack.push(layer); + } + + return this; +}; + +methods.forEach(function(method){ + Route.prototype[method] = function(){ + var handles = flatten(slice.call(arguments)); + + for (var i = 0; i < handles.length; i++) { + var handle = handles[i]; + + if (typeof handle !== 'function') { + var type = toString.call(handle); + var msg = 'Route.' + method + '() requires a callback function but got a ' + type + throw new Error(msg); + } + + debug('%s %o', method, this.path) + + var layer = Layer('/', {}, handle); + layer.method = method; + + this.methods[method] = true; + this.stack.push(layer); + } + + return this; + }; +}); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/utils.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/utils.js" new file mode 100644 index 0000000000000000000000000000000000000000..7797b06853010b201c852fb3e46265143fece4b5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/utils.js" @@ -0,0 +1,303 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @api private + */ + +var Buffer = require('safe-buffer').Buffer +var contentDisposition = require('content-disposition'); +var contentType = require('content-type'); +var deprecate = require('depd')('express'); +var flatten = require('array-flatten'); +var mime = require('send').mime; +var etag = require('etag'); +var proxyaddr = require('proxy-addr'); +var qs = require('qs'); +var querystring = require('querystring'); + +/** + * Return strong ETag for `body`. + * + * @param {String|Buffer} body + * @param {String} [encoding] + * @return {String} + * @api private + */ + +exports.etag = createETagGenerator({ weak: false }) + +/** + * Return weak ETag for `body`. + * + * @param {String|Buffer} body + * @param {String} [encoding] + * @return {String} + * @api private + */ + +exports.wetag = createETagGenerator({ weak: true }) + +/** + * Check if `path` looks absolute. + * + * @param {String} path + * @return {Boolean} + * @api private + */ + +exports.isAbsolute = function(path){ + if ('/' === path[0]) return true; + if (':' === path[1] && ('\\' === path[2] || '/' === path[2])) return true; // Windows device path + if ('\\\\' === path.substring(0, 2)) return true; // Microsoft Azure absolute path +}; + +/** + * Flatten the given `arr`. + * + * @param {Array} arr + * @return {Array} + * @api private + */ + +exports.flatten = deprecate.function(flatten, + 'utils.flatten: use array-flatten npm module instead'); + +/** + * Normalize the given `type`, for example "html" becomes "text/html". + * + * @param {String} type + * @return {Object} + * @api private + */ + +exports.normalizeType = function(type){ + return ~type.indexOf('/') + ? acceptParams(type) + : { value: mime.lookup(type), params: {} }; +}; + +/** + * Normalize `types`, for example "html" becomes "text/html". + * + * @param {Array} types + * @return {Array} + * @api private + */ + +exports.normalizeTypes = function(types){ + var ret = []; + + for (var i = 0; i < types.length; ++i) { + ret.push(exports.normalizeType(types[i])); + } + + return ret; +}; + +/** + * Generate Content-Disposition header appropriate for the filename. + * non-ascii filenames are urlencoded and a filename* parameter is added + * + * @param {String} filename + * @return {String} + * @api private + */ + +exports.contentDisposition = deprecate.function(contentDisposition, + 'utils.contentDisposition: use content-disposition npm module instead'); + +/** + * Parse accept params `str` returning an + * object with `.value`, `.quality` and `.params`. + * also includes `.originalIndex` for stable sorting + * + * @param {String} str + * @return {Object} + * @api private + */ + +function acceptParams(str, index) { + var parts = str.split(/ *; */); + var ret = { value: parts[0], quality: 1, params: {}, originalIndex: index }; + + for (var i = 1; i < parts.length; ++i) { + var pms = parts[i].split(/ *= */); + if ('q' === pms[0]) { + ret.quality = parseFloat(pms[1]); + } else { + ret.params[pms[0]] = pms[1]; + } + } + + return ret; +} + +/** + * Compile "etag" value to function. + * + * @param {Boolean|String|Function} val + * @return {Function} + * @api private + */ + +exports.compileETag = function(val) { + var fn; + + if (typeof val === 'function') { + return val; + } + + switch (val) { + case true: + case 'weak': + fn = exports.wetag; + break; + case false: + break; + case 'strong': + fn = exports.etag; + break; + default: + throw new TypeError('unknown value for etag function: ' + val); + } + + return fn; +} + +/** + * Compile "query parser" value to function. + * + * @param {String|Function} val + * @return {Function} + * @api private + */ + +exports.compileQueryParser = function compileQueryParser(val) { + var fn; + + if (typeof val === 'function') { + return val; + } + + switch (val) { + case true: + case 'simple': + fn = querystring.parse; + break; + case false: + fn = newObject; + break; + case 'extended': + fn = parseExtendedQueryString; + break; + default: + throw new TypeError('unknown value for query parser function: ' + val); + } + + return fn; +} + +/** + * Compile "proxy trust" value to function. + * + * @param {Boolean|String|Number|Array|Function} val + * @return {Function} + * @api private + */ + +exports.compileTrust = function(val) { + if (typeof val === 'function') return val; + + if (val === true) { + // Support plain true/false + return function(){ return true }; + } + + if (typeof val === 'number') { + // Support trusting hop count + return function(a, i){ return i < val }; + } + + if (typeof val === 'string') { + // Support comma-separated values + val = val.split(',') + .map(function (v) { return v.trim() }) + } + + return proxyaddr.compile(val || []); +} + +/** + * Set the charset in a given Content-Type string. + * + * @param {String} type + * @param {String} charset + * @return {String} + * @api private + */ + +exports.setCharset = function setCharset(type, charset) { + if (!type || !charset) { + return type; + } + + // parse type + var parsed = contentType.parse(type); + + // set charset + parsed.parameters.charset = charset; + + // format type + return contentType.format(parsed); +}; + +/** + * Create an ETag generator function, generating ETags with + * the given options. + * + * @param {object} options + * @return {function} + * @private + */ + +function createETagGenerator (options) { + return function generateETag (body, encoding) { + var buf = !Buffer.isBuffer(body) + ? Buffer.from(body, encoding) + : body + + return etag(buf, options) + } +} + +/** + * Parse an extended query string with qs. + * + * @return {Object} + * @private + */ + +function parseExtendedQueryString(str) { + return qs.parse(str, { + allowPrototypes: true + }); +} + +/** + * Return new empty object. + * + * @return {Object} + * @api private + */ + +function newObject() { + return {}; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/view.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/view.js" new file mode 100644 index 0000000000000000000000000000000000000000..cf101caeab912b013843560996183a0bc9e1654b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/lib/view.js" @@ -0,0 +1,182 @@ +/*! + * express + * Copyright(c) 2009-2013 TJ Holowaychuk + * Copyright(c) 2013 Roman Shtylman + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var debug = require('debug')('express:view'); +var path = require('path'); +var fs = require('fs'); + +/** + * Module variables. + * @private + */ + +var dirname = path.dirname; +var basename = path.basename; +var extname = path.extname; +var join = path.join; +var resolve = path.resolve; + +/** + * Module exports. + * @public + */ + +module.exports = View; + +/** + * Initialize a new `View` with the given `name`. + * + * Options: + * + * - `defaultEngine` the default template engine name + * - `engines` template engine require() cache + * - `root` root path for view lookup + * + * @param {string} name + * @param {object} options + * @public + */ + +function View(name, options) { + var opts = options || {}; + + this.defaultEngine = opts.defaultEngine; + this.ext = extname(name); + this.name = name; + this.root = opts.root; + + if (!this.ext && !this.defaultEngine) { + throw new Error('No default engine was specified and no extension was provided.'); + } + + var fileName = name; + + if (!this.ext) { + // get extension from default engine name + this.ext = this.defaultEngine[0] !== '.' + ? '.' + this.defaultEngine + : this.defaultEngine; + + fileName += this.ext; + } + + if (!opts.engines[this.ext]) { + // load engine + var mod = this.ext.substr(1) + debug('require "%s"', mod) + + // default engine export + var fn = require(mod).__express + + if (typeof fn !== 'function') { + throw new Error('Module "' + mod + '" does not provide a view engine.') + } + + opts.engines[this.ext] = fn + } + + // store loaded engine + this.engine = opts.engines[this.ext]; + + // lookup path + this.path = this.lookup(fileName); +} + +/** + * Lookup view by the given `name` + * + * @param {string} name + * @private + */ + +View.prototype.lookup = function lookup(name) { + var path; + var roots = [].concat(this.root); + + debug('lookup "%s"', name); + + for (var i = 0; i < roots.length && !path; i++) { + var root = roots[i]; + + // resolve the path + var loc = resolve(root, name); + var dir = dirname(loc); + var file = basename(loc); + + // resolve the file + path = this.resolve(dir, file); + } + + return path; +}; + +/** + * Render with the given options. + * + * @param {object} options + * @param {function} callback + * @private + */ + +View.prototype.render = function render(options, callback) { + debug('render "%s"', this.path); + this.engine(this.path, options, callback); +}; + +/** + * Resolve the file within the given directory. + * + * @param {string} dir + * @param {string} file + * @private + */ + +View.prototype.resolve = function resolve(dir, file) { + var ext = this.ext; + + // . + var path = join(dir, file); + var stat = tryStat(path); + + if (stat && stat.isFile()) { + return path; + } + + // /index. + path = join(dir, basename(file, ext), 'index' + ext); + stat = tryStat(path); + + if (stat && stat.isFile()) { + return path; + } +}; + +/** + * Return a stat, maybe. + * + * @param {string} path + * @return {fs.Stats} + * @private + */ + +function tryStat(path) { + debug('stat "%s"', path); + + try { + return fs.statSync(path); + } catch (e) { + return undefined; + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..157a3f98d42c9c667fb9ecaa5f837338faa873ca --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/express/package.json" @@ -0,0 +1,156 @@ +{ + "_from": "express", + "_id": "express@4.17.3", + "_inBundle": false, + "_integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "_location": "/express", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "express", + "name": "express", + "escapedName": "express", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "_shasum": "f6c7302194a4fb54271b73a1fe7a06478c8f85a1", + "_spec": "express", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/expressjs/express/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Aaron Heckmann", + "email": "aaron.heckmann+github@gmail.com" + }, + { + "name": "Ciaran Jessup", + "email": "ciaranj@gmail.com" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Guillermo Rauch", + "email": "rauchg@gmail.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com" + }, + { + "name": "Roman Shtylman", + "email": "shtylman+expressjs@gmail.com" + }, + { + "name": "Young Jae Sim", + "email": "hanul@hanul.me" + } + ], + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "deprecated": false, + "description": "Fast, unopinionated, minimalist web framework", + "devDependencies": { + "after": "0.8.2", + "connect-redis": "3.4.2", + "cookie-parser": "1.4.6", + "cookie-session": "2.0.0", + "ejs": "3.1.6", + "eslint": "7.32.0", + "express-session": "1.17.2", + "hbs": "4.2.0", + "marked": "0.7.0", + "method-override": "3.0.0", + "mocha": "9.2.0", + "morgan": "1.10.0", + "multiparty": "4.2.3", + "nyc": "15.1.0", + "pbkdf2-password": "1.2.1", + "resolve-path": "1.4.0", + "should": "13.2.3", + "supertest": "6.2.2", + "vhost": "~3.0.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "files": [ + "LICENSE", + "History.md", + "Readme.md", + "index.js", + "lib/" + ], + "homepage": "http://expressjs.com/", + "keywords": [ + "express", + "framework", + "sinatra", + "web", + "http", + "rest", + "restful", + "router", + "app", + "api" + ], + "license": "MIT", + "name": "express", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/express.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/" + }, + "version": "4.17.3" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..920c35e5820183d10bb2fb86895e2c359f08c00c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/HISTORY.md" @@ -0,0 +1,187 @@ +1.1.2 / 2019-05-09 +================== + + * Set stricter `Content-Security-Policy` header + * deps: parseurl@~1.3.3 + * deps: statuses@~1.5.0 + +1.1.1 / 2018-03-06 +================== + + * Fix 404 output for bad / missing pathnames + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: statuses@~1.4.0 + +1.1.0 / 2017-09-24 +================== + + * Use `res.headersSent` when available + +1.0.6 / 2017-09-22 +================== + + * deps: debug@2.6.9 + +1.0.5 / 2017-09-15 +================== + + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + +1.0.4 / 2017-08-03 +================== + + * deps: debug@2.6.8 + +1.0.3 / 2017-05-16 +================== + + * deps: debug@2.6.7 + - deps: ms@2.0.0 + +1.0.2 / 2017-04-22 +================== + + * deps: debug@2.6.4 + - deps: ms@0.7.3 + +1.0.1 / 2017-03-21 +================== + + * Fix missing `` in HTML document + * deps: debug@2.6.3 + - Fix: `DEBUG_MAX_ARRAY_LENGTH` + +1.0.0 / 2017-02-15 +================== + + * Fix exception when `err` cannot be converted to a string + * Fully URL-encode the pathname in the 404 message + * Only include the pathname in the 404 message + * Send complete HTML document + * Set `Content-Security-Policy: default-src 'self'` header + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + +0.5.1 / 2016-11-12 +================== + + * Fix exception when `err.headers` is not an object + * deps: statuses@~1.3.1 + * perf: hoist regular expressions + * perf: remove duplicate validation path + +0.5.0 / 2016-06-15 +================== + + * Change invalid or non-numeric status code to 500 + * Overwrite status message to match set status code + * Prefer `err.statusCode` if `err.status` is invalid + * Set response headers from `err.headers` object + * Use `statuses` instead of `http` module for status messages + - Includes all defined status messages + +0.4.1 / 2015-12-02 +================== + + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + +0.4.0 / 2015-06-14 +================== + + * Fix a false-positive when unpiping in Node.js 0.8 + * Support `statusCode` property on `Error` objects + * Use `unpipe` module for unpiping requests + * deps: escape-html@1.0.2 + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * perf: enable strict mode + * perf: remove argument reassignment + +0.3.6 / 2015-05-11 +================== + + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + +0.3.5 / 2015-04-22 +================== + + * deps: on-finished@~2.2.1 + - Fix `isFinished(req)` when data buffered + +0.3.4 / 2015-03-15 +================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + +0.3.3 / 2015-01-01 +================== + + * deps: debug@~2.1.1 + * deps: on-finished@~2.2.0 + +0.3.2 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + +0.3.1 / 2014-10-16 +================== + + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + +0.3.0 / 2014-09-17 +================== + + * Terminate in progress response only on error + * Use `on-finished` to determine request status + +0.2.0 / 2014-09-03 +================== + + * Set `X-Content-Type-Options: nosniff` header + * deps: debug@~2.0.0 + +0.1.0 / 2014-07-16 +================== + + * Respond after request fully read + - prevents hung responses and socket hang ups + * deps: debug@1.0.4 + +0.0.3 / 2014-07-11 +================== + + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + +0.0.2 / 2014-06-19 +================== + + * Handle invalid status codes + +0.0.1 / 2014-06-05 +================== + + * deps: debug@1.0.2 + +0.0.0 / 2014-06-05 +================== + + * Extracted from connect/express diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..fb30982776077685cfc20c5998005524eb4fe685 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..96327f0d19c9a9674f433bf93e1a454a7edd4f6f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/README.md" @@ -0,0 +1,148 @@ +# finalhandler + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Node.js function to invoke as the final step to respond to HTTP request. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install finalhandler +``` + +## API + + + +```js +var finalhandler = require('finalhandler') +``` + +### finalhandler(req, res, [options]) + +Returns function to be invoked as the final step for the given `req` and `res`. +This function is to be invoked as `fn(err)`. If `err` is falsy, the handler will +write out a 404 response to the `res`. If it is truthy, an error response will +be written out to the `res`. + +When an error is written, the following information is added to the response: + + * The `res.statusCode` is set from `err.status` (or `err.statusCode`). If + this value is outside the 4xx or 5xx range, it will be set to 500. + * The `res.statusMessage` is set according to the status code. + * The body will be the HTML of the status code message if `env` is + `'production'`, otherwise will be `err.stack`. + * Any headers specified in an `err.headers` object. + +The final handler will also unpipe anything from `req` when it is invoked. + +#### options.env + +By default, the environment is determined by `NODE_ENV` variable, but it can be +overridden by this option. + +#### options.onerror + +Provide a function to be called with the `err` when it exists. Can be used for +writing errors to a central location without excessive function generation. Called +as `onerror(err, req, res)`. + +## Examples + +### always 404 + +```js +var finalhandler = require('finalhandler') +var http = require('http') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res) + done() +}) + +server.listen(3000) +``` + +### perform simple action + +```js +var finalhandler = require('finalhandler') +var fs = require('fs') +var http = require('http') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res) + + fs.readFile('index.html', function (err, buf) { + if (err) return done(err) + res.setHeader('Content-Type', 'text/html') + res.end(buf) + }) +}) + +server.listen(3000) +``` + +### use with middleware-style functions + +```js +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +var serve = serveStatic('public') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res) + serve(req, res, done) +}) + +server.listen(3000) +``` + +### keep log of all errors + +```js +var finalhandler = require('finalhandler') +var fs = require('fs') +var http = require('http') + +var server = http.createServer(function (req, res) { + var done = finalhandler(req, res, { onerror: logerror }) + + fs.readFile('index.html', function (err, buf) { + if (err) return done(err) + res.setHeader('Content-Type', 'text/html') + res.end(buf) + }) +}) + +server.listen(3000) + +function logerror (err) { + console.error(err.stack || err.toString()) +} +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/finalhandler.svg +[npm-url]: https://npmjs.org/package/finalhandler +[node-image]: https://img.shields.io/node/v/finalhandler.svg +[node-url]: https://nodejs.org/en/download +[travis-image]: https://img.shields.io/travis/pillarjs/finalhandler.svg +[travis-url]: https://travis-ci.org/pillarjs/finalhandler +[coveralls-image]: https://img.shields.io/coveralls/pillarjs/finalhandler.svg +[coveralls-url]: https://coveralls.io/r/pillarjs/finalhandler?branch=master +[downloads-image]: https://img.shields.io/npm/dm/finalhandler.svg +[downloads-url]: https://npmjs.org/package/finalhandler diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..5673507988e409ab134d2d557fa03cf886127b8f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/index.js" @@ -0,0 +1,331 @@ +/*! + * finalhandler + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var debug = require('debug')('finalhandler') +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var onFinished = require('on-finished') +var parseUrl = require('parseurl') +var statuses = require('statuses') +var unpipe = require('unpipe') + +/** + * Module variables. + * @private + */ + +var DOUBLE_SPACE_REGEXP = /\x20{2}/g +var NEWLINE_REGEXP = /\n/g + +/* istanbul ignore next */ +var defer = typeof setImmediate === 'function' + ? setImmediate + : function (fn) { process.nextTick(fn.bind.apply(fn, arguments)) } +var isFinished = onFinished.isFinished + +/** + * Create a minimal HTML document. + * + * @param {string} message + * @private + */ + +function createHtmlDocument (message) { + var body = escapeHtml(message) + .replace(NEWLINE_REGEXP, '
    ') + .replace(DOUBLE_SPACE_REGEXP, '  ') + + return '\n' + + '\n' + + '\n' + + '\n' + + 'Error\n' + + '\n' + + '\n' + + '
    ' + body + '
    \n' + + '\n' + + '\n' +} + +/** + * Module exports. + * @public + */ + +module.exports = finalhandler + +/** + * Create a function to handle the final response. + * + * @param {Request} req + * @param {Response} res + * @param {Object} [options] + * @return {Function} + * @public + */ + +function finalhandler (req, res, options) { + var opts = options || {} + + // get environment + var env = opts.env || process.env.NODE_ENV || 'development' + + // get error callback + var onerror = opts.onerror + + return function (err) { + var headers + var msg + var status + + // ignore 404 on in-flight response + if (!err && headersSent(res)) { + debug('cannot 404 after headers sent') + return + } + + // unhandled error + if (err) { + // respect status code from error + status = getErrorStatusCode(err) + + if (status === undefined) { + // fallback to status code on response + status = getResponseStatusCode(res) + } else { + // respect headers from error + headers = getErrorHeaders(err) + } + + // get error message + msg = getErrorMessage(err, status, env) + } else { + // not found + status = 404 + msg = 'Cannot ' + req.method + ' ' + encodeUrl(getResourceName(req)) + } + + debug('default %s', status) + + // schedule onerror callback + if (err && onerror) { + defer(onerror, err, req, res) + } + + // cannot actually respond + if (headersSent(res)) { + debug('cannot %d after headers sent', status) + req.socket.destroy() + return + } + + // send response + send(req, res, status, headers, msg) + } +} + +/** + * Get headers from Error object. + * + * @param {Error} err + * @return {object} + * @private + */ + +function getErrorHeaders (err) { + if (!err.headers || typeof err.headers !== 'object') { + return undefined + } + + var headers = Object.create(null) + var keys = Object.keys(err.headers) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + headers[key] = err.headers[key] + } + + return headers +} + +/** + * Get message from Error object, fallback to status message. + * + * @param {Error} err + * @param {number} status + * @param {string} env + * @return {string} + * @private + */ + +function getErrorMessage (err, status, env) { + var msg + + if (env !== 'production') { + // use err.stack, which typically includes err.message + msg = err.stack + + // fallback to err.toString() when possible + if (!msg && typeof err.toString === 'function') { + msg = err.toString() + } + } + + return msg || statuses[status] +} + +/** + * Get status code from Error object. + * + * @param {Error} err + * @return {number} + * @private + */ + +function getErrorStatusCode (err) { + // check err.status + if (typeof err.status === 'number' && err.status >= 400 && err.status < 600) { + return err.status + } + + // check err.statusCode + if (typeof err.statusCode === 'number' && err.statusCode >= 400 && err.statusCode < 600) { + return err.statusCode + } + + return undefined +} + +/** + * Get resource name for the request. + * + * This is typically just the original pathname of the request + * but will fallback to "resource" is that cannot be determined. + * + * @param {IncomingMessage} req + * @return {string} + * @private + */ + +function getResourceName (req) { + try { + return parseUrl.original(req).pathname + } catch (e) { + return 'resource' + } +} + +/** + * Get status code from response. + * + * @param {OutgoingMessage} res + * @return {number} + * @private + */ + +function getResponseStatusCode (res) { + var status = res.statusCode + + // default status code to 500 if outside valid range + if (typeof status !== 'number' || status < 400 || status > 599) { + status = 500 + } + + return status +} + +/** + * Determine if the response headers have been sent. + * + * @param {object} res + * @returns {boolean} + * @private + */ + +function headersSent (res) { + return typeof res.headersSent !== 'boolean' + ? Boolean(res._header) + : res.headersSent +} + +/** + * Send response. + * + * @param {IncomingMessage} req + * @param {OutgoingMessage} res + * @param {number} status + * @param {object} headers + * @param {string} message + * @private + */ + +function send (req, res, status, headers, message) { + function write () { + // response body + var body = createHtmlDocument(message) + + // response status + res.statusCode = status + res.statusMessage = statuses[status] + + // response headers + setHeaders(res, headers) + + // security headers + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + + // standard headers + res.setHeader('Content-Type', 'text/html; charset=utf-8') + res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8')) + + if (req.method === 'HEAD') { + res.end() + return + } + + res.end(body, 'utf8') + } + + if (isFinished(req)) { + write() + return + } + + // unpipe everything from the request + unpipe(req) + + // flush the request + onFinished(req, write) + req.resume() +} + +/** + * Set response headers from an object. + * + * @param {OutgoingMessage} res + * @param {object} headers + * @private + */ + +function setHeaders (res, headers) { + if (!headers) { + return + } + + var keys = Object.keys(headers) + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + res.setHeader(key, headers[key]) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..d6f7f4bd3030179b56ef8630c195f5b5ea062da2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/finalhandler/package.json" @@ -0,0 +1,80 @@ +{ + "_from": "finalhandler@~1.1.2", + "_id": "finalhandler@1.1.2", + "_inBundle": false, + "_integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "_location": "/finalhandler", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "finalhandler@~1.1.2", + "name": "finalhandler", + "escapedName": "finalhandler", + "rawSpec": "~1.1.2", + "saveSpec": null, + "fetchSpec": "~1.1.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "_shasum": "b7e7d000ffd11938d0fdb053506f6ebabe9f587d", + "_spec": "finalhandler@~1.1.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/pillarjs/finalhandler/issues" + }, + "bundleDependencies": false, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "deprecated": false, + "description": "Node.js final http responder", + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "6.1.4", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "supertest": "4.0.2" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/pillarjs/finalhandler#readme", + "license": "MIT", + "name": "finalhandler", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/finalhandler.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" + }, + "version": "1.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..381e6aad4619cbed1e74bf64a0dc3fe216dc0abe --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/HISTORY.md" @@ -0,0 +1,21 @@ +0.2.0 / 2021-05-31 +================== + + * Use `req.socket` over deprecated `req.connection` + +0.1.2 / 2017-09-14 +================== + + * perf: improve header parsing + * perf: reduce overhead when no `X-Forwarded-For` header + +0.1.1 / 2017-09-10 +================== + + * Fix trimming leading / trailing OWS + * perf: hoist regular expression + +0.1.0 / 2014-09-21 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..84441fbb5709262c2bfc9b5ff0166ad4f024a1b8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..fdd220bcaab88b00b844736404c326fa6bdfbc0e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/README.md" @@ -0,0 +1,57 @@ +# forwarded + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Parse HTTP X-Forwarded-For header + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install forwarded +``` + +## API + +```js +var forwarded = require('forwarded') +``` + +### forwarded(req) + +```js +var addresses = forwarded(req) +``` + +Parse the `X-Forwarded-For` header from the request. Returns an array +of the addresses, including the socket address for the `req`, in reverse +order (i.e. index `0` is the socket address and the last index is the +furthest address, typically the end-user). + +## Testing + +```sh +$ npm test +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/forwarded/master?label=ci +[ci-url]: https://github.com/jshttp/forwarded/actions?query=workflow%3Aci +[npm-image]: https://img.shields.io/npm/v/forwarded.svg +[npm-url]: https://npmjs.org/package/forwarded +[node-version-image]: https://img.shields.io/node/v/forwarded.svg +[node-version-url]: https://nodejs.org/en/download/ +[coveralls-image]: https://img.shields.io/coveralls/jshttp/forwarded/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/forwarded?branch=master +[downloads-image]: https://img.shields.io/npm/dm/forwarded.svg +[downloads-url]: https://npmjs.org/package/forwarded diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..b2b6bdd3c98349ba48b5dc150e66746dab1beec1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/index.js" @@ -0,0 +1,90 @@ +/*! + * forwarded + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = forwarded + +/** + * Get all addresses in the request, using the `X-Forwarded-For` header. + * + * @param {object} req + * @return {array} + * @public + */ + +function forwarded (req) { + if (!req) { + throw new TypeError('argument req is required') + } + + // simple header parsing + var proxyAddrs = parse(req.headers['x-forwarded-for'] || '') + var socketAddr = getSocketAddr(req) + var addrs = [socketAddr].concat(proxyAddrs) + + // return all addresses + return addrs +} + +/** + * Get the socket address for a request. + * + * @param {object} req + * @return {string} + * @private + */ + +function getSocketAddr (req) { + return req.socket + ? req.socket.remoteAddress + : req.connection.remoteAddress +} + +/** + * Parse the X-Forwarded-For header. + * + * @param {string} header + * @private + */ + +function parse (header) { + var end = header.length + var list = [] + var start = header.length + + // gather addresses, backwards + for (var i = header.length - 1; i >= 0; i--) { + switch (header.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + } + break + case 0x2c: /* , */ + if (start !== end) { + list.push(header.substring(start, end)) + } + start = end = i + break + default: + start = i + break + } + } + + // final address + if (start !== end) { + list.push(header.substring(start, end)) + } + + return list +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..c682c46c2a680ff98f31bacb343ac0a06f3335a8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/forwarded/package.json" @@ -0,0 +1,80 @@ +{ + "_from": "forwarded@0.2.0", + "_id": "forwarded@0.2.0", + "_inBundle": false, + "_integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "_location": "/forwarded", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "forwarded@0.2.0", + "name": "forwarded", + "escapedName": "forwarded", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/proxy-addr" + ], + "_resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "_shasum": "2269936428aad4c15c7ebe9779a84bf0b2a81811", + "_spec": "forwarded@0.2.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\proxy-addr", + "bugs": { + "url": "https://github.com/jshttp/forwarded/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } + ], + "deprecated": false, + "description": "Parse HTTP X-Forwarded-For header", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "deep-equal": "1.0.1", + "eslint": "7.27.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.23.4", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "8.4.0", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/forwarded#readme", + "keywords": [ + "x-forwarded-for", + "http", + "req" + ], + "license": "MIT", + "name": "forwarded", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/forwarded.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "0.2.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..4586996a3c6e13633a678339ff6075c60567c233 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/HISTORY.md" @@ -0,0 +1,70 @@ +0.5.2 / 2017-09-13 +================== + + * Fix regression matching multiple ETags in `If-None-Match` + * perf: improve `If-None-Match` token parsing + +0.5.1 / 2017-09-11 +================== + + * Fix handling of modified headers with invalid dates + * perf: improve ETag match loop + +0.5.0 / 2017-02-21 +================== + + * Fix incorrect result when `If-None-Match` has both `*` and ETags + * Fix weak `ETag` matching to match spec + * perf: delay reading header values until needed + * perf: skip checking modified time if ETag check failed + * perf: skip parsing `If-None-Match` when no `ETag` header + * perf: use `Date.parse` instead of `new Date` + +0.4.0 / 2017-02-05 +================== + + * Fix false detection of `no-cache` request directive + * perf: enable strict mode + * perf: hoist regular expressions + * perf: remove duplicate conditional + * perf: remove unnecessary boolean coercions + +0.3.0 / 2015-05-12 +================== + + * Add weak `ETag` matching support + +0.2.4 / 2014-09-07 +================== + + * Support Node.js 0.6 + +0.2.3 / 2014-09-07 +================== + + * Move repository to jshttp + +0.2.2 / 2014-02-19 +================== + + * Revert "Fix for blank page on Safari reload" + +0.2.1 / 2014-01-29 +================== + + * Fix for blank page on Safari reload + +0.2.0 / 2013-08-11 +================== + + * Return stale for `Cache-Control: no-cache` + +0.1.0 / 2012-06-15 +================== + + * Add `If-None-Match: *` support + +0.0.1 / 2012-06-10 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..1434ade75d1fc4faf25a6ac5daed813e12eaed28 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2016-2017 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..1c1c680d151e5a64ab39cb88afc4600f554f00d5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/README.md" @@ -0,0 +1,119 @@ +# fresh + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +HTTP response freshness testing + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +``` +$ npm install fresh +``` + +## API + + + +```js +var fresh = require('fresh') +``` + +### fresh(reqHeaders, resHeaders) + +Check freshness of the response using request and response headers. + +When the response is still "fresh" in the client's cache `true` is +returned, otherwise `false` is returned to indicate that the client +cache is now stale and the full response should be sent. + +When a client sends the `Cache-Control: no-cache` request header to +indicate an end-to-end reload request, this module will return `false` +to make handling these requests transparent. + +## Known Issues + +This module is designed to only follow the HTTP specifications, not +to work-around all kinda of client bugs (especially since this module +typically does not recieve enough information to understand what the +client actually is). + +There is a known issue that in certain versions of Safari, Safari +will incorrectly make a request that allows this module to validate +freshness of the resource even when Safari does not have a +representation of the resource in the cache. The module +[jumanji](https://www.npmjs.com/package/jumanji) can be used in +an Express application to work-around this issue and also provides +links to further reading on this Safari bug. + +## Example + +### API usage + + + +```js +var reqHeaders = { 'if-none-match': '"foo"' } +var resHeaders = { 'etag': '"bar"' } +fresh(reqHeaders, resHeaders) +// => false + +var reqHeaders = { 'if-none-match': '"foo"' } +var resHeaders = { 'etag': '"foo"' } +fresh(reqHeaders, resHeaders) +// => true +``` + +### Using with Node.js http server + +```js +var fresh = require('fresh') +var http = require('http') + +var server = http.createServer(function (req, res) { + // perform server logic + // ... including adding ETag / Last-Modified response headers + + if (isFresh(req, res)) { + // client has a fresh copy of resource + res.statusCode = 304 + res.end() + return + } + + // send the resource + res.statusCode = 200 + res.end('hello, world!') +}) + +function isFresh (req, res) { + return fresh(req.headers, { + 'etag': res.getHeader('ETag'), + 'last-modified': res.getHeader('Last-Modified') + }) +} + +server.listen(3000) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/fresh.svg +[npm-url]: https://npmjs.org/package/fresh +[node-version-image]: https://img.shields.io/node/v/fresh.svg +[node-version-url]: https://nodejs.org/en/ +[travis-image]: https://img.shields.io/travis/jshttp/fresh/master.svg +[travis-url]: https://travis-ci.org/jshttp/fresh +[coveralls-image]: https://img.shields.io/coveralls/jshttp/fresh/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/fresh?branch=master +[downloads-image]: https://img.shields.io/npm/dm/fresh.svg +[downloads-url]: https://npmjs.org/package/fresh diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..d154f5a7d23975af101646b65e74abf8490f50a5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/index.js" @@ -0,0 +1,137 @@ +/*! + * fresh + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2016-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * RegExp to check for no-cache token in Cache-Control. + * @private + */ + +var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/ + +/** + * Module exports. + * @public + */ + +module.exports = fresh + +/** + * Check freshness of the response using request and response headers. + * + * @param {Object} reqHeaders + * @param {Object} resHeaders + * @return {Boolean} + * @public + */ + +function fresh (reqHeaders, resHeaders) { + // fields + var modifiedSince = reqHeaders['if-modified-since'] + var noneMatch = reqHeaders['if-none-match'] + + // unconditional request + if (!modifiedSince && !noneMatch) { + return false + } + + // Always return stale when Cache-Control: no-cache + // to support end-to-end reload requests + // https://tools.ietf.org/html/rfc2616#section-14.9.4 + var cacheControl = reqHeaders['cache-control'] + if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) { + return false + } + + // if-none-match + if (noneMatch && noneMatch !== '*') { + var etag = resHeaders['etag'] + + if (!etag) { + return false + } + + var etagStale = true + var matches = parseTokenList(noneMatch) + for (var i = 0; i < matches.length; i++) { + var match = matches[i] + if (match === etag || match === 'W/' + etag || 'W/' + match === etag) { + etagStale = false + break + } + } + + if (etagStale) { + return false + } + } + + // if-modified-since + if (modifiedSince) { + var lastModified = resHeaders['last-modified'] + var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince)) + + if (modifiedStale) { + return false + } + } + + return true +} + +/** + * Parse an HTTP Date into a number. + * + * @param {string} date + * @private + */ + +function parseHttpDate (date) { + var timestamp = date && Date.parse(date) + + // istanbul ignore next: guard against date.js Date.parse patching + return typeof timestamp === 'number' + ? timestamp + : NaN +} + +/** + * Parse a HTTP token list. + * + * @param {string} str + * @private + */ + +function parseTokenList (str) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + list.push(str.substring(start, end)) + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + list.push(str.substring(start, end)) + + return list +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..d1c91db6ad491088c77f16b2f338c04c0bb049f4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/fresh/package.json" @@ -0,0 +1,90 @@ +{ + "_from": "fresh@0.5.2", + "_id": "fresh@0.5.2", + "_inBundle": false, + "_integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "_location": "/fresh", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fresh@0.5.2", + "name": "fresh", + "escapedName": "fresh", + "rawSpec": "0.5.2", + "saveSpec": null, + "fetchSpec": "0.5.2" + }, + "_requiredBy": [ + "/express", + "/send" + ], + "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "_shasum": "3d8cadd90d976569fa835ab1f8e4b23a105605a7", + "_spec": "fresh@0.5.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/jshttp/fresh/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "HTTP response freshness testing", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "5.1.1", + "eslint-plugin-promise": "3.5.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "1.21.5" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/jshttp/fresh#readme", + "keywords": [ + "fresh", + "http", + "conditional", + "cache" + ], + "license": "MIT", + "name": "fresh", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/fresh.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "0.5.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..fd802a5ac44629a8c39bb9fd31c3b73223027735 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/HISTORY.md" @@ -0,0 +1,165 @@ +2021-11-14 / 1.8.1 +================== + + * deps: toidentifier@1.0.1 + +2020-06-29 / 1.8.0 +================== + + * Add `isHttpError` export to determine if value is an HTTP error + * deps: setprototypeof@1.2.0 + +2019-06-24 / 1.7.3 +================== + + * deps: inherits@2.0.4 + +2019-02-18 / 1.7.2 +================== + + * deps: setprototypeof@1.1.1 + +2018-09-08 / 1.7.1 +================== + + * Fix error creating objects in some environments + +2018-07-30 / 1.7.0 +================== + + * Set constructor name when possible + * Use `toidentifier` module to make class names + * deps: statuses@'>= 1.5.0 < 2' + +2018-03-29 / 1.6.3 +================== + + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: setprototypeof@1.1.0 + * deps: statuses@'>= 1.4.0 < 2' + +2017-08-04 / 1.6.2 +================== + + * deps: depd@1.1.1 + - Remove unnecessary `Buffer` loading + +2017-02-20 / 1.6.1 +================== + + * deps: setprototypeof@1.0.3 + - Fix shim for old browsers + +2017-02-14 / 1.6.0 +================== + + * Accept custom 4xx and 5xx status codes in factory + * Add deprecation message to `"I'mateapot"` export + * Deprecate passing status code as anything except first argument in factory + * Deprecate using non-error status codes + * Make `message` property enumerable for `HttpError`s + +2016-11-16 / 1.5.1 +================== + + * deps: inherits@2.0.3 + - Fix issue loading in browser + * deps: setprototypeof@1.0.2 + * deps: statuses@'>= 1.3.1 < 2' + +2016-05-18 / 1.5.0 +================== + + * Support new code `421 Misdirected Request` + * Use `setprototypeof` module to replace `__proto__` setting + * deps: statuses@'>= 1.3.0 < 2' + - Add `421 Misdirected Request` + - perf: enable strict mode + * perf: enable strict mode + +2016-01-28 / 1.4.0 +================== + + * Add `HttpError` export, for `err instanceof createError.HttpError` + * deps: inherits@2.0.1 + * deps: statuses@'>= 1.2.1 < 2' + - Fix message for status 451 + - Remove incorrect nginx status code + +2015-02-02 / 1.3.1 +================== + + * Fix regression where status can be overwritten in `createError` `props` + +2015-02-01 / 1.3.0 +================== + + * Construct errors using defined constructors from `createError` + * Fix error names that are not identifiers + - `createError["I'mateapot"]` is now `createError.ImATeapot` + * Set a meaningful `name` property on constructed errors + +2014-12-09 / 1.2.8 +================== + + * Fix stack trace from exported function + * Remove `arguments.callee` usage + +2014-10-14 / 1.2.7 +================== + + * Remove duplicate line + +2014-10-02 / 1.2.6 +================== + + * Fix `expose` to be `true` for `ClientError` constructor + +2014-09-28 / 1.2.5 +================== + + * deps: statuses@1 + +2014-09-21 / 1.2.4 +================== + + * Fix dependency version to work with old `npm`s + +2014-09-21 / 1.2.3 +================== + + * deps: statuses@~1.1.0 + +2014-09-21 / 1.2.2 +================== + + * Fix publish error + +2014-09-21 / 1.2.1 +================== + + * Support Node.js 0.6 + * Use `inherits` instead of `util` + +2014-09-09 / 1.2.0 +================== + + * Fix the way inheriting functions + * Support `expose` being provided in properties argument + +2014-09-08 / 1.1.0 +================== + + * Default status to 500 + * Support provided `error` to extend + +2014-09-08 / 1.0.1 +================== + + * Fix accepting string message + +2014-09-08 / 1.0.0 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..82af4df54b4ce9aad915485c4660a0abab727a07 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/LICENSE" @@ -0,0 +1,23 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com +Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..42251a37cf9f573e0cad90238d0b5f16582cec83 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/README.md" @@ -0,0 +1,169 @@ +# http-errors + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][node-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create HTTP errors for Express, Koa, Connect, etc. with ease. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install http-errors +``` + +## Example + +```js +var createError = require('http-errors') +var express = require('express') +var app = express() + +app.use(function (req, res, next) { + if (!req.user) return next(createError(401, 'Please login to view this page.')) + next() +}) +``` + +## API + +This is the current API, currently extracted from Koa and subject to change. + +### Error Properties + +- `expose` - can be used to signal if `message` should be sent to the client, + defaulting to `false` when `status` >= 500 +- `headers` - can be an object of header names to values to be sent to the + client, defaulting to `undefined`. When defined, the key names should all + be lower-cased +- `message` - the traditional error message, which should be kept short and all + single line +- `status` - the status code of the error, mirroring `statusCode` for general + compatibility +- `statusCode` - the status code of the error, defaulting to `500` + +### createError([status], [message], [properties]) + +Create a new error object with the given message `msg`. +The error object inherits from `createError.HttpError`. + +```js +var err = createError(404, 'This video does not exist!') +``` + +- `status: 500` - the status code as a number +- `message` - the message of the error, defaulting to node's text for that status code. +- `properties` - custom properties to attach to the object + +### createError([status], [error], [properties]) + +Extend the given `error` object with `createError.HttpError` +properties. This will not alter the inheritance of the given +`error` object, and the modified `error` object is the +return value. + + + +```js +fs.readFile('foo.txt', function (err, buf) { + if (err) { + if (err.code === 'ENOENT') { + var httpError = createError(404, err, { expose: false }) + } else { + var httpError = createError(500, err) + } + } +}) +``` + +- `status` - the status code as a number +- `error` - the error object to extend +- `properties` - custom properties to attach to the object + +### createError.isHttpError(val) + +Determine if the provided `val` is an `HttpError`. This will return `true` +if the error inherits from the `HttpError` constructor of this module or +matches the "duck type" for an error this module creates. All outputs from +the `createError` factory will return `true` for this function, including +if an non-`HttpError` was passed into the factory. + +### new createError\[code || name\](\[msg]\)) + +Create a new error object with the given message `msg`. +The error object inherits from `createError.HttpError`. + +```js +var err = new createError.NotFound() +``` + +- `code` - the status code as a number +- `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`. + +#### List of all constructors + +|Status Code|Constructor Name | +|-----------|-----------------------------| +|400 |BadRequest | +|401 |Unauthorized | +|402 |PaymentRequired | +|403 |Forbidden | +|404 |NotFound | +|405 |MethodNotAllowed | +|406 |NotAcceptable | +|407 |ProxyAuthenticationRequired | +|408 |RequestTimeout | +|409 |Conflict | +|410 |Gone | +|411 |LengthRequired | +|412 |PreconditionFailed | +|413 |PayloadTooLarge | +|414 |URITooLong | +|415 |UnsupportedMediaType | +|416 |RangeNotSatisfiable | +|417 |ExpectationFailed | +|418 |ImATeapot | +|421 |MisdirectedRequest | +|422 |UnprocessableEntity | +|423 |Locked | +|424 |FailedDependency | +|425 |UnorderedCollection | +|426 |UpgradeRequired | +|428 |PreconditionRequired | +|429 |TooManyRequests | +|431 |RequestHeaderFieldsTooLarge | +|451 |UnavailableForLegalReasons | +|500 |InternalServerError | +|501 |NotImplemented | +|502 |BadGateway | +|503 |ServiceUnavailable | +|504 |GatewayTimeout | +|505 |HTTPVersionNotSupported | +|506 |VariantAlsoNegotiates | +|507 |InsufficientStorage | +|508 |LoopDetected | +|509 |BandwidthLimitExceeded | +|510 |NotExtended | +|511 |NetworkAuthenticationRequired| + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/http-errors/master?label=ci +[ci-url]: https://github.com/jshttp/http-errors/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/http-errors/master +[coveralls-url]: https://coveralls.io/r/jshttp/http-errors?branch=master +[node-image]: https://badgen.net/npm/node/http-errors +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/http-errors +[npm-url]: https://npmjs.org/package/http-errors +[npm-version-image]: https://badgen.net/npm/v/http-errors +[travis-image]: https://badgen.net/travis/jshttp/http-errors/master +[travis-url]: https://travis-ci.org/jshttp/http-errors diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..1a88029ae3a760af7f813cec5f8c4f665dbe197d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/index.js" @@ -0,0 +1,299 @@ +/*! + * http-errors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('http-errors') +var setPrototypeOf = require('setprototypeof') +var statuses = require('statuses') +var inherits = require('inherits') +var toIdentifier = require('toidentifier') + +/** + * Module exports. + * @public + */ + +module.exports = createError +module.exports.HttpError = createHttpErrorConstructor() +module.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError) + +// Populate exports for all constructors +populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError) + +/** + * Get the code class of a status code. + * @private + */ + +function codeClass (status) { + return Number(String(status).charAt(0) + '00') +} + +/** + * Create a new HTTP Error. + * + * @returns {Error} + * @public + */ + +function createError () { + // so much arity going on ~_~ + var err + var msg + var status = 500 + var props = {} + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i] + if (arg instanceof Error) { + err = arg + status = err.status || err.statusCode || status + continue + } + switch (typeof arg) { + case 'string': + msg = arg + break + case 'number': + status = arg + if (i !== 0) { + deprecate('non-first-argument status code; replace with createError(' + arg + ', ...)') + } + break + case 'object': + props = arg + break + } + } + + if (typeof status === 'number' && (status < 400 || status >= 600)) { + deprecate('non-error status code; use only 4xx or 5xx status codes') + } + + if (typeof status !== 'number' || + (!statuses[status] && (status < 400 || status >= 600))) { + status = 500 + } + + // constructor + var HttpError = createError[status] || createError[codeClass(status)] + + if (!err) { + // create error + err = HttpError + ? new HttpError(msg) + : new Error(msg || statuses[status]) + Error.captureStackTrace(err, createError) + } + + if (!HttpError || !(err instanceof HttpError) || err.status !== status) { + // add properties to generic error + err.expose = status < 500 + err.status = err.statusCode = status + } + + for (var key in props) { + if (key !== 'status' && key !== 'statusCode') { + err[key] = props[key] + } + } + + return err +} + +/** + * Create HTTP error abstract base class. + * @private + */ + +function createHttpErrorConstructor () { + function HttpError () { + throw new TypeError('cannot construct abstract class') + } + + inherits(HttpError, Error) + + return HttpError +} + +/** + * Create a constructor for a client error. + * @private + */ + +function createClientErrorConstructor (HttpError, name, code) { + var className = toClassName(name) + + function ClientError (message) { + // create the error object + var msg = message != null ? message : statuses[code] + var err = new Error(msg) + + // capture a stack trace to the construction point + Error.captureStackTrace(err, ClientError) + + // adjust the [[Prototype]] + setPrototypeOf(err, ClientError.prototype) + + // redefine the error message + Object.defineProperty(err, 'message', { + enumerable: true, + configurable: true, + value: msg, + writable: true + }) + + // redefine the error name + Object.defineProperty(err, 'name', { + enumerable: false, + configurable: true, + value: className, + writable: true + }) + + return err + } + + inherits(ClientError, HttpError) + nameFunc(ClientError, className) + + ClientError.prototype.status = code + ClientError.prototype.statusCode = code + ClientError.prototype.expose = true + + return ClientError +} + +/** + * Create function to test is a value is a HttpError. + * @private + */ + +function createIsHttpErrorFunction (HttpError) { + return function isHttpError (val) { + if (!val || typeof val !== 'object') { + return false + } + + if (val instanceof HttpError) { + return true + } + + return val instanceof Error && + typeof val.expose === 'boolean' && + typeof val.statusCode === 'number' && val.status === val.statusCode + } +} + +/** + * Create a constructor for a server error. + * @private + */ + +function createServerErrorConstructor (HttpError, name, code) { + var className = toClassName(name) + + function ServerError (message) { + // create the error object + var msg = message != null ? message : statuses[code] + var err = new Error(msg) + + // capture a stack trace to the construction point + Error.captureStackTrace(err, ServerError) + + // adjust the [[Prototype]] + setPrototypeOf(err, ServerError.prototype) + + // redefine the error message + Object.defineProperty(err, 'message', { + enumerable: true, + configurable: true, + value: msg, + writable: true + }) + + // redefine the error name + Object.defineProperty(err, 'name', { + enumerable: false, + configurable: true, + value: className, + writable: true + }) + + return err + } + + inherits(ServerError, HttpError) + nameFunc(ServerError, className) + + ServerError.prototype.status = code + ServerError.prototype.statusCode = code + ServerError.prototype.expose = false + + return ServerError +} + +/** + * Set the name of a function, if possible. + * @private + */ + +function nameFunc (func, name) { + var desc = Object.getOwnPropertyDescriptor(func, 'name') + + if (desc && desc.configurable) { + desc.value = name + Object.defineProperty(func, 'name', desc) + } +} + +/** + * Populate the exports object with constructors for every error class. + * @private + */ + +function populateConstructorExports (exports, codes, HttpError) { + codes.forEach(function forEachCode (code) { + var CodeError + var name = toIdentifier(statuses[code]) + + switch (codeClass(code)) { + case 400: + CodeError = createClientErrorConstructor(HttpError, name, code) + break + case 500: + CodeError = createServerErrorConstructor(HttpError, name, code) + break + } + + if (CodeError) { + // export the constructor + exports[code] = CodeError + exports[name] = CodeError + } + }) + + // backwards-compatibility + exports["I'mateapot"] = deprecate.function(exports.ImATeapot, + '"I\'mateapot"; use "ImATeapot" instead') +} + +/** + * Get a class name from a name identifier. + * @private + */ + +function toClassName (name) { + return name.substr(-5) !== 'Error' + ? name + 'Error' + : name +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..c43c33d21f606b87bceebc8db599589adc794a3f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/http-errors/package.json" @@ -0,0 +1,93 @@ +{ + "_from": "http-errors@1.8.1", + "_id": "http-errors@1.8.1", + "_inBundle": false, + "_integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "_location": "/http-errors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-errors@1.8.1", + "name": "http-errors", + "escapedName": "http-errors", + "rawSpec": "1.8.1", + "saveSpec": null, + "fetchSpec": "1.8.1" + }, + "_requiredBy": [ + "/body-parser", + "/raw-body", + "/send" + ], + "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "_shasum": "7c3f28577cbc8a207388455dbd62295ed07bd68c", + "_spec": "http-errors@1.8.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\body-parser", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/jshttp/http-errors/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Alan Plum", + "email": "me@pluma.io" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } + ], + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "deprecated": false, + "description": "Create HTTP error objects", + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.1.3", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "index.js", + "HISTORY.md", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/jshttp/http-errors#readme", + "keywords": [ + "http", + "error" + ], + "license": "MIT", + "name": "http-errors", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/http-errors.git" + }, + "scripts": { + "lint": "eslint . && node ./scripts/lint-readme-list.js", + "test": "mocha --reporter spec --bail", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "1.8.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/Changelog.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/Changelog.md" new file mode 100644 index 0000000000000000000000000000000000000000..f252313f8d0a145a3d1bacb68dbf06c0bf8e67c0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/Changelog.md" @@ -0,0 +1,162 @@ +# 0.4.24 / 2018-08-22 + + * Added MIK encoding (#196, by @Ivan-Kalatchev) + + +# 0.4.23 / 2018-05-07 + + * Fix deprecation warning in Node v10 due to the last usage of `new Buffer` (#185, by @felixbuenemann) + * Switched from NodeBuffer to Buffer in typings (#155 by @felixfbecker, #186 by @larssn) + + +# 0.4.22 / 2018-05-05 + + * Use older semver style for dependencies to be compatible with Node version 0.10 (#182, by @dougwilson) + * Fix tests to accomodate fixes in Node v10 (#182, by @dougwilson) + + +# 0.4.21 / 2018-04-06 + + * Fix encoding canonicalization (#156) + * Fix the paths in the "browser" field in package.json (#174 by @LMLB) + * Removed "contributors" section in package.json - see Git history instead. + + +# 0.4.20 / 2018-04-06 + + * Updated `new Buffer()` usages with recommended replacements as it's being deprecated in Node v10 (#176, #178 by @ChALkeR) + + +# 0.4.19 / 2017-09-09 + + * Fixed iso8859-1 codec regression in handling untranslatable characters (#162, caused by #147) + * Re-generated windows1255 codec, because it was updated in iconv project + * Fixed grammar in error message when iconv-lite is loaded with encoding other than utf8 + + +# 0.4.18 / 2017-06-13 + + * Fixed CESU-8 regression in Node v8. + + +# 0.4.17 / 2017-04-22 + + * Updated typescript definition file to support Angular 2 AoT mode (#153 by @larssn) + + +# 0.4.16 / 2017-04-22 + + * Added support for React Native (#150) + * Changed iso8859-1 encoding to usine internal 'binary' encoding, as it's the same thing (#147 by @mscdex) + * Fixed typo in Readme (#138 by @jiangzhuo) + * Fixed build for Node v6.10+ by making correct version comparison + * Added a warning if iconv-lite is loaded not as utf-8 (see #142) + + +# 0.4.15 / 2016-11-21 + + * Fixed typescript type definition (#137) + + +# 0.4.14 / 2016-11-20 + + * Preparation for v1.0 + * Added Node v6 and latest Node versions to Travis CI test rig + * Deprecated Node v0.8 support + * Typescript typings (@larssn) + * Fix encoding of Euro character in GB 18030 (inspired by @lygstate) + * Add ms prefix to dbcs windows encodings (@rokoroku) + + +# 0.4.13 / 2015-10-01 + + * Fix silly mistake in deprecation notice. + + +# 0.4.12 / 2015-09-26 + + * Node v4 support: + * Added CESU-8 decoding (#106) + * Added deprecation notice for `extendNodeEncodings` + * Added Travis tests for Node v4 and io.js latest (#105 by @Mithgol) + + +# 0.4.11 / 2015-07-03 + + * Added CESU-8 encoding. + + +# 0.4.10 / 2015-05-26 + + * Changed UTF-16 endianness heuristic to take into account any ASCII chars, not + just spaces. This should minimize the importance of "default" endianness. + + +# 0.4.9 / 2015-05-24 + + * Streamlined BOM handling: strip BOM by default, add BOM when encoding if + addBOM: true. Added docs to Readme. + * UTF16 now uses UTF16-LE by default. + * Fixed minor issue with big5 encoding. + * Added io.js testing on Travis; updated node-iconv version to test against. + Now we just skip testing SBCS encodings that node-iconv doesn't support. + * (internal refactoring) Updated codec interface to use classes. + * Use strict mode in all files. + + +# 0.4.8 / 2015-04-14 + + * added alias UNICODE-1-1-UTF-7 for UTF-7 encoding (#94) + + +# 0.4.7 / 2015-02-05 + + * stop official support of Node.js v0.8. Should still work, but no guarantees. + reason: Packages needed for testing are hard to get on Travis CI. + * work in environment where Object.prototype is monkey patched with enumerable + props (#89). + + +# 0.4.6 / 2015-01-12 + + * fix rare aliases of single-byte encodings (thanks @mscdex) + * double the timeout for dbcs tests to make them less flaky on travis + + +# 0.4.5 / 2014-11-20 + + * fix windows-31j and x-sjis encoding support (@nleush) + * minor fix: undefined variable reference when internal error happens + + +# 0.4.4 / 2014-07-16 + + * added encodings UTF-7 (RFC2152) and UTF-7-IMAP (RFC3501 Section 5.1.3) + * fixed streaming base64 encoding + + +# 0.4.3 / 2014-06-14 + + * added encodings UTF-16BE and UTF-16 with BOM + + +# 0.4.2 / 2014-06-12 + + * don't throw exception if `extendNodeEncodings()` is called more than once + + +# 0.4.1 / 2014-06-11 + + * codepage 808 added + + +# 0.4.0 / 2014-06-10 + + * code is rewritten from scratch + * all widespread encodings are supported + * streaming interface added + * browserify compatibility added + * (optional) extend core primitive encodings to make usage even simpler + * moved from vows to mocha as the testing framework + + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..d518d8376af9faa47af875d83c8cdd51a11f9099 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/LICENSE" @@ -0,0 +1,21 @@ +Copyright (c) 2011 Alexander Shtuchkin + +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. + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..c981c3708582a563f0f463c1e01715257d5148bd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/README.md" @@ -0,0 +1,156 @@ +## Pure JS character encoding conversion [![Build Status](https://travis-ci.org/ashtuchkin/iconv-lite.svg?branch=master)](https://travis-ci.org/ashtuchkin/iconv-lite) + + * Doesn't need native code compilation. Works on Windows and in sandboxed environments like [Cloud9](http://c9.io). + * Used in popular projects like [Express.js (body_parser)](https://github.com/expressjs/body-parser), + [Grunt](http://gruntjs.com/), [Nodemailer](http://www.nodemailer.com/), [Yeoman](http://yeoman.io/) and others. + * Faster than [node-iconv](https://github.com/bnoordhuis/node-iconv) (see below for performance comparison). + * Intuitive encode/decode API + * Streaming support for Node v0.10+ + * [Deprecated] Can extend Node.js primitives (buffers, streams) to support all iconv-lite encodings. + * In-browser usage via [Browserify](https://github.com/substack/node-browserify) (~180k gzip compressed with Buffer shim included). + * Typescript [type definition file](https://github.com/ashtuchkin/iconv-lite/blob/master/lib/index.d.ts) included. + * React Native is supported (need to explicitly `npm install` two more modules: `buffer` and `stream`). + * License: MIT. + +[![NPM Stats](https://nodei.co/npm/iconv-lite.png?downloads=true&downloadRank=true)](https://npmjs.org/packages/iconv-lite/) + +## Usage +### Basic API +```javascript +var iconv = require('iconv-lite'); + +// Convert from an encoded buffer to js string. +str = iconv.decode(Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251'); + +// Convert from js string to an encoded buffer. +buf = iconv.encode("Sample input string", 'win1251'); + +// Check if encoding is supported +iconv.encodingExists("us-ascii") +``` + +### Streaming API (Node v0.10+) +```javascript + +// Decode stream (from binary stream to js strings) +http.createServer(function(req, res) { + var converterStream = iconv.decodeStream('win1251'); + req.pipe(converterStream); + + converterStream.on('data', function(str) { + console.log(str); // Do something with decoded strings, chunk-by-chunk. + }); +}); + +// Convert encoding streaming example +fs.createReadStream('file-in-win1251.txt') + .pipe(iconv.decodeStream('win1251')) + .pipe(iconv.encodeStream('ucs2')) + .pipe(fs.createWriteStream('file-in-ucs2.txt')); + +// Sugar: all encode/decode streams have .collect(cb) method to accumulate data. +http.createServer(function(req, res) { + req.pipe(iconv.decodeStream('win1251')).collect(function(err, body) { + assert(typeof body == 'string'); + console.log(body); // full request body string + }); +}); +``` + +### [Deprecated] Extend Node.js own encodings +> NOTE: This doesn't work on latest Node versions. See [details](https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility). + +```javascript +// After this call all Node basic primitives will understand iconv-lite encodings. +iconv.extendNodeEncodings(); + +// Examples: +buf = new Buffer(str, 'win1251'); +buf.write(str, 'gbk'); +str = buf.toString('latin1'); +assert(Buffer.isEncoding('iso-8859-15')); +Buffer.byteLength(str, 'us-ascii'); + +http.createServer(function(req, res) { + req.setEncoding('big5'); + req.collect(function(err, body) { + console.log(body); + }); +}); + +fs.createReadStream("file.txt", "shift_jis"); + +// External modules are also supported (if they use Node primitives, which they probably do). +request = require('request'); +request({ + url: "http://github.com/", + encoding: "cp932" +}); + +// To remove extensions +iconv.undoExtendNodeEncodings(); +``` + +## Supported encodings + + * All node.js native encodings: utf8, ucs2 / utf16-le, ascii, binary, base64, hex. + * Additional unicode encodings: utf16, utf16-be, utf-7, utf-7-imap. + * All widespread singlebyte encodings: Windows 125x family, ISO-8859 family, + IBM/DOS codepages, Macintosh family, KOI8 family, all others supported by iconv library. + Aliases like 'latin1', 'us-ascii' also supported. + * All widespread multibyte encodings: CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP. + +See [all supported encodings on wiki](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings). + +Most singlebyte encodings are generated automatically from [node-iconv](https://github.com/bnoordhuis/node-iconv). Thank you Ben Noordhuis and libiconv authors! + +Multibyte encodings are generated from [Unicode.org mappings](http://www.unicode.org/Public/MAPPINGS/) and [WHATWG Encoding Standard mappings](http://encoding.spec.whatwg.org/). Thank you, respective authors! + + +## Encoding/decoding speed + +Comparison with node-iconv module (1000x256kb, on MacBook Pro, Core i5/2.6 GHz, Node v0.12.0). +Note: your results may vary, so please always check on your hardware. + + operation iconv@2.1.4 iconv-lite@0.4.7 + ---------------------------------------------------------- + encode('win1251') ~96 Mb/s ~320 Mb/s + decode('win1251') ~95 Mb/s ~246 Mb/s + +## BOM handling + + * Decoding: BOM is stripped by default, unless overridden by passing `stripBOM: false` in options + (f.ex. `iconv.decode(buf, enc, {stripBOM: false})`). + A callback might also be given as a `stripBOM` parameter - it'll be called if BOM character was actually found. + * If you want to detect UTF-8 BOM when decoding other encodings, use [node-autodetect-decoder-stream](https://github.com/danielgindi/node-autodetect-decoder-stream) module. + * Encoding: No BOM added, unless overridden by `addBOM: true` option. + +## UTF-16 Encodings + +This library supports UTF-16LE, UTF-16BE and UTF-16 encodings. First two are straightforward, but UTF-16 is trying to be +smart about endianness in the following ways: + * Decoding: uses BOM and 'spaces heuristic' to determine input endianness. Default is UTF-16LE, but can be + overridden with `defaultEncoding: 'utf-16be'` option. Strips BOM unless `stripBOM: false`. + * Encoding: uses UTF-16LE and writes BOM by default. Use `addBOM: false` to override. + +## Other notes + +When decoding, be sure to supply a Buffer to decode() method, otherwise [bad things usually happen](https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding). +Untranslatable characters are set to 锟 or ?. No transliteration is currently supported. +Node versions 0.10.31 and 0.11.13 are buggy, don't use them (see #65, #77). + +## Testing + +```bash +$ git clone git@github.com:ashtuchkin/iconv-lite.git +$ cd iconv-lite +$ npm install +$ npm test + +$ # To view performance: +$ node test/performance.js + +$ # To view test coverage: +$ npm run coverage +$ open coverage/lcov-report/index.html +``` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/dbcs-codec.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/dbcs-codec.js" new file mode 100644 index 0000000000000000000000000000000000000000..1fe3e160112aa9b896df4b30a0184d76a69dfaef --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/dbcs-codec.js" @@ -0,0 +1,555 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Multibyte codec. In this scheme, a character is represented by 1 or more bytes. +// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences. +// To save memory and loading time, we read table files only when requested. + +exports._dbcs = DBCSCodec; + +var UNASSIGNED = -1, + GB18030_CODE = -2, + SEQ_START = -10, + NODE_START = -1000, + UNASSIGNED_NODE = new Array(0x100), + DEF_CHAR = -1; + +for (var i = 0; i < 0x100; i++) + UNASSIGNED_NODE[i] = UNASSIGNED; + + +// Class DBCSCodec reads and initializes mapping tables. +function DBCSCodec(codecOptions, iconv) { + this.encodingName = codecOptions.encodingName; + if (!codecOptions) + throw new Error("DBCS codec is called without the data.") + if (!codecOptions.table) + throw new Error("Encoding '" + this.encodingName + "' has no data."); + + // Load tables. + var mappingTable = codecOptions.table(); + + + // Decode tables: MBCS -> Unicode. + + // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256. + // Trie root is decodeTables[0]. + // Values: >= 0 -> unicode character code. can be > 0xFFFF + // == UNASSIGNED -> unknown/unassigned sequence. + // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence. + // <= NODE_START -> index of the next node in our trie to process next byte. + // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq. + this.decodeTables = []; + this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node. + + // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. + this.decodeTableSeq = []; + + // Actual mapping tables consist of chunks. Use them to fill up decode tables. + for (var i = 0; i < mappingTable.length; i++) + this._addDecodeChunk(mappingTable[i]); + + this.defaultCharUnicode = iconv.defaultCharUnicode; + + + // Encode tables: Unicode -> DBCS. + + // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance. + // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null. + // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.). + // == UNASSIGNED -> no conversion found. Output a default char. + // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence. + this.encodeTable = []; + + // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of + // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key + // means end of sequence (needed when one sequence is a strict subsequence of another). + // Objects are kept separately from encodeTable to increase performance. + this.encodeTableSeq = []; + + // Some chars can be decoded, but need not be encoded. + var skipEncodeChars = {}; + if (codecOptions.encodeSkipVals) + for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) { + var val = codecOptions.encodeSkipVals[i]; + if (typeof val === 'number') + skipEncodeChars[val] = true; + else + for (var j = val.from; j <= val.to; j++) + skipEncodeChars[j] = true; + } + + // Use decode trie to recursively fill out encode tables. + this._fillEncodeTable(0, 0, skipEncodeChars); + + // Add more encoding pairs when needed. + if (codecOptions.encodeAdd) { + for (var uChar in codecOptions.encodeAdd) + if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) + this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); + } + + this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; + if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?']; + if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0); + + + // Load & create GB18030 tables when needed. + if (typeof codecOptions.gb18030 === 'function') { + this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges. + + // Add GB18030 decode tables. + var thirdByteNodeIdx = this.decodeTables.length; + var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0); + + var fourthByteNodeIdx = this.decodeTables.length; + var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0); + + for (var i = 0x81; i <= 0xFE; i++) { + var secondByteNodeIdx = NODE_START - this.decodeTables[0][i]; + var secondByteNode = this.decodeTables[secondByteNodeIdx]; + for (var j = 0x30; j <= 0x39; j++) + secondByteNode[j] = NODE_START - thirdByteNodeIdx; + } + for (var i = 0x81; i <= 0xFE; i++) + thirdByteNode[i] = NODE_START - fourthByteNodeIdx; + for (var i = 0x30; i <= 0x39; i++) + fourthByteNode[i] = GB18030_CODE + } +} + +DBCSCodec.prototype.encoder = DBCSEncoder; +DBCSCodec.prototype.decoder = DBCSDecoder; + +// Decoder helpers +DBCSCodec.prototype._getDecodeTrieNode = function(addr) { + var bytes = []; + for (; addr > 0; addr >>= 8) + bytes.push(addr & 0xFF); + if (bytes.length == 0) + bytes.push(0); + + var node = this.decodeTables[0]; + for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie. + var val = node[bytes[i]]; + + if (val == UNASSIGNED) { // Create new node. + node[bytes[i]] = NODE_START - this.decodeTables.length; + this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); + } + else if (val <= NODE_START) { // Existing node. + node = this.decodeTables[NODE_START - val]; + } + else + throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); + } + return node; +} + + +DBCSCodec.prototype._addDecodeChunk = function(chunk) { + // First element of chunk is the hex mbcs code where we start. + var curAddr = parseInt(chunk[0], 16); + + // Choose the decoding node where we'll write our chars. + var writeTable = this._getDecodeTrieNode(curAddr); + curAddr = curAddr & 0xFF; + + // Write all other elements of the chunk to the table. + for (var k = 1; k < chunk.length; k++) { + var part = chunk[k]; + if (typeof part === "string") { // String, write as-is. + for (var l = 0; l < part.length;) { + var code = part.charCodeAt(l++); + if (0xD800 <= code && code < 0xDC00) { // Decode surrogate + var codeTrail = part.charCodeAt(l++); + if (0xDC00 <= codeTrail && codeTrail < 0xE000) + writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00); + else + throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); + } + else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used) + var len = 0xFFF - code + 2; + var seq = []; + for (var m = 0; m < len; m++) + seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq. + + writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; + this.decodeTableSeq.push(seq); + } + else + writeTable[curAddr++] = code; // Basic char + } + } + else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character. + var charCode = writeTable[curAddr - 1] + 1; + for (var l = 0; l < part; l++) + writeTable[curAddr++] = charCode++; + } + else + throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); + } + if (curAddr > 0xFF) + throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); +} + +// Encoder helpers +DBCSCodec.prototype._getEncodeBucket = function(uCode) { + var high = uCode >> 8; // This could be > 0xFF because of astral characters. + if (this.encodeTable[high] === undefined) + this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand. + return this.encodeTable[high]; +} + +DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 0xFF; + if (bucket[low] <= SEQ_START) + this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it. + else if (bucket[low] == UNASSIGNED) + bucket[low] = dbcsCode; +} + +DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { + + // Get the root of character tree according to first character of the sequence. + var uCode = seq[0]; + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 0xFF; + + var node; + if (bucket[low] <= SEQ_START) { + // There's already a sequence with - use it. + node = this.encodeTableSeq[SEQ_START-bucket[low]]; + } + else { + // There was no sequence object - allocate a new one. + node = {}; + if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence. + bucket[low] = SEQ_START - this.encodeTableSeq.length; + this.encodeTableSeq.push(node); + } + + // Traverse the character tree, allocating new nodes as needed. + for (var j = 1; j < seq.length-1; j++) { + var oldVal = node[uCode]; + if (typeof oldVal === 'object') + node = oldVal; + else { + node = node[uCode] = {} + if (oldVal !== undefined) + node[DEF_CHAR] = oldVal + } + } + + // Set the leaf to given dbcsCode. + uCode = seq[seq.length-1]; + node[uCode] = dbcsCode; +} + +DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { + var node = this.decodeTables[nodeIdx]; + for (var i = 0; i < 0x100; i++) { + var uCode = node[i]; + var mbCode = prefix + i; + if (skipEncodeChars[mbCode]) + continue; + + if (uCode >= 0) + this._setEncodeChar(uCode, mbCode); + else if (uCode <= NODE_START) + this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars); + else if (uCode <= SEQ_START) + this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); + } +} + + + +// == Encoder ================================================================== + +function DBCSEncoder(options, codec) { + // Encoder state + this.leadSurrogate = -1; + this.seqObj = undefined; + + // Static data + this.encodeTable = codec.encodeTable; + this.encodeTableSeq = codec.encodeTableSeq; + this.defaultCharSingleByte = codec.defCharSB; + this.gb18030 = codec.gb18030; +} + +DBCSEncoder.prototype.write = function(str) { + var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)), + leadSurrogate = this.leadSurrogate, + seqObj = this.seqObj, nextChar = -1, + i = 0, j = 0; + + while (true) { + // 0. Get next character. + if (nextChar === -1) { + if (i == str.length) break; + var uCode = str.charCodeAt(i++); + } + else { + var uCode = nextChar; + nextChar = -1; + } + + // 1. Handle surrogates. + if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates. + if (uCode < 0xDC00) { // We've got lead surrogate. + if (leadSurrogate === -1) { + leadSurrogate = uCode; + continue; + } else { + leadSurrogate = uCode; + // Double lead surrogate found. + uCode = UNASSIGNED; + } + } else { // We've got trail surrogate. + if (leadSurrogate !== -1) { + uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00); + leadSurrogate = -1; + } else { + // Incomplete surrogate pair - only trail surrogate found. + uCode = UNASSIGNED; + } + + } + } + else if (leadSurrogate !== -1) { + // Incomplete surrogate pair - only lead surrogate found. + nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char. + leadSurrogate = -1; + } + + // 2. Convert uCode character. + var dbcsCode = UNASSIGNED; + if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence + var resCode = seqObj[uCode]; + if (typeof resCode === 'object') { // Sequence continues. + seqObj = resCode; + continue; + + } else if (typeof resCode == 'number') { // Sequence finished. Write it. + dbcsCode = resCode; + + } else if (resCode == undefined) { // Current character is not part of the sequence. + + // Try default character for this sequence + resCode = seqObj[DEF_CHAR]; + if (resCode !== undefined) { + dbcsCode = resCode; // Found. Write it. + nextChar = uCode; // Current character will be written too in the next iteration. + + } else { + // TODO: What if we have no default? (resCode == undefined) + // Then, we should write first char of the sequence as-is and try the rest recursively. + // Didn't do it for now because no encoding has this situation yet. + // Currently, just skip the sequence and write current char. + } + } + seqObj = undefined; + } + else if (uCode >= 0) { // Regular character + var subtable = this.encodeTable[uCode >> 8]; + if (subtable !== undefined) + dbcsCode = subtable[uCode & 0xFF]; + + if (dbcsCode <= SEQ_START) { // Sequence start + seqObj = this.encodeTableSeq[SEQ_START-dbcsCode]; + continue; + } + + if (dbcsCode == UNASSIGNED && this.gb18030) { + // Use GB18030 algorithm to find character(s) to write. + var idx = findIdx(this.gb18030.uChars, uCode); + if (idx != -1) { + var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); + newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600; + newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260; + newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10; + newBuf[j++] = 0x30 + dbcsCode; + continue; + } + } + } + + // 3. Write dbcsCode character. + if (dbcsCode === UNASSIGNED) + dbcsCode = this.defaultCharSingleByte; + + if (dbcsCode < 0x100) { + newBuf[j++] = dbcsCode; + } + else if (dbcsCode < 0x10000) { + newBuf[j++] = dbcsCode >> 8; // high byte + newBuf[j++] = dbcsCode & 0xFF; // low byte + } + else { + newBuf[j++] = dbcsCode >> 16; + newBuf[j++] = (dbcsCode >> 8) & 0xFF; + newBuf[j++] = dbcsCode & 0xFF; + } + } + + this.seqObj = seqObj; + this.leadSurrogate = leadSurrogate; + return newBuf.slice(0, j); +} + +DBCSEncoder.prototype.end = function() { + if (this.leadSurrogate === -1 && this.seqObj === undefined) + return; // All clean. Most often case. + + var newBuf = Buffer.alloc(10), j = 0; + + if (this.seqObj) { // We're in the sequence. + var dbcsCode = this.seqObj[DEF_CHAR]; + if (dbcsCode !== undefined) { // Write beginning of the sequence. + if (dbcsCode < 0x100) { + newBuf[j++] = dbcsCode; + } + else { + newBuf[j++] = dbcsCode >> 8; // high byte + newBuf[j++] = dbcsCode & 0xFF; // low byte + } + } else { + // See todo above. + } + this.seqObj = undefined; + } + + if (this.leadSurrogate !== -1) { + // Incomplete surrogate pair - only lead surrogate found. + newBuf[j++] = this.defaultCharSingleByte; + this.leadSurrogate = -1; + } + + return newBuf.slice(0, j); +} + +// Export for testing +DBCSEncoder.prototype.findIdx = findIdx; + + +// == Decoder ================================================================== + +function DBCSDecoder(options, codec) { + // Decoder state + this.nodeIdx = 0; + this.prevBuf = Buffer.alloc(0); + + // Static data + this.decodeTables = codec.decodeTables; + this.decodeTableSeq = codec.decodeTableSeq; + this.defaultCharUnicode = codec.defaultCharUnicode; + this.gb18030 = codec.gb18030; +} + +DBCSDecoder.prototype.write = function(buf) { + var newBuf = Buffer.alloc(buf.length*2), + nodeIdx = this.nodeIdx, + prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, + seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence. + uCode; + + if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later. + prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]); + + for (var i = 0, j = 0; i < buf.length; i++) { + var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset]; + + // Lookup in current trie node. + var uCode = this.decodeTables[nodeIdx][curByte]; + + if (uCode >= 0) { + // Normal character, just use it. + } + else if (uCode === UNASSIGNED) { // Unknown char. + // TODO: Callback with seq. + //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset); + i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle). + uCode = this.defaultCharUnicode.charCodeAt(0); + } + else if (uCode === GB18030_CODE) { + var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset); + var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30); + var idx = findIdx(this.gb18030.gbChars, ptr); + uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; + } + else if (uCode <= NODE_START) { // Go to next trie node. + nodeIdx = NODE_START - uCode; + continue; + } + else if (uCode <= SEQ_START) { // Output a sequence of chars. + var seq = this.decodeTableSeq[SEQ_START - uCode]; + for (var k = 0; k < seq.length - 1; k++) { + uCode = seq[k]; + newBuf[j++] = uCode & 0xFF; + newBuf[j++] = uCode >> 8; + } + uCode = seq[seq.length-1]; + } + else + throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); + + // Write the character to buffer, handling higher planes using surrogate pair. + if (uCode > 0xFFFF) { + uCode -= 0x10000; + var uCodeLead = 0xD800 + Math.floor(uCode / 0x400); + newBuf[j++] = uCodeLead & 0xFF; + newBuf[j++] = uCodeLead >> 8; + + uCode = 0xDC00 + uCode % 0x400; + } + newBuf[j++] = uCode & 0xFF; + newBuf[j++] = uCode >> 8; + + // Reset trie node. + nodeIdx = 0; seqStart = i+1; + } + + this.nodeIdx = nodeIdx; + this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset); + return newBuf.slice(0, j).toString('ucs2'); +} + +DBCSDecoder.prototype.end = function() { + var ret = ''; + + // Try to parse all remaining chars. + while (this.prevBuf.length > 0) { + // Skip 1 character in the buffer. + ret += this.defaultCharUnicode; + var buf = this.prevBuf.slice(1); + + // Parse remaining as usual. + this.prevBuf = Buffer.alloc(0); + this.nodeIdx = 0; + if (buf.length > 0) + ret += this.write(buf); + } + + this.nodeIdx = 0; + return ret; +} + +// Binary search for GB18030. Returns largest i such that table[i] <= val. +function findIdx(table, val) { + if (table[0] > val) + return -1; + + var l = 0, r = table.length; + while (l < r-1) { // always table[l] <= val < table[r] + var mid = l + Math.floor((r-l+1)/2); + if (table[mid] <= val) + l = mid; + else + r = mid; + } + return l; +} + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/dbcs-data.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/dbcs-data.js" new file mode 100644 index 0000000000000000000000000000000000000000..4b61914341f9165a4b54543d49e93af6b0d559cf --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/dbcs-data.js" @@ -0,0 +1,176 @@ +"use strict"; + +// Description of supported double byte encodings and aliases. +// Tables are not require()-d until they are needed to speed up library load. +// require()-s are direct to support Browserify. + +module.exports = { + + // == Japanese/ShiftJIS ==================================================== + // All japanese encodings are based on JIS X set of standards: + // JIS X 0201 - Single-byte encoding of ASCII + 楼 + Kana chars at 0xA1-0xDF. + // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. + // Has several variations in 1978, 1983, 1990 and 1997. + // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead. + // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233. + // 2 planes, first is superset of 0208, second - revised 0212. + // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx) + + // Byte encodings are: + // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte + // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC. + // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI. + // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes. + // 0x00-0x7F - lower part of 0201 + // 0x8E, 0xA1-0xDF - upper part of 0201 + // (0xA1-0xFE)x2 - 0208 plane (94x94). + // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94). + // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon. + // Used as-is in ISO2022 family. + // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, + // 0201-1976 Roman, 0208-1978, 0208-1983. + // * ISO2022-JP-1: Adds esc seq for 0212-1990. + // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7. + // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2. + // * ISO2022-JP-2004: Adds 0213-2004 Plane 1. + // + // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes. + // + // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html + + 'shiftjis': { + type: '_dbcs', + table: function() { return require('./tables/shiftjis.json') }, + encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E}, + encodeSkipVals: [{from: 0xED40, to: 0xF940}], + }, + 'csshiftjis': 'shiftjis', + 'mskanji': 'shiftjis', + 'sjis': 'shiftjis', + 'windows31j': 'shiftjis', + 'ms31j': 'shiftjis', + 'xsjis': 'shiftjis', + 'windows932': 'shiftjis', + 'ms932': 'shiftjis', + '932': 'shiftjis', + 'cp932': 'shiftjis', + + 'eucjp': { + type: '_dbcs', + table: function() { return require('./tables/eucjp.json') }, + encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E}, + }, + + // TODO: KDDI extension to Shift_JIS + // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes. + // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars. + + + // == Chinese/GBK ========================================================== + // http://en.wikipedia.org/wiki/GBK + // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder + + // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936 + 'gb2312': 'cp936', + 'gb231280': 'cp936', + 'gb23121980': 'cp936', + 'csgb2312': 'cp936', + 'csiso58gb231280': 'cp936', + 'euccn': 'cp936', + + // Microsoft's CP936 is a subset and approximation of GBK. + 'windows936': 'cp936', + 'ms936': 'cp936', + '936': 'cp936', + 'cp936': { + type: '_dbcs', + table: function() { return require('./tables/cp936.json') }, + }, + + // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other. + 'gbk': { + type: '_dbcs', + table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) }, + }, + 'xgbk': 'gbk', + 'isoir58': 'gbk', + + // GB18030 is an algorithmic extension of GBK. + // Main source: https://www.w3.org/TR/encoding/#gbk-encoder + // http://icu-project.org/docs/papers/gb18030.html + // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml + // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0 + 'gb18030': { + type: '_dbcs', + table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) }, + gb18030: function() { return require('./tables/gb18030-ranges.json') }, + encodeSkipVals: [0x80], + encodeAdd: {'鈧': 0xA2E3}, + }, + + 'chinese': 'gb18030', + + + // == Korean =============================================================== + // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same. + 'windows949': 'cp949', + 'ms949': 'cp949', + '949': 'cp949', + 'cp949': { + type: '_dbcs', + table: function() { return require('./tables/cp949.json') }, + }, + + 'cseuckr': 'cp949', + 'csksc56011987': 'cp949', + 'euckr': 'cp949', + 'isoir149': 'cp949', + 'korean': 'cp949', + 'ksc56011987': 'cp949', + 'ksc56011989': 'cp949', + 'ksc5601': 'cp949', + + + // == Big5/Taiwan/Hong Kong ================================================ + // There are lots of tables for Big5 and cp950. Please see the following links for history: + // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html + // Variations, in roughly number of defined chars: + // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT + // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/ + // * Big5-2003 (Taiwan standard) almost superset of cp950. + // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers. + // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. + // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years. + // Plus, it has 4 combining sequences. + // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299 + // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way. + // Implementations are not consistent within browsers; sometimes labeled as just big5. + // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied. + // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31 + // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s. + // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt + // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt + // + // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder + // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong. + + 'windows950': 'cp950', + 'ms950': 'cp950', + '950': 'cp950', + 'cp950': { + type: '_dbcs', + table: function() { return require('./tables/cp950.json') }, + }, + + // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus. + 'big5': 'big5hkscs', + 'big5hkscs': { + type: '_dbcs', + table: function() { return require('./tables/cp950.json').concat(require('./tables/big5-added.json')) }, + encodeSkipVals: [0xa2cc], + }, + + 'cnbig5': 'big5hkscs', + 'csbig5': 'big5hkscs', + 'xxbig5': 'big5hkscs', +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..e30400317c18fb2fd374e01d52c8f815976db6a5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/index.js" @@ -0,0 +1,22 @@ +"use strict"; + +// Update this array if you add/rename/remove files in this directory. +// We support Browserify by skipping automatic module discovery and requiring modules directly. +var modules = [ + require("./internal"), + require("./utf16"), + require("./utf7"), + require("./sbcs-codec"), + require("./sbcs-data"), + require("./sbcs-data-generated"), + require("./dbcs-codec"), + require("./dbcs-data"), +]; + +// Put all encoding/alias/codec definitions to single object and export it. +for (var i = 0; i < modules.length; i++) { + var module = modules[i]; + for (var enc in module) + if (Object.prototype.hasOwnProperty.call(module, enc)) + exports[enc] = module[enc]; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/internal.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/internal.js" new file mode 100644 index 0000000000000000000000000000000000000000..05ce38b276eee23753837bea9df92a96e5d02c1a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/internal.js" @@ -0,0 +1,188 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Export Node.js internal encodings. + +module.exports = { + // Encodings + utf8: { type: "_internal", bomAware: true}, + cesu8: { type: "_internal", bomAware: true}, + unicode11utf8: "utf8", + + ucs2: { type: "_internal", bomAware: true}, + utf16le: "ucs2", + + binary: { type: "_internal" }, + base64: { type: "_internal" }, + hex: { type: "_internal" }, + + // Codec. + _internal: InternalCodec, +}; + +//------------------------------------------------------------------------------ + +function InternalCodec(codecOptions, iconv) { + this.enc = codecOptions.encodingName; + this.bomAware = codecOptions.bomAware; + + if (this.enc === "base64") + this.encoder = InternalEncoderBase64; + else if (this.enc === "cesu8") { + this.enc = "utf8"; // Use utf8 for decoding. + this.encoder = InternalEncoderCesu8; + + // Add decoder for versions of Node not supporting CESU-8 + if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '馃挬') { + this.decoder = InternalDecoderCesu8; + this.defaultCharUnicode = iconv.defaultCharUnicode; + } + } +} + +InternalCodec.prototype.encoder = InternalEncoder; +InternalCodec.prototype.decoder = InternalDecoder; + +//------------------------------------------------------------------------------ + +// We use node.js internal decoder. Its signature is the same as ours. +var StringDecoder = require('string_decoder').StringDecoder; + +if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method. + StringDecoder.prototype.end = function() {}; + + +function InternalDecoder(options, codec) { + StringDecoder.call(this, codec.enc); +} + +InternalDecoder.prototype = StringDecoder.prototype; + + +//------------------------------------------------------------------------------ +// Encoder is mostly trivial + +function InternalEncoder(options, codec) { + this.enc = codec.enc; +} + +InternalEncoder.prototype.write = function(str) { + return Buffer.from(str, this.enc); +} + +InternalEncoder.prototype.end = function() { +} + + +//------------------------------------------------------------------------------ +// Except base64 encoder, which must keep its state. + +function InternalEncoderBase64(options, codec) { + this.prevStr = ''; +} + +InternalEncoderBase64.prototype.write = function(str) { + str = this.prevStr + str; + var completeQuads = str.length - (str.length % 4); + this.prevStr = str.slice(completeQuads); + str = str.slice(0, completeQuads); + + return Buffer.from(str, "base64"); +} + +InternalEncoderBase64.prototype.end = function() { + return Buffer.from(this.prevStr, "base64"); +} + + +//------------------------------------------------------------------------------ +// CESU-8 encoder is also special. + +function InternalEncoderCesu8(options, codec) { +} + +InternalEncoderCesu8.prototype.write = function(str) { + var buf = Buffer.alloc(str.length * 3), bufIdx = 0; + for (var i = 0; i < str.length; i++) { + var charCode = str.charCodeAt(i); + // Naive implementation, but it works because CESU-8 is especially easy + // to convert from UTF-16 (which all JS strings are encoded in). + if (charCode < 0x80) + buf[bufIdx++] = charCode; + else if (charCode < 0x800) { + buf[bufIdx++] = 0xC0 + (charCode >>> 6); + buf[bufIdx++] = 0x80 + (charCode & 0x3f); + } + else { // charCode will always be < 0x10000 in javascript. + buf[bufIdx++] = 0xE0 + (charCode >>> 12); + buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f); + buf[bufIdx++] = 0x80 + (charCode & 0x3f); + } + } + return buf.slice(0, bufIdx); +} + +InternalEncoderCesu8.prototype.end = function() { +} + +//------------------------------------------------------------------------------ +// CESU-8 decoder is not implemented in Node v4.0+ + +function InternalDecoderCesu8(options, codec) { + this.acc = 0; + this.contBytes = 0; + this.accBytes = 0; + this.defaultCharUnicode = codec.defaultCharUnicode; +} + +InternalDecoderCesu8.prototype.write = function(buf) { + var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, + res = ''; + for (var i = 0; i < buf.length; i++) { + var curByte = buf[i]; + if ((curByte & 0xC0) !== 0x80) { // Leading byte + if (contBytes > 0) { // Previous code is invalid + res += this.defaultCharUnicode; + contBytes = 0; + } + + if (curByte < 0x80) { // Single-byte code + res += String.fromCharCode(curByte); + } else if (curByte < 0xE0) { // Two-byte code + acc = curByte & 0x1F; + contBytes = 1; accBytes = 1; + } else if (curByte < 0xF0) { // Three-byte code + acc = curByte & 0x0F; + contBytes = 2; accBytes = 1; + } else { // Four or more are not supported for CESU-8. + res += this.defaultCharUnicode; + } + } else { // Continuation byte + if (contBytes > 0) { // We're waiting for it. + acc = (acc << 6) | (curByte & 0x3f); + contBytes--; accBytes++; + if (contBytes === 0) { + // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80) + if (accBytes === 2 && acc < 0x80 && acc > 0) + res += this.defaultCharUnicode; + else if (accBytes === 3 && acc < 0x800) + res += this.defaultCharUnicode; + else + // Actually add character. + res += String.fromCharCode(acc); + } + } else { // Unexpected continuation byte + res += this.defaultCharUnicode; + } + } + } + this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes; + return res; +} + +InternalDecoderCesu8.prototype.end = function() { + var res = 0; + if (this.contBytes > 0) + res += this.defaultCharUnicode; + return res; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-codec.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-codec.js" new file mode 100644 index 0000000000000000000000000000000000000000..abac5ffaac97da29fa5c5d8aedf5b47763fc7c58 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-codec.js" @@ -0,0 +1,72 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that +// correspond to encoded bytes (if 128 - then lower half is ASCII). + +exports._sbcs = SBCSCodec; +function SBCSCodec(codecOptions, iconv) { + if (!codecOptions) + throw new Error("SBCS codec is called without the data.") + + // Prepare char buffer for decoding. + if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)) + throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)"); + + if (codecOptions.chars.length === 128) { + var asciiString = ""; + for (var i = 0; i < 128; i++) + asciiString += String.fromCharCode(i); + codecOptions.chars = asciiString + codecOptions.chars; + } + + this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2'); + + // Encoding buffer. + var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); + + for (var i = 0; i < codecOptions.chars.length; i++) + encodeBuf[codecOptions.chars.charCodeAt(i)] = i; + + this.encodeBuf = encodeBuf; +} + +SBCSCodec.prototype.encoder = SBCSEncoder; +SBCSCodec.prototype.decoder = SBCSDecoder; + + +function SBCSEncoder(options, codec) { + this.encodeBuf = codec.encodeBuf; +} + +SBCSEncoder.prototype.write = function(str) { + var buf = Buffer.alloc(str.length); + for (var i = 0; i < str.length; i++) + buf[i] = this.encodeBuf[str.charCodeAt(i)]; + + return buf; +} + +SBCSEncoder.prototype.end = function() { +} + + +function SBCSDecoder(options, codec) { + this.decodeBuf = codec.decodeBuf; +} + +SBCSDecoder.prototype.write = function(buf) { + // Strings are immutable in JS -> we use ucs2 buffer to speed up computations. + var decodeBuf = this.decodeBuf; + var newBuf = Buffer.alloc(buf.length*2); + var idx1 = 0, idx2 = 0; + for (var i = 0; i < buf.length; i++) { + idx1 = buf[i]*2; idx2 = i*2; + newBuf[idx2] = decodeBuf[idx1]; + newBuf[idx2+1] = decodeBuf[idx1+1]; + } + return newBuf.toString('ucs2'); +} + +SBCSDecoder.prototype.end = function() { +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-data-generated.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-data-generated.js" new file mode 100644 index 0000000000000000000000000000000000000000..9b4823607b6071c67dd7b553767bfee98a49de1c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-data-generated.js" @@ -0,0 +1,451 @@ +"use strict"; + +// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script. +module.exports = { + "437": "cp437", + "737": "cp737", + "775": "cp775", + "850": "cp850", + "852": "cp852", + "855": "cp855", + "856": "cp856", + "857": "cp857", + "858": "cp858", + "860": "cp860", + "861": "cp861", + "862": "cp862", + "863": "cp863", + "864": "cp864", + "865": "cp865", + "866": "cp866", + "869": "cp869", + "874": "windows874", + "922": "cp922", + "1046": "cp1046", + "1124": "cp1124", + "1125": "cp1125", + "1129": "cp1129", + "1133": "cp1133", + "1161": "cp1161", + "1162": "cp1162", + "1163": "cp1163", + "1250": "windows1250", + "1251": "windows1251", + "1252": "windows1252", + "1253": "windows1253", + "1254": "windows1254", + "1255": "windows1255", + "1256": "windows1256", + "1257": "windows1257", + "1258": "windows1258", + "28591": "iso88591", + "28592": "iso88592", + "28593": "iso88593", + "28594": "iso88594", + "28595": "iso88595", + "28596": "iso88596", + "28597": "iso88597", + "28598": "iso88598", + "28599": "iso88599", + "28600": "iso885910", + "28601": "iso885911", + "28603": "iso885913", + "28604": "iso885914", + "28605": "iso885915", + "28606": "iso885916", + "windows874": { + "type": "_sbcs", + "chars": "鈧拷锟斤拷锟解︼拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷鈥樷欌溾濃⑩撯旓拷锟斤拷锟斤拷锟斤拷锟铰犩竵喔傕竷喔勦竻喔嗋竾喔堗笁喔娻笅喔屶笉喔庎笍喔愢笐喔掄笓喔斷笗喔栢笚喔樴笝喔氞笡喔溹笣喔炧笩喔犩浮喔⑧福喔む弗喔︵抚喔ㄠ俯喔斧喔腑喔腐喔班副喔侧赋喔脆傅喔多阜喔膏腹喔猴拷锟斤拷锟洁缚喙喙佮箓喙冟箘喙呧箚喙囙箞喙夃箠喙嬥箤喙嵿箮喙忇箰喙戉箳喙撪箶喙曕箹喙椸箻喙權箽喙涳拷锟斤拷锟" + }, + "win874": "windows874", + "cp874": "windows874", + "windows1250": { + "type": "_sbcs", + "chars": "鈧拷鈥氾拷鈥炩︹犫★拷鈥芭犫古毰づ脚癸拷鈥樷欌溾濃⑩撯旓拷鈩⑴♀号浥ヅ九郝犓囁樑伮つ劼β┡灺宦奥彼浥偮绰德堵仿改吪熉荒剿澞九寂斆伱偰偯勀鼓喢嚹屆壞樏嬆毭嵜幠幠惻兣嚸撁斉惷柮椗樑毰懊溍澟⒚熍暶∶⒛兠つ耗嚸嵜┠櫭浢從懪勁埫趁磁懨睹放櫯号泵济脚K" + }, + "win1250": "windows1250", + "cp1250": "windows1250", + "windows1251": { + "type": "_sbcs", + "chars": "袀袃鈥氀撯炩︹犫♀偓鈥靶夆剐娦屝嬓徰掆樷欌溾濃⑩撯旓拷鈩⒀欌貉氀溠浹熉犘幯炐埪ひ惵β伮┬劼嚶奥毙喲栆懧德堵费戔剸褦禄褬袇褧褩袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟" + }, + "win1251": "windows1251", + "cp1251": "windows1251", + "windows1252": { + "type": "_sbcs", + "chars": "鈧拷鈥毱掆炩︹犫∷嗏芭犫古掞拷沤锟斤拷鈥樷欌溾濃⑩撯斔溾劉拧鈥号擄拷啪鸥聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每" + }, + "win1252": "windows1252", + "cp1252": "windows1252", + "windows1253": { + "type": "_sbcs", + "chars": "鈧拷鈥毱掆炩︹犫★拷鈥帮拷鈥癸拷锟斤拷锟斤拷鈥樷欌溾濃⑩撯旓拷鈩拷鈥猴拷锟斤拷锟铰犖呂喡Bぢヂβ╋拷芦卢颅庐鈥暵奥甭猜澄劼德堵肺埼壩娐晃屄轿幬徫愇懳捨撐斘曃栁椢樜櫸毼浳溛澪炍熚犖★拷危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋锟" + }, + "win1253": "windows1253", + "cp1253": "windows1253", + "windows1254": { + "type": "_sbcs", + "chars": "鈧拷鈥毱掆炩︹犫∷嗏芭犫古掞拷锟斤拷锟解樷欌溾濃⑩撯斔溾劉拧鈥号擄拷锟脚嘎犅÷⒙Bぢヂβ┞奥甭猜陈绰德堵仿嘎孤郝宦悸铰韭棵脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧臑脩脪脫脭脮脰脳脴脵脷脹脺陌艦脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂臒帽貌贸么玫枚梅酶霉煤没眉谋艧每" + }, + "win1254": "windows1254", + "cp1254": "windows1254", + "windows1255": { + "type": "_sbcs", + "chars": "鈧拷鈥毱掆炩︹犫∷嗏帮拷鈥癸拷锟斤拷锟斤拷鈥樷欌溾濃⑩撯斔溾劉锟解猴拷锟斤拷锟铰犅÷⒙b偑楼娄搂篓漏脳芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿梅禄录陆戮驴职直植殖执值侄址指止趾只旨纸志挚讇讈讉變装妆撞壮状锟斤拷锟斤拷锟斤拷锟阶愖懽捵撟斪曌栕椬樧欁氉涀溩澴炞熥犠∽⒆Wぷプψёㄗ┳拷锟解庘忥拷" + }, + "win1255": "windows1255", + "cp1255": "windows1255", + "windows1256": { + "type": "_sbcs", + "chars": "鈧锯毱掆炩︹犫∷嗏百光古捼嗂樬堏樷欌溾濃⑩撯斱┾劉趹鈥号撯屸嵹郝犡屄⒙Bぢヂβ┶韭奥甭猜陈绰德堵仿嘎关浡宦悸铰矩熪佖∝⒇Xへヘωжㄘ┴柏必藏池簇地睹椮坟肛关嘿賮賯賰脿賱芒賲賳賴賵莽猫茅锚毛賶賷卯茂賸賹賺賻么購賽梅賾霉賿没眉鈥庘徾" + }, + "win1256": "windows1256", + "cp1256": "windows1256", + "windows1257": { + "type": "_sbcs", + "chars": "鈧拷鈥氾拷鈥炩︹犫★拷鈥帮拷鈥癸拷篓藝赂锟解樷欌溾濃⑩撯旓拷鈩拷鈥猴拷炉藳锟铰狅拷垄拢陇锟铰β樎┡柭喡奥甭猜陈绰德堵访嘎古椔宦悸铰久δ勀膯脛脜臉膾膶脡殴臇蘑亩莫幕艩艃艆脫艑脮脰脳挪艁艢弄脺呕沤脽膮寞膩膰盲氓臋膿膷茅藕臈模姆墨募拧艅艈贸艒玫枚梅懦艂艣奴眉偶啪藱" + }, + "win1257": "windows1257", + "cp1257": "windows1257", + "windows1258": { + "type": "_sbcs", + "chars": "鈧拷鈥毱掆炩︹犫∷嗏帮拷鈥古掞拷锟斤拷锟解樷欌溾濃⑩撯斔溾劉锟解号擄拷锟脚嘎犅÷⒙Bぢヂβ┞奥甭猜陈绰德堵仿嘎孤郝宦悸铰韭棵脕脗膫脛脜脝脟脠脡脢脣虁脥脦脧膼脩虊脫脭茽脰脳脴脵脷脹脺漂虄脽脿谩芒膬盲氓忙莽猫茅锚毛虂铆卯茂膽帽蹋贸么啤枚梅酶霉煤没眉瓢鈧" + }, + "win1258": "windows1258", + "cp1258": "windows1258", + "iso88591": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每" + }, + "cp28591": "iso88591", + "iso88592": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽膭藰艁陇慕艢搂篓艩艦扭殴颅沤呕掳膮藳艂麓木艣藝赂拧艧钮藕藵啪偶艛脕脗膫脛墓膯脟膶脡臉脣臍脥脦膸膼艃艊脫脭艕脰脳艠女脷虐脺脻泞脽艜谩芒膬盲暮膰莽膷茅臋毛臎铆卯膹膽艅艌贸么艖枚梅艡暖煤疟眉媒牛藱" + }, + "cp28592": "iso88592", + "iso88593": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽摩藰拢陇锟侥ぢ芭災災绰拷呕掳魔虏鲁麓碌磨路赂谋艧臒牡陆锟脚济脕脗锟矫勀娔埫嚸埫壝娒嬅屆嵜幟忥拷脩脪脫脭臓脰脳臏脵脷脹脺努艤脽脿谩芒锟矫つ嬆壝┟拷帽貌贸么摹枚梅臐霉煤没眉怒艥藱" + }, + "cp28593": "iso88593", + "iso88594": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽膭母艝陇抹幕搂篓艩膾蘑纽颅沤炉掳膮藳艞麓末募藝赂拧膿模脓艎啪艐膧脕脗脙脛脜脝漠膶脡臉脣臇脥脦莫膼艆艑亩脭脮脰脳脴挪脷脹脺浓弄脽膩谩芒茫盲氓忙寞膷茅臋毛臈铆卯墨膽艈艒姆么玫枚梅酶懦煤没眉农奴藱" + }, + "cp28594": "iso88594", + "iso88595": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽衼袀袃袆袇袉袊袌袎袏袐袑颅袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟鈩栄懷捬撗斞曆栄椦樠櫻氀浹溌а炑" + }, + "cp28595": "iso88595", + "iso88596": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽锟斤拷锟铰わ拷锟斤拷锟斤拷锟斤拷貙颅锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟截涳拷锟斤拷責锟截∝⒇Xへヘωжㄘ┴柏必藏池簇地敦坟肛关猴拷锟斤拷锟斤拷賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟" + }, + "cp28596": "iso88596", + "iso88597": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽鈥樷櫬b偓鈧β┩郝拷鈥暵奥甭猜澄勎呂喡肺埼壩娐晃屄轿幬徫愇懳捨撐斘曃栁椢樜櫸毼浳溛澪炍熚犖★拷危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋锟" + }, + "cp28597": "iso88597", + "iso88598": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽锟铰⒙Bぢヂβ┟椔奥甭猜陈绰德堵仿嘎姑仿宦悸铰撅拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟解椬愖懽捵撟斪曌栕椬樧欁氉涀溩澴炞熥犠∽⒆Wぷプψёㄗ┳拷锟解庘忥拷" + }, + "cp28598": "iso88598", + "iso88599": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧臑脩脪脫脭脮脰脳脴脵脷脹脺陌艦脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂臒帽貌贸么玫枚梅酶霉煤没眉谋艧每" + }, + "cp28599": "iso88599", + "iso885910": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽膭膾蘑莫抹亩搂幕膼艩纽沤颅弄艎掳膮膿模墨末姆路募膽拧脓啪鈥暸嬆脕脗脙脛脜脝漠膶脡臉脣臇脥脦脧脨艆艑脫脭脮脰浓脴挪脷脹脺脻脼脽膩谩芒茫盲氓忙寞膷茅臋毛臈铆卯茂冒艈艒贸么玫枚农酶懦煤没眉媒镁母" + }, + "cp28600": "iso885910", + "iso885911": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽喔佮競喔冟竸喔呧竼喔囙笀喔夃笂喔嬥笇喔嵿笌喔忇笎喔戉笒喔撪笖喔曕笘喔椸笜喔權笟喔涏笢喔澿笧喔熰笭喔∴涪喔`袱喔ム甫喔о辅喔┼釜喔脯喔府喔赴喔编覆喔赤复喔掂付喔粪父喔灌负锟斤拷锟斤拷喔苦箑喙佮箓喙冟箘喙呧箚喙囙箞喙夃箠喙嬥箤喙嵿箮喙忇箰喙戉箳喙撪箶喙曕箹喙椸箻喙權箽喙涳拷锟斤拷锟" + }, + "cp28601": "iso885911", + "iso885913": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽鈥澛⒙Bも灺β樎┡柭喡奥甭猜斥溌德堵访嘎古椔宦悸铰久δ勀膯脛脜臉膾膶脡殴臇蘑亩莫幕艩艃艆脫艑脮脰脳挪艁艢弄脺呕沤脽膮寞膩膰盲氓臋膿膷茅藕臈模姆墨募拧艅艈贸艒玫枚梅懦艂艣奴眉偶啪鈥" + }, + "cp28603": "iso885913", + "iso885914": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽岣傖竷拢膴膵岣娐п簚漏岷傖笅峄猜羔笧岣熌犇♂箑峁伮夺箹岷佱箺岷冡範峄翅簞岷呩埂脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧糯脩脪脫脭脮脰峁樏櫭毭浢溍澟睹熋犆∶⒚Cっッγ┟得泵裁趁疵得夺公酶霉煤没眉媒欧每" + }, + "cp28604": "iso885914", + "iso885915": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢鈧ヅ犅÷┞奥甭猜撑铰德堵放韭孤郝慌捙撆嘎棵脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每" + }, + "cp28605": "iso885915", + "iso885916": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽膭膮艁鈧炁犅÷┤樎孤号宦奥蹦屌偱解澛堵放灸嵢櫬慌捙撆概济脕脗膫脛膯脝脟脠脡脢脣脤脥脦脧膼艃脪脫脭艕脰艢虐脵脷脹脺臉葰脽脿谩芒膬盲膰忙莽猫茅锚毛矛铆卯茂膽艅貌贸么艖枚艣疟霉煤没眉臋葲每" + }, + "cp28606": "iso885916", + "cp437": { + "type": "_sbcs", + "chars": "脟眉茅芒盲脿氓莽锚毛猫茂卯矛脛脜脡忙脝么枚貌没霉每脰脺垄拢楼鈧捗∶趁好泵懧郝库寪卢陆录隆芦禄鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻伪脽螕蟺危蟽碌蟿桅螛惟未鈭炏單碘埄鈮÷扁墺鈮も尃鈱∶封増掳鈭櫬封垰鈦柯测枲聽" + }, + "ibm437": "cp437", + "csibm437": "cp437", + "cp737": { + "type": "_sbcs", + "chars": "螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍危韦违桅围唯惟伪尾纬未蔚味畏胃喂魏位渭谓尉慰蟺蟻蟽蟼蟿蠀蠁蠂蠄鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻蠅维苇萎蠆委蠈蠉蠇蠋螁螆螇螉螌螏螐卤鈮モ墹为潍梅鈮埪扳垯路鈭氣伩虏鈻犅" + }, + "ibm737": "cp737", + "csibm737": "cp737", + "cp775": { + "type": "_sbcs", + "chars": "膯眉茅膩盲模氓膰艂膿艝艞墨殴脛脜脡忙脝艒枚蘑垄艢艣脰脺酶拢脴脳陇膧莫贸呕偶藕鈥澛β┞铰寂伮烩枒鈻掆枔鈹傗敜膭膶臉臇鈺b晳鈺椻暆漠艩鈹愨敂鈹粹敩鈹溾攢鈹寂才暁鈺斺暕鈺︹暊鈺愨暚沤膮膷臋臈寞拧懦奴啪鈹樷攲鈻堚杽鈻屸枑鈻脫脽艑艃玫脮碌艅亩姆幕募艈膾艆鈥櫬扁溌韭堵封灺扳垯路鹿鲁虏鈻犅" + }, + "ibm775": "cp775", + "csibm775": "cp775", + "cp850": { + "type": "_sbcs", + "chars": "脟眉茅芒盲脿氓莽锚毛猫茂卯矛脛脜脡忙脝么枚貌没霉每脰脺酶拢脴脳茠谩铆贸煤帽脩陋潞驴庐卢陆录隆芦禄鈻戔枓鈻撯攤鈹っ伱偯漏鈺b晳鈺椻暆垄楼鈹愨敂鈹粹敩鈹溾攢鈹济C冣暁鈺斺暕鈺︹暊鈺愨暚陇冒脨脢脣脠谋脥脦脧鈹樷攲鈻堚杽娄脤鈻脫脽脭脪玫脮碌镁脼脷脹脵媒脻炉麓颅卤鈥椔韭堵仿嘎奥仿孤陈测枲聽" + }, + "ibm850": "cp850", + "csibm850": "cp850", + "cp852": { + "type": "_sbcs", + "chars": "脟眉茅芒盲暖膰莽艂毛艕艖卯殴脛膯脡墓暮么枚慕木艢艣脰脺扭钮艁脳膷谩铆贸煤膭膮沤啪臉臋卢藕膶艧芦禄鈻戔枓鈻撯攤鈹っ伱偰毰炩暎鈺戔晽鈺澟慌尖攼鈹斺敶鈹敎鈹鈹寄偰冣暁鈺斺暕鈺︹暊鈺愨暚陇膽膼膸脣膹艊脥脦臎鈹樷攲鈻堚杽泞女鈻脫脽脭艃艅艌艩拧艛脷艜虐媒脻牛麓颅藵藳藝藰搂梅赂掳篓藱疟艠艡鈻犅" + }, + "ibm852": "cp852", + "csibm852": "cp852", + "cp855": { + "type": "_sbcs", + "chars": "褣袀褤袃褢衼褦袆褧袇褨袉褩袊褬袌褭袎褮袏褯袐褱袑褳袔褵袕褞挟褗歇邪袗斜袘褑笑写袛械袝褎肖谐袚芦禄鈻戔枓鈻撯攤鈹ぱ呅バ感樷暎鈺戔晽鈺澬剐欌攼鈹斺敶鈹敎鈹鈹夹盒氣暁鈺斺暕鈺︹暊鈺愨暚陇谢袥屑袦薪袧芯袨锌鈹樷攲鈻堚杽袩褟鈻携褉袪褋小褌孝褍校卸袞胁袙褜鞋鈩柭嬓沸椦埿ㄑ嵭壭┭囆р枲聽" + }, + "ibm855": "cp855", + "csibm855": "cp855", + "cp856": { + "type": "_sbcs", + "chars": "讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转锟铰o拷脳锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷庐卢陆录锟铰烩枒鈻掆枔鈹傗敜锟斤拷锟铰┾暎鈺戔晽鈺澛⒙モ攼鈹斺敶鈹敎鈹鈹硷拷锟解暁鈺斺暕鈺︹暊鈺愨暚陇锟斤拷锟斤拷锟斤拷锟斤拷锟解敇鈹屸枅鈻劼︼拷鈻锟斤拷锟斤拷锟斤拷碌锟斤拷锟斤拷锟斤拷锟铰绰扁椔韭堵仿嘎奥仿孤陈测枲聽" + }, + "ibm856": "cp856", + "csibm856": "cp856", + "cp857": { + "type": "_sbcs", + "chars": "脟眉茅芒盲脿氓莽锚毛猫茂卯谋脛脜脡忙脝么枚貌没霉陌脰脺酶拢脴艦艧谩铆贸煤帽脩臑臒驴庐卢陆录隆芦禄鈻戔枓鈻撯攤鈹っ伱偯漏鈺b晳鈺椻暆垄楼鈹愨敂鈹粹敩鈹溾攢鈹济C冣暁鈺斺暕鈺︹暊鈺愨暚陇潞陋脢脣脠锟矫嵜幟忊敇鈹屸枅鈻劼γ屸杸脫脽脭脪玫脮碌锟矫椕毭浢櫭柯绰憋拷戮露搂梅赂掳篓路鹿鲁虏鈻犅" + }, + "ibm857": "cp857", + "csibm857": "cp857", + "cp858": { + "type": "_sbcs", + "chars": "脟眉茅芒盲脿氓莽锚毛猫茂卯矛脛脜脡忙脝么枚貌没霉每脰脺酶拢脴脳茠谩铆贸煤帽脩陋潞驴庐卢陆录隆芦禄鈻戔枓鈻撯攤鈹っ伱偯漏鈺b晳鈺椻暆垄楼鈹愨敂鈹粹敩鈹溾攢鈹济C冣暁鈺斺暕鈺︹暊鈺愨暚陇冒脨脢脣脠鈧嵜幟忊敇鈹屸枅鈻劼γ屸杸脫脽脭脪玫脮碌镁脼脷脹脵媒脻炉麓颅卤鈥椔韭堵仿嘎奥仿孤陈测枲聽" + }, + "ibm858": "cp858", + "csibm858": "cp858", + "cp860": { + "type": "_sbcs", + "chars": "脟眉茅芒茫脿脕莽锚脢猫脥脭矛脙脗脡脌脠么玫貌脷霉脤脮脺垄拢脵鈧撁∶趁好泵懧郝棵捖铰悸÷烩枒鈻掆枔鈹傗敜鈺♀暍鈺栤晻鈺b晳鈺椻暆鈺溾暃鈹愨敂鈹粹敩鈹溾攢鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻伪脽螕蟺危蟽碌蟿桅螛惟未鈭炏單碘埄鈮÷扁墺鈮も尃鈱∶封増掳鈭櫬封垰鈦柯测枲聽" + }, + "ibm860": "cp860", + "csibm860": "cp860", + "cp861": { + "type": "_sbcs", + "chars": "脟眉茅芒盲脿氓莽锚毛猫脨冒脼脛脜脡忙脝么枚镁没脻媒脰脺酶拢脴鈧捗∶趁好伱嵜撁毬库寪卢陆录隆芦禄鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻伪脽螕蟺危蟽碌蟿桅螛惟未鈭炏單碘埄鈮÷扁墺鈮も尃鈱∶封増掳鈭櫬封垰鈦柯测枲聽" + }, + "ibm861": "cp861", + "csibm861": "cp861", + "cp862": { + "type": "_sbcs", + "chars": "讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转垄拢楼鈧捗∶趁好泵懧郝库寪卢陆录隆芦禄鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻伪脽螕蟺危蟽碌蟿桅螛惟未鈭炏單碘埄鈮÷扁墺鈮も尃鈱∶封増掳鈭櫬封垰鈦柯测枲聽" + }, + "ibm862": "cp862", + "csibm862": "cp862", + "cp863": { + "type": "_sbcs", + "chars": "脟眉茅芒脗脿露莽锚毛猫茂卯鈥椕搂脡脠脢么脣脧没霉陇脭脺垄拢脵脹茠娄麓贸煤篓赂鲁炉脦鈱惵铰悸韭烩枒鈻掆枔鈹傗敜鈺♀暍鈺栤晻鈺b晳鈺椻暆鈺溾暃鈹愨敂鈹粹敩鈹溾攢鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻伪脽螕蟺危蟽碌蟿桅螛惟未鈭炏單碘埄鈮÷扁墺鈮も尃鈱∶封増掳鈭櫬封垰鈦柯测枲聽" + }, + "ibm863": "cp863", + "csibm863": "cp863", + "cp864": { + "type": "_sbcs", + "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$侏&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~掳路鈭欌垰鈻掆攢鈹傗敿鈹も敩鈹溾敶鈹愨攲鈹斺敇尾鈭炏喡甭铰尖増芦禄锘凤桓锟斤拷锘伙患锟铰犅簜拢陇锖勶拷锟斤簬锖忥簳锖欂岋簼锖★亥贍佟佗伲伽佶佴侑侉侃锘懾涳罕锖碉汗責垄锖锖侊簝锖咃粖锖嬶簫锖戯簱锖楋簺锖燂海锖э憨锖涵锖撼锖凤夯锖匡粊锘咃粙锘徛β访楋粔賭锘擄粭锘涳粺锘o户锘画锘怀锖斤粚锘庯粛锘★菇賾锘ワ哗锘话锘诧粣锘曪坏锘讹粷锘欙槐鈻狅拷" + }, + "ibm864": "cp864", + "csibm864": "cp864", + "cp865": { + "type": "_sbcs", + "chars": "脟眉茅芒盲脿氓莽锚毛猫茂卯矛脛脜脡忙脝么枚貌没霉每脰脺酶拢脴鈧捗∶趁好泵懧郝库寪卢陆录隆芦陇鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻伪脽螕蟺危蟽碌蟿桅螛惟未鈭炏單碘埄鈮÷扁墺鈮も尃鈱∶封増掳鈭櫬封垰鈦柯测枲聽" + }, + "ibm865": "cp865", + "csibm865": "cp865", + "cp866": { + "type": "_sbcs", + "chars": "袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟衼褢袆褦袊褩袔褳掳鈭櫬封垰鈩柭も枲聽" + }, + "ibm866": "cp866", + "csibm866": "cp866", + "cp869": { + "type": "_sbcs", + "chars": "锟斤拷锟斤拷锟斤拷螁锟铰仿︹樷櫸堚曃壩娢岋拷锟轿幬┪徛猜澄N娢愊屜嵨懳捨撐斘曃栁椔轿樜櫬烩枒鈻掆枔鈹傗敜螝螞螠螡鈺b晳鈺椻暆螢螣鈹愨敂鈹粹敩鈹溾攢鈹嘉犖♀暁鈺斺暕鈺︹暊鈺愨暚危韦违桅围唯惟伪尾纬鈹樷攲鈻堚杽未蔚鈻味畏胃喂魏位渭谓尉慰蟺蟻蟽蟼蟿蝿颅卤蠀蠁蠂搂蠄螀掳篓蠅蠇伟蠋鈻犅" + }, + "ibm869": "cp869", + "csibm869": "cp869", + "cp922": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐鈥韭奥甭猜陈绰德堵仿嘎孤郝宦悸铰韭棵脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧艩脩脪脫脭脮脰脳脴脵脷脹脺脻沤脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂拧帽貌贸么玫枚梅酶霉煤没眉媒啪每" + }, + "ibm922": "cp922", + "csibm922": "cp922", + "cp1046": { + "type": "_sbcs", + "chars": "锖埫椕凤6铮碉4铮凤贡聢鈻犫攤鈹鈹愨攲鈹斺敇锕癸够锕斤箍锕凤簥锘帮怀锘诧粠锘忥粣锘讹桓锘猴患聽铮猴9铮嘎わ;锖嬶簯锖楋簺锖燂海貙颅锖э撼贍佟佗伲伽佶佴侑侉侃锖坟涳夯锖匡粖責锘嬝∝⒇Xへヘωжㄘ┴柏必藏池簇地敦凤粐毓睾锘岋簜锖勶簬锘撡賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿锘楋粵锘燂<锘碉环锘癸换锘o户锘哗锟" + }, + "ibm1046": "cp1046", + "csibm1046": "cp1046", + "cp1124": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽衼袀覑袆袇袉袊袌袎袏袐袑颅袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟鈩栄懷捯懷斞曆栄椦樠櫻氀浹溌а炑" + }, + "ibm1124": "cp1124", + "csibm1124": "cp1124", + "cp1125": { + "type": "_sbcs", + "chars": "袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟衼褢覑覒袆褦袉褨袊褩路鈭氣剸陇鈻犅" + }, + "ibm1125": "cp1125", + "csibm1125": "cp1125", + "cp1129": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂艙漏陋芦卢颅庐炉掳卤虏鲁鸥碌露路艗鹿潞禄录陆戮驴脌脕脗膫脛脜脝脟脠脡脢脣虁脥脦脧膼脩虊脫脭茽脰脳脴脵脷脹脺漂虄脽脿谩芒膬盲氓忙莽猫茅锚毛虂铆卯茂膽帽蹋贸么啤枚梅酶霉煤没眉瓢鈧" + }, + "ibm1129": "cp1129", + "csibm1129": "cp1129", + "cp1133": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽嗪佮簜嗪勦簢嗪堗邯嗪娻簫嗪斷簳嗪栢簵嗪權簹嗪涏簻嗪澿簽嗪熰骸嗪⑧海嗪ム骇嗪涵嗪拷锟斤拷嗪喊嗪侧撼嗪脆旱嗪多悍嗪膏汗嗪监罕嗪秽航锟斤拷锟洁粈嗷佮粋嗷冟粍嗷堗粔嗷娻粙嗷屶粛嗷嗭拷嗷溹粷鈧拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟洁粣嗷戉粧嗷撪粩嗷曕粬嗷椸粯嗷欙拷锟铰⒙︼拷" + }, + "ibm1133": "cp1133", + "csibm1133": "cp1133", + "cp1161": { + "type": "_sbcs", + "chars": "锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷喙堗竵喔傕竷喔勦竻喔嗋竾喔堗笁喔娻笅喔屶笉喔庎笍喔愢笐喔掄笓喔斷笗喔栢笚喔樴笝喔氞笡喔溹笣喔炧笩喔犩浮喔⑧福喔む弗喔︵抚喔ㄠ俯喔斧喔腑喔腐喔班副喔侧赋喔脆傅喔多阜喔膏腹喔亨箟喙娻箣鈧缚喙喙佮箓喙冟箘喙呧箚喙囙箞喙夃箠喙嬥箤喙嵿箮喙忇箰喙戉箳喙撪箶喙曕箹喙椸箻喙權箽喙浡⒙β" + }, + "ibm1161": "cp1161", + "csibm1161": "cp1161", + "cp1162": { + "type": "_sbcs", + "chars": "鈧伮偮兟勨β喡嚶埪壜娐嬄屄嵚幝徛愨樷欌溾濃⑩撯斅樎櫬毬浡溌澛灺熉犩竵喔傕竷喔勦竻喔嗋竾喔堗笁喔娻笅喔屶笉喔庎笍喔愢笐喔掄笓喔斷笗喔栢笚喔樴笝喔氞笡喔溹笣喔炧笩喔犩浮喔⑧福喔む弗喔︵抚喔ㄠ俯喔斧喔腑喔腐喔班副喔侧赋喔脆傅喔多阜喔膏腹喔猴拷锟斤拷锟洁缚喙喙佮箓喙冟箘喙呧箚喙囙箞喙夃箠喙嬥箤喙嵿箮喙忇箰喙戉箳喙撪箶喙曕箹喙椸箻喙權箽喙涳拷锟斤拷锟" + }, + "ibm1162": "cp1162", + "csibm1162": "cp1162", + "cp1163": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢鈧ヂβ撀┞奥甭猜撑嘎德堵放捖孤郝宦悸铰韭棵脕脗膫脛脜脝脟脠脡脢脣虁脥脦脧膼脩虊脫脭茽脰脳脴脵脷脹脺漂虄脽脿谩芒膬盲氓忙莽猫茅锚毛虂铆卯茂膽帽蹋贸么啤枚梅酶霉煤没眉瓢鈧" + }, + "ibm1163": "cp1163", + "csibm1163": "cp1163", + "maccroatian": { + "type": "_sbcs", + "chars": "脛脜脟脡脩脰脺谩脿芒盲茫氓莽茅猫锚毛铆矛卯茂帽贸貌么枚玫煤霉没眉鈥犅奥⒙Bр⒙睹熉犫劉麓篓鈮犈矫樷垶卤鈮も墺鈭喡碘垈鈭戔垙拧鈭衡劍啪酶驴隆卢鈭毱掆増膯芦膶鈥β犆脙脮艗艙膼鈥斺溾濃樷櫭封棅锟铰┾亜陇鈥光好喡烩撀封氣炩懊偰嚸伳嵜埫嵜幟徝屆撁斈懨捗毭浢櫮彼喫溌脣藲赂脢忙藝" + }, + "maccyrillic": { + "type": "_sbcs", + "chars": "袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携鈥犅奥⒙Bр⒙缎喡┾劉袀褣鈮犘冄撯垶卤鈮も墺褨碌鈭傂埿勓斝囇椥壯櫺娧氀樞吢垰茠鈮堚垎芦禄鈥β犘嬔浶屟溠曗撯斺溾濃樷櫭封炐幯炐徰熲剸衼褢褟邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞陇" + }, + "macgreek": { + "type": "_sbcs", + "chars": "脛鹿虏脡鲁脰脺螀脿芒盲蝿篓莽茅猫锚毛拢鈩⒚⒙解懊疵堵β姑幻尖犖撐斘樜浳炍犆熉┪Nр墵掳螄螒卤鈮も墺楼螔螘螙螚螜螝螠桅潍唯惟维螡卢螣巍鈮埼ぢ烩β犖ノ單埮撯撯曗溾濃樷櫭肺壩娢屛幬屛徬嵨蔽蚕埼次迪單澄肺刮疚何晃嘉轿肯蠋蟻蟽蟿胃蠅蟼蠂蠀味蠆蠇螑伟锟" + }, + "maciceland": { + "type": "_sbcs", + "chars": "脛脜脟脡脩脰脺谩脿芒盲茫氓莽茅猫锚毛铆矛卯茂帽贸貌么枚玫煤霉没眉脻掳垄拢搂鈥⒙睹熉┾劉麓篓鈮犆喢樷垶卤鈮も墺楼碌鈭傗垜鈭徬鈭衡劍忙酶驴隆卢鈭毱掆増鈭喡烩β犆脙脮艗艙鈥撯斺溾濃樷櫭封棅每鸥鈦劼っ惷懊灻久铰封氣炩懊偯娒伱嬅埫嵜幟徝屆撁旓拷脪脷脹脵谋藛藴炉藰藱藲赂藵藳藝" + }, + "macroman": { + "type": "_sbcs", + "chars": "脛脜脟脡脩脰脺谩脿芒盲茫氓莽茅猫锚毛铆矛卯茂帽贸貌么枚玫煤霉没眉鈥犅奥⒙Bр⒙睹熉┾劉麓篓鈮犆喢樷垶卤鈮も墺楼碌鈭傗垜鈭徬鈭衡劍忙酶驴隆卢鈭毱掆増鈭喡烩β犆脙脮艗艙鈥撯斺溾濃樷櫭封棅每鸥鈦劼も光猴瑏铿傗÷封氣炩懊偯娒伱嬅埫嵜幟徝屆撁旓拷脪脷脹脵谋藛藴炉藰藱藲赂藵藳藝" + }, + "macromania": { + "type": "_sbcs", + "chars": "脛脜脟脡脩脰脺谩脿芒盲茫氓莽茅猫锚毛铆矛卯茂帽贸貌么枚玫煤霉没眉鈥犅奥⒙Bр⒙睹熉┾劉麓篓鈮犇偱炩垶卤鈮も墺楼碌鈭傗垜鈭徬鈭衡劍膬艧驴隆卢鈭毱掆増鈭喡烩β犆脙脮艗艙鈥撯斺溾濃樷櫭封棅每鸥鈦劼も光号⑴b÷封氣炩懊偯娒伱嬅埫嵜幟徝屆撁旓拷脪脷脹脵谋藛藴炉藰藱藲赂藵藳藝" + }, + "macthai": { + "type": "_sbcs", + "chars": "芦禄鈥︼铫忥铫曪铫嬶铫戯铫椻溾濓锟解铫夛铫嗭铫堬铫嶏铫擄鈥樷欙拷聽喔佮競喔冟竸喔呧竼喔囙笀喔夃笂喔嬥笇喔嵿笌喔忇笎喔戉笒喔撪笖喔曕笘喔椸笜喔權笟喔涏笢喔澿笧喔熰笭喔∴涪喔`袱喔ム甫喔о辅喔┼釜喔脯喔府喔赴喔编覆喔赤复喔掂付喔粪父喔灌负锘库嬧撯斷缚喙喙佮箓喙冟箘喙呧箚喙囙箞喙夃箠喙嬥箤喙嶁劉喙忇箰喙戉箳喙撪箶喙曕箹喙椸箻喙櫬╋拷锟斤拷锟" + }, + "macturkish": { + "type": "_sbcs", + "chars": "脛脜脟脡脩脰脺谩脿芒盲茫氓莽茅猫锚毛铆矛卯茂帽贸貌么枚玫煤霉没眉鈥犅奥⒙Bр⒙睹熉┾劉麓篓鈮犆喢樷垶卤鈮も墺楼碌鈭傗垜鈭徬鈭衡劍忙酶驴隆卢鈭毱掆増鈭喡烩β犆脙脮艗艙鈥撯斺溾濃樷櫭封棅每鸥臑臒陌谋艦艧鈥÷封氣炩懊偯娒伱嬅埫嵜幟徝屆撁旓拷脪脷脹脵锟剿喫溌標櫵毬杆澦浰" + }, + "macukraine": { + "type": "_sbcs", + "chars": "袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携鈥犅耙惵Bр⒙缎喡┾劉袀褣鈮犘冄撯垶卤鈮も墺褨碌覒袌袆褦袊褩袎褭袏褮褬袇卢鈭毱掆増鈭喡烩β犘嬔浶屟溠曗撯斺溾濃樷櫭封炐幯炐徰熲剸衼褢褟邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞陇" + }, + "koi8r": { + "type": "_sbcs", + "chars": "鈹鈹傗攲鈹愨敂鈹樷敎鈹も敩鈹粹敿鈻鈻勨枅鈻屸枑鈻戔枓鈻撯尃鈻犫垯鈭氣増鈮も墺聽鈱÷奥猜访封晲鈺戔晵褢鈺撯晹鈺曗晼鈺椻晿鈺欌暁鈺涒暅鈺濃暈鈺熲暊鈺⌒佲暍鈺b暏鈺モ暒鈺р暔鈺┾暘鈺暚漏褞邪斜褑写械褎谐褏懈泄泻谢屑薪芯锌褟褉褋褌褍卸胁褜褘蟹褕褝褖褔褗挟袗袘笑袛袝肖袚啸袠袡袣袥袦袧袨袩携袪小孝校袞袙鞋蝎袟楔协些效歇" + }, + "koi8u": { + "type": "_sbcs", + "chars": "鈹鈹傗攲鈹愨敂鈹樷敎鈹も敩鈹粹敿鈻鈻勨枅鈻屸枑鈻戔枓鈻撯尃鈻犫垯鈭氣増鈮も墺聽鈱÷奥猜访封晲鈺戔晵褢褦鈺斞栄椻晽鈺樷暀鈺氣暃覒鈺濃暈鈺熲暊鈺⌒佇勨暎袉袊鈺︹暓鈺ㄢ暕鈺愨暚漏褞邪斜褑写械褎谐褏懈泄泻谢屑薪芯锌褟褉褋褌褍卸胁褜褘蟹褕褝褖褔褗挟袗袘笑袛袝肖袚啸袠袡袣袥袦袧袨袩携袪小孝校袞袙鞋蝎袟楔协些效歇" + }, + "koi8ru": { + "type": "_sbcs", + "chars": "鈹鈹傗攲鈹愨敂鈹樷敎鈹も敩鈹粹敿鈻鈻勨枅鈻屸枑鈻戔枓鈻撯尃鈻犫垯鈭氣増鈮も墺聽鈱÷奥猜访封晲鈺戔晵褢褦鈺斞栄椻晽鈺樷暀鈺氣暃覒褳鈺炩暉鈺犫暋衼袆鈺P喰団暒鈺р暔鈺┾暘覑袔漏褞邪斜褑写械褎谐褏懈泄泻谢屑薪芯锌褟褉褋褌褍卸胁褜褘蟹褕褝褖褔褗挟袗袘笑袛袝肖袚啸袠袡袣袥袦袧袨袩携袪小孝校袞袙鞋蝎袟楔协些效歇" + }, + "koi8t": { + "type": "_sbcs", + "chars": "覜覔鈥氁掆炩︹犫★拷鈥耙斥挂惨芬讹拷覛鈥樷欌溾濃⑩撯旓拷鈩拷鈥猴拷锟斤拷锟斤拷盈赢褢陇樱娄搂锟斤拷锟铰拷掳卤虏衼锟接⒙堵凤拷鈩栵拷禄锟斤拷锟铰┭幮靶毖喰葱笛勑逞呅感剐盒恍夹叫拘垦徰褋褌褍卸胁褜褘蟹褕褝褖褔褗挟袗袘笑袛袝肖袚啸袠袡袣袥袦袧袨袩携袪小孝校袞袙鞋蝎袟楔协些效歇" + }, + "armscii8": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽锟街囍)(禄芦鈥.諠,-謯鈥φ溦浾炘闭≡舱⒃痴T凑ぴ嫡ピ墩υ氛г刚ㄔ拐┰赫徽颊秸菊空瞻諄毡諅詹諆粘談沾諈盏諉斩諊辗請崭諌展諍蘸諎栈諏占諐战諑站諒湛諓謤諔謥諕謧論謨諗謩諘謪諙謫諝锟" + }, + "rk1048": { + "type": "_sbcs", + "chars": "袀袃鈥氀撯炩︹犫♀偓鈥靶夆剐娨氁盒徰掆樷欌溾濃⑩撯旓拷鈩⒀欌貉氁浺谎熉犚耙庇樎びβ伮┮捖奥毙喲栍┞德堵费戔剸覔禄訖尧遥爷袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟" + }, + "tcvn": { + "type": "_sbcs", + "chars": "\u0000脷峄u0003峄滑峄甛u0007\b\t\n\u000b\f\r\u000e\u000f\u0010峄ㄡ话峄册欢峄该濁淮\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~脌岷⒚兠佱籂岷夺含脠岷横杭脡岷羔粏脤峄埬嶀粖脪峄幟暶撫粚峄樶粶峄炨粻峄氠虎脵峄ε犇偯偯娒斊犉惸兠⒚雌∑澳戓喊虁虊虄虂蹋脿岷CC♂骸岷册罕岷翅旱岷捍岷害岷ㄡ邯岷め粈岷丰骇岷┽韩岷メ涵猫峄傖夯岷矫┽汗峄佱粌峄呩嚎峄嚸粔峄勧壕峄捘┟粙貌峄斸粡玫贸峄嶀粨峄曖粭峄戓粰峄濁粺峄♂粵峄C贯粬峄┟横互峄画峄哗峄贬怀峄丰还媒峄滇粣" + }, + "georgianacademy": { + "type": "_sbcs", + "chars": "聙聛鈥毱掆炩︹犫∷嗏芭犫古捖嵚幝徛愨樷欌溾濃⑩撯斔溾劉拧鈥号撀澛炁嘎犅÷⒙Bぢヂβ┞奥甭猜陈绰德堵仿嘎孤郝宦悸铰韭酷儛醿戓儝醿撫償醿曖儢醿椺儤醿欋儦醿涐儨醿濁優醿熱儬醿♂儮醿a儰醿メ儲醿п儴醿┽儶醿儸醿儺醿儼醿贬儾醿翅兇醿滇兌莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每" + }, + "georgianps": { + "type": "_sbcs", + "chars": "聙聛鈥毱掆炩︹犫∷嗏芭犫古捖嵚幝徛愨樷欌溾濃⑩撯斔溾劉拧鈥号撀澛炁嘎犅÷⒙Bぢヂβ┞奥甭猜陈绰德堵仿嘎孤郝宦悸铰韭酷儛醿戓儝醿撫償醿曖儢醿贬儣醿樶儥醿氠儧醿溼儾醿濁優醿熱儬醿♂儮醿翅儯醿め儱醿︶儳醿ㄡ儵醿儷醿儹醿兇醿儼醿得γ┟懊泵裁趁疵得睹访该姑好幻济矫久" + }, + "pt154": { + "type": "_sbcs", + "chars": "覗覓赢覔鈥炩σ兑惨犛⒁⒁氁阂敢椻樷欌溾濃⑩撯斠骋芬∮RR浺灰孤犘幯炐堄ㄒ樢奥伮┯樎溌耙毙喲栆櫽┞堵费戔剸訖禄褬要耀覞袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟" + }, + "viscii": { + "type": "_sbcs", + "chars": "\u0000\u0001岷瞈u0003\u0004岷瘁邯\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013峄禱u0015\u0016\u0017\u0018峄竆u001a\u001b\u001c\u001d峄碶u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~岷犪寒岷搬憾岷め害岷ㄡ含岷坚焊岷踞粈峄傖粍峄嗎粣峄掅粩峄栣粯峄⑨粴峄溼粸峄娽粠峄屷粓峄εㄡ护峄裁曖函岷贬悍岷メ骇岷┽涵岷结汗岷酷粊峄冡粎峄囜粦峄撫粫峄椺粻茽峄欋粷峄熱粙峄搬花峄滑啤峄浧脕脗脙岷⒛傖撼岷得埫壝娽汉脤脥抹峄衬愥哗脪脫脭岷♂环峄画脵脷峄贯坏脻峄∑懊犆∶⒚a海膬峄韩猫茅锚岷幻┽粔膽峄泵裁趁疵滇粡峄嶀互霉煤农峄结唬峄" + }, + "iso646cn": { + "type": "_sbcs", + "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#楼%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}鈥锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷" + }, + "iso646jp": { + "type": "_sbcs", + "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[楼]^_`abcdefghijklmnopqrstuvwxyz{|}鈥锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷" + }, + "hproman8": { + "type": "_sbcs", + "chars": "聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽脌脗脠脢脣脦脧麓藡藛篓藴脵脹鈧ぢ澝铰懊嚸懨甭÷柯ぢBヂ捖⒚⒚疵幻∶┟趁好犆裁姑っ睹济吤樏喢ッ该γ劽柮溍壝熋斆伱兠C惷懊嵜屆撁捗暶蹬犈∶毰该棵灻韭仿德堵锯斅悸铰郝枲禄卤锟" + }, + "macintosh": { + "type": "_sbcs", + "chars": "脛脜脟脡脩脰脺谩脿芒盲茫氓莽茅猫锚毛铆矛卯茂帽贸貌么枚玫煤霉没眉鈥犅奥⒙Bр⒙睹熉┾劉麓篓鈮犆喢樷垶卤鈮も墺楼碌鈭傗垜鈭徬鈭衡劍忙酶驴隆卢鈭毱掆増鈭喡烩β犆脙脮艗艙鈥撯斺溾濃樷櫭封棅每鸥鈦劼も光猴瑏铿傗÷封氣炩懊偯娒伱嬅埫嵜幟徝屆撁旓拷脪脷脹脵谋藛藴炉藰藱藲赂藵藳藝" + }, + "ascii": { + "type": "_sbcs", + "chars": "锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷" + }, + "tis620": { + "type": "_sbcs", + "chars": "锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟洁竵喔傕竷喔勦竻喔嗋竾喔堗笁喔娻笅喔屶笉喔庎笍喔愢笐喔掄笓喔斷笗喔栢笚喔樴笝喔氞笡喔溹笣喔炧笩喔犩浮喔⑧福喔む弗喔︵抚喔ㄠ俯喔斧喔腑喔腐喔班副喔侧赋喔脆傅喔多阜喔膏腹喔猴拷锟斤拷锟洁缚喙喙佮箓喙冟箘喙呧箚喙囙箞喙夃箠喙嬥箤喙嵿箮喙忇箰喙戉箳喙撪箶喙曕箹喙椸箻喙權箽喙涳拷锟斤拷锟" + } +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-data.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-data.js" new file mode 100644 index 0000000000000000000000000000000000000000..fdb81a39ac985322057f18f455f9f1160e7ac17f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/sbcs-data.js" @@ -0,0 +1,174 @@ +"use strict"; + +// Manually added data to be used by sbcs codec in addition to generated one. + +module.exports = { + // Not supported by iconv, not sure why. + "10029": "maccenteuro", + "maccenteuro": { + "type": "_sbcs", + "chars": "脛膧膩脡膭脰脺谩膮膶盲膷膯膰茅殴藕膸铆膹膾膿臇贸臈么枚玫煤臍臎眉鈥犅澳樎Bр⒙睹熉┾劉臋篓鈮犇D墹鈮ツ垛垈鈭懪偰荒寄侥灸鼓号吪喤兟垰艅艊鈭喡烩β犈埮惷暸懪屸撯斺溾濃樷櫭封棅艒艛艜艠鈥光号櫯柵椗犫氣炁∨毰浢伵づッ嵟脚九撁斉毰芭迸才趁澝侥放慌伵寄⑺" + }, + + "808": "cp808", + "ibm808": "cp808", + "cp808": { + "type": "_sbcs", + "chars": "袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌鈻戔枓鈻撯攤鈹も暋鈺⑩晼鈺曗暎鈺戔晽鈺濃暅鈺涒攼鈹斺敶鈹敎鈹鈹尖暈鈺熲暁鈺斺暕鈺︹暊鈺愨暚鈺р暔鈺も暐鈺欌晿鈺掆晸鈺暘鈹樷攲鈻堚杽鈻屸枑鈻褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟衼褢袆褦袊褩袔褳掳鈭櫬封垰鈩栤偓鈻犅" + }, + + "mik": { + "type": "_sbcs", + "chars": "袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟鈹斺敶鈹敎鈹鈹尖暎鈺戔暁鈺斺暕鈺︹暊鈺愨暚鈹愨枒鈻掆枔鈹傗敜鈩柭р晽鈺濃敇鈹屸枅鈻勨枌鈻愨杸伪脽螕蟺危蟽碌蟿桅螛惟未鈭炏單碘埄鈮÷扁墺鈮も尃鈱∶封増掳鈭櫬封垰鈦柯测枲聽" + }, + + // Aliases of generated encodings. + "ascii8bit": "ascii", + "usascii": "ascii", + "ansix34": "ascii", + "ansix341968": "ascii", + "ansix341986": "ascii", + "csascii": "ascii", + "cp367": "ascii", + "ibm367": "ascii", + "isoir6": "ascii", + "iso646us": "ascii", + "iso646irv": "ascii", + "us": "ascii", + + "latin1": "iso88591", + "latin2": "iso88592", + "latin3": "iso88593", + "latin4": "iso88594", + "latin5": "iso88599", + "latin6": "iso885910", + "latin7": "iso885913", + "latin8": "iso885914", + "latin9": "iso885915", + "latin10": "iso885916", + + "csisolatin1": "iso88591", + "csisolatin2": "iso88592", + "csisolatin3": "iso88593", + "csisolatin4": "iso88594", + "csisolatincyrillic": "iso88595", + "csisolatinarabic": "iso88596", + "csisolatingreek" : "iso88597", + "csisolatinhebrew": "iso88598", + "csisolatin5": "iso88599", + "csisolatin6": "iso885910", + + "l1": "iso88591", + "l2": "iso88592", + "l3": "iso88593", + "l4": "iso88594", + "l5": "iso88599", + "l6": "iso885910", + "l7": "iso885913", + "l8": "iso885914", + "l9": "iso885915", + "l10": "iso885916", + + "isoir14": "iso646jp", + "isoir57": "iso646cn", + "isoir100": "iso88591", + "isoir101": "iso88592", + "isoir109": "iso88593", + "isoir110": "iso88594", + "isoir144": "iso88595", + "isoir127": "iso88596", + "isoir126": "iso88597", + "isoir138": "iso88598", + "isoir148": "iso88599", + "isoir157": "iso885910", + "isoir166": "tis620", + "isoir179": "iso885913", + "isoir199": "iso885914", + "isoir203": "iso885915", + "isoir226": "iso885916", + + "cp819": "iso88591", + "ibm819": "iso88591", + + "cyrillic": "iso88595", + + "arabic": "iso88596", + "arabic8": "iso88596", + "ecma114": "iso88596", + "asmo708": "iso88596", + + "greek" : "iso88597", + "greek8" : "iso88597", + "ecma118" : "iso88597", + "elot928" : "iso88597", + + "hebrew": "iso88598", + "hebrew8": "iso88598", + + "turkish": "iso88599", + "turkish8": "iso88599", + + "thai": "iso885911", + "thai8": "iso885911", + + "celtic": "iso885914", + "celtic8": "iso885914", + "isoceltic": "iso885914", + + "tis6200": "tis620", + "tis62025291": "tis620", + "tis62025330": "tis620", + + "10000": "macroman", + "10006": "macgreek", + "10007": "maccyrillic", + "10079": "maciceland", + "10081": "macturkish", + + "cspc8codepage437": "cp437", + "cspc775baltic": "cp775", + "cspc850multilingual": "cp850", + "cspcp852": "cp852", + "cspc862latinhebrew": "cp862", + "cpgr": "cp869", + + "msee": "cp1250", + "mscyrl": "cp1251", + "msansi": "cp1252", + "msgreek": "cp1253", + "msturk": "cp1254", + "mshebr": "cp1255", + "msarab": "cp1256", + "winbaltrim": "cp1257", + + "cp20866": "koi8r", + "20866": "koi8r", + "ibm878": "koi8r", + "cskoi8r": "koi8r", + + "cp21866": "koi8u", + "21866": "koi8u", + "ibm1168": "koi8u", + + "strk10482002": "rk1048", + + "tcvn5712": "tcvn", + "tcvn57121": "tcvn", + + "gb198880": "iso646cn", + "cn": "iso646cn", + + "csiso14jisc6220ro": "iso646jp", + "jisc62201969ro": "iso646jp", + "jp": "iso646jp", + + "cshproman8": "hproman8", + "r8": "hproman8", + "roman8": "hproman8", + "xroman8": "hproman8", + "ibm1051": "hproman8", + + "mac": "macintosh", + "csmacintosh": "macintosh", +}; + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/big5-added.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/big5-added.json" new file mode 100644 index 0000000000000000000000000000000000000000..3c3d3c2f7b14c6a570e58184f68ef0894a5f812d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/big5-added.json" @@ -0,0 +1,122 @@ +[ +["8740","鋸颁安錁冧枽鋾葛т捣鋿仇Р变尝皈硡惝曚湺錆勪眹浔黏娍穑槜皈崚穰簨皈儝浔楌獚戜潖錀氫矃皈爆浯囦錃○Μg垾馥⿺稹穑竼穑健鏅嶅浕"], +["8767","缍曞皎惴撮湸皈瀵涴〉炲銟ヰ┖板珣瀹峰臣鏉枔皓鐟$挐恪叼〉擆烉°滑"], +["87a1","馥惬电榫楌○à嶐牚婐炰寠钂勯緰閻ぐ铇撳闈婇垬绉愮ú鏅犳ī琚濈憣绡呮瀭绋墢閬嗐摝鐝勷ザ圭搯榭囧灣浃憣鋭别庡牁绌拆Лヨ畯錃堜唩馥稒绠奸繄稷搧稷搲稷搶榭夎攧穑柣鋫撮繆鋼○挎媮鐏繈"], +["8840","銍",4,"馉剬銍咅爟戰爟嶃噯銍囸爟嬸】ㄣ噲馉儕銍夈噴銍嬨噷馉剮銍嶃噹膧脕菎脌膾脡臍脠艑脫菓脪嗫棵娞勧壕嗫棵娞屷粈脢膩谩菐脿蓱膿茅臎猫墨铆菒矛艒贸菕貌奴煤菙霉菛菢菤"], +["88a1","菧眉嗫棵勧嚎嗫棵屷粊锚伞鈴氣彌"], +["8940","皙帺稹厖"], +["8943","鏀"], +["8946","涓芥粷榈庨嚐"], +["894c","皈湹鎾戜細浼ㄤ鲸鍏栧叴鍐滃嚖鍔″姩鍖诲崕鍙戝彉鍥㈠0澶勫澶插ご瀛﹀疄瀹熷矚搴嗘绘枆鏌炬爠妗ユ祹鐐肩數绾ょ含绾虹粐缁忕粺缂嗙挤鑹鸿嫃鑽璁捐杞﹁涧杞"], +["89a1","鐞戠臣绶嶆绔夊埀"], +["89ab","閱岀⒏閰炶偧"], +["89b0","璐嬭兌馉Ё"], +["89b5","鑲熼粐涑嶉穳楦屼熬皓范皈庨笂皙劤銞"], +["89c1","婧氳埦鐢"], +["89c5","浃戦┈楠忛緳绂囸☉》婐牀愷︿袱浜佷簚浜囦嚎浠挤銘屼窘愎堝冨倛銘姐挀銙ュ唵澶呭嚊鍑煎垍浜夊壒鍔愬導銞囧帺銜戝幇銜撳弬鍚c暛銜层殎鍜撳挘鍜村捁鍝愬摨鍞樺敚鍞ㄣ枠鍞裤枼銝垮棗銞"], +["8a40","皈秳鍞"], +["8a43","馉眰馉磿馥劔鍠愷⒊嗐К馉崄韫嗮ざ葛⿹ヤ亾皎偩鐫吼搞ù錈曫▍濔Η拆し摑馉导馉敬馉硶稹兇鎾嶈咕馉簴馉皨馉饯稷博皎墫黏摀"], +["8a64","馉祮皓⿳皎儵錈答ずю⒊傞悌ю淬凯銛嗮囸旔В堭⒌勯诞闋"], +["8a76","鋸欚ユ挻鍝p⒌岎婐枫Щ稹伅"], +["8aa1","穰洑穰湒皈鎿掟牨冭龚稷啞皎瓕馉湵"], +["8aac","錉嬸爢┿亢濉仇⒍"], +["8ab2","黏棃馉摷穰倵馉綄馉稏鍟逛偦鋷"], +["8abb","洫答ⅸ︷濊啰椋叼牰滄嵐悃攫佃穩鍤℃懠愎"], +["8ac9","皙榿馉笁稷珡稷硥"], +["8ace","稹儓穑悝掋▎皎姏銜葛ス夝囧檼馉急稷膊皓湢銙兼敖黏富"], +["8adf","皈暣稷簨稷垐皙櫅皎硩馉购馉按穰牅缇擆忦凁ⅳ广椈馥嚕馉簩馉緧馉邯憔擆牸梆牭囸忦牴"], +["8af6","馉韩馉馉祱稹儉稹劷憧桂栨惒馉经"], +["8b40","穑彺皈樄稷瘞馉稻馉悼稷睉稷睍悒橉牶橉囸牸獦拆Ν愷ǔ掟ǘ欚ǔ婇柂鍝岃媱鍠"], +["8b55","皓粌榘﹂皈潪稷樊鐓鑵儸灏滒茶劥銥楀崯皎偨閱娥牷吼牳忦牴佛牷汇棟黏帆銟夝牫栧毌稷灥稹儔馉笎馉垢稹伕稹厛皎垏稹憰馉构黏箰稷钉濠旔濔烉叼跺灉馉笐"], +["8ba1","皈殧皎媿馉镜馉够馥吘銣凁牼娥馥嫎皙娊黏稹牶黏叿皎壖澧欏墾銟氿界瀛ㄤ爛洮姬洄ч盁楫嶐キ答藉椈銞插殙涓ㄥ稹瘉鸠「闈戰爞嗕箾浜汇斁灏e綉蹇勩:鎵屾數姝烘暗姘虹伂鐖脯鐘ぃ╃綊绀荤彻缃擆搧"], +["8bde","穰崑鑰傝個穰槖穰鍗濊·瑙侌Б茶疇璐濋拝闀搁暱闂ǜ忛煢椤甸椋為ィ皓爯楸奸笩榛勬铯囦阜馉倗闃濇埛閽"], +["8c40","鍊绘肪皓背榫︺穳琚忦庣伔宄典瑺馥噸銜欚ゴ版劉皎ú杈ч嚩鐔戞湙鐜吼侌獎囥矉稹洮愮¥鐞傚啴皎湉鋩夋皙姾鋱h槒馉┋绋━囸ǐ潟鐏嶅尋稷伨閺寸洐皎В榫х煗浜d堪鍌间腐浼楅鲸鍚寸秼澧掑稹抖搴掑簷蹇傪掓枊"], +["8ca1","穑徆妞欐﹥穑保娉"], +["8ca7","鐖黏攨鐜屻粵黏〒瀣曠捁璁凁ゲゐ曠獡绡硟绻嫺钖楅京琚愰惊韬归精杩忚暉椐犻垺榫ǘ桂夸伇鋳㈠"], +["8cc9","椤ㄦ潾鋲跺溄"], +["8cce","钘栶ぅ昏娍皈剭洳侌Φ村祷穰瑫穰揪榫井瀹栭警鏇х箾婀楃愣堜搩穑墫稷灃鋷氫敹"], +["8ce6","宄曫,氳灞搞磼穑晳宓搁静鐓椾晿黏儸稹福浔枫ジ銘婐爢ゐΡ佽珜渚答爤瑰鑵皓:寮"], +["8d40","馉疅"], +["8d42","稷噥皎キ鋭備毣皓伖慵囬境皙喌鋬搞煐錄佛Ρ嗕吋皎毑皈徔鋾馥挌鋾′敍涠変被涞朵棯憧堭が忋櫋鋼炰捊鋰淳宓堝禆惴笺爮宥ゅ豆銧犮牳骞傚航寮ュ緝悚堛悚裤鎯楁劷宄ャ鎲锋喒鎳忋Ω鎴姁鎷ユ寴悃稿毐"], +["8da1","悒冩彚鎻绘悋鎽氥⿱鎿宕曞槨榫熴獥鏂嗐鏃挎檽惬叉殥悻㈡湒悱傛灓鏍悱樻姊勩悱便妞夋鐗滄イ姒熸惝兼惘濇━姗存┍妾傘妾欍妾娅旀娈佹瘉姣钡娌硧娲傛磫娲︽秮愠钉娑辨笗娓樻俯婧嗮ě婧绘虎婊氶娇婊ㄦ哗婕ゆ即愕嗮=佹緛婢俱氮愕电喎宀欍秺鐎稇鐏愮仈鐏伩鐐夝爩ヤ弫銞别牷"], +["8e40","穑粭鍨攫撶劸馥煚銠庢Β皎瀛寸〾馥!皓摍绌ョ┙馥Μ绐荤绔傜珒鐕戰嶄噴绔氱珴绔嚡鍜拆グ佺瑡绛曠馥寧馥尘绠㈢鑾滒ギ答Ρ跨瘣钀$畳绠葛ゴ犮董馥饱钂掔绨嗙暗馥硜绫勭矁黏绮︽櫧黏暩绯夌硣绯︾贝绯崇车绯"], +["8ea1","绻т敐穰箘绲濔栫拲缍夌东鐒电冻绶掟楌╃筏愦撶返稹煿绶ヰ◢笣穰劇穰厷绻簰鋵懍绺х絸缃佺絿绀娥愰А缇楌戠荆稹櫋馉仺鋾滒︿攦皎尯缈吼夎呰堣濊ㄨ獋囸Τ冭昏艰仭稷湐洇夝︷7pㄦ湧鑲юī堣剣鑴氬稷浂姹筐橉ぞ告摟稹拪鑸橉 炴⿹黏━黏獣鋺鸿埄馉瑣穰⿸穑稻淇桂借摙鑽Μ婐うю梆仇7歌姫妞涴斾嚊"], +["8f40","钑嬭嫄鑼氿牳栶淬泚穑吔穑暁鑹昏嫝鑼橉:嬸ΧpΜ咅Ξ楌庛犊鑼濆棳鑾呬攱穰顶鑾弫鑿撱懢穰粩姗楄暁銙栶傪⒒憳馥钁便窊鋼ゆ钁婐2电钂Ξ栶佛冭摓钀忚帒鋻犺挀钃ゐゲ戜墍馥硛鋾冭敶瀚拆欎敡钑充敄鏋胯槚"], +["8fa1","皎槬皎樆钘侌堣槀稹杺皈儘鸠Σ鋾槰銠堭、㈠彿皈帤铏捐澅皙兏锜ц灡锜氳爮鍣¤櫖妗栦槒琛呰皈棤穑豆皈棨琛炶錂涜⒋琚垫弫瑁呯澐皈湉瑕囪瑕﹁Ι瑕ц皎ē瑙юГゐИ借獪鐬撻嚲瑾愷З欑皈穑緩錅擆К哥吋璎岃瑹馥惏馥暐璎胯瓕璀嶈黏┖璁愯疀瑾熶槙琛忚矝皈禂皈稄鸠銣ヰУ撹硸皈稑皈督璐掕磧稹璩涚仠璐戰こ夈粣璧"], +["9040","瓒█傪旔う娿皎喖皈剬绔ц涵韬惰粌閶旇紮杓◢ヰ◥掕茎閷凁獖燄牘愯境浃ě烉〝金6诲桓穑墷杩桂獉旔拣〝侌ャ穰粭閫佛〝拣И鹃仭皎暚皎構閭撻儎皎洣閭兘閰с閱╅噭绮à仇『夐垘娌熼墎閴归姽皎珕穑矝皎瑢馥棝"], +["90a1","馉幢閷崼皎皎鐐忓珒皎皎浈ラ墑皎皎肮皎閸抽憶韬奸枀闁﹂惁闁犳慷鋳桂吼橉拣8姘滈櫥闅栦叕闅p曟嚉闅剁5皎珷闅藉弻洇○Σ葛爥答愷﹤﹥ヰか戰·曫婇湵铏傞湺洙忎斀鋿咅か╃伒瀛侀湜闈滒﹪曢潡瀛婐﹪潫閻ュ儛穑偡穑偧闉夐灍闉遍灳闊闊掗煚馥懍闊悳皓惓闊块煹皓悵皈ズ浍戦牬闋抽椤︺瑤皈叺愕戰牁梆"], +["9140","馥渾椋婇⒎椋堥浍筐Υю撳柊椋¢&椋嵏椁桂え╀皓皓椐甸▽楱婚◥椹橉ャ泟皓偙皓瘯楂犻皓瑓楂翠皫楝旈皎榾鍊撮穰Θ悖凁介瓙榄皓淳濠咅 i畮黏墜榘傞榘岎┕ㄩ窋皓痉皙啋皙啱皙儭皙劊皙嚐榈鹃秲皙劥楦庢"], +["91a1","榉勷涴獑擆獔狆·火獔抽垂皙偣皙姶楹愰簳楹為孩浯撮邯楹ら粊悱犮Д愦濅疾銥攫ò紓榧堜畺閻ゐΧ㈤紬榧栭脊鍤熷殜榻呴Ω皓倠闊茶懣榻㈤僵绔滈編鐖栦黏サ黏鐓佛ぇ葛堭ぉ戠帪皎瘹稹:绂燄ē攫ǜ堕崺閺仇ī勯嫭閹侀弸皎ガ黏捁鐖椼猾鐫茬﹥鐑愷仇哥吘稹煰鐐p、攫欍粐稹馥惎稹煾銣火广洝稹澊稹馥綃銣p鍧涴えヰ攫"], +["9240","稹弳稹挾钄凁﹁攦钁曫う旔ヰ8别滒;火掍摯穑洰皓穰鸡鏌广湷惆曘阀濉·㈡爯鋪楌筐○嬸忦Π″搵鍤烉卞殥馉繜馉馉笉閺嗮ì撻帨浠稿劔銧欚朵杭馉懃馉嵖浣嬩緤馥檻濠爢爮嬨馉寠馉悢銗典缉馉媭皎撼馉壍璜氿爤屼簶"], +["92a1","鍍嶅剭渚純黏◣穑簥浣傚伂鍌佷繉淇ュ仒鍍煎厵鍏涘厺鍏炴苟穑枙穑腹穑嚎娴拆、勷:夊啫鍑凁牀犱摑馉挘馉拻馉拺璧吼í滒牅庡墮鍔ゐ牎冲嫛閸櫤鐔岎岎牥狆うゆ馉笣鐟广粸鐠欑悢鐟栫帢洚庰お拣嶅彁銝勭垙黏儔鍠答爫呭搷馉瘑鍦濋墲闆撮崷鍩濆瀺鍧裤樉澹嬪獧皎﹩稹浐稹澂稹湊濞Ω閵忓┚瀚忓⊕馥稹С稹 黏姇銢垫磪鐟冨ā馥簝"], +["9340","濯侌ǒ楌爯撻彔鐠岎冪剠浈查悎皎Щ閹姐灎灏炲矠骞炲箞稹稹ゼ穑寤嶅瓘稹稹銣侌、犮洕稹浘銢撹劒皎﹪稹逗穑懖皎Θ寮屽紟稹ぇ稹灚濠诲瓌铇旔借鎭攫ⅰ狆繘愫葛攫﹤堭虫噣馉攫爜嗮涙啓鎲樻伒稷矝稷磭黏洈皓厤"], +["93a1","鎽别ヰī稷穑憪皓*稷垢鎸佛獞涙挾鎸辨彂黏В稷掸鎶ゐ⒉℃惢鏁ゲ惘答庰う夝攳穑嫚稹皓惪鏇庰夝炽珷鋯愷勷ì忦拣涴ョ.穑剝稹牚穑埓銘ゐ忦傪夋殠穰搐鏅畵鏄梆А梆》櫍穑嫆穑嫛鏄烉ァ层穑牶穑灱惝欚剧搻惝栨瀼黏槳姊舵牉惘勬恪p曫囨ǔ姗掓珘娆咅·掓攽姊樻⿲惘楁┖姝楌?穑矚閹犻嫴皎皎珛"], +["9440","閵夝█烉ě滈懅娑ユ紜黏К娴ю=裤稄娓勷煎ń娓婂娲ょ鐒火氿剁儽鐗愮妵鐘旔忦ュ吂黏馉棲鐟吼;葛燄ぉ婐い楌タ°紗愫别か燄òp<垫偋慊崇搶鐞奸巼鐞蜂挓穰藩鋾戠杻憬pこ欚ご嗐綐鐣曠櫝皙梿悻欑懆皎珜黏Λ黏惬"], +["94a1","惴嶐ぉ庛豢黏黏3閲哄湶閸傪ǐp ゅ儫馥垺馥嚙鐫葛茬湈鐪忕澔黏殫穑瀬悌烉ぃ扮惛鐠涖嚎黏黏珖鋬堭お栶寚馥杹鐮炵纰堢鐝愮皈潄馥洠鋭庣钂栫Ε妯;虹ê绉翠叜稹洣鋭查埖绉别牭岎う岎爦欚6吼枟鍟暟銡爣旔牥嶇濠欚叼オオ滃◢馉墰纾板í馥瘑绔句嚬绫濈杯鋱戰ギ仇ズ拣ズ︾硩黏Ч稹灠绮庣奔绮绶滅竾绶撶綆穰墶"], +["9540","穰厹皈瓐缍楌ズ備壀穰馉鏌栶爜庰忓焺穰悞穰徃黏ア缈濈馉牞馥馥祪绗岎ジ庨Е铏呴妯滒裤Б黏Х穰柇楱燄犺拃皈劎穰硲鋼劮鋹傝儐鑴夎厒穰灤椋凁Ι傝墷鑹ヰΙ戣憮穰锭铇愷涘獑鋮筐 瀣、″稹铓狆拣6忚牠皈悽濞"], +["95a1","琛絽琚囪⒖瑁﹁ゥ瑗嶐冭皈瀰皈瀯皎皎瘷皎疁皎Ч愫挘錄典洀銦茶ń瑷滒⿷堝綅閳勬棓鐒╃儎稹榈矡璩Х滃鐭冨О鋶洈韪骇黏皦杓拌綂鋴存睒婢火′娼规簨稹煔榀┿毜黏く閭婚倵鍟变閱婚悇皎⿱鋪ǐ奸惂皎皾皎盎钃ヨǐ闁欓枾闁楅枛皎创鐟呫粋黏?黏﹤黏彧慊юラ殢皎户皎功皎攻慊岎ぇぉ葛?悞鐟患闈侌﹤"], +["9640","妗囦皓倱馥煙闈濋崹皎皎唉皎穰幘閵哄瑧璀╀ぜ鐝桂涢灈闈遍じ馉鸡宸侌ǒ咅お查牊皓摎閶娥楅嚗鋼皎瓙黏┃皎椋滒ī呫紑閳ぅ钀旈せ楗嶐К嗐方棣涗棣皎馥妾忛ā瀚鹃ǒ皓1洚愷━堥洚戒畻閸藉〔稹寕鍫う"], +["96a1","稹摠纭勷燄6告愕介憳悚ф厫稷瀬稷カ鎰囬睆楸撻被榘甸皭榄块瘡皓腑楫燄獓叼獌鹃础洳勯笜洳伴磳皙喆皙儹皙兂皓く槎ヨ捊穰笒穰繜穰畟钘间敵穰钉穰簞穰钒钀犺棶穰竴穑煑穰仱绉滒浃ぇ炪耽閺涢娋閸堭爦跨⒐閴烽憤淇ゃ憖閬ゐ濈牻纭旂⒍纭嬸楌夝ぅ併殮浣叉繗婵欑炵炲悢黏喌鍨诲3鍨婇礀鍩楃劥銙嚝穰眬黏緱瀣叼ī"], +["9740","鎰屽珟濞嬩娂黏拡銣皎Ъ閹婚幐稹馉紳钁拆Τ稹悡黏嫼稷唉黏弫濡旔6佛佺定穰厸穰偆黏黏皎Ш閶ョ彚慊╃挻皎稹慊○お虫珮鐝崇徎慊栶え攫お旔欚ぉ︷爭юゐぇョ憟黏鐐ヰぅ堕妱鐝﹂崯馉摼閷别ǐ庰è栭巻皎馥棔浃叼í傜叓"], +["97a1","黏馉晨鍤ゐ牁氿牤牪稿攤绉勷虹肪稹泜黏⿶稹鋽悂銣婐ǐ黏Ν濡梆、筐、凁勫銢5涖毎閴熷┕皎獊稹、閸淬硩馉洫栥鍍淬旦愕岎滅叺鋴火▓樻笍皓儰鋼禇皈箯鐏ф帛愠栶?8競婕屻弹馉彽鐣戙毤銚堜殌慊氫”濮勯壆浃捐絹皎皽穰瘈鍫掑焾銢栶掔兙黏崲黏┍稷浚稹姲稷幗姊规ェ稹帢穑摜皈穑洘皎獌穑煐穑徍黏矡妯氿Σ疯惥鋼熶搸"], +["9840","穰处穰祽穰矀穰繛婕楌夎尳稹満鑿Σ皈亾稹煕濡夊獋稹灣濠″┍稹黏嚰銣Н稹溂銢囩啂閹愭殮黏姤濠ǐ黏姄妯;桂娥涴婄劃黏墮皎А渚梆Υㄥ硞黏搸皈箥黏幗妯岎栶勭偊鐒仇┿顶娉燄癄ヰぉ忕攻濮疮惴冲綔黏稹煙缍よ惁"], +["98a1","鍜咅+吼馉垟鍧攫牐曫牁欍骏稹緸皙姸鐎凁﹨涘蛋鐜忕硴皎皓悹淇堢咖鐙嶇寪皈鐚哥尮馥浂鐛佺崍愫К橀伂鐕叼ぃ茬彙鑷躲粖鐪屻粦娌㈠浗鐞欑悶鐞熴虎慊般淮慊虹摀慵庛綋鐣傜暛鐣茬枍憬肩棃鐥溿縺鐧嶃織鐧淬繙鐧吼そ滅唸鍢h濉╀濈潈鋩规潯鋪呫棝鐬樹仾鋪睘鐬剧煁澹茬牁鐐圭牅鋫ㄧ牴纭囩纭﹁憟馥數绀虫爟绀蹭剝"], +["9940","鋭夌绂欒净绋嗚炯鋮х獞鋯茬鑹逛噭绔忕珱鋰忎浮绛㈢绛荤皰绨涗墵鋲虹被绮滀妼绮镐姅绯緭鐑馉硰绶忕窋绶愮方缇敬鐘熶帡鑰犺ョ鑰辫仈惴屽灤鐐犺偡鑳╀彮鑴岀尓鑴庤剴鐣犺剶鋹併鑵栬厵鑵"], +["99a1","鋹撳牶鑵艰唲鋹ヨ啌鋹啣鍩噥鑷よ墧鋻忚姦鑹惰媻鑻樿嬁鋻拌崡闄╂钀呯兊钁ゆ儯钂堜攧钂捐摗钃歌攼钄歌晵鋽昏暞钑拌棤鋾疯櫜铓掕毑铔檯铻嬩槅錁楄瑁胯い瑗囪皈ェ瑷╄ǜ瑾旇璞戣硵璩茶礈錇樺璺冧煭浠负鍡樺潝韫卞椀韬颁牱杌庤虎杌よ画杌茶痉杩佽繆杩岄抽洧閳撲閳ㄩ墭閴姳閵娍"], +["9a40","閶i嫬閶抽嫶閶介崈閹勯幁浈呬楹块悧鍖侀悵閻惥浈憯閼归敪闁Η闂撮槼洄ユ灎洙ら潃洙甸灢闊傚檾浍ゆ儴棰逛瑱椋卞椁庨鍐撮椁烽楗濋ア洵伴洚濋楝忕獌榄╅畞榀濋榀翠杯榘犮澂稹瘋榈夐昂"], +["9aa1","榛惧檺槎撻督榉榉奸摱杈堕够楹罕楹介粏閾滈虎榛遍桓绔堥絼馉倲馉姺馉帬妞氶搩濡爴楀閾併灩馉棔馉槙馉櫠稹毢鍧楃叧馉珎馉珝馉鍛癄火牤嬪挒馉馉盎馉睋馉饱馉奔鎯ю牪嶅櫤馉驳馉碀馉抄馉弹馉恫馉穲妤曢隘铻ヰ牳勷牳庰牷楌牼愷牸牴冲盃馉炯甯嬸滒忦舵湠稹伝稹倛稹倴銠囸筐擆诲崵钂p叼惰畞稹暦稹槞稹焹稹焽涔哥偦稹牠稹オ"], +["9b40","稹ō稹﹨稹蔼稹卑稹铂稹粓鎷凁』曫〖曠啒妗曫呮З銢堭拣楌吼ⅰ别ⅴ忚嫿稷ェ稷稷珪瑕ヰㄨ緺稷瑤闉葛块楠金⒈"], +["9b62","稷矆稷卜馥稷磮稷磼稷斗稷稌稷箓稷酱稷繉穑仇︷燄炲颈鏅堟毧皈┕穑暓穑棾鐖侌う虹煑穑槡穑湒绾囸爫嗗⒌鏈"], +["9ba1","妞橉*ю楌タ8戰:桂攫氫洫葛欚í氿嶐火答栶ぉ咅牀婂噿馉槕濡燄『ㄣ穑晨黏悇黏摉鍨堭淬黏湳皎棬皓銤冭瓰皎瓗椐栶掟ぃ火え曠垑黏珋馉备濂ヰずヰぞ嗮牆硅粴馥姀鍦跨叡馥姍馥悪穑綂黏鍠拣嗮Ν掗嚁銘仇筐拆炰湗馥暍馥暒馥焽黏た馥鍋︺摶穑弻鎯烉イ冧澕皎馥馥畨馥皢稹稅鍨$厬婢娥傪О掗仏穰啿黏練璀傪"], +["9c40","宓涴Ο疯级穰拕稹璜ぇ娥堭?掍瘈穰柨穰毜稷湜閼ヰ℃啎濞ю嶄净鍤桂○间躬黏ご闄栨稄穰步銟樿シ穰灆穰‘穰悜穰鐕燄Γ囩瓊皓儉馉☉穰う閯勷Δ圭﹨榉梆Η洪é穰ō銠燄爛$穰ù穰瓫宕欒弿穰疂錄愷Σょ敾琛ヰΧ⒍"], +["9ca1","銣滒嶐嬸嶃睌皈妧皈妳閵侌吼嬮尠皈嫤黏姘归挓皈憪馉桓锠ц5稷う皎懗稹灡婧葛え犮Δ銡瑰皭绉d斂鏆娥┎よ皈煂皈鍥栦儫稹槉悝○▋呯啳鑽︷Ё濔﹩ㄥ┃洳佛éЁ金Ж婐К嬸У︷虹瓋绁攫█夋镜皙嫙妯凁▽樺帰穰竾閹挎牰闈濔▍█pΖ叼▉堝秴皎鞍皎們鍦曢牐皎宥う堟柧妲曞彃黏穑緛惆戞湺皎倫皎兇皎劗稹尽皎厪"], +["9d40","皎唹皎啹皎垰皎寙皎尟皎帄銞婐☉:鎻︷ē栫爤閴曫é镐彶皎Ё鋸燄ěō嗮ǒ斿Ц皎皦杓嬸ǹ咅﹥瓚皓剱皓劶惴佛﹨烉か婅繍鐘忓殝皓摟皓棭皓柊皓柛皓湶皓皓皓オ皓皓è皓瑤皓禋皓稕绾燄┗葛┘d菠闀囸獖撶啟皙嬁涠戦掟獥嬩稖馉矞杈惧梺"], +["9da1","杈吼拌竟黏獡鋽夌箍娼栨浠摛皎皈銣鸿簚稹煹皎ゐōó欚Ж攫帆皈檿穑卜馥樀馥浜氿ズ侌樺毧馉弓韪庡穑簣黏矠鎻炴嫄稹煻稹』鏀板槶馥眾鍚氿戙穯皓稑浔藉槩鍢炵綁馥粯濂叼5铦颁笢馉开馉祲穑毢鑴楅禐璐樼樆楸呯檸鐬归崊鍚茶厛鑻峰槬鑴茶悩鑲藉棯绁㈠檭鍚栶牶濄棊鍢呭棻鏇别▼€槶鐢村棸鍠哄挆鍟拆牨侌牪栧粣馥厛馉苟稷雹"], +["9e40","馉孩楹禋鍡烉垫姖闈挃璩嶇嚩閰舵徏鎺规従鍟冮辈稷撼鍐氥摕馉锭鍐у憤鍞炲敁鐧﹁腑穰鐤辫偠锠勮瀱瑁囪喍钀滒佷摤鐚勷嗗異鑼嬸Β撳櫥稷洿皈疮黏啠皈党穰粣皈姸閰梆欓垐穑臣皙毄馉含馉还鐗︷〔潕黏總皈抗馉揩鋬"], +["9ea1","楸濇敓稷稜洌仇狆┑拣牽牳婃仮皈枺馉凯"], +["9ead","穰亪稹唶鐔g簬榈愪笟涓勩暦瀣嶆膊鍗с毈悃滃嵔銡ヰ樺黏鑸憢鍨オ曫牓"], +["9ec5","悌掟ョ嵈皓含浯夐穑尘皓及浔涴ぞ〇烉┛炶憸穑抖皈姴穰灣穑湢鎸触穑环穑脯悒堝媽愎淬櫤錀爳庣檧瀚梆牶剁『皈籍澧т偪鍣奸畫宓寸檾皙惔楹呬场鐥广熁鎰欚氿"], +["9ef5","鍣濔╁灖黏ィ皓竼鍒答柇姹婇导"], +["9f40","绫栭鍩烉睋鎿擆⿹愷叼よ毉馉川穰储黏馉当"], +["9f4f","鍑攫〖忓稁闇凁》戦簛閬岀瑹楝傚硲绠f墾鎸甸绡忛绫鹃绫傜矄榘曠楝夐紬榘涴い鹃綒鍟冲瘍淇介簶淇插墵愀嗗嫅鍧у仏濡峰笒闊堥东杞滃懇闉撮闉哄尙鎰"], +["9fa1","妞彋榘婇磦浒婚檨姒鍌︾晢稹澀椐氬壋"], +["9fae","閰欓殎閰"], +["9fb2","閰戰ê楁嵖穰矗娅婂槕閱庣暫鎶咅爮肩崗绫梆グ○3"], +["9fc1","黏鐩栭疂涓牫旇幘琛"], +["9fc9","灞婃鍍澓鍒熷返浠庢氨馉嚥浼瑰挏鍝氬姎瓒傘椌寮屻棾"], +["9fdb","姝掗吋榫ラ畻闋⒋楠洪酣楹勭吅绗"], +["9fe7","姣鸿牁缃"], +["9feb","鍢狆獧婅狗榻"], +["9ff0","璺旇箯楦滆竵鎶傪◢借辅韫电珦黏┓绋剧娉┃鐦"], +["a040","皎榧︽硯锜栫梼皙姴纭擆璐岀嫝鐛辫鐚傜摫璩お昏槸寰鸿鋻"], +["a055","稹牷穰竻"], +["a058","瑭攫"], +["a05b","鎯界櫑楂楅祫閸畯锜"], +["a063","锠忚撤鐚湣楫般棖鐘蹭皣绫戦穰厵鎱欎皠楹栨吔"], +["a073","鍧熸叝鎶︽埞鎷庛鎳㈠帾穑彽鎹ゆ爞銞"], +["a0a1","宓楌ǒ傝繗皎腹"], +["a0a6","鍍欚〉嗙鍖查樃馉蓟鋪"], +["a0ae","鐭"], +["a0b0","绯傪ゼ氱硽绋仸鑱g祶鐢呯摬瑕旇垰鏈岃仮皈拞鑱涚摪鑴冪湦瑕夝岀晸穰粦铻╄煄鑷堣瀸瑭夎箔璀冪湯鐡歌摎銟垫Σ瓒"], +["a0d4","瑕╃懆娑硅焷黏戠摟惴涚叾鎮ゆ啘愠戠參鎭"], +["a0e2","缃别ì墣鎯╀鍒犮皹穑硣馥粭皈櫀馥敱稹稹嬀皓穰窚皈偔宄侌è忦佛爟Α嗮ぜ庝暍瀣燄岄綈楹︷"], +["a3c0","鈵",31,"鈵"], +["c6a1","鈶",9,"鈶",9,"鈪",9,"涓朵缚浜呬籂鍐傚問鍐嫻鍖稿崺鍘跺瀹宸涒汲骞垮淮褰愬健鏀存棤鐤掔櫠杈甸毝篓藛銉姐兙銈濄倿銆冧粷銆呫嗐囥兗锛伙冀鉁姐亖",23], +["c740","銇",58,"銈°偄銈c偆"], +["c7a1","銈",81,"袗",5,"衼袞",4], +["c840","袥",26,"褢卸",25,"鈬р喐鈫广噺馉儗涔氿爞婂垈鋻"], +["c8a1","榫板唸榫别"], +["c8cd","锟郡锛囷紓銏扁剸鈩°倹銈溾簚夂勨簡夂団簣夂娾簩夂嶁簳夂溾簼夂モ骇夂含夂憾夂尖壕饣嗏粖饣屸粛饣忊粬饣椻粸饣"], +["c8f5","蕛蓯蓻蓴傻艙酶艐蕣瑟"], +["f9fe","锟"], +["fa40","馉晣閶涴牀燄?呰晫鋳电彲鍐点檳黏皎Г閸勷¨涜嫯穑硤鐮兼潉鎷燄い仇é爦狆Ξ仇呬精稷摥鍊堭ΥИ勷黏稷敁鍊爫惧兢馉巰馉崌婊涴爯熷伣鍎併懞鍎庨‖銤冭悥黏Δ馉拠鍏狆村叒馉稷兗馉嫢稷敯馉枎穑埑稹瀹傝澖馉柍穑矙鍐插喐"], +["faa1","榇村噳鍑忓噾愠滃嚀黏鍐冲嚔鍗傚嚟鑿嶆ぞ穑湱褰诲垕鍒﹀埣鍔靛墬鍔斿姽鍕呯皶钑傚嫚铇嶐Μ撳寘皎珵鍟夋粰穑線馉穑楷鍖冲崉馉娉嬸︽牄鐝曟亰愫稹洦鐕濅挗鍗嵈皎毇鍗惧嵖稹枛稹槗鐭﹀帗皎獩鍘犲帿鍘帶馥澆憬欑帨鍙佸弲姹変箟鍩惧彊悛牣忓彔穑揩稷叮鍙娥牨峰悡鐏瑰敨鏅楁禌鍛Ν擆牭村暆鍜忓挙錇︷嶐牷濄洞馉祶"], +["fb40","皎稷殬鍟囦抄鍚悧鍠嗗柀鍢咅。楌轰晵黏惖鏆仇村樂鏇嶐婃殼鏆檷鍣忕1鍥遍瀲鍙惧渶鍥洯皎銟p忓潌黏啣姹倠鍧傘毐穰本鍩︷栧爟稹憯黏崳鍫︷く靛澧暋澹犲稹埣澹诲鍧凁獏愷搁彄銝″姊︺泝婀"], +["fba1","稹樉濞ゅ晸稹殥钄呭馉祹穰瞾穰椽稹煖濮欚火拆Χ︽当稹牗稹洉濮桂呭濠c洣黏Ι濠枫湀濯栫懃瀚擆○斻秴稹銣拆稿簝鍕愬鏂堝皈◣鋩勪馉垊瀵曟厾稹ù馥馉枼瀵冲疂浯愬皡稹瓌灏撶弾灏旔〔ヰΜㄥ眽洌濆矃宄╁朝宥嬸》桂「峰磹宕樺祮稹氦宀哄窏鑻笺牠黏稷亯稷叧鑺囥牰惘傚府妾婂沟骞吼拣牫撳帵浜峰粣鍘卞笁寤答⊕"], +["fc40","寤瑰换恽犲患鏍鹃悰寮嶐爣侌斻珵洧哄己穰稷彁褰橉卞剑闉金讲閸皎ǘ寰у抖愕燄愷〗葛ㄩ嚃馉姙皎ī鎬辨殔稹》悭c穱銟瑰瀽稷灤绁便箑鎮炴偆鎮仇う傪う忦З撶挙鍍″獱鎱よ悿鎱傪︷掓唩鍑答牂栨唶瀹>"], +["fca1","稷鎳擆ó濔━濇噽悚拆ⅵ稷鎬f厹鏀炴帇馉剺鎷咅版嫊稷笉鎹ぇ熴鎼告徃稹帋稹熂鎾愭緤稷付闋旔岎濇摗鎿ラ懟悌︽惡悌楁晬婕栶ええf枀鏁暉穑伨鏂叼ぅ洮锋棏鋬橉╂棤鏃e繜穑悁鏄橉佛告檮穑啢穑啣鏅嬸牴垫櫑馥嚘鏅虫櫞稹附穑埍皎棿穑噲馥寭鐭咅ⅲ烽Δ鏈傪滒え°妲吼傛潪鏉ф潰黏噸皓儹鏌椾摡鏍㈡箰閳兼爜穑彟穰稜妗"], +["fd40","穑懐妲℃▼皎珶妤虫穑棈妞佹愦层▉穑樇惝鏋ァ皎⿰鋴兼ざ姒樸馉弶鑽e倫妲桂欚﹨穑渻妾濄鏋辨珗皓啘惆嶆瑵馉ぃ鎯炴姝答嶆旱穑珱馉幍稹銤鍚○-氭穑患姣滄胺稷拫黏1穰瓚姹氳垿姹桂6间搮穑督黏啢黏黏"], +["fda1","穑硥銢ャ倡馉床楫凁桂戠緩鏍佛ΥヰΧ○Ψ稏娴滄辜婕勷ぅ筐咅茶敵穰酱鍑囨矞娓濊惍皎娓8憮穑緜绉屾箯濯戰嬫扛銣嶆緷穑赴婊吼楌戒晻閺版絼娼溿祹娼答﹨般椿婢燄勬繐黏倯黏厱黏桂?梆>答垮嚐黏厲黏厳黏厐穰嚌鐏嬬伨鐐х倎鐑岀儠鐑栫儫鋭勩法鐔寸問黏壏鐒厖濯堢厞鐓矞黏崶鐓忛崲黏媮鐒氿えюえ㈢喓皎鐐界垘"], +["fe40","閼傜垥澶戦憙鐖ら崄馥槄鐖墍黏ゴ姊界墪鐗椼箷穑亜鏍嶆冀鐘傜尓鐚p-皎爠鐚ㄧ尞鐝忕帾馉昂穰ó鐝夌憠黏嚔稹洤黏à鏄c泤黏Ψ黏黏Щ鐝风悤妞凁え︾惞馉梼慊楃憸稷鐟狆ê茬憞鐝ょ懚鑾圭懍銣扮懘閺辨ì鐠備黏獙"], +["fea1","黏厽黏┕皎畯瀛嗮ò凁、炵搱稹鐢庣摡鐢烉ɑ欚々嬪瘲皎含閹呯晬鐣婄暓鐣ぞ傘紕黏磽鐤庣憹鐤炵柎鐦傜槵鐧戠檹鐧櫠穰彽鐨愯嚡銦葛Δ戰Δ庣殹鐨ョ毞鐩岎熻憿馥倽馥吔稹笢鐪炵湨鐫鎾犵潣穑姮鐬ēゐē佺煷鐮夝娥え掓纰纾撻殽绀犵绀寸⒈皈槍杈歌皎穰們稷槣绂嗚妞傜馥绂濔К圭ぜ绂╂釜皈劍愫ㄧ皓剭绉"] +] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp936.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp936.json" new file mode 100644 index 0000000000000000000000000000000000000000..49ddb9a1d68fd76a82904ef694de6b2770c04575 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp936.json" @@ -0,0 +1,264 @@ +[ +["0","\u0000",127,"鈧"], +["8140","涓備竸涓呬竼涓忎笒涓椾笩涓犱浮涓d甫涓╀府涓副涓充傅涓蜂讣涔涔佷箓涔勪箚涔婁箲涔曚箺涔氫箾涔梗涔や攻涔т龚涔",5,"涔蹭勾",9,"涔",6,"浜囦簥"], +["8180","浜愪簴浜椾簷浜滀簼浜炰海浜函浜颁罕浜翠憾浜蜂焊浜逛杭浜戒壕浠堜粚浠忎粣浠掍粴浠涗粶浠犱虎浠︿户浠╀画浠化浠变淮浠镐还浠轰患浠句紑浼",6,"浼嬩紝浼",4,"浼滀紳浼′迹浼ㄤ缉浼辑浼急浼充嫉浼蜂脊浼讳季",4,"浣勪絽浣",5,"浣掍綌浣栦健浣溅浣ㄤ姜浣江浣奖浣蹭降浣蜂礁浣逛胶浣戒線渚佷緜渚呬締渚囦緤渚屼編渚愪緬渚撲緯渚栦緲渚欎練渚滀緸渚熶尽渚"], +["8240","渚や精渚景",4,"渚",8,"淇淇佷總淇嗕繃淇堜繅淇嬩繉淇嶄繏",4,"淇欎繘淇犱竣淇や骏淇т揩淇堪淇蹭看淇典慷淇蜂抗淇讳考淇戒靠",11], +["8280","鍊嬪庡愬戝撳曞栧楀涘濆炲犲㈠eゅу",10,"鍊诲藉垮亐鍋佸亗鍋勫亝鍋嗗亯鍋婂亱鍋嶅亹",4,"鍋栧仐鍋樺仚鍋涘仢",7,"鍋",5,"鍋",8,"鍋稿伖鍋哄伡鍋藉倎鍌傚們鍌勫倖鍌囧倝鍌婂倠鍌屽値",20,"鍌ゅ偊鍌偒鍌",4,"鍌",6,"鍌"], +["8340","鍌",17,"鍍",5,"鍍楀儤鍍欏儧",10,"鍍ㄥ儵鍍儷鍍儼鍍卞儾鍍村兌",4,"鍍",9,"鍎"], +["8380","鍎夊剨鍎",5,"鍎",13,"鍎",28,"鍏傚厙鍏婂厡鍏庡厪鍏愬厭鍏撳厳鍏樺厵鍏涘厺",4,"鍏e叅鍏﹀収鍏╁叒鍏叢鍏哄吘鍏垮唭鍐勫唵鍐囧唺鍐嬪啂鍐忓啇鍐戝啌鍐斿啒鍐氬啙鍐炲啛鍐″啠鍐",4,"鍐啴鍐村喐鍐瑰喓鍐惧喛鍑佸噦鍑冨噮鍑堝噴鍑嶅噹鍑愬噿",5], +["8440","鍑樺嚈鍑氬嚋鍑炲嚐鍑㈠嚕鍑",5,"鍑嚠鍑卞嚥鍑村嚪鍑惧垊鍒呭垑鍒嬪垖鍒忓垚鍒撳垟鍒曞垳鍒炲垷鍒″垻鍒e垾鍒﹀埀鍒埇鍒埍鍒插埓鍒靛埣鍒惧墑",5,"鍓嬪墡鍓忓墥鍓撳墪鍓楀墭"], +["8480","鍓欏墯鍓涘墲鍓熷墵鍓㈠墸鍓ゅ墻鍓ㄥ壂鍓壄鍓壈鍓卞壋",9,"鍓惧妧鍔",4,"鍔",6,"鍔戝姃鍔",6,"鍔滃姢鍔ュ姦鍔у姰鍔姲鍔",9,"鍕鍕佸媯鍕勫媴鍕嗗媹鍕婂媽鍕嶅嫀鍕忓嫅鍕撳嫈鍕曞嫍鍕",5,"鍕犲嫛鍕㈠嫞鍕",10,"鍕",7,"鍕诲嫾鍕藉寔鍖傚寖鍖勫寚鍖夊寠鍖嬪寣鍖"], +["8540","鍖戝寬鍖撳寯鍖樺寷鍖滃尀鍖熷將鍖ゅ尌鍖у尐鍖╁尗鍖尛鍖",9,"鍖煎尳鍗鍗傚崉鍗嗗崑鍗屽崓鍗愬崝鍗樺崣鍗涘崫鍗ュ崹鍗崿鍗嵅鍗跺嵐鍗诲嵓鍗藉嵕鍘鍘佸巸鍘囧巿鍘婂帋鍘"], +["8580","鍘",4,"鍘栧帡鍘欏帥鍘滃帪鍘犲帯鍘ゅ帶鍘帿鍘幁鍘",6,"鍘峰幐鍘瑰幒鍘煎幗鍘惧弨鍙",4,"鍙庡弿鍙愬彃鍙撳彆鍙氬彍鍙濆彏鍙″彚鍙у彺鍙哄従鍙垮悁鍚傚悈鍚囧悑鍚斿悩鍚欏悮鍚滃悽鍚ゅ惀鍚惏鍚冲惗鍚峰惡鍚藉惪鍛佸憘鍛勫憛鍛囧憠鍛屽憤鍛庡憦鍛戝憵鍛",4,"鍛e懃鍛у懇",7,"鍛村懝鍛哄懢鍛垮拋鍜冨拝鍜囧拡鍜夊拪鍜嶅拺鍜撳挆鍜樺挏鍜炲挓鍜犲挕"], +["8640","鍜㈠挜鍜挵鍜插挼鍜跺挿鍜瑰捄鍜煎捑鍝冨搮鍝婂搵鍝栧摌鍝涘摖",4,"鍝摤鍝摪鍝卞摯",5,"鍝诲摼鍞鍞傚攦鍞勫攨鍞堝攰",4,"鍞掑敁鍞",5,"鍞滃敐鍞炲敓鍞″敟鍞"], +["8680","鍞ㄥ敥鍞敪鍞插敶鍞靛敹鍞稿敼鍞哄敾鍞藉晙鍟傚晠鍟囧晥鍟",4,"鍟戝晵鍟撳晹鍟",4,"鍟濆暈鍟熷暊鍟㈠暎鍟ㄥ暕鍟暞",5,"鍟瑰暫鍟藉暱鍠呭枂鍠屽枍鍠庡枑鍠掑枔鍠曞枛鍠楀枤鍠涘枮鍠",6,"鍠",8,"鍠插柎鍠跺柛鍠哄柤鍠",4,"鍡嗗棁鍡堝棅鍡嬪棊鍡忓棎鍡曞棗",4,"鍡炲棤鍡㈠棫鍡╁棴鍡棸鍡卞棿鍡跺椄",4,"鍡垮槀鍢冨槃鍢"], +["8740","鍢嗗槆鍢婂構鍢嶅槓",7,"鍢欏槡鍢滃槤鍢犲槨鍢㈠槬鍢﹀槰鍢╁槳鍢槷鍢槹鍢冲樀鍢峰樃鍢哄樇鍢藉樉鍣",11,"鍣",4,"鍣曞櫀鍣氬櫅鍣",4], +["8780","鍣e櫏鍣﹀櫑鍣櫘鍣櫚鍣插櫝鍣村櫟鍣峰櫢鍣瑰櫤鍣",7,"鍤",6,"鍤愬殤鍤掑殧",14,"鍤",10,"鍤",6,"鍤稿毠鍤哄毣鍤",12,"鍥",8,"鍥曞洊鍥樺洐鍥滃洠鍥",5,"鍥洰鍥洸鍥冲浂鍥峰浉鍥诲浖鍦鍦佸渹鍦呭渿鍦",6], +["8840","鍦",9,"鍦濆湠鍦犲湣鍦㈠湦鍦ュ湨鍦у湯鍦卞湶鍦",4,"鍦煎溄鍦垮潄鍧冨潉鍧呭潌鍧堝潐鍧嬪潚",4,"鍧樺潤鍧㈠潱鍧ュ潷鍧澁鍧板澅鍧插澊鍧靛澑鍧瑰澓鍧藉澗鍧垮瀫"], +["8880","鍨佸瀲鍨堝瀴鍨婂瀺",4,"鍨",6,"鍨滃灊鍨炲灍鍨ュ灗鍨灛鍨灠鍨卞灣鍨靛灦鍨峰灩",8,"鍩",6,"鍩屽煃鍩愬煈鍩撳煐鍩楀煕鍩滃煘鍩″煝鍩e煡",7,"鍩煱鍩卞煵鍩冲煹鍩跺煼鍩诲熂鍩惧熆鍫佸爟鍫勫爡鍫堝爥鍫婂爩鍫庡爮鍫愬爳鍫撳爺鍫栧牀鍫樺牃鍫涘牅鍫濆牊鍫㈠牐鍫",4,"鍫",4,"鍫卞牪鍫冲牬鍫",7], +["8940","鍫",5,"濉",6,"濉庡濉愬濉撳濉栧濉",4,"濉",5,"濉",4,"濉",16,"濉垮澧勫澧囧澧婂澧"], +["8980","澧",4,"澧",4,"澧涘澧濆",7,"澧",17,"澧藉⒕澧垮澹傚澹勫",10,"澹掑澹斿",13,"澹",5,"澹/澹卞2澹村5澹峰8澹",7,"澶冨澶嗗",4,"澶庡澶戝澶撳澶樺澶濆澶犲ぁ澶㈠ぃ澶﹀え澶ぐ澶插こ澶靛ざ澶"], +["8a40","澶藉ぞ澶垮濂冨濂嗗濂屽濂愬濂撳濂",4,"濂″ィ濂ゅウ",12,"濂靛シ濂哄セ濂煎ゾ濂垮濡呭濡嬪濡庡濡愬濡斿濡樺濡涘濡濆濡犲Α濡㈠Ζ"], +["8a80","濡уΜ濡Π濡卞Τ",5,"濡哄濡藉",6,"濮囧濮夊濮嶅濮忓濮栧濮涘",4,"濮ゅЕ濮уЗ濮Й濮",11,"濮哄Ъ濮藉Ь濞濞傚▕濞嬪◢濞庡◤濞愬⊕濞斿〞濞栧濞欏濞涘濞炲ā濞㈠à濞﹀ě濞ㄥí",6,"濞冲ǖ濞",4,"濞藉ň濞垮﹣",4,"濠囧﹫濠",9,"濠栧濠樺濠",5], +["8b40","濠″濠ゅ━濠﹀┄濠╁┇",8,"濠稿┕濠诲┘濠藉┚濯",17,"濯",6,"濯",13,"濯"], +["8b80","濯",4,"濯村濯峰",4,"濯垮珋瀚",5,"瀚婂珛瀚",4,"瀚撳珪瀚楀珯瀚氬珱瀚濆珵瀚熷瀚ゅ瀚у瀚",4,"瀚",22,"瀣",11,"瀣",25,"瀣冲瀣跺",7,"瀛",6], +["8c40","瀛",7,"瀛掑瓥瀛炲瓲瀛″瀛ㄥ瀛瀛瀛村瀛峰瀛瑰瀛煎瀛垮畟瀹嗗畩瀹嶅畮瀹愬畱瀹掑當瀹栧疅瀹у瀹╁瀹瀹瀹插瀹哄瀹煎瘈瀵佸瘍瀵堝瘔瀵婂瘚瀵嶅瘞瀵"], +["8c80","瀵戝瘮",8,"瀵犲瀵e瀵у",4,"瀵",6,"瀵藉灏灏傚皟灏呭皣灏堝皨灏屽皪灏庡皭灏掑皳灏楀皺灏涘盀灏熷盃灏″埃灏﹀皑灏╁蔼灏碍灏隘灏板安灏冲暗灏跺胺灞冨眲灞嗗眹灞屽睄灞掑睋灞斿睎灞楀睒灞氬睕灞滃睗灞熷雹灞ゅ抱",6,"灞板辈",6,"灞诲奔灞藉本宀宀",4,"宀夊矈宀嬪矌宀忓矑宀撳矔宀",4,"宀",4], +["8d40","宀伯宀舶宀插泊宀跺补宀哄不宀煎簿宄宄傚硟宄",5,"宄",5,"宄",5,"宄",6,"宄㈠常宄у畅宄超宄朝宄",9,"宄",4], +["8d80","宕佸磩宕呭磮",5,"宕",4,"宕曞礂宕樺礄宕氬礈宕濆礋",4,"宕ュ川宕传宕疮",4,"宕",7,"宕",7,"宓堝祲宓",10,"宓欏禋宓滃禐",10,"宓淡宓蛋宓卞挡宓冲档",12,"宥",21,"宥氬稕宥滃稙宥熷稜"], +["8e40","宥",21,"宥",12,"宸",6,"宸",12,"宸滃窡宸犲罚宸ゅ藩宸翻"], +["8e80","宸板返宸跺犯",4,"宸垮竴甯勫竾甯夊笂甯嬪笉甯庡笒甯撳笚甯",7,"甯",4,"甯赴甯",4,"甯瑰负甯惧缚骞骞佸箖骞",5,"骞",6,"骞",4,"骞滃節骞熷範骞",14,"骞靛狗骞瑰咕搴佸簜搴冨簠搴堝簤搴屽簫搴庡簰搴樺簺搴濆骸搴㈠海搴ゅ酣",4,"搴",4,"搴村汉搴诲杭搴藉嚎",6], +["8f40","寤嗗粐寤堝粙",5,"寤斿粫寤楀粯寤欏粴寤",11,"寤╁猾",8,"寤靛桓寤瑰换寤煎唤寮呭紗寮囧級寮屽紞寮庡紣寮掑紨寮栧紮寮氬紲寮濆紴寮″饥寮e激"], +["8f80","寮ㄥ极寮籍寮板疾",6,"寮诲冀寮惧伎褰",14,"褰戝綌褰欏綒褰涘綔褰炲綗褰犲剑褰ュ涧褰ㄥ将褰蒋褰插酱褰靛蕉褰稿胶褰藉骄褰垮緝寰嗗緧寰庡緩寰戝緭寰斿緰寰氬緵寰濆緸寰熷緺寰",5,"寰╁精寰警",5,"寰跺靖寰瑰竞寰诲揪",4,"蹇囧繄蹇婂繈蹇庡繐蹇斿繒蹇氬繘蹇滃繛蹇熷竣蹇e骏蹇﹀卡蹇╁楷蹇堪蹇插砍蹇村慷蹇峰抗蹇哄考鎬"], +["9040","鎬堟夋嬫屾愭戞撴楁樻氭炴熸㈡fゆ",4,"鎬",4,"鎬芥炬亐鎭",6,"鎭屾亷鎭忔亼鎭撴仈鎭栨仐鎭樻仜鎭滄仦鎭熸仩鎭℃仴鎭︽伄鎭辨伈鎭存伒鎭锋伨鎮"], +["9080","鎮佹倐鎮呮倖鎮囨倛鎮婃倠鎮庢倧鎮愭倯鎮撴倳鎮楁倶鎮欐倻鎮炴偂鎮㈡偆鎮ユ偋鎮╂偑鎮偘鎮虫偟鎮舵偡鎮规偤鎮",7,"鎯囨儓鎯夋儗",4,"鎯掓儞鎯旀儢鎯楁儥鎯涙優鎯",4,"鎯儽鎯叉兊鎯锋兏鎯",4,"鎰傛剝鎰勬剠鎰囨剨鎰嬫剬鎰",4,"鎰栨剹鎰樻剻鎰涙劀鎰濇劄鎰℃劉鎰ユ劏鎰╂劒鎰",18,"鎱",6], +["9140","鎱囨厜鎱嬫厤鎱忔厫鎱掓厯鎱旀厲",6,"鎱炴厽鎱犳叀鎱f叅鎱ユ叇鎱",6,"鎱辨叢鎱虫叴鎱舵吀",18,"鎲屾啀鎲",4,"鎲"], +["9180","鎲",6,"鎲",8,"鎲啱鎲",9,"鎲",5,"鎲挎噣鎳佹噧",4,"鎳夋噷",4,"鎳撴嚂",16,"鎳",13,"鎳",8,"鎴",5,"鎴囨垑鎴撴垟鎴欐垳鎴濇垶鎴犳垼鎴︽埀鎴ㄦ埄鎴埈鎴埌鎴辨埐鎴垫埗鎴",4,"鎵傛墑鎵呮墕鎵"], +["9240","鎵忔墣鎵曟墫鎵楁墮鎵氭墱",6,"鎵ゆ墺鎵ㄦ壉鎵叉壌鎵垫壏鎵告壓鎵绘壗鎶佹妭鎶冩妳鎶嗘妵鎶堟妺",5,"鎶旀姍鎶滄姖鎶炴姡鎶︽姧鎶╂姫鎶姰鎶姲鎶叉姵鎶存姸鎶锋姼鎶烘娋鎷鎷"], +["9280","鎷冩媼鎷忔嫅鎷曟嫕鎷炴嫚鎷℃嫟鎷嫬鎷版嫴鎷垫嫺鎷规嫼鎷绘寑鎸冩寗鎸呮寙鎸婃寢鎸屾實鎸忔寪鎸掓寭鎸旀寱鎸楁寴鎸欐寽鎸︽導鎸╂尙鎸尞鎸版尡鎸",5,"鎸绘尲鎸炬尶鎹鎹佹崉鎹囨崍鎹婃崙鎹掓崜鎹旀崠",7,"鎹犳崵鎹ユ崷鎹ㄦ崻鎹崿鎹嵃鎹叉嵆鎹存嵉鎹告嵐鎹兼嵔鎹炬嵖鎺佹巸鎺勬巺鎺嗘帇鎺嶆帒鎺撴帞鎺曟帡鎺",6,"鎺℃帳鎺︽帿鎺幈鎺叉幍鎺舵幑鎺绘幗鎺挎弨"], +["9340","鎻佹弬鎻冩弲鎻囨張鎻婃弸鎻屾彂鎻撴彅鎻曟彈",6,"鎻熸彚鎻",4,"鎻彫鎻彲鎻版彵鎻虫彽鎻锋徆鎻烘徎鎻兼従鎼冩悇鎼",4,"鎼嶆悗鎼戞悞鎼",5,"鎼濇悷鎼㈡悾鎼"], +["9380","鎼ユ惂鎼ㄦ惄鎼惍",5,"鎼",4,"鎼绘惣鎼炬憖鎽傛憙鎽夋憢",6,"鎽撴憰鎽栨憲鎽",4,"鎽",7,"鎽ㄦ應鎽懍鎽",9,"鎽",6,"鎾冩拞鎾",8,"鎾撴挃鎾楁挊鎾氭挍鎾滄挐鎾",4,"鎾ユ挦鎾ф挩鎾挮鎾挶鎾叉挸鎾存挾鎾规捇鎾芥捑鎾挎搧鎿冩搫鎿",6,"鎿忔搼鎿撴摂鎿曟摉鎿欐摎"], +["9440","鎿涙摐鎿濇摕鎿犳摗鎿f摜鎿",24,"鏀",7,"鏀",7,"鏀",4,"鏀",8], +["9480","鏀㈡敚鏀ゆ敠",4,"鏀敪鏀版敱鏀叉敵鏀锋敽鏀兼斀鏁",4,"鏁嗘晣鏁婃晪鏁嶆晭鏁愭晵鏁撴晹鏁楁晿鏁氭暅鏁熸暊鏁℃暏鏁ユ暓鏁ㄦ暕鏁暛鏁暞鏁辨暢鏁垫暥鏁",14,"鏂堟枆鏂婃枍鏂庢枏鏂掓枖鏂曟枛鏂樻枤鏂濇枮鏂犳枹鏂f枽鏂ㄦ柂鏂柈鏂",7,"鏂烘柣鏂炬柨鏃鏃傛棁鏃堟棄鏃婃棈鏃愭棏鏃撴棓鏃曟棙",7,"鏃℃棧鏃ゆ棯鏃"], +["9540","鏃叉棾鏃存椀鏃告椆鏃",4,"鏄佹槃鏄呮槆鏄堟槈鏄嬫槏鏄愭槕鏄掓槚鏄楁槝鏄氭槢鏄滄槥鏄℃槩鏄f槫鏄︽槱鏄槴鏄槷鏄版槻鏄虫樂",4,"鏄芥樋鏅鏅傛檮",6,"鏅嶆檸鏅愭檻鏅"], +["9580","鏅欐櫅鏅滄櫇鏅炴櫊鏅㈡櫍鏅ユ櫑鏅",4,"鏅辨櫜鏅虫櫟鏅告櫣鏅绘櫦鏅芥櫩鏆鏆佹殐鏆呮殕鏆堟殙鏆婃殝鏆嶆殠鏆忔殣鏆掓殦鏆旀殨鏆",4,"鏆",8,"鏆",4,"鏆",4,"鏆垫毝鏆锋毟鏆烘毣鏆兼毥鏆",25,"鏇氭洖",7,"鏇ф洦鏇",5,"鏇辨浀鏇舵浉鏇烘浕鏇芥渷鏈傛渻"], +["9640","鏈勬渽鏈嗘渿鏈屾湈鏈忔湋鏈掓湏鏈栨湗鏈欐湚鏈滄湠鏈",5,"鏈ф湬鏈湴鏈叉湷鏈舵湻鏈告湽鏈绘溂鏈炬溈鏉佹潉鏉呮潎鏉婃潒鏉嶆潚鏉旀潟鏉",4,"鏉濇潰鏉f潳鏉︽潷鏉潿鏉澅鏉存澏"], +["9680","鏉告澒鏉烘澔鏉芥瀫鏋傛瀮鏋呮瀱鏋堟瀶鏋屾瀺鏋庢瀼鏋戞瀿鏋撴灁鏋栨灆鏋涙灍鏋犳灐鏋ゆ灕鏋╂灛鏋灡鏋叉灤鏋",7,"鏌傛焻",9,"鏌曟煐鏌楁煕鏌熸煛鏌f煠鏌︽煣鏌ㄦ煪鏌煭鏌煵鏌",7,"鏌炬爜鏍傛爟鏍勬爢鏍嶆爯鏍掓爺鏍曟牁",4,"鏍炴牊鏍犳牏",6,"鏍",6,"鏍存牭鏍舵牶鏍绘牽妗囨妗嶆妗掓",5], +["9740","妗滄妗炴妗‖",7,"妗垫「",8,"姊傛姊",7,"姊愭姊掓姊曟姊",9,"姊fⅳ姊ユⅸ姊姊姊辨⒉姊存⒍姊锋⒏"], +["9780","姊",6,"妫佹",5,"妫婃妫庢妫愭妫撴妫栨妫欐",4,"妫℃"妫",9,"妫2妫虫4妫舵7妫告;妫芥>妫挎妞傛妞勬",4,"妞屾妞戞",11,"妞℃あ妞fぅ",7,"妞く妞辨げ妞虫さ妞舵し妞告ず妞绘ぜ妞炬妤佹",16,"妤曟妤樻妤涙妤"], +["9840","妤℃ア妤ゆゥ妤фエ妤╂オ妤キ妤グ妤",4,"妤烘セ妤芥ゾ妤挎姒冩姒婃姒屾",5,"姒栨姒欐姒",9,"姒╂Κ姒Ξ姒Π姒叉Τ姒垫Χ姒告姒烘姒"], +["9880","姒炬妲妲",7,"妲嬫妲忔妲掓妲",5,"妲滄妲炴А",11,"妲Н妲版П妲",9,"妲炬█",9,"妯",11,"妯",5,"妯犳á",5,"妯╂ǐ妯ō妯ò妯叉ǔ妯存ǘ",6,"妯",4,"姗呮﹩姗",7,"姗",6,"姗"], +["9940","姗",4,"姗㈡姗ゆ│",10,"姗",6,"姗烘┗姗芥┚姗挎獊妾傛獌妾",8,"妾忔獟",4,"妾",7,"妾",5], +["9980","妾ф妾",114,"娆ユ娆",6], +["9a40","娆娆辨娆存娆舵娆绘娆芥姝姝佹瓊姝勬瓍姝堟瓓姝嬫瓖",11,"姝",7,"姝ㄦ姝",13,"姝烘姝炬娈娈呮畧"], +["9a80","娈屾畮娈忔異娈戞當娈曟畻娈樻畽娈",4,"娈",7,"娈",7,"娈舵",6,"姣姣冩瘎姣",4,"姣屾瘞姣愭瘧姣樻瘹姣",4,"姣",7,"姣姣姣辨姣存姣锋姣烘姣兼",6,"姘",4,"姘庢皰姘楁皽姘濇盀姘犳埃姘ユ矮姘碍姘辨俺姘舵胺姘规昂姘绘凹姘炬翱姹冩眲姹呮眻姹",4,"姹戞睊姹撴睎姹"], +["9b40","姹欐睔姹㈡保姹ユ宝姹ф鲍",4,"姹辨背姹垫狈姹告焙姹绘奔姹挎瞼娌勬矅娌婃矉娌嶆矌娌戞矑娌曟矕娌楁矘娌氭矞娌濇矠娌犳并娌ㄦ铂娌舶娌存驳娌舵卜娌烘硛娉佹硞娉冩硢娉囨硤娉嬫硩娉庢硰娉戞硳娉"], +["9b80","娉欐硽娉滄碀娉熸长娉︽厂娉╂超娉巢娉存彻娉挎磤娲傛磧娲呮磫娲堟磯娲婃磵娲忔磹娲戞磽娲旀磿娲栨礃娲滄礉娲",5,"娲︽川娲╂船娲疮娲版创娲舵捶娲告春娲挎祤娴傛祫娴夋祵娴愭禃娴栨禇娴樻禌娴濇禑娴℃耽娴ゆ单娴ф胆娴惮娴蛋娴辨挡娴虫档娴舵倒娴烘祷娴",4,"娑冩秳娑嗘秶娑婃秼娑嶆稄娑愭稈娑",4,"娑滄盯娑ユ冬娑栋娑辨冻娑存抖娑锋豆",5,"娣佹穫娣冩穲娣夋穵"], +["9c40","娣嶆穾娣忔窅娣掓窊娣旀窌娣楁窔娣涙窚娣熸发娣f伐娣ф法娣╂藩娣矾娣版凡娣存返娣舵犯娣烘方",7,"娓嗘竾娓堟笁娓嬫笍娓掓笓娓曟笜娓欐笡娓滄笧娓熸涪娓︽抚娓ㄦ釜娓府娓版副娓虫傅"], +["9c80","娓舵阜娓规富",7,"婀",7,"婀忔箰婀戞箳婀曟箺婀欐箽婀滄節婀炴範",10,"婀弓婀",14,"婧婧佹簜婧勬簢婧堟簥",4,"婧",6,"婧欐簹婧涙簼婧炴籂婧℃海婧ゆ害婧ㄦ憨婧含婧寒婧版撼婧垫焊婧规杭婧炬嚎婊婊冩粍婊呮粏婊堟粔婊婃粚婊嶆粠婊愭粧婊栨粯婊欐粵婊滄粷婊f户婊",5], +["9d40","婊版槐婊叉怀婊垫欢婊锋桓婊",7,"婕冩紕婕呮紘婕堟紛",4,"婕愭紤婕掓紪",9,"婕℃饥婕f讥婕︽姬婕ㄦ棘婕及婕叉即婕垫挤",6,"婕挎絸娼佹絺"], +["9d80","娼冩絼娼呮綀娼夋綂娼屾綆",9,"娼欐綒娼涙綕娼熸綘娼℃剑娼ゆ渐娼",5,"娼桨娼辨匠娼垫蕉娼锋焦娼绘浇",6,"婢呮締婢囨緤婢嬫緩",12,"婢濇緸婢熸緺婢",4,"婢",10,"婢存镜婢锋靖婢",5,"婵佹績",5,"婵",6,"婵",10,"婵熸竣婵f郡婵"], +["9e40","婵",7,"婵",32,"鐎",7,"鐎",6,"鐎",6], +["9e80","鐎",9,"鐎剁风哥",17,"鐏嶇亷鐏",13,"鐏",11,"鐏伇鐏茬伋鐏寸伔鐏圭伜鐏荤伣鐐佺倐鐐冪倓鐐嗙倗鐐堢倠鐐岀倣鐐忕倫鐐戠倱鐐楃倶鐐氱倹鐐",12,"鐐扮偛鐐寸偟鐐剁偤鐐剧偪鐑勭儏鐑嗙儑鐑夌儖",12,"鐑"], +["9f40","鐑滅儩鐑炵儬鐑$儮鐑g儱鐑儺鐑",6,"鐑哥兒鐑荤兗鐑",10,"鐒",4,"鐒戠剴鐒旂剹鐒",10,"鐒",7,"鐒茬劤鐒"], +["9f80","鐒电劮",13,"鐓嗙厙鐓堢厜鐓嬬厤鐓",12,"鐓濈厽",4,"鐓ョ叐",4,"鐓叞鐓辩叴鐓电叾鐓风吂鐓荤吋鐓",5,"鐔",4,"鐔嬬唽鐔嶇啂鐔愮啈鐔掔啌鐔曠問鐔楃啔",4,"鐔",6,"鐔╃啰鐔啳",5,"鐔寸喍鐔风喐鐔",8,"鐕",9,"鐕",4], +["a040","鐕",9,"鐕$嚔鐕g嚖鐕︾嚚",5,"鐕",9,"鐕",11,"鐖",19], +["a080","鐖涚垳鐖",9,"鐖╃埆鐖埉鐖埐鐖崇埓鐖虹埣鐖剧墍",6,"鐗夌墛鐗嬬墡鐗忕墣鐗戠墦鐗旂墪鐗楃墭鐗氱墱鐗炵墵鐗g墹鐗ョ墾鐗壂鐗壄鐗扮壉鐗崇壌鐗剁壏鐗哥壔鐗肩壗鐘傜妰鐘",4,"鐘岀妿鐘愮姂鐘",11,"鐘",11,"鐘姳鐘茬姵鐘电姾",6,"鐙呯媶鐙囩媺鐙婄媼鐙岀嫃鐙戠嫇鐙旂嫊鐙栫嫎鐙氱嫑"], +["a1a1","銆銆併偮匪壦嚶ㄣ冦呪旓綖鈥栤︹樷欌溾濄斻曘",7,"銆栥椼愩懧泵椕封埗鈭р埁鈭戔垙鈭埄鈭堚埛鈭氣姤鈭モ垹鈱掆姍鈭埉鈮♀墝鈮堚埥鈭濃墵鈮壇鈮も墺鈭炩埖鈭粹檪鈾掳鈥测斥剝锛劼わ繝锟♀奥р剸鈽嗏槄鈼嬧棌鈼庘棁鈼嗏枴鈻犫柍鈻测烩啋鈫愨啈鈫撱"], +["a2a1","鈪",9], +["a2b1","鈷",19,"鈶",19,"鈶",9], +["a2e5","銏",9], +["a2f1","鈪",11], +["a3a1","锛侊紓锛冿骏锛",88,"锟"], +["a4a1","銇",82], +["a5a1","銈",85], +["a6a1","螒",16,"危",6], +["a6c1","伪",16,"蟽",6], +["a6e0","锔碉付锔癸负锔匡箑锔斤妇锕侊箓锕冿箘"], +["a6ee","锔伙讣锔凤父锔"], +["a6f4","锔筹复"], +["a7a1","袗",5,"衼袞",25], +["a7d1","邪",5,"褢卸",25], +["a840","藠藡藱鈥撯曗モ碘剠鈩夆問鈫椻啒鈫欌垥鈭熲垼鈮掆墻鈮р娍鈺",35,"鈻",6], +["a880","鈻",7,"鈻撯枖鈻曗柤鈻解棦鈼b棨鈼モ槈鈯曘掋濄"], +["a8a1","膩谩菐脿膿茅臎猫墨铆菒矛艒贸菕貌奴煤菙霉菛菢菤菧眉锚蓱"], +["a8bd","艅艌"], +["a8c0","伞"], +["a8c5","銊",36], +["a940","銆",8,"銑c帋銕忋帨銕濄帪銕°弰銖庛彂銖掋彆锔帮竣锟"], +["a959","鈩°埍"], +["a95c","鈥"], +["a960","銉笺倹銈溿兘銉俱嗐倽銈烇箟",9,"锕旓箷锕栵箺锕",8], +["a980","锕",4,"锕供锕公"], +["a996","銆"], +["a9a4","鈹",75], +["aa40","鐙滅嫕鐙熺嫝",5,"鐙嫬鐙电嫸鐙圭嫿鐙剧嬁鐚鐚傜寗",5,"鐚嬬寣鐚嶇審鐚愮寫鐚掔寯鐚樼寵鐚氱専鐚犵專鐚ょ對鐚х尐鐚尟鐚扮尣鐚崇尩鐚剁尯鐚荤尲鐚界崁",8], +["aa80","鐛夌崐鐛嬬崒鐛庣崗鐛戠崜鐛旂崟鐛栫崢",7,"鐛",10,"鐛嵃鐛"], +["ab40","鐛",11,"鐛",4,"鐜呯巻鐜堢帄鐜岀帊鐜忕帎鐜掔帗鐜旂帟鐜楃帢鐜欑帤鐜滅帩鐜炵帬鐜$帲",5,"鐜幀鐜幈鐜寸幍鐜剁幐鐜圭幖鐜界幘鐜跨弫鐝",4], +["ab80","鐝嬬弻鐝庣彃",6,"鐝氱彌鐝滅彎鐝熺彙鐝㈢彛鐝ょ彟鐝ㄧ彧鐝彫鐝彲鐝扮彵鐝",4], +["ac40","鐝",10,"鐞勭悋鐞堢悑鐞岀悕鐞庣悜",8,"鐞",5,"鐞g悿鐞х惄鐞惌鐞惐鐞茬惙",4,"鐞界惥鐞跨憖鐟",11], +["ac80","鐟",6,"鐟栫憳鐟濈憼",12,"鐟懐鐟",4,"鐟哥懝鐟"], +["ad40","鐟荤懠鐟界懣鐠傜拕鐠呯拞鐠堢拤鐠婄拰鐠嶇拸鐠",10,"鐠濈挓",7,"鐠",15,"鐠",12], +["ad80","鐡",9,"鐡",8,"鐡濈摕鐡$摜鐡",6,"鐡扮摫鐡"], +["ae40","鐡崇摰鐡",6,"鐢鐢佺攤鐢冪攨",7,"鐢庣攼鐢掔敂鐢曠敄鐢楃敍鐢濈敒鐢",4,"鐢︾敡鐢敭鐢寸敹鐢圭敿鐢界斂鐣佺晜鐣冪晞鐣嗙晣鐣夌晩鐣嶇晲鐣戠晵鐣撶晻鐣栫晽鐣"], +["ae80","鐣",7,"鐣х暔鐣╃暙",6,"鐣崇暤鐣剁暦鐣",4,"鐤鐤佺杺鐤勭枀鐤"], +["af40","鐤堢枆鐤婄枌鐤嶇枎鐤愮枔鐤曠枠鐤涚枩鐤炵枹鐤",4,"鐤柖鐤风柡鐤荤柨鐥鐥佺梿鐥嬬棇鐥庣棌鐥愮棏鐥撶棗鐥欑棜鐥滅棟鐥熺棤鐥$棩鐥╃棳鐥棶鐥棽鐥崇椀鐥剁椃鐥哥椇鐥荤椊鐥剧槀鐦勭槅鐦"], +["af80","鐦堢槈鐦嬬槏鐦庣槒鐦戠槖鐦撶様鐦栫槡鐦滅槤鐦炵槨鐦g槯鐦ㄧ槵鐦槸鐦辩槻鐦剁樂鐦圭樅鐦荤樈鐧佺檪鐧"], +["b040","鐧",6,"鐧",5,"鐧曠櫁",4,"鐧濈櫉鐧犵櫋鐧㈢櫎",6,"鐧櫗鐧櫚",7,"鐧圭櫤鐧肩櫩鐨鐨佺殐鐨呯殙鐨婄殞鐨嶇殢鐨愮殥鐨旂殨鐨楃殬鐨氱殯"], +["b080","鐨",7,"鐨",8,"鐨毎鐨崇毜",9,"鐩鐩佺泝鍟婇樋鍩冩尐鍝庡攭鍝鐨戠檶钄肩煯鑹剧鐖遍殬闉嶆皑瀹変亢鎸夋殫宀歌兒妗堣偖鏄傜泿鍑规晼鐔勘琚勫偛濂ユ噴婢宠姯鎹屾墥鍙惂绗嗗叓鐤ゅ反鎷旇穻闈舵妸鑰欏潩闇哥舰鐖哥櫧鏌忕櫨鎽嗕桨璐ユ嫓绋楁枒鐝惉鎵宠埇棰佹澘鐗堟壆鎷屼即鐡e崐鍔炵粖閭﹀府姊嗘鑶缁戞纾呰殞闀戝倣璋よ嫗鑳炲寘瑜掑墺"], +["b140","鐩勭泧鐩夌泲鐩岀洆鐩曠洐鐩氱洔鐩濈洖鐩",4,"鐩",7,"鐩扮洺鐩电浂鐩风浐鐩荤浗鐩跨渶鐪傜渻鐪呯渾鐪婄湆鐪",10,"鐪涚湝鐪濈湠鐪$湥鐪ょ湧鐪х湭鐪"], +["b180","鐪湲鐪",4,"鐪圭溁鐪界溇鐪跨潅鐫勭潊鐫嗙潏",7,"鐫",7,"鐫滆杽闆逛繚鍫¢ケ瀹濇姳鎶ユ毚璞归矋鐖嗘澂纰戞偛鍗戝寳杈堣儗璐濋挕鍊嶇媹澶囨儷鐒欒濂旇嫰鏈宕╃环鐢车韫﹁扛閫奸蓟姣旈剻绗斿郊纰ц摉钄芥瘯姣欐瘱甯佸簢鐥归棴鏁濆紛蹇呰緹澹佽噦閬块櫅闉竟缂栬船鎵佷究鍙樺崬杈ㄨ京杈亶鏍囧姜鑶樿〃槌栨唻鍒槳褰枌婵掓花瀹炬憟鍏靛啺鏌勪笝绉夐ゼ鐐"], +["b240","鐫濈潪鐫熺潬鐫ょ潷鐫╃潽鐫",11,"鐫虹澔鐫肩瀬鐬傜瀮鐬",5,"鐬忕瀽鐬",11,"鐬$灒鐬ょ灕鐬ㄧ灚鐬灝鐬灡鐬茬灤鐬",4], +["b280","鐬肩灳鐭",12,"鐭",8,"鐭樼煓鐭氱煗",4,"鐭ょ梾骞剁幓鑿犳挱鎷ㄩ挼娉㈠崥鍕冩悘閾傜當浼笡鑸惰剸鑶婃袱娉婇┏鎹曞崪鍝鸿ˉ鍩犱笉甯冩绨块儴鎬栨摝鐚滆鏉愭墠璐㈢潿韪╅噰褰╄彍钄¢鍙傝殨娈嬫儹鎯ㄧ伩鑻嶈埍浠撴钵钘忔搷绯欐Ы鏇硅崏鍘曠瓥渚у唽娴嬪眰韫彃鍙夎尙鑼舵煡纰存惤瀵熷矓宸鎷嗘煷璞烘悁鎺鸿潐棣嬭皸缂犻摬浜ч槓棰ゆ槍鐚"], +["b340","鐭︾煥鐭煰鐭扮煴鐭茬煷鐭电煼鐭圭熀鐭荤熂鐮",5,"鐮婄爧鐮庣爮鐮愮爴鐮曠牂鐮涚牉鐮犵牎鐮㈢牑鐮ㄧ牚鐮牣鐮牨鐮茬牫鐮电牰鐮界牽纭佺纭冪纭嗙纭夌纭嬬纭忕纭撶纭樼纭"], +["b380","纭涚纭",11,"纭",7,"纭哥」纭虹』纭",6,"鍦哄皾甯搁暱鍋胯偁鍘傛暈鐣呭敱鍊¤秴鎶勯挒鏈濆槻娼发鍚电倰杞︽壇鎾ゆ帲褰绘緢閮磋嚕杈板皹鏅ㄥ勘娌夐檲瓒佽‖鎾戠О鍩庢鎴愬憟涔樼▼鎯╂緞璇氭壙閫為獘绉ゅ悆鐥存寔鍖欐睜杩熷紱椹拌婚娇渚堝昂璧ょ繀鏂ョ偨鍏呭啿铏磭瀹犳娊閰暣韪岀鎰佺浠囩桓鐬呬笐鑷垵鍑烘┍鍘ㄨ簢閿勯洀婊侀櫎妤"], +["b440","纰勭纰嗙纰婄纰忕纰掔纰曠纰欑纰炵纰㈢ⅳ纰︾ⅷ",7,"纰电⒍纰风⒏纰虹⒒纰肩⒔纰跨纾傜纾勭纾囩纾岀纾庣纾戠纾撶纾楃纾",9], +["b480","纾ょ%纾︾'纾╃*纾-",4,"纾崇5纾剁8纾圭;",5,"绀傜绀勭",6,"纭鍌ㄧ煑鎼愯Е澶勬彛宸濈┛妞戒紶鑸瑰枠涓茬柈绐楀耿搴婇棷鍒涘惞鐐婃嵍閿ゅ瀭鏄ユた閱囧攪娣崇函锠㈡埑缁扮柕鑼ㄧ闆岃緸鎱堢摲璇嶆鍒鸿祼娆¤仾钁卞洷鍖嗕粠涓涘噾绮楅唻绨囦績韫跨绐滄懅宕斿偓鑴嗙榿绮规番缈犳潙瀛樺纾嬫挳鎼撴帾鎸敊鎼揪绛旂槱鎵撳ぇ鍛嗘鍌f埓甯︽畣浠h捶琚嬪緟閫"], +["b540","绀",5,"绀",9,"绀",4,"绀",14,"绀",4,"绀界た绁傜绁勭绁囩",8,"绁旂绁樼绁$ィ"], +["b580","绁ょウ绁╃オ绁ガ绁グ",6,"绁圭セ",4,"绂傜绂嗙绂堢绂嬬绂嶇绂愮绂掓犺芥媴涓瑰崟閮告幐鑳嗘棪姘絾鎯贰璇炲脊铔嬪綋鎸″厷鑽℃。鍒鎹h箞鍊掑矝绁峰鍒扮ɑ鎮奸亾鐩楀痉寰楃殑韫伅鐧荤瓑鐬嚦閭撳牑浣庢淮杩晫绗涚媱娑ょ繜瀚℃姷搴曞湴钂傜甯濆紵閫掔紨棰犳巶婊囩鐐瑰吀闈涘灚鐢典絻鐢稿簵鎯﹀娣娈跨鍙奸洉鍑嬪垇鎺夊悐閽撹皟璺岀埞纰熻澏杩皪鍙"], +["b640","绂",6,"绂",11,"绂",10,"绂",4,"绂肩绉傜绉呯绉堢绉岀绉忕绉撶绉栫绉",5,"绉犵А绉㈢Д绉ㄧИ"], +["b680","绉М绉",6,"绉圭Ш绉肩Ь绉跨▉绋勭▍绋囩▓绋夌▕绋岀◤",4,"绋曠绋樼绋涚涓佺洴鍙拤椤堕紟閿畾璁涪涓滃啲钁f噦鍔ㄦ爧渚楁伀鍐绘礊鍏滄姈鏂楅櫋璞嗛楃棙閮界潱姣掔妸鐙鍫电澒璧屾潨闀鑲氬害娓″绔煭閿绘鏂紟鍫嗗厬闃熷澧╁惃韫叉暒椤垮洡閽濈浘閬佹巼鍝嗗澶哄灈韬叉湹璺鸿埖鍓佹儼鍫曡浘宄ㄩ箙淇勯璁瑰ē鎭跺巹鎵奸亸閯傞タ鎭╄屽効鑰冲皵楗垫幢浜"], +["b740","绋濈绋$á绋",14,"绋寸ǖ绋剁ǜ绋虹ň绌",5,"绌",9,"绌",4,"绌",16], +["b780","绌",6,"绌辩┎绌崇┑绌荤┘绌界┚绐傜獏绐囩獕绐婄獘绐岀獛绐忕獝绐撶獢绐欑獨绐涚獮绐$璐板彂缃氱瓘浼愪箯闃娉曠彁钘╁竼鐣炕妯婄熅閽掔箒鍑$儲鍙嶈繑鑼冭穿鐘キ娉涘潑鑺虫柟鑲埧闃插Θ浠胯绾烘斁鑿查潪鍟¢鑲ュ尓璇藉悹鑲哄簾娌歌垂鑺厷鍚╂皼鍒嗙悍鍧熺剼姹剧矇濂嬩唤蹇挎劋绮赴灏佹灚铚傚嘲閿嬮鐤兘閫㈠啹缂濊濂夊嚖浣涘惁澶暦鑲ゅ鎵舵媯杈愬箙姘熺浼忎繕鏈"], +["b840","绐g绐х绐绐",4,"绐",10,"绔",10,"绔",9,"绔楃珮绔氱珱绔滅珴绔$绔ょ",5,"绔绔辩绔"], +["b880","绔",4,"绔荤绔剧瑎绗佺瑐绗呯瑖绗夌瑢绗嶇瑤绗愮瑨绗撶瑬绗楃瑯绗氱瑴绗濈瑹绗$绗g绗╃娴丢绂忚⒈寮楃敨鎶氳緟淇嚋鏂ц劘鑵戝簻鑵愯荡鍓璧嬪鍌呬粯闃滅埗鑵硅礋瀵岃闄勫缂氬拹鍣跺槑璇ユ敼姒傞挋鐩栨簤骞茬敇鏉嗘煈绔胯倽璧舵劅绉嗘暍璧e唸鍒氶挗缂歌倹绾插矖娓潬绡欑殝楂樿啅缇旂硶鎼為晲绋垮憡鍝ユ瓕鎼佹垐楦借兂鐤欏壊闈╄憶鏍艰洡闃侀殧閾釜鍚勭粰鏍硅窡鑰曟洿搴氱竟"], +["b940","绗绗茬绗电绗风绗荤绗",5,"绛嗙瓐绛婄瓖绛庣瓝绛曠瓧绛欑瓬绛炵瓱绛$",10,"绛绛崇绛剁绛虹绛界绠佺畟绠冪畡绠",6,"绠庣畯"], +["b980","绠戠畳绠撶畺绠樼畽绠氱疀绠炵疅绠犵绠ょ绠绠扮绠崇绠剁绠",7,"绡傜瘍绡勫焸鑰挎宸ユ敾鍔熸伃榫氫緵韬叕瀹紦宸╂睘鎷辫础鍏遍挬鍕炬矡鑻熺嫍鍨㈡瀯璐杈滆弴鍜曠畭浼版步瀛ゅ榧撳彜铔婇璋疯偂鏁呴【鍥洪泧鍒摐鍓愬鎸傝涔栨嫄鎬:鍏冲畼鍐犺绠¢缃愭儻鐏岃疮鍏夊箍閫涚懓瑙勫湱纭呭綊榫熼椇杞ㄩ璇$櫢妗傛煖璺吹鍒借緤婊氭閿呴儹鍥芥灉瑁硅繃鍝"], +["ba40","绡呯瘓绡夌瘖绡嬬瘝绡庣瘡绡愮瘨绡",4,"绡涚瘻绡炵療绡犵绡g绡х绡╃绡绡绡",4,"绡哥绡虹绡界",7,"绨堢皦绨婄皪绨庣皭",5,"绨楃皹绨"], +["ba80","绨",4,"绨",5,"绨ㄧ癌绨",12,"绨",5,"绫傞瀛╂捣姘︿亥瀹抽獓閰f啫閭煩鍚兜瀵掑嚱鍠婄綍缈版捈鎹嶆棻鎲炬倣鐒婃睏姹夊く鏉埅澹曞殠璞閮濆ソ鑰楀彿娴╁懙鍠濊嵎鑿忔牳绂惧拰浣曞悎鐩掕矇闃傛渤娑歌但瑜愰工璐哄樋榛戠棔寰堢嫚鎭ㄥ摷浜ㄦí琛℃亽杞板搫鐑樿櫣楦挎椽瀹忓紭绾㈠枆渚尨鍚煎帤鍊欏悗鍛间箮蹇界憵澹惰懌鑳¤澊鐙愮硦婀"], +["bb40","绫",9,"绫",36,"绫",5,"绫",9], +["bb80","绮堢矈",6,"绮撶矓绮栫矙绮氱矝绮犵病绮g拨绮х波绮╃搏绮箔绮舶绮",4,"绮虹不寮ц檸鍞姢浜掓勃鎴疯姳鍝楀崕鐚炬粦鐢诲垝鍖栬瘽妲愬緤鎬娣潖娆㈢幆妗撹繕缂撴崲鎮e敜鐥雹鐒曟叮瀹﹀够鑽掓厡榛勭:铦楃哀鐨囧嚢鎯剁厡鏅冨箤鎭嶈皫鐏版尌杈夊窘鎭㈣洈鍥炴瘉鎮旀収鍗夋儬鏅﹁纯绉戒細鐑╂眹璁宠缁樿崵鏄忓榄傛祽娣疯眮娲讳紮鐏幏鎴栨儜闇嶈揣绁稿嚮鍦惧熀鏈虹暩绋界Н绠"], +["bc40","绮跨硛绯傜硟绯勭硢绯夌硧绯",6,"绯樼硽绯涚碀绯炵场",6,"绯",5,"绯",7,"绯圭澈绯",13,"绱",5], +["bc80","绱",14,"绱$矗绱ょ触绱︾川绱╃椽绱喘绱窗",6,"鑲岄ゥ杩规縺璁ラ浮濮哗缂夊悏鏋佹杈戠睄闆嗗強鎬ョ柧姹插嵆瀚夌骇鎸ゅ嚑鑴婂繁钃熸妧鍐瀛d紟绁墏鎮告祹瀵勫瘋璁¤鏃㈠繉闄呭缁х邯鍢夋灧澶逛匠瀹跺姞鑽氶璐剧敳閽惧亣绋间环鏋堕┚瀚佹鐩戝潥灏栫闂寸厧鍏艰偐鑹板ジ缂勮導妫鏌⒈纭锋嫞鎹$畝淇壀鍑忚崘妲涢壌璺佃幢瑙侀敭绠欢"], +["bd40","绱",54,"绲",7], +["bd80","绲",32,"鍋ヨ埌鍓戦ク娓愭簠娑у缓鍍靛灏嗘祮姹熺枂钂嬫〃濂栬鍖犻叡闄嶈晧妞掔鐒﹁兌浜ら儕娴囬獎濞囧毤鎼呴摪鐭茎鑴氱嫛瑙掗ズ缂寸粸鍓挎暀閰佃娇杈冨彨绐栨彮鎺ョ殕绉歌闃舵埅鍔妭妗旀澃鎹风潾绔磥缁撹В濮愭垝钘夎姤鐣屽熶粙鐤ヨ灞婂肪绛嬫枻閲戜粖娲ヨ绱ч敠浠呰皑杩涢澇鏅嬬杩戠儸娴"], +["be40","缍",12,"缍",6,"缍",42], +["be80","绶",32,"灏藉姴鑽嗗參鑼庣潧鏅堕哺浜儕绮剧渤缁忎簳璀︽櫙棰堥潤澧冩暚闀滃緞鐥夐潠绔熺珵鍑鐐獦鎻┒绾犵帠闊箙鐏镐節閰掑帺鏁戞棫鑷艰垍鍜庡氨鐤氶灎鎷樼嫏鐤藉眳椹硅強灞鍜鐭╀妇娌仛鎷掓嵁宸ㄥ叿璺濊笧閿勘鍙ユ儳鐐墽鎹愰箖濞熷︾湻鍗风虎鎾呮敨鎶夋帢鍊旂埖瑙夊喅璇缁濆潎鑿岄挧鍐涘悰宄"], +["bf40","绶",62], +["bf80","绺虹讣",4,"绻",4,"绻",21,"淇婄娴氶儭楠忓杸鍜栧崱鍜紑鎻╂シ鍑叏鍒婂牚鍕樺潕鐮嶇湅搴锋叿绯犳墰鎶椾孩鐐曡冩嫹鐑ら潬鍧疯嫑鏌5纾曢绉戝3鍜冲彲娓村厠鍒诲璇捐偗鍟冨灕鎭冲潙鍚┖鎭愬瓟鎺ф姞鍙f墸瀵囨灟鍝獰鑻﹂叿搴撹¥澶稿灝鎸庤法鑳潡绛蜂京蹇娆惧尅绛愮媯妗嗙熆鐪舵椃鍐典簭鐩斿部绐ヨ懙濂庨瓉鍌"], +["c040","绻",35,"绾",23,"绾滅簼绾"], +["c080","绾捍绾荤杭缁栫护缁还缂婄紣缂炵挤缂圭蓟",6,"缃冪絾",9,"缃掔綋棣堟劎婧冨潳鏄嗘崋鍥版嫭鎵╁粨闃斿瀮鎷夊枃铚¤厞杈e暒鑾辨潵璧栬摑濠爮鎷︾闃戝叞婢滆鞍鎻借鎳掔紗鐑傛互鐞呮鐙煎粖閮庢湕娴崬鍔崇墷鑰佷浆濮ラ叒鐑欐稘鍕掍箰闆烽暛钑剧绱劇鍨掓搨鑲嬬被娉1妤炲喎鍘樻ⅷ鐘侀粠绡辩嫺绂绘紦鐞嗘潕閲岄菠绀艰帀鑽斿悘鏍椾附鍘夊姳鐮惧巻鍒╁倛渚嬩繍"], +["c140","缃栫綑缃涚綔缃濈綖缃犵剑",4,"缃浆缃蒋缃扮匠缃电蕉缃风礁缃虹交缃肩浇缃跨線缇",7,"缇嬬緧缇",4,"缇",4,"缇涚緶缇犵劲缇g茎缇︾鲸",6,"缇"], +["c180","缇",4,"缇虹净缇剧縺缈傜績缈勭繂缈囩繄缈夌繈缈嶇繌",4,"缈栫織缈",5,"缈㈢浚鐥㈢珛绮掓播闅跺姏鐠冨摡淇╄仈鑾茶繛闀板粔鎬滄稛甯樻暃鑴搁摼鎭嬬偧缁冪伯鍑夋绮辫壇涓よ締閲忔櫨浜皡鎾╄亰鍍氱枟鐕庡杈芥溅浜嗘拏闀e粬鏂欏垪瑁傜儓鍔g寧鐞虫灄纾烽湒涓撮偦槌炴穻鍑涜祦鍚濇嫀鐜茶彵闆堕緞閾冧级缇氬噷鐏甸櫟宀鍙︿护婧滅悏姒寸~棣忕暀鍒樼槫娴佹煶鍏緳鑱嬪挋绗肩"], +["c240","缈ょ咖缈ㄧ开缈楷缈刊缈茬看",6,"缈界烤缈胯傝囪堣夎婅庤忚戣撹氳涜濊炶熻¤hよ",5,"鑰茶磋硅鸿艰捐亐鑱佽亜鑱呰亣鑱堣亯鑱庤亸鑱愯亼鑱撹仌鑱栬仐"], +["c280","鑱欒仜",13,"鑱",5,"鑱",11,"闅嗗瀯鎷㈤檱妤煎▌鎼傜瘬婕忛檵鑺﹀崲棰呭簮鐐夋幊鍗よ檹椴侀簱纰岄湶璺祩楣挎綖绂勫綍闄嗘埉椹村悤閾濅荆鏃呭饱灞$紩铏戞隘寰嬬巼婊ょ豢宄︽寷瀛沪鍗典贡鎺犵暐鎶¤疆浼︿粦娌︾憾璁鸿悵铻虹綏閫婚敚绠╅瑁歌惤娲涢獑缁滃楹荤帥鐮佽殏椹獋鍢涘悧鍩嬩拱楹﹀崠杩堣剦鐬掗铔弧钄撴浖鎱㈡极"], +["c340","鑱捐倎鑲傝倕鑲堣倞鑲",5,"鑲旇倳鑲楄倷鑲炶偅鑲﹁偋鑲ㄨ偓鑲拌偝鑲佃偠鑲歌偣鑲昏儏鑳",4,"鑳",6,"鑳樿儫鑳犺儮鑳h儲鑳兊鑳疯児鑳昏兙鑳胯剙鑴佽剝鑴勮剠鑴囪剤鑴"], +["c380","鑴岃剷鑴楄剻鑴涜劀鑴濊劅",12,"鑴劗鑴拌劤鑴磋劦鑴疯劰",4,"鑴胯癌鑺掕尗鐩叉皳蹇欒幗鐚寘閿氭瘺鐭涢搯鍗寕鍐掑附璨岃锤涔堢帿鏋氭閰堕湁鐓ゆ病鐪夊獟闀佹瘡缇庢槯瀵愬濯氶棬闂蜂滑钀岃挋妾洘閿扮寷姊﹀瓱鐪啔闈$硿杩疯皽寮ョ背绉樿娉岃湝瀵嗗箓妫夌湢缁靛啎鍏嶅媺濞╃紖闈㈣嫍鎻忕瀯钘愮娓哄簷濡欒攽鐏皯鎶跨毧鏁忔偗闂芥槑铻熼福閾悕鍛借艾鎽"], +["c440","鑵",5,"鑵囪厜鑵嶈厧鑵忚厭鑵栬厳鑵樿厸",4,"鑵¤參鑵h叅鑵﹁叏鑵叓鑵叝鑵茶叧鑵佃叾鑵疯吀鑶佽唭",4,"鑶夎唻鑶岃啀鑶庤啇鑶",5,"鑶欒啔鑶",4,"鑶よ啣"], +["c480","鑶ц啯鑶",7,"鑶",5,"鑶艰喗鑶捐喛鑷勮噮鑷囪噲鑷夎噵鑷",6,"鎽硅槕妯¤啘纾ㄦ懇榄旀姽鏈帿澧ㄩ粯娌紶瀵為檶璋嬬墴鏌愭媷鐗′憨濮嗘瘝澧撴毊骞曞嫙鎱曟湪鐩潶鐗х﹩鎷垮摢鍛愰挔閭e绾虫皷涔冨ザ鑰愬鍗楃敺闅惧泭鎸犺剳鎭奸椆娣栧憿棣佸唴瀚╄兘濡湏鍊偿灏兼嫙浣犲尶鑵婚嗘汉钄媹骞寸⒕鎾垫嵒蹇靛閰块笩灏挎崗鑱傚鍟晩闀嶆秴鎮ㄦ煚鐙炲嚌瀹"], +["c540","鑷",14,"鑷よ嚗鑷﹁嚚鑷╄嚝鑷",4,"鑷",5,"鑷借嚳鑸冭垏",4,"鑸庤垙鑸戣垞鑸",5,"鑸濊垹鑸よ垾鑸﹁埀鑸╄埉鑸茶埡鑸艰埥鑸"], +["c580","鑹鑹佽墏鑹冭墔鑹嗚増鑹婅墝鑹嶈墡鑹",7,"鑹欒墰鑹滆墲鑹炶墵",7,"鑹╂嫥娉炵墰鎵挳绾借創娴撳啘寮勫ゴ鍔掑コ鏆栬檺鐤熸尓鎳︾朝璇哄摝娆ч弗娈磋棔鍛曞伓娌ゅ暘瓒寸埇甯曟曠惗鎷嶆帓鐗屽緲婀冩淳鏀娼樼洏纾愮浖鐣斿垽鍙涗箵搴炴梺鑰儢鎶涘拞鍒ㄧ偖琚嶈窇娉″懜鑳氬煿瑁磋禂闄厤浣╂矝鍠风泦鐮版姩鐑规編褰摤妫氱〖绡疯啫鏈嬮箯鎹х鍧爳闇规壒鎶妶鐞垫瘲"], +["c640","鑹壂鑹壄鑹辫壍鑹惰壏鑹歌壔鑹艰妧鑺佽妰鑺呰妴鑺囪妷鑺岃姁鑺撹姅鑺曡姈鑺氳姏鑺炶姞鑺㈣姡鑺ц姴鑺佃姸鑺鸿娀鑺艰娍鑻鑻傝媰鑻呰媶鑻夎嫄鑻栬嫏鑻氳嫕鑻㈣嫥鑻ㄨ嫨鑻嫭鑻嫯鑻拌嫴鑻宠嫷鑻惰嫺"], +["c680","鑻鸿嫾",4,"鑼婅寢鑼嶈寪鑼掕寭鑼栬寴鑼欒対",9,"鑼╄尓鑼尠鑼茶尫鑼昏尳鍟よ劸鐤茬毊鍖圭棡鍍诲眮璀瘒鍋忕墖楠楅婕傜摙绁ㄦ拠鐬ユ嫾棰戣传鍝佽仒涔掑潽鑻硅悕骞冲嚟鐡惰瘎灞忓潯娉奸濠嗙牬榄勮揩绮曞墫鎵戦摵浠嗚巻钁¤彥钂插煍鏈村渻鏅郸璋辨洕鐎戞湡娆烘爾鎴氬涓冨噭婕嗘煉娌忓叾妫嬪姝х暒宕庤剱榻愭棗绁堢楠戣捣宀備篂浼佸惎濂戠爩鍣ㄦ皵杩勫純姹芥常璁帎"], +["c740","鑼捐尶鑽佽崅鑽勮崊鑽堣崐",4,"鑽撹崟",4,"鑽濊崲鑽",6,"鑽硅嵑鑽",6,"鑾囪巿鑾婅帇鑾岃帊鑾忚帎鑾戣帞鑾曡帠鑾楄帣鑾氳帩鑾熻帯",6,"鑾幁鑾"], +["c780","鑾幍鑾昏幘鑾胯弬鑿冭弰鑿嗚張鑿夎弸鑿嶈弾鑿愯彂鑿掕彄鑿曡彈鑿欒彋鑿涜彏鑿㈣彛鑿よ彟鑿ц彣鑿彫鑿伆娲界壍鎵﹂拵閾呭崈杩佺浠熻唉涔鹃粩閽遍挸鍓嶆綔閬f祬璋村爲宓屾瑺姝夋灙鍛涜厰缇屽钄峰己鎶㈡﹪閿规暡鎮勬ˉ鐬т箶渚ㄥ阀闉樻挰缈樺抄淇忕獚鍒囪寗涓旀獌閽︿镜浜茬Е鐞村嫟鑺规搾绂藉瘽娌侀潚杞绘阿鍊惧嵖娓呮搸鏅存鞍鎯呴》璇峰簡鐞肩┓绉嬩笜閭辩悆姹傚洑閰嬫硡瓒嬪尯铔嗘洸韬眻椹辨笭"], +["c840","鑿彲鑿",4,"鑿鸿徎鑿艰従鑿胯悁钀傝悈钀囪悎钀夎悐钀愯悞",5,"钀欒悮钀涜悶",5,"钀",7,"钀",5,"钀硅惡钀昏惥",7,"钁囪憟钁"], +["c880","钁",6,"钁",4,"钁樿憹钁炶憻钁犺憿钁",4,"钁懏钁懓钁茶懘钁疯懝钁昏懠鍙栧ǘ榫嬭叮鍘诲湀棰ф潈閱涙硥鍏ㄧ棅鎷崇姮鍒稿姖缂虹倲鐦稿嵈楣婃Ψ纭泙瑁欑兢鐒剁噧鍐夋煋鐡ゅ¥鏀樺毞璁╅ザ鎵扮粫鎯圭儹澹粊浜哄繊闊т换璁ゅ垉濡婄韩鎵斾粛鏃ユ垘鑼歌搲鑽h瀺鐔旀憾瀹圭粧鍐楁弶鏌旇倝鑼硅爼鍎掑濡傝颈涔虫睗鍏ヨぅ杞槷钑婄憺閿愰棸娑﹁嫢寮辨拻娲掕惃鑵硟濉炶禌涓夊弫"], +["c940","钁",4,"钂冭拕钂呰拞钂婅拲钂",7,"钂樿挌钂涜挐钂炶挓钂犺挗",12,"钂拌挶钂宠挼钂惰挿钂昏捈钂捐搥钃傝搩钃呰搯钃囪搱钃嬭搶钃庤搹钃掕摂钃曡摋"], +["c980","钃",4,"钃炶摗钃㈣摛钃",4,"钃摦钃摫",10,"钃借摼钄钄佽攤浼炴暎妗戝棑涓ф悢楠氭壂瀚傜憻鑹叉订妫儳鑾庣爞鏉鍒规矙绾卞偦鍟ョ厼绛涙檼鐝婅嫬鏉夊北鍒犵吔琛棯闄曟搮璧¤喅鍠勬睍鎵囩籍澧掍激鍟嗚祻鏅屼笂灏氳3姊㈡崕绋嶇儳鑺嶅嫼闊跺皯鍝ㄩ偟缁嶅ア璧婅泧鑸岃垗璧︽憚灏勬厬娑夌ぞ璁剧牱鐢冲懟浼歌韩娣卞缁呯娌堝濠剁敋鑲炬厧娓楀0鐢熺敟鐗插崌缁"], +["ca40","钄",8,"钄嶈攷钄忚攼钄掕敂钄曡敄钄樿敊钄涜敎钄濊敒钄犺敘",8,"钄",9,"钄",4,"钑勮晠钑嗚晣钑",10], +["ca80","钑楄晿钑氳暃钑滆暆钑",4,"钑ヨ暒钑ц暕",8,"钑宠暤钑惰暦钑歌暭钑借暱钖钖佺渷鐩涘墿鑳滃湥甯堝け鐙柦婀胯瘲灏歌櫛鍗佺煶鎷炬椂浠椋熻殌瀹炶瘑鍙茬煝浣垮睅椹跺寮忕ず澹笘鏌夸簨鎷獡閫濆娍鏄棞鍣備粫渚嶉噴楗版皬甯傛亙瀹よ璇曟敹鎵嬮瀹堝鎺堝敭鍙楃槮鍏借敩鏋㈡⒊娈婃姃杈撳彅鑸掓窇鐤忎功璧庡鐔熻柉鏆戞洐缃茶渶榛嶉紶灞炴湳杩版爲鏉熸垗绔栧搴舵暟婕"], +["cb40","钖傝杻钖嗚枅",6,"钖",10,"钖",6,"钖ヨ枽钖ц柀钖柆钖柋",5,"钖歌柡",6,"钘",6,"钘",4,"钘戣棐"], +["cb80","钘旇棖",5,"钘",6,"钘ヨ棪钘ц棬钘",14,"鎭曞埛鑰嶆憯琛扮敥甯呮爴鎷撮湝鍙岀埥璋佹按鐫$◣鍚灛椤鸿垳璇寸鏈旂儊鏂挄鍢舵濈鍙镐笣姝昏倖瀵哄棧鍥涗己浼奸ゲ宸虫澗鑰告傞閫佸畫璁艰鎼滆墭鎿炲椊鑻忛叆淇楃礌閫熺矡鍍冲婧璇夎們閰歌挏绠楄櫧闅嬮殢缁ラ珦纰庡瞾绌楅亗闅х瀛欐崯绗嬭搼姊攩缂╃悙绱㈤攣鎵濉屼粬瀹冨ス濉"], +["cc40","钘硅椇钘艰椊钘捐榾",4,"铇",10,"铇掕槗铇旇槙铇",15,"铇ㄨ槳",13,"铇硅樅铇昏樈铇捐樋铏"], +["cc80","铏",11,"铏掕檽铏",4,"铏涜櫆铏濊櫉铏犺櫋铏",7,"鐛尀韫嬭笍鑳庤嫈鎶彴娉伴厼澶佹卑鍧嶆憡璐槴婊╁潧妾鐥版江璋皥鍧︽琚掔⒊鎺㈠徆鐐堡濉樻惇鍫傛鑶涘攼绯栧樿汉娣岃稛鐑帍娑涙粩缁﹁悇妗冮冩窐闄惰濂楃壒钘よ吘鐤艰獖姊墧韪㈤攽鎻愰韫勫暭浣撴浛鍤忔儠娑曞墐灞夊ぉ娣诲~鐢扮敎鎭垟鑵嗘寫鏉¤竣鐪鸿烦璐撮搧甯栧巺鍚儍"], +["cd40","铏櫙铏拌櫜",6,"铓",6,"铓",4,"铓旇殩",5,"铓",4,"铓ヨ殾铓毉铓毑铓宠毞铓歌毠铓",4,"铔佽泜铔冭泤铔堣泴铔嶈洅铔撹洉铔栬洍铔氳洔"], +["cd80","铔濊洜铔¤洟铔h洢铔﹁洤铔ㄨ洩铔洭铔浀铔惰浄铔鸿浕铔艰浗铔胯渷铚勮渽铚嗚湅铚岃湈铚忚湊铚戣湐铚栨眬寤峰仠浜涵鎸鸿墖閫氭閰灣鍚岄摐褰ょ妗舵崊绛掔粺鐥涘伔鎶曞ご閫忓嚫绉冪獊鍥惧緬閫旀秱灞犲湡鍚愬厰婀嶅洟鎺ㄩ鑵胯湑瑜鍚炲悲鑷鎷栨墭鑴遍傅闄椹┘妞Ε鎷撳斁鎸栧搰铔欐醇濞冪摝琚滄澶栬睂寮咕鐜╅〗涓哥兎瀹岀鎸芥櫄鐨栨儖瀹涘〾涓囪厱姹帇浜℃瀴缃戝線鏃烘湜蹇樺濞"], +["ce40","铚欒湜铚濊湡铚犺湦铚﹁湩铚ㄨ湭铚湰铚湳铚拌湶铚宠湹铚惰湼铚硅満铚艰溄铦",6,"铦婅潒铦嶈潖铦愯潙铦掕潝铦曡潠铦樿潥",5,"铦¤潰铦",7,"铦澅铦茶澇铦"], +["ce80","铦疯澑铦硅澓铦胯瀫铻佽瀯铻嗚瀲铻夎瀶铻岃瀻",4,"铻旇灂铻栬灅",6,"铻",4,"宸嶅井鍗遍煢杩濇鍥村敮鎯熶负娼嶇淮鑻囪悗濮斾紵浼熬绾湭钄氬懗鐣忚儍鍠傞瓘浣嶆腑璋撳皦鎱板崼鐦熸俯铓婃枃闂荤汗鍚荤ǔ绱婇棶鍡$縼鐡対铚楁丁绐濇垜鏂″崸鎻℃矁宸憸閽ㄤ箤姹¤灞嬫棤鑺滄ⅶ鍚惧惔姣嬫浜旀崅鍗堣垶浼嶄井鍧炴垔闆炬櫎鐗╁嬁鍔℃偀璇様鐔欐瀽瑗跨鐭芥櫚鍢诲惛閿$壓"], +["cf40","铻ヨ灕铻ц灘铻灝铻拌灡铻茶灤铻惰灧铻歌灩铻昏灱铻捐灴锜",4,"锜囪焾锜夎煂",4,"锜",6,"锜滆煗锜炶煙锜¤煝锜h煠锜﹁煣锜ㄨ煩锜煬锜煰",9], +["cf80","锜鸿熁锜艰熃锜胯爛锠佽爞锠",5,"锠",7,"锠旇牀锠樿牂锠氳牅",4,"锠g█鎭笇鎮夎啙澶曟儨鐔勭儻婧睈鐘妾勮甯範濯冲枩閾f礂绯婚殭鎴忕粏鐬庤櫨鍖i湠杈栨殗宄′緺鐙笅鍘﹀鍚撴巰閿ㄥ厛浠欓矞绾ゅ捀璐よ鑸烽棽娑庡鸡瀚屾樉闄╃幇鐚幙鑵洪缇″闄烽檺绾跨浉鍘㈤暥棣欑瑗勬箻涔$繑绁ヨ鎯冲搷浜」宸锋鍍忓悜璞¤惂纭濋渼鍓婂摦鍤i攢娑堝娣嗘檽"], +["d040","锠",13,"锠",5,"锠鸿牷锠借牼锠胯琛傝琛",5,"琛",5,"琛曡琛樿",6,"琛﹁¨琛…琛”琛宠〈琛佃《琛歌」琛"], +["d080","琛昏〖琚琚冭琚囪琚婅琚庤琚愯琚撹琚曡",4,"琚",4,"琚hⅴ",5,"灏忓瓭鏍¤倴鍟哥瑧鏁堟浜涙瓏铦庨瀷鍗忔専鎼洪偑鏂滆儊璋愬啓姊板嵏锜规噲娉勬郴璋㈠睉钖姱閿屾杈涙柊蹇诲績淇¤鏄熻叆鐚╂兒鍏村垜鍨嬪舰閭㈣閱掑垢鏉忔у鍏勫嚩鑳稿寛姹归泟鐔婁紤淇緸鏈藉梾閿堢琚栫唬澧熸垖闇铏氬槝椤诲緪璁歌搫閰楀彊鏃簭鐣滄仱绲┛缁画杞╁枾瀹f偓鏃嬬巹"], +["d140","琚琚琚",4,"琚歌⒐琚鸿⒒琚借⒕琚胯瑁冭瑁囪瑁婅瑁岃瑁忚瑁戣瑁栬瑁",4,"瑁犺!瑁﹁'瑁",6,"瑁茶5瑁惰7瑁鸿;瑁借?瑜瑜佽",5], +["d180","瑜夎",4,"瑜戣",4,"瑜",4,"瑜㈣ぃ瑜よう瑜цえ瑜╄が瑜ぎ瑜け瑜茶こ瑜佃し閫夌櫍鐪╃粴闈磋枦瀛︾┐闆鍕嬬啅寰棳璇㈠椹贰娈夋睕璁閫婅繀鍘嬫娂楦﹂腑鍛涓娊鐗欒殰宕栬娑泤鍝戜簹璁剁剦鍜介槈鐑熸饭鐩愪弗鐮旇湌宀╁欢瑷棰滈槑鐐庢部濂勬帺鐪艰婕旇壋鍫扮嚂鍘岀牃闆佸攣褰︾劙瀹磋皻楠屾畠澶腐绉ф潹鎵蒋鐤$緤娲嬮槼姘т话鐥掑吇鏍锋季閭鑵板鐟"], +["d240","瑜",8,"瑗傝瑗",24,"瑗",5,"瑗",19,"瑗"], +["d280","瑗借ゾ瑕瑕傝瑕呰",26,"鎽囧哀閬ョ獞璋e鍜垁鑽鑰妞板檸鑰剁埛閲庡喍涔熼〉鎺栦笟鍙舵洺鑵嬪娑蹭竴澹瑰尰鎻栭摫渚濅紛琛i澶烽仐绉讳华鑳扮枒娌傚疁濮ㄥ綕妞呰殎鍊氬凡涔欑煟浠ヨ壓鎶戞槗閭戝惫浜垮焦鑷嗛歌倓鐤害瑁旀剰姣呭繂涔夌泭婧㈣璁皧璇戝紓缈肩繉缁庤尩鑽洜娈烽煶闃村Щ鍚熼摱娣瘏楗肮寮曢殣"], +["d340","瑕",30,"瑙冭瑙撹瑙曡瑙樿瑙涜瑙熻瑙¤Б瑙よЁ瑙ㄨЗ瑙К瑙М瑙拌П瑙茶Т",6], +["d380","瑙",4,"瑷",5,"瑷",21,"鍗拌嫳妯卞┐楣板簲缂ㄨ幑钀よ惀鑽ц潎杩庤耽鐩堝奖棰栫‖鏄犲摕鎷ヤ剑鑷冪棃搴搁泹韪婅浌鍜忔吵娑屾案鎭垮媷鐢ㄥ菇浼樻偁蹇у挨鐢遍偖閾鐘规补娓搁厜鏈夊弸鍙充綉閲夎鍙堝辜杩傛筏浜庣泜姒嗚櫈鎰氳垎浣欎繛閫鹃奔鎰夋笣娓旈殔浜堝ū闆ㄤ笌灞跨瀹囪缇界帀鍩熻妺閮佸悂閬囧柣宄尽鎰堟鐙辫偛瑾"], +["d440","瑷",31,"瑷",8,"瑭",21], +["d480","瑭",25,"瑭",6,"娴村瘬瑁曢璞┉楦虫笂鍐ゅ厓鍨h鍘熸彺杈曞洯鍛樺渾鐚挎簮缂樿繙鑻戞効鎬ㄩ櫌鏇扮害瓒婅穬閽ュ渤绮ゆ湀鎮﹂槄鑰樹簯閮у寑闄ㄥ厑杩愯暣閰濇檿闊靛瓡鍖濈牳鏉傛牻鍝夌伨瀹拌浇鍐嶅湪鍜辨敀鏆傝禐璧冭剰钁伃绯熷嚳钘绘灒鏃╂尽铓よ簛鍣犵殏鐏剁嚗璐f嫨鍒欐辰璐兼庡鎲庢浘璧犳墡鍠虫福鏈涧"], +["d540","瑾",7,"瑾",7,"瑾",46], +["d580","璜",32,"閾¢椄鐪ㄦ爡姒ㄥ拫涔嶇偢璇堟憳鏂嬪畢绐勫哄鐬绘瑭圭矘娌剧洀鏂╄緱宕睍铇告爤鍗犳垬绔欐箾缁芥绔犲桨婕冲紶鎺屾定鏉栦笀甯愯处浠楄儉鐦撮殰鎷涙槶鎵炬布璧电収缃╁厗鑲囧彫閬姌鍝茶洶杈欒呴敆钄楄繖娴欑弽鏂熺湡鐢勭牕鑷昏礊閽堜睛鏋曠柟璇婇渿鎸晣闃佃捀鎸g潄寰佺嫲浜夋旀暣鎷鏀"], +["d640","璜",34,"璎",27], +["d680","璎よ璎",30,"甯х棁閮戣瘉鑺濇灊鏀惐铚樼煡鑲㈣剛姹佷箣缁囪亴鐩存娈栨墽鍊间緞鍧鎸囨瓒惧彧鏃ㄧ焊蹇楁寶鎺疯嚦鑷寸疆甯滃硻鍒舵櫤绉╃璐ㄧ倷鐥旀粸娌荤獟涓泤蹇犻挓琛风粓绉嶈偪閲嶄徊浼楄垷鍛ㄥ窞娲茶瘜绮ヨ酱鑲樺笟鍜掔毐瀹欐樇楠ょ彔鏍洓鏈辩尓璇歌瘺閫愮鐑涚叜鎷勭灘鍢变富钁楁煴鍔╄泙璐摳绛"], +["d740","璀",31,"璀",4,"璀",25], +["d780","璁",24,"璁璁昏瘒璇愯璋夎盀浣忔敞绁濋┗鎶撶埅鎷戒笓鐮栬浆鎾拌禋绡嗘々搴勮濡嗘挒澹姸妞庨敟杩借禈鍧犵紑璋嗗噯鎹夋嫏鍗撴鐞㈣寔閰屽晞鐫鐏兼祳鍏瑰挩璧勫Э婊嬫穭瀛滅传浠旂苯婊撳瓙鑷笉瀛楅瑑妫曡釜瀹楃患鎬荤旱閭硅蛋濂忔弽绉熻冻鍗掓棌绁栬瘏闃荤粍閽荤簜鍢撮唹鏈缃皧閬垫槰宸︿綈鏌炲仛浣滃潗搴"], +["d840","璋",8,"璞傝眱璞勮眳璞堣眾璞嬭睄",7,"璞栬睏璞樿睓璞",5,"璞",6,"璞",6,"璞磋钡璞惰狈璞",6,"璨冭矂璨嗚矅"], +["d880","璨堣矉璨",6,"璨曡矕璨楄矙",20,"浜嶄笇鍏涓愬豢鍗呬笗浜樹笧楝插鍣╀辅绂轰缚鍖曚箛澶埢鍗皭鍥熻儰棣楁瘬鐫鹃紬涓朵簾榧愪箿涔╀簱鑺堝瓫鍟槒浠勫帊鍘濆帲鍘ュ幃闈ヨ禎鍖氬彽鍖﹀尞鍖捐禍鍗﹀崳鍒傚垐鍒庡埈鍒冲埧鍓鍓屽墳鍓″墱钂壗鍔傚妬鍔愬姄鍐傜綌浜讳粌浠変粋浠ㄤ弧浠粸浼涗怀浼饯浠典讥浼т級浼綖浣ф敻浣氫綕"], +["d940","璨",62], +["d980","璩",32,"浣熶綏浼蹭冀浣朵酱渚戜緣渚冧緩浣句交渚郊渚緮淇︿卡淇繀淇氫浚淇滀繎淇熶扛鍊╁亴淇冲忓烤鍊滃屽ュㄥ伨鍋冨仌鍋堝亷鍋伝鍌ュ偋鍌╁偤鍍栧剢鍍儸鍍﹀儺鍎囧剫浠濇敖浣樹渐淇庨緺姹嗙贝鍏方榛夐鍐佸鍕瑰實瑷囧寪鍑鍏曚籂鍏栦撼琛ⅳ浜佃剶瑁掔瀣磋爟缇稿啱鍐卞喗鍐"], +["da40","璐",14,"璐犺祽璧掕禇璧熻单璧ㄨ旦璧惮璧弹璧辫挡璧",8,"瓒傝秲瓒嗚秶瓒堣秹瓒",4,"瓒掕稉瓒",9,"瓒犺丁"], +["da80","瓒㈣钉",12,"瓒茶抖瓒疯豆瓒昏督璺璺佽穫璺呰穱璺堣穳璺婅穽璺愯窉璺撹窋鍑囧問鍐㈠啣璁犺璁ц璁磋璁疯瘋璇冭瘚璇忚瘞璇掕瘬璇旇瘱璇樿瘷璇滆療璇犺璇ㄨ璇璇宠璇硅璇胯皜璋傝皠璋囪皩璋忚皯璋掕皵璋曡皷璋欒皼璋樿皾璋熻盃璋¤哎璋ц蔼璋爱璋安璋宠暗璋跺崺鍗洪槤闃㈤槨闃遍槳闃介樇闄傞檳闄旈櫉闄ч櫖闄查櫞闅堥殟闅楅毎閭楅倹閭濋倷閭偂閭撮偝閭堕偤"], +["db40","璺曡窐璺欒窚璺犺贰璺㈣伐璺﹁阀璺╄翻璺钒璺辫凡璺磋范璺艰肪",6,"韪嗚竾韪堣笅韪嶈笌韪愯笐韪掕笓韪",7,"韪犺浮韪",4,"韪腑韪拌覆韪宠复韪惰阜韪歌富韪艰妇"], +["db80","韪胯箖韫呰箚韫",4,"韫",5,"韫",11,"韫ц龚韫公韫贡閭搁偘閮忛儏閭鹃儛閮勯儑閮撻儲閮㈤儨閮楅儧閮儻閮鹃剟閯㈤劄閯i劚閯劰閰冮厗鍒嶅鍔㈠姮鍔娋鍝垮嫄鍕栧嫲鍙熺嚠鐭嶅淮鍑靛嚰楝幎寮佺暁宸潓鍨╁灐濉惧⒓澹呭鍦╁湰鍦湷鍦瑰湲鍦潨鍦诲潅鍧╁瀰鍧瀱鍧煎澔鍧ㄥ澀鍧跺澇鍨灓鍨屽灢鍩忓灖鍨村灀鍨犲煏鍩樺煔鍩欏煉鍨稿煷鍩煾鍩ゅ煗"], +["dc40","韫宠沟韫",4,"韫借咕韬韬傝簝韬勮簡韬",6,"韬戣簰韬撹簳",6,"韬濊簾",11,"韬寒韬拌罕韬",6,"韬",7], +["dc80","杌",10,"杌",21,"鍫嬪爫鍩藉煭鍫鍫炲牂濉勫牋濉ュ‖澧佸澧氬棣ㄩ紮鎳胯壒鑹借壙鑺忚妸鑺ㄨ妱鑺庤姂鑺楄姍鑺姼鑺捐姲鑻堣媻鑻h姌鑺疯姰鑻嬭媽鑻佽姪鑺磋姟鑺姛鑻勮嫀鑺よ嫛鑼夎嫹鑻よ審鑼囪嫓鑻磋嫆鑻樿寣鑻昏嫇鑼戣寶鑼嗚寯鑼曡嫚鑻曡寽鑽戣崨鑽滆寛鑾掕尲鑼磋尡鑾涜崬鑼崗鑽囪崈鑽熻崁鑼楄崰鑼尯鑼宠崷鑽"], +["dd40","杌",62], +["dd80","杓",32,"鑽ㄨ寷鑽╄崿鑽嵀鑽幇鑽歌幊鑾磋帬鑾帗鑾滆巺鑽艰幎鑾╄嵔鑾歌嵒鑾樿帪鑾ㄨ幒鑾艰弫钀佽彞鑿樺爣钀樿悑鑿濊徑鑿栬悳钀歌悜钀嗚彅鑿熻悘钀冭徃鑿硅彧鑿呰弨钀﹁彴鑿¤憸钁戣憵钁欒懗钂囪拡钁鸿拤钁歌惣钁嗚懇钁惰拰钂庤惐钁搧钃嶈搻钃﹁捊钃撹搳钂胯捄钃犺挕钂硅挻钂楄摜钃h攲鐢嶈敻钃拌敼钄熻敽"], +["de40","杞",32,"杞線杈岃緬杈濊緺杈¤劲杈よ茎杈﹁晶杈粳杈井杈静杈宠敬杈佃痉杈歌竞杈昏炯杈胯縺杩冭繂"], +["de80","杩",4,"杩忚繏杩栬織杩氳繝杩¤浚杩ц楷杩勘杩茶看杩佃慷杩鸿炕杩艰烤杩块囬堥岄庨撻曢樿晼钄昏摽钃艰暀钑堣暔钑よ暈钑虹灑钑冭暡钑昏枻钖ㄨ枃钖忚暪钖枩钖呰柟钖疯柊钘撹梺钘滆椏铇ц槄铇╄槚铇煎痪寮堝ぜ濂佽峰濂氬鍖忓阿灏ュ艾灏存墝鎵姛鎶绘媻鎷氭嫍鎷將鎷舵尮鎹嬫崈鎺彾鎹辨嵑鎺庢幋鎹幀鎺婃崺鎺幖鎻叉徃鎻犳徔鎻勬彏鎻庢憭鎻嗘幘鎽呮憗鎼嬫悰鎼犳悓鎼︽悺鎽炴拕鎽挅"], +["df40","閫欓滈iらラ",5,"閫",4,"閫烽归洪介块亐閬冮亝閬嗛亪",4,"閬庨仈閬曢仏閬欓仛閬",5,"閬ら仸閬ч仼閬伀閬伅",4,"閬",6,"閬鹃倎"], +["df80","閭勯倕閭嗛倗閭夐倞閭",4,"閭掗倲閭栭倶閭氶倻閭為偀閭犻偆閭ラ偋閭ㄩ偐閭偔閭查偡閭奸偨閭块儉鎽烘挿鎾告挋鎾烘搥鎿愭摋鎿ゆ摙鏀夋敟鏀紜蹇掔敊寮戝崯鍙卞徑鍙╁彣鍙诲悞鍚栧悊鍛嬪憭鍛撳憯鍛栧憙鍚″憲鍛欏悾鍚插拏鍜斿懛鍛卞懁鍜氬挍鍜勫懚鍛﹀挐鍝愬挱鍝傚挻鍝掑挧鍜﹀摀鍝斿懖鍜e摃鍜诲捒鍝屽摍鍝氬摐鍜╁挭鍜ゅ摑鍝忓摓鍞涘摟鍞犲摻鍞斿摮鍞㈠敚鍞忓攽鍞у敧鍟у枏鍠靛晧鍟晛鍟曞斂鍟愬敿"], +["e040","閮傞儍閮嗛儓閮夐儖閮岄儘閮掗償閮曢儢閮橀儥閮氶優閮熼儬閮i儰閮ラ儵閮儸閮儼閮遍儾閮抽兊閮堕兎閮归兒閮婚兗閮块剙閯侀剝閯",19,"閯氶剾閯"], +["e080","閯濋劅閯犻劇閯",10,"閯伴劜",6,"閯",8,"閰勫敺鍟栧暤鍟跺暦鍞冲敯鍟滃枊鍡掑杻鍠卞柟鍠堝杹鍠熷暰鍡栧枒鍟诲棢鍠藉柧鍠斿枡鍡椃鍡夊槦鍡戝棲鍡棓鍡﹀棟鍡勫棷鍡ュ棽鍡冲棇鍡嶅棬鍡靛棨杈斿槥鍢堝槍鍢佸槫鍢e椌鍢鍢у槶鍣樺樄鍣楀槵鍣嶅櫌鍣欏櫆鍣屽檾鍤嗗櫎鍣卞櫕鍣诲櫦鍤呭殦鍤洈鍥楀洕鍥″浀鍥浌鍥垮渼鍦婂湁鍦滃笍甯欏笖甯戝副甯诲讣"], +["e140","閰呴厙閰堥厬閰撻厰閰曢厲閰橀厵閰涢厹閰熼厾閰﹂収閰ㄩ叓閰叧閰洪吇閰奸唨",4,"閱嗛唸閱婇啂閱忛啌",6,"閱",5,"閱",5,"閱啲閱伴啽閱查喅閱堕喎閱搁喒閱"], +["e180","閱",10,"閲堥噵閲愰噿",9,"閲",8,"甯峰箘骞斿箾骞炲埂宀屽焙宀嶅矏宀栧矆宀樺矙宀戝矚宀滃驳宀㈠步宀搏宀卞玻宄佸卜宄勫硳宄ゅ硧宄ュ磦宕冨揣宕﹀串宕ゅ礊宕嗗礇宓樺淳宕村唇宓禌宓禎宓祴宓婂旦宓村秱宥欏稘璞冲斗宸呭匠褰峰緜寰囧緣寰屽緯寰欏緶寰ㄥ经寰靛炯琛㈠健鐘姲鐘寸姺鐘哥媰鐙佺嫀鐙嶇嫆鐙ㄧ嫰鐙╃嫴鐙寸嫹鐚佺嫵鐚冪嫼"], +["e240","閲",62], +["e280","閳",32,"鐙荤寳鐚撶尅鐚婄尀鐚濈寱鐚㈢尮鐚ョ尙鐚哥尡鐛愮崓鐛楃崰鐛嵂鐛捐垱澶ラ'澶ゅ楗iェ",5,"楗撮シ楗介棣勯棣婇棣愰棣撻棣曞簚搴戝簨搴栧亥搴犲汗搴靛壕搴宠祿寤掑粦寤涘花寤喓蹇勫繅蹇栧繌鎬冨慨鎬勫俊蹇ゅ烤鎬呮嗗开蹇扛鎬欐垫︽涙忔嶆╂婃挎℃伕鎭规伝鎭烘亗"], +["e340","閴",45,"閴",16], +["e380","閵",7,"閵",24,"鎭伣鎮栨倸鎮倽鎮冩倰鎮屾倹鎯偦鎮辨儩鎯樻儐鎯氭偞鎰犳劍鎰曟劊鎯存剙鎰庢劔鎱婃叺鎲啍鎲ф喎鎳旀嚨蹇濋毘闂╅棲闂遍棾闂甸椂闂奸椌闃冮槃闃嗛槇闃婇構闃岄槏闃忛槖闃曢槚闃楅槞闃氫脯鐖挎垥姘垫睌姹滄眾娌f矃娌愭矓娌屾报姹╂贝姹舵矄娌╂硱娉旀箔娉锋掣娉辨硹娌叉碃娉栨澈娉钞娌辨硴娉尘"], +["e440","閵",5,"閵",24,"閶",31], +["e480","閶",32,"娲规揣娲屾祪娴堟磭娲勬礄娲庢传娴嶆串娲垫礆娴忔祾娴旀闯娑戞弹娑炴稜娴炴稉娑旀禍娴犳导娴f笟娣囨穮娣炴笌娑挎窢娓戞乏娣濇窓娓栨东娓屾懂娓巩婀庢公婧叉篃婧嗘箵婀旀覆娓ユ箘婊熸罕婧樻粻婕虎婧ユ骇婧芥夯婧锋粭婧存粡婧忔粋婧熸舰娼嗘絿婕ゆ紩婊规集婕舵綃娼存吉婕夋缉婢夋緧婢屾礁娼叉郊娼烘繎"], +["e540","閷",51,"閷",10], +["e580","閸",31,"閸繅婢ф竟婢舵總婵℃慨婵炴繝婵氱g涚圭电亸鐏炲畝瀹勫畷瀹撳瀹哥敮楠炴惔瀵ゅ瑜板韫囪瑖杈惰繐杩曡骏杩郡杩╄喀杩宠卡閫呴勯嬮﹂戦嶉栭¢甸堕亜閬戦亽閬愰仺閬橀仮閬涙毠閬撮伣閭傞倛閭冮倠褰愬綏褰栧綐灏诲挮灞愬睓瀛卞保灞︾炯寮缉寮壌寮奸灞濡冨濡╁Κ濡"], +["e640","閸",34,"閹",27], +["e680","閹",29,"閺嬮弻閺嶅濮婂Λ濡炲Δ濮掑Σ濡濡惧▍濞嗗濞堝В濮樺Ч濞屽▔濞插ù濞戝ǎ濞撳﹢濠у⿰濠曞濠㈠┑鑳濯涘┓濠哄瀚瀚掑珨濯稿珷瀚e瀚栧瀚樺珳瀣夊瑮瀣栧瀣峰瓈灏曞皽瀛氬瀛冲瓚瀛撳椹甸┓椹搁┖椹块┙楠楠侀獏楠堥獖楠愰獟楠撻獤楠橀獩楠滈獫楠熼獱楠㈤楠ラ绾熺骸绾g亥绾ㄧ憨"], +["e740","閺",7,"閺",54], +["e780","閻",32,"绾喊绾剧粈缁佺粋缁夌粙缁岀粣缁旂粭缁涚粻缁$花缁划缁槐缁茬紞缁剁缓缁荤痪缂佺紓缂冪紘缂堢紜缂岀紡缂戠紥缂楃紮缂滅紱缂熺肌",6,"缂极缂辑缂",4,"缂靛购鐣垮窙鐢鹃倳鐜庣帒鐜帰鐜熺弿鐝傜彂鐜风幊鐝鐝夌張鐝ョ彊椤肩悐鐝╃彠鐝炵幒鐝茬悘鐞憶鐞︾惀鐞ㄧ惏鐞惉"], +["e840","閻",14,"閻",43,"閼懎閼懐"], +["e880","閼",20,"閽戦挅閽橀搰閾忛摀閾旈摎閾﹂摶閿滈敔鐞涚悮鐟佺憸鐟楃憰鐟欑懛鐟懢鐠滅拵鐠鐠佺拠鐠嬬挒鐠ㄧ挬鐠愮挧鐡掔捄闊煫闊潓鏉撴潪鏉堟潻鏋ユ瀲鏉澇鏋樻灖鏉垫灗鏋炴灜鏋嬫澐鏉兼煱鏍夋煒鏍婃煩鏋版爩鏌欐灥鏌氭灣鏌濇爛鏌冩灨鏌㈡爭鏌佹熃鏍叉牫妗犳 妗庢、妗勬·姊冩牆妗曟ˇ妗佹¨妗鏍炬妗夋牘姊垫妗存》姊撴~妫傛ギ妫兼妞犳9"], +["e940","閿ч敵閿介晝闀堥晪闀曢暁闀犻暜闀撮暤闀",7,"闁",42], +["e980","闁",32,"妞ゆ0妞嬫妤楁#妞愭ケ妞规妤傛姒勬カ姒姒樻ジ妞存姒囨妲庢妤︽ィ妤规姒ф姒Ν妲旀Ρ妲佹妲熸妲犳妲挎ǒ妲妯樻━妲叉﹦妯炬獱姗愭妯垫獛姗规ń妯ㄦ姗兼獞妾愭妾楁鐚风崚娈佹畟娈囨畡娈掓畵娈嶆畾娈涙娈将杞奖杞茶匠杞佃蕉杞歌椒杞硅胶杞艰骄杈佽緜杈勮緡杈"], +["ea40","闂",27,"闂椏闃囬槗闃橀槢闃為槧闃",6,"闃槵闃槸闃伴樂闃搁樄闃洪樉闄侀檭闄婇檸闄忛檻闄掗檽闄栭櫁"], +["ea80","闄橀櫃闄氶櫆闄濋櫈闄犻櫍闄ラ櫐闄櫗",4,"闄抽櫢",12,"闅囬殙闅婅緧杈庤緩杈樿練杌庢垕鎴楁垱鎴熸垻鎴℃垾鎴ゆ埇鑷х摨鐡寸摽鐢忕攽鐢撴敶鏃棷鏃版槉鏄欐澆鏄冩槙鏄鐐呮浄鏄濇槾鏄辨樁鏄佃嗘櫉鏅旀檨鏅忔櫀鏅℃櫁鏅锋殑鏆屾毀鏆濇毦鏇涙洔鏇︽洨璐茶闯璐惰椿璐借祤璧呰祮璧堣祲璧囪祶璧曡禉瑙囪瑙嬭瑙庤瑙愯鐗姛鐗濈墻鐗壘鐗跨妱鐘嬬妽鐘忕姃鎸堟尣鎺"], +["eb40","闅岄殠闅戦殥闅撻殨闅栭殮闅涢殱",9,"闅",7,"闅遍毑闅撮毜闅烽毟闅洪毣闅块泜闆冮泩闆婇泲闆愰洃闆撻洈闆",9,"闆",6,"闆"], +["eb80","闆洯闆洶闆遍洸闆撮浀闆搁浐闆婚浖闆介浛闇傞渻闇呴湂闇嬮湆闇愰湋闇掗湐闇曢湕",4,"闇濋湡闇犳惪鎿樿勬姣虫姣垫姘呮皣姘嗘皪姘曟皹姘欐皻姘℃癌姘ゆ蔼姘叉數鏁曟暙鐗嶇墥鐗栫埌铏㈠垨鑲熻倻鑲撹偧鏈婅偨鑲辫偒鑲偞鑲疯儳鑳ㄨ儵鑳儧鑳傝儎鑳欒儘鑳楁湊鑳濊儷鑳辫兇鑳剭鑴庤儾鑳兼湑鑴掕睔鑴惰劄鑴剺鑴茶厛鑵岃厯鑵磋厵鑵氳叡鑵犺叐鑵艰吔鑵収濉嶅鑶堣唫鑶戞粫鑶h啰鑷屾湨鑷婅喕"], +["ec40","闇",8,"闇湰闇湳闇遍湷",4,"闇洪溁闇奸溄闇",18,"闈旈潟闈楅潣闈氶潨闈濋潫闈i潳闈﹂潷闈ㄩ潽",7], +["ec80","闈查澋闈",4,"闈",7,"闉",4,"闉岄瀻闉忛瀽闉撻灂闉栭灄闉",4,"鑷佽啨娆ゆ娆规瓋姝嗘瓩椋戦椋撻椋欓娈冲絸姣傝С鏂愰綉鏂撴柤鏃嗘梽鏃冩棇鏃庢棐鏃栫個鐐滅倴鐐濈偦鐑鐐风偒鐐辩儴鐑婄剱鐒撶剸鐒劚鐓崇厹鐓ㄧ厖鐓茬厞鐓哥吅鐔樼喅鐔电啫鐔犵嚑鐕旂嚙鐕圭垵鐖ㄧ伂鐒樼叇鐔规埦鎴芥墐鎵堟墘绀荤绁嗙绁涚绁撶绁㈢绁犵ク绁хズ绂呯绂氱Η绂冲繎蹇"], +["ed40","闉為灍闉¢灑闉",6,"闉灝闉伴灡闉抽灥",46], +["ed80","闊ら煡闊ㄩ煯",4,"闊撮煼",23,"鎬兼仢鎭氭仹鎭佹仚鎭f偒鎰嗘剭鎱濇啯鎲濇噵鎳戞垎鑲鑱挎矒娉舵芳鐭剁煾鐮鐮夌牀鐮樼爲鏂牠鐮滅牆鐮圭牶鐮荤牊鐮肩牓鐮牐鐮╃纭纭楃牔纭愮纭岀—纰涚纰氱纰滅ⅰ纰g⒉纰圭ⅴ纾旂纾夌,纾茬纾寸绀ょ绀撮緵榛归换榛肩洷鐪勭湇鐩圭渿鐪堢湚鐪㈢湙鐪湨鐪电湼鐫愮潙鐫囩潈鐫氱潹"], +["ee40","闋",62], +["ee80","椤",32,"鐫㈢潵鐫跨瀺鐫界瀫鐬岀瀾鐬熺灎鐬扮灥鐬界敽鐣鐣庣晪鐣堢暃鐣茬暪鐤冪綐缃$綗瑭堢建缃寸奖缃圭緛缃剧泹鐩ヨ牪閽呴拞閽囬拫閽婇拰閽嶉拸閽愰挃閽楅挄閽氶挍閽滈挘閽ら挮閽挱閽挴閽伴挷閽撮挾",4,"閽奸捊閽块搫閾",6,"閾愰搼閾掗摃閾栭摋閾欓摌閾涢摓閾熼摖閾㈤摛閾ラ摟閾ㄩ摢"], +["ef40","椤",5,"棰嬮棰掗棰欓ⅲ棰",37,"椋忛椋旈椋楅椋滈椋",4], +["ef80","椋ラ&椋",30,"閾╅摣閾摨閾抽摯閾甸摲閾归摷閾介摽閿冮攤閿嗛攪閿夐攰閿嶉攷閿忛敀",4,"閿橀敍閿濋敒閿熼敘閿敨閿╅敩閿遍敳閿撮敹閿烽敻閿奸斁閿块晜閿甸晞闀呴晢闀夐晫闀庨晱闀掗晸闀旈晼闀楅晿闀欓暃闀為暉闀濋暋闀㈤暏",8,"闀暠闀查暢閿虹煣鐭泬绉曠Л绉gЙ绋嗗祰绋冪▊绋炵〝"], +["f040","椁",4,"椁庨椁",28,"椁",26], +["f080","楗",9,"楗",12,"楗らウ楗抽ジ楗归セ楗鹃棣冮绋圭ǚ绌戦粡棣ョ┌鐨堢殠鐨撶殭鐨ょ摓鐡犵敩楦犻涪楦",4,"楦查副楦堕父楦烽腹楦洪妇楣侀箓楣勯箚楣囬箞楣夐箣楣岄箮楣戦箷楣楅箽楣涢箿楣為梗楣",6,"楣遍弓楣崇枓鐤旂枛鐤犵枬鐤枺鐤崇柎鐤哥梽鐤辩柊鐥冪梻鐥栫棈鐥g棬鐥︾棨鐥棫鐦冪棻鐥肩椏鐦愮榾鐦呯槍鐦楃槉鐦ョ槝鐦曠槞"], +["f140","棣岄棣",10,"棣﹂Η棣",47], +["f180","椐",32,"鐦涚樇鐦㈢槧鐧鐦槹鐦跨樀鐧冪樉鐦崇檷鐧炵檾鐧滅櫀鐧櫙缈婄绌哥┕绐绐嗙獔绐曠绐犵绐ㄧ绐宠·琛╄〔琛借】琚傝ⅱ瑁嗚⒎琚艰瑁㈣瑁h%瑁辫瑁艰(瑁捐0瑜¤瑜撹瑜婅ご瑜ざ瑗佽ウ瑗荤枊鑳ョ毑鐨寸煖鑰掕旇栬滆犺㈣ヨ﹁ц╄ㄨ辫嬭佃亙鑱嗚亶鑱掕仼鑱辫椤搁棰"], +["f240","椐",62], +["f280","楱",32,"棰夐棰嶉棰旈棰涢棰熼ⅰ棰㈤ⅴ棰﹁檷铏旇櫖铏櫩铏鸿櫦铏昏毃铓嶈殝铓殱铓ц殻铓殦铓╄毝铔勮毜铔庤毎铓鸿毐铓泬铔忚毚铔╄洷铔茶洯铔宠洂铚撹洖铔磋洘铔樿洃铚冭渿铔歌湀铚婅湇铚夎湥铚昏湠铚ヨ湲铚氳溇铦堣湸铚辫湬铚疯溈铻傝湤铦借澗铦昏潬铦拌潓铦瀷铦撹潱铦艰潳铦欒潵铻撹灟铻ㄨ煉"], +["f340","椹",17,"椹查獌楠夐獚楠庨獢楠曢獧楠﹂",6,"楠查楠撮楠归楠介楠块珒楂勯珕",4,"楂嶉珟楂忛珢楂掗珨楂曢珫楂楅珯楂氶珱楂"], +["f380","楂濋珵楂犻楂i楂ラ楂ㄩ楂楂",8,"楂洪",6,"楝勯瑓楝嗚焼铻堣瀰铻灄铻冭灚锜ヨ灛铻佃灣锜嬭煋铻借煈锜锜婅煕锜煚锜爾锠撹熅锠婅牄锠¤牴锠肩级缃傜絼缃呰垚绔虹绗堢瑑绗勭瑫绗婄绗忕瓏绗哥绗欑绗辩瑺绗ョ绗崇绗炵瓨绛氱瓍绛电瓕绛濈瓲绛绛㈢绛辩異绠︾绠哥绠濈绠呯绠滅绠绡戠瘉绡岀瘽绡氱绡︾绨岀绡肩皬绨栫皨"], +["f440","楝囬瑝",5,"楝愰瑧楝掗瑪",10,"楝犻楝㈤",10,"楝伴楝",7,"楝介楝块瓈榄嗛瓓榄嬮瓕榄庨瓙榄掗瓝榄",5], +["f480","榄",32,"绨熺蔼绨︾案绫佺眬鑷捐垇鑸傝垊鑷鑸¤垻鑸h埈鑸埁鑸埜鑸昏埑鑸磋埦鑹勮墘鑹嬭墢鑹氳墴鑹ㄨ【琚呰瑁樿瑗炵緷缇熺晶缇景缇茬奔鏁夌矐绮濈矞绮炵并绮茬布绮界硜绯囩硨绯嶇硤绯呯硹绯ㄨ壆鏆ㄧ究缈庣繒缈ョ俊缈︾咯缈砍绯哥捣缍︾懂绻囩簺楹搁捍璧宠秳瓒旇稇瓒辫掸璧眹璞夐厞閰愰厧閰忛叅"], +["f540","榄",62], +["f580","楫",32,"閰㈤叀閰伴叐閰吔閰鹃叢閰撮吂閱岄唴閱愰啀閱戦啟閱i啰閱啴閱喌閱撮喓璞曢咕瓒歌帆韪呰箼韫╄兜瓒胯都瓒鸿穭璺栬窏璺氳窞璺庤窂璺涜穯璺贩璺歌罚璺硅坊璺よ笁璺借笖韪濊笩韪府韪h腐韪鸿箑韪硅傅韪借副韫夎箒韫傝箲韫掕箠韫拌苟韫艰汞韫磋簠韬忚簲韬愯簻韬炶备璨傝矈璨呰矘璨旀枦瑙栬瑙氳"], +["f640","榀",62], +["f680","榘",32,"瑙ヨЙ瑙ň璎﹂潛闆╅洺闆渾闇侀湀闇忛湈闇湱闇伴溇榫榫冮緟",5,"榫岄痪榧嬮紞闅归毤闅介泿闆掔灴闆犻妿閵媹閷鹃崻閺婇帍閻鹃懌楸块矀椴呴矄椴囬矆绋i矉椴庨矏椴戦矑椴旈矔椴氶矝椴",5,"椴",4,"椴箔椴舶",7,"椴洪不椴奸步槌勯硡槌嗛硣槌婇硧"], +["f740","榘",62], +["f780","楸婚苯楸鹃瞼椴冮矂椴夐矈椴岄矎椴撻矕椴楅矘椴欓矟椴铂椴补椴",4,"槌堥硥槌戦硳槌氶硾槌犻场槌",4,"槌撻硵槌曢硹槌橀硻槌滈碀槌熼尝闈奸瀰闉戦瀿闉旈灟闉灒闉查灤楠遍楠烽箻楠堕楠奸珌楂楂呴珎楂嬮珜楂戦瓍榄冮瓏榄夐瓐榄嶉瓚椋ㄩ椁楗旈珶楂¢楂楂婚楂归瑘楝忛瑩楝熼楹介壕绺婚簜楹囬簣楹嬮簰閺栭簼楹熼粵榛滈粷榛犻粺榛㈤哗榛ч互榛化榧㈤棘榧脊榧烽冀榧鹃絼"], +["f840","槌",62], +["f880","榇",32], +["f940","榈",62], +["f980","槎",32], +["fa40","槎",62], +["fa80","榉",32], +["fb40","楦",27,"楦ら抚楦赴楦撮富楦奸箑楣嶉箰楣掗箵楣旈箹楣欓節楣熼範楣¢耿楣ラ巩楣共楣",9,"楹"], +["fb80","楹侀簝楹勯簠楹嗛簤楹婇簩",5,"楹",8,"楹為籂",5,"楹ч酣楹╅邯"], +["fc40","楹",8,"楹甸憾楹烽汗楹洪杭楹",4,"榛呴粏榛囬粓榛婇粙榛岄粣榛掗粨榛曢粬榛楅粰榛氶粸榛¢唬榛ら沪榛ㄩ猾榛画榛话",8,"榛洪唤榛",6], +["fc80","榧",4,"榧岄紡榧戦紥榧旈紩榧栭紭榧",5,"榧¢迹",8,"榧籍榧伴急"], +["fd40","榧",4,"榧搁己榧奸伎",4,"榻",10,"榻",38], +["fd80","榻",5,"榫侀緜榫",11,"榫滈緷榫為尽",4,"铯ス铴曪Ё铵"], +["fe40","铷岋◢铷庯◤铷戯〒铷旓铷燂铷★ǎ铷わě铷ī"] +] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp949.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp949.json" new file mode 100644 index 0000000000000000000000000000000000000000..2022a007ff7ac97ce51167903d116eec42bffd9a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp949.json" @@ -0,0 +1,273 @@ +[ +["0","\u0000",127], +["8141","臧傟皟臧呹皢臧",4,"臧橁盀臧熽啊臧㈥埃臧",6,"臧安臧酬按"], +["8161","臧店岸臧逢昂臧魂敖臧娟翱瓯",9,"瓯岅睅",5,"瓯"], +["8181","瓯栮睏瓯欔睔瓯涥睗",18,"瓯碴背瓯店倍瓯龟被",4,"瓴傟矅瓴堦矋瓴庩矎瓴戧矑瓴撽矔",6,"瓴炾并",5,"瓴箔瓴脖",6,"瓴宏簿瓴筷硛瓿傟硟瓿呹硢瓿囮硥瓿婈硧瓿",7,"瓿栮硺",7,"瓿㈥常瓿リ肠瓿╆倡瓿钞瓿碴炒瓿",4,"瓿娟晨甏侁磦甏冴磪甏",4,"甏庩磹甏掙磽"], +["8241","甏旉磿甏栮礂甏欔礆甏涥礉甏炾礋甏",7,"甏传甏",5], +["8261","甏蛾捶甏龟春甏魂唇",6,"甑嗞祱甑",5,"甑戧祾甑撽禃甑栮禇"], +["8281","甑",7,"甑㈥丹",7,"甑弹甑标挡甑逢蹈甑龟岛甑娟秬甓",4,"甓婈秼甓嶊稁甓応稇",10,"甓",5,"甓",17,"甓",7,"攴傟穬攴呹穯攴囮穳",6,"攴掙窋",7,"攴濌窞攴熽贰攴㈥罚攴",18], +["8341","攴宏坊攴疥肪旮",5,"旮婈笇旮",5,"旮",7], +["8361","旮",18,"旮碴赋旮店付旮龟富旮"], +["8381","旮疥妇旮筷箓旯勱箛旯堦箟旯嬯箯旯戧箳旯撽箷旯",4,"旯炾耿旯j工旯﹃恭旯公旯巩旯贡",6,"旯宏咕",5,"旰",5,"旰",46,"旰筷粊昊傟粌昊",6,"昊庩粧",5,"昊氷粵昊",8], +["8441","昊﹃户昊╆华昊划",5,"昊店欢昊逢还昊宏换昊",8], +["8461","昙嗞級昙婈紜昙岅紟昙応紤",18], +["8481","昙",7,"昙集昙标汲昙",6,"昙娟絸杲勱絽杲嗞絿杲",5,"杲",10,"杲",5,"杲",18,"杲",5,"昃侁緜昃冴緟昃嗞緡昃",6,"昃掙緭昃旉緰",5,"昃",26,"昃宏净昃疥揪"], +["8541","昃筷縼",5,"昕婈繉昕",4,"昕",6,"昕",4], +["8561","昕",5,"昕",5,"昕碴砍昕店慷昕逢抗",6,"雬傠"], +["8581","雬",6,"雬嶋庪忞戨掚撾",6,"雬",9,"雬",26,"雭嗠亣雭夒亱雭嶋亸雭愲亼雭掚仏雭橂仛雭涬仠雭",29,"雭倦伩雮侂倐雮冸倕",6,"雮庪倫雮",5,"雮涬倽雮炿偅雮"], +["8641","雮ル偊雮щ偑雮半偛雮峨偡雮闺偤雮浑偨",6,"雰嗠儕",5,"雰"], +["8661","雰撾儠雰栯儣雰",6,"雰‰儮雰k儰雰",10], +["8681","雰",22,"雱婋剭雱庪剰雱戨剶雱曤剸雱楇剼雱",4,"雱﹄劎雱╇劒雱劖",6,"雱峨労",5,"雲傠厓雲呺厗雲囯厜",6,"雲掚厯雲栯厳雲欕厷雲涬厺雲炿厽雲",22,"雲弘吇雲诫吘雲侩唩雴",4,"雴婋唽雴庪啅雴愲啈雴曤問雴楇啓雴氹啗雴"], +["8741","雴",9,"雴",15], +["8761","雴",18,"雵嶋噹雵忞噾雵掚嚀雵"], +["8781","雵",5,"雵炿嚑",7,"雵嚝雵嚠雵嚤",7,"雵弘嚰雵",5,"雸嗠垏雸夒垔雸",6,"雸栯垬雸",5,"雸",18,"雸",6,"雸",26,"雺欕墯雺涬墲雺炿墴雺",6,"雺",4], +["8841","雺",4,"雺",5,"雺",6,"電嗠妵電堧妸",4], +["8861","電忞姃電撾姇電栯姉電",4,"電㈦姢電щ姩電╇姭電姰電姳電搽姵電惦姸電"], +["8881","電",15,"雼婋媼雼嶋嫀雼忞嫅雼",4,"雼氹嫓雼炿嫙雼犽嫛雼k嫥雼╇嫪雼半嫳雼搽嫸雼茧嫿雼倦寕雽冸寘雽嗠寚雽",6,"雽掚寲",5,"雽",54,"雿楇崣雿氹崫雿犽崱雿㈦崳"], +["8941","雿﹄崹雿崿雿嵂雿搽嵆雿惦嵍雿冯嵐",6,"霂傠巻",5,"霂"], +["8961","霂庪帍霂戨帓霂撾帟",10,"霂",5,"霂╇帾霂幁"], +["8981","霂",21,"霃嗠弴霃夒強霃嶋弿霃戨彃霃撾彇霃橂彋霃滊彏霃熾彙霃㈦彛霃ル彟霃щ彥",18,"霃",18,"霅",6,"霅欕悮霅涬悵霅炿悷霅",6,"霅惉",7,"霅",15], +["8a41","霊",10,"霊掚憮霊曤憱霊楇憴",6,"霊㈦懁霊"], +["8a61","霊",4,"霊",18,"霋侂拏"], +["8a81","霋",4,"霋",19,"霋",5,"霋ル挦霋щ挬霋挮霋",7,"霋峨捀霋",5,"霌侂搨霌冸搮霌嗠搰霌",6,"霌戨搾霌撾摂霌",5,"霌炿摕霌‰摙霌ル摟",4,"霌摪霌",5,"霌",26,"霐栯敆霐欕敋霐"], +["8b41","霐",5,"霐﹄敨",4,"霐搽敵霐惦敹霐冯敼",6,"霑傠晢"], +["8b61","霑囯晥霑夒晩霑庪晱霑戨晵霑撾晻",6,"霑炿暍",8], +["8b81","霑",52,"霒㈦枺霒ル枽霒щ柀霒柇霒柉霒搽柖",4,"霒倦柨霔侂梻霔冸梾",6,"霔庪棐",5,"霔",18,"霔",18], +["8c41","霕",15,"霕掚槗霕曤槚霕楇槞",4], +["8c61","霕",6,"霕",5,"霕",6,"霕",5], +["8c81","霕",12,"霗",26,"霗ル櫐霗щ櫓",50,"霘炿殶霘‰殺霘k殽",5,"霘毊霘毎霘",16], +["8d41","霙",16,"霙",8], +["8d61","霙",17,"霙彪洸霙畴浀霙峨浄霙闺浐"], +["8d81","霙",4,"霚傠渻霚勲渾",33,"霚湯霚湲霚",6,"霚弘溂",7,"霛呺潌霛囯潐霛婋潒霛",6,"霛",9,"霛‰潰霛k潵霛﹄潷霛",6,"霛搽澊霛",5,"霛倦澘霝侂瀭霝冸瀰",6,"霝庪灀霝旊灂霝氹灈霝濍灋"], +["8e41","霝熾灐",6,"霝灝",5,"霝峨灧霝",8], +["8e61","霟",4,"霟堧煀",19], +["8e81","霟",13,"霟煰霟彪煵霟畴煹",6,"霟倦爞",4,"霠婋爧霠嶋爭霠忞爲",6,"霠氹牅霠",5,"霠﹄牕霠╇牚霠牠",6,"霠峨牶",5,"搿侂搿冸",11,"搿掚",7,"搿炿搿‰、搿kˉ",6,"搿“搿",5,"搿闺『搿浑〗",7], +["8f41","擘",7,"擘",17], +["8f61","擘",7,"擘",6,"擘彪⒉擘畴⒌擘峨⒎擘",4], +["8f81","擘倦⒖耄傠耄",5,"耄嶋耄忞耄掚耄",7,"耄炿耄",5,"耄+耄.耄1",6,"耄弘<耄",5,"毪",18,"毪",6,"毪",26,"毪倦た毳侂毳冸",6,"毳嶋毳愲",5], +["9041","毳氹毳濍毳熾ァ",6,"毳ガ毳",5,"毳峨シ毳闺ズ毳浑ソ"], +["9061","毳",5,"毽嗠毽嬰毽",15], +["9081","毽",12,"毽Ο毽彪Σ毽畴Φ",6,"毽倦毵",5,"毵婋毵嶋",4,"毵氹毵熾毵㈦Е毵щЗ毵Й毵",6,"毵峨Щ",4,"毹",5,"毹",11,"毹",33,"毹弘ɑ毹诫ň毹侩﹣氅冸﹦氅呺﹩"], +["9141","氅囯⿰氅岆⿵氅愲⿷氅掚〇氅楇氅氹氅",6,"氅﹄┆",5], +["9161","氅搽┏氅惦┒氅冯┕",9,"氇嗠獔氇夒獖氇嬰獚",5], +["9181","氇",20,"氇氇氇彪",4,"氇弘氇",5,"氆呺珕氆囯珘",14,"氆",33,"氆诫氆侩瑏氍傠瑑氍",7,"氍庪瑦氍",5,"氍欕瑲氍涬瑵氍炿瑹氍",6], +["9241","氍氍",7,"氍冯氍弘",4,"氕嗠瓐氕婋瓔氕岆瓗氕戨瓛"], +["9261","氕撾瓡氕栯瓧氕",7,"氕㈦",7,"氕",4], +["9281","氕",21,"氘夒畩氘嬰畭氘庪畯氘",18,"氘ル氘щ氘氘",6,"氘惦氘",7,"氙侂瘋氙冸瘏氙嗠瘒氙",6,"氙戨瘨氙",35,"氙弘氙诫氚"], +["9341","氚",4,"氚婋皫氚愲皰氚撾皺氚氹盃氚‰阿氚k唉氚蔼氚艾氚隘氚搽俺氚"], +["9361","氚峨胺氚",6,"氡傠眴氡囯眻氡婋眿氡庪睆氡",8], +["9381","氡氹睕氡滊睘",37,"氩嗠矅氩夒矈氩嶋矎",4,"氩栯矘氩",4,"氩㈦玻氩ル拨氩",6,"氩搽捕",5,"氩倦部氤侂硞氤冸硡",7,"氤庪硳氤撾硵氤栯硹氤欕硽氤涬碀",22,"氤冯彻氤弘郴氤"], +["9441","氤",5,"氪嗠磮氪",5,"氪戨磼氪撾磿",8], +["9461","氪",5,"氪",6,"氪",12], +["9481","氪",5,"氲",6,"氲婋祴氲嶋祹氲忞祽",6,"氲",9,"氲ル郸氲щ旦",22,"攵傠秲攵呺秵攵",4,"攵掚稊攵栯稐攵橂稕攵",6,"攵",10,"攵",6,"攵",24], +["9541","敕掚窊敕栯窏敕欕窔敕涬窛",11,"敕",5,"敕"], +["9561","敕搽烦敕惦范敕冯饭",6,"敫侂競敫勲竼",5,"敫庪笍敫戨笒敫"], +["9581","敫",6,"敫炿笭",35,"牍嗠箛牍夒箠牍嬰箥牍",4,"牍栯箻牍滊節牍炿篃牍㈦梗牍ル功牍щ供牍",4,"牍搽苟",4,"牍倦箍牒侂簜牒冸簠",6,"牒庪簰",5,"牒",13,"牒",14], +["9641","牒",23,"牖掚粨"], +["9661","牖曤粬牖",6,"牖‰虎牖",5,"牖",8], +["9681","牖",10,"爰",5,"爰",13,"爰氹紴",33,"虢傠絻虢呺絾虢囯綁",6,"虢掚綋虢旊綎",44], +["9741","刖",16,"刖",8], +["9761","刖",17,"刖",7], +["9781","刖",11,"肟",5,"肟庪繌肟戨繏肟撾繒",6,"肟濍繛肟犽竣",89,"靲届眷"], +["9841","靵",16,"靵",5,"靵欖仛靵"], +["9861","靵濎仦靵熿仭",6,"靵",15], +["9881","靵",21,"靷掛倱靷曥倴靷楈倷",6,"靷㈧偆靷",5,"靷偙靷察偡",4,"靷眷儌靸冹儎靸嗢儑靸婌儖靸嶌儙靸忟儜",6,"靸氺優",5,"靸儳靸╈儶靸儹",6,"靸鹅兏靸",5,"靹侅剛靹冹剠靹嗢剣靹",6,"靹戩剴靹撿剶靹",5,"靹§劉靹レ劏靹╈劒靹劗"], +["9941","靹察劤靹挫劦靹缝労靹混劷靹眷効靺",6,"靺婌厧",5,"靺栰厳"], +["9961","靺欖厷靺涭厺",6,"靺叒",5,"靺膘叢靺踌叺靺鹅叿靺轨吅靺"], +["9981","靺",8,"靻",5,"靻忟啈靻掛啌靻曥啑",4,"靻烄啝靻㈧啠靻れ啨靻ъ啰靻啳靻啹靻",11,"靻",5,"靽呾噯靽囲噳靽婌噵靽",6,"靽曥嚃靽",6,"靽§嚔靽l嚗靽嚙靽",6,"靽察嚧",7,"靽眷嚳靾侅垈靾冹垍",6,"靾庫垚靾",5,"靾氺垱靾濎垶靾§垻靾"], +["9a41","靾れ垾靾埀靾埇靾埌靾踌埖",16], +["9a61","靿嗢墖靿",6,"靿掛墦靿曥墫靿楈墮",6,"靿§墷靿l墹靿"], +["9a81","靿",4,"靿壇靿膘壊靿踌壍",6,"靿眷妧鞀",5,"鞀",5,"鞀",6,"鞀欖姎鞀滌姙",5,"鞀姧鞀╈姫鞀姰",5,"鞀鹅姼鞀",33,"鞁烄嫙鞁§嫝鞁",5,"鞁嫲鞁察嫵鞁挫嫷鞁缝嫼鞁届嬀鞁快寔",6,"鞂婌寢鞂庫審"], +["9b41","鞂愳寫鞂掛寲鞂楈寵鞂氺寷鞂",6,"鞂導鞂",8], +["9b61","鞂",17,"鞃",7], +["9b81","鞃",25,"鞃崼鞃嵁鞃嵄鞃",4,"鞃红嵒鞃",5,"鞄呾巻鞄囲帀鞄婌帇鞄",50,"鞆",22,"鞆"], +["9c41","鞆涭彎鞆烄彙鞆",4,"鞆彨鞆彯",5,"鞆鹅彿鞆",5], +["9c61","鞆",8,"鞇",6,"鞇",9], +["9c81","鞇",8,"鞇",6,"鞇惍鞇惐鞇察惓鞇",6,"鞇",9,"鞈",26,"鞈懅鞈╈應鞈懎",6,"鞈鹅懛鞈胳懞",5,"鞉",18,"鞉",6,"鞉",12], +["9d41","鞉",13,"鞉轨捄鞉混捊",8], +["9d61","鞊",25], +["9d81","鞊",8,"鞊",5,"鞊察摮鞊奠摱鞊缝摴鞊混摷鞊届摼鞌",9,"鞌嶌攷鞌忟攽鞌掛敁鞌",6,"鞌",10,"鞌敨鞌敭鞌敱",6,"鞌红敿鞌",5,"鞎嗢晣鞎嬱晱鞎愳晳鞎掛晼鞎氺暃鞎滌暉鞎㈧暎鞎レ暒鞎ъ暕",6,"鞎察暥",5,"鞎眷暱鞏侅杺鞏冹枀鞏嗢枅鞏夓枈鞏嬱枎鞏愳枓鞏撿枖"], +["9e41","鞏栰枡鞏氺枦鞏濎枮鞏熿枴",7,"鞏",9,"鞏"], +["9e61","鞏缝柡鞏",4,"鞐嬱棈鞐忟棐鞐撿棔鞐栰棗鞐",6,"鞐㈧棨鞐棫"], +["9e81","鞐棭鞐棲鞐棻鞐察棾鞐奠椄鞐轨椇鞐混槀鞓冹槃鞓夓槉鞓嬱槏鞓庫槒鞓",6,"鞓氺槤",6,"鞓槯鞓╈槳鞓槸鞓膘槻鞓鹅樃鞓红樇鞓届樉鞓快檪鞕冹檯鞕嗢檱鞕",6,"鞕掛櫀",5,"鞕烄櫉鞕",10,"鞕櫘鞕办櫜",5,"鞕红櫥鞕届櫨鞕快殎",6,"鞖婌殞鞖",5,"鞖栰殫鞖欖殮鞖涭殱",6,"鞖"], +["9f41","鞖毆",5,"鞖察毘鞖奠毝鞖缝毣",4,"鞗傡泟鞗",5,"鞗"], +["9f61","鞗忟洃鞗掛洆鞗",6,"鞗烄洘鞗",5,"鞗洬鞗洰鞗洷鞗"], +["9f81","鞗",4,"鞗红浕鞗检浘",5,"鞙嗢渿鞙夓湂鞙嬱湇",6,"鞙栰湗鞙",5,"鞙㈧湥鞙レ湨鞙ъ湬",6,"鞙察湸鞙鹅湼鞙轨満鞙混溇鞙快潄鞚傡潈鞚",4,"鞚嬱潕鞚愳潤鞚氺潧鞚濎潪鞚熿潯",6,"鞚╈潽鞚",7,"鞚鹅澐鞚轨澓鞚混澘鞛鞛侅瀭鞛嗢瀷鞛岇瀺鞛忟瀿鞛撿灂鞛欖灈",4,"鞛㈧灖",4,"鞛灟鞛膘灢鞛踌灥鞛鹅灧"], +["a041","鞛胳灩鞛红灮鞛眷焸",5,"鞜婌煁鞜嶌煆鞜",6,"鞜欖煔鞜涭煖"], +["a061","鞜",5,"鞜レ煢鞜ъ煩鞜煫鞜",13], +["a081","鞜",4,"鞝傡爟鞝呾爢鞝囲爥鞝",4,"鞝掛爺鞝",4,"鞝烄牊鞝§牏鞝l牓",6,"鞝牥鞝",5,"鞝轨牶鞝混牻鞝眷牽臁",6,"臁婌臁",5,"臁",26,"臁察〕臁奠《臁缝」臁",4,"膦傡膦堨膦婌",5,"膦",7,"膦烄膦㈧ⅲ膦"], +["a141","膦レⅵ膦ъⅸ",18,"膦眷⒖欤欤"], +["a161","欤傡欤呾欤囲欤婌欤",6,"欤栰欤",5,"欤㈧#欤"], +["a181","欤",14,"欤",5,"欤眷?欷侅欷冹",4,"欷庛銆併偮封モβㄣ兟曗垾锛尖埣鈥樷欌溾濄斻曘",9,"卤脳梅鈮犫墹鈮モ垶鈭绰扳测斥剝鈩繝锟★骏鈾傗檧鈭犫姤鈱掆垈鈭団墶鈮捖р烩槅鈽呪棆鈼忊棊鈼団梿鈻♀枲鈻斥柌鈻解柤鈫掆啇鈫戔啌鈫斻撯壀鈮垰鈭解垵鈭碘埆鈭垐鈭嬧妴鈯団妭鈯冣埅鈭┾埀鈭竣"], +["a241","欷愳",5,"欷",18], +["a261","欷",6,"欷",18], +["a281","欹",7,"欹掛欹曥欹楈",6,"欹㈧イ",7,"欹ギ欹噿鈬斺垁鈭兟达綖藝藰藵藲藱赂藳隆驴藧鈭垜鈭徛も剦鈥扳梺鈼鈻封柖鈾も櫊鈾♀櫏鈾р櫍鈯欌棃鈻b棎鈼戔枓鈻も枼鈻ㄢ枾鈻︹柀鈾ㄢ槒鈽庘槣鈽灺垛犫♀啎鈫椻啓鈫栤啒鈾櫓鈾櫖銐裤垳鈩栥弴鈩€弬銖樷劇鈧"], +["a341","欹膘ゲ欹踌サ",6,"欹",10,"歃婌歃嶌歃"], +["a361","歃",6,"歃氺歃",16], +["a381","歃",16,"歆傡歆呾歆夓",4,"歆掛歆楈歆涳紒",58,"锟︼冀",32,"锟"], +["a441","歆烄歆§В歆レЕ歆З歆Й歆Р",5,"歆红Щ歆届Ь歆快▉歙傡▋歙"], +["a461","歙呾▎歙囲▕歙",5,"歙曥歙楈",12], +["a481","歙ě歙í",28,"銊",93], +["a541","飑",4,"飑庫⿵飑戩⿸飑撿⿻",6,"飑烄",5,"飑╈┆"], +["a561","飑",17,"飑",5,"飒呾獑"], +["a581","飒",16,"飒",14,"鈪",9], +["a5b0","鈪",9], +["a5c1","螒",16,"危",6], +["a5e1","伪",16,"蟽",6], +["a641","飒",19,"飒眷飓侅珎飓冹珔"], +["a661","飓",5,"飓庫珢飓掛珨飓曥珫飓楈珰",5,"飓",6], +["a681","飓飓飓",6,"飓",18,"飕夓瑠鈹鈹傗攲鈹愨敇鈹斺敎鈹敜鈹粹敿鈹佲攦鈹忊敁鈹涒敆鈹b敵鈹敾鈺嬧敔鈹敤鈹封斂鈹濃敯鈹モ敻鈺傗敀鈹戔敋鈹欌敄鈹曗攷鈹嶁敒鈹熲敗鈹⑩敠鈹р敥鈹敪鈹敱鈹测數鈹垛敼鈹衡斀鈹锯晙鈺佲晝",7], +["a741","飕",4,"飕戩瑨飕撿瑫飕栰瑮飕",6,"飕",7], +["a761","飕",22,"飙傡瓋飙"], +["a781","飙呾瓎飙囲瓓飙嬱瓖飙庫瓘飙",6,"飙氺瓫飙滌瓰",5,"飙",7,"銕曘帠銕椻創銕樸弰銕c帳銕ャ帵銕",9,"銖娿帊銕庛帍銖忋巿銕夈張銕с帹銕",9,"銕",4,"銕",5,"銕",4,"鈩︺弨銖併帄銕嬨帉銖栥弲銕幃銕彌銕┿帾銕幀銖濄彁銖撱弮銖夈彍銖"], +["a841","飙",10,"飙",14], +["a861","飚",18,"飚",6], +["a881","飚",19,"飚",11,"脝脨陋摩"], +["a8a6","牟"], +["a8a8","目艁脴艗潞脼纽艎"], +["a8b1","銐",27,"鈸",25,"鈶",14,"陆鈪撯厰录戮鈪涒厹鈪濃厼"], +["a941","殳",14,"殳",10], +["a961","殳犾殳㈧殳レ殳",18], +["a981","殳",14,"彀庫皬彀戩皰彀撿皶",6,"彀烄盁彀犾埃彀っδ懨澳蹦衬概艂酶艙脽镁脓艐艍銏",27,"鈷",25,"鈶",14,"鹿虏鲁鈦粹伩鈧佲倐鈧冣倓"], +["aa41","彀レ唉彀矮彀隘彀",6,"彀红翱",4,"毂嗢眹毂夓眾毂嬱睄毂"], +["aa61","毂",4,"毂栰睔",5,"毂§雹毂l饱毂ъ暴",6,"毂膘辈"], +["aa81","毂踌贝毂",29,"銇",82], +["ab41","觳旍矔觳栰矖觳氺矝觳濎矠觳熿病",6,"觳伯",5,"觳鹅卜觳"], +["ab61","觳红不觳",6,"斐嗢硤斐",5,"斐戩硳斐撿硶",5], +["ab81","斐",8,"斐",6,"斐钞斐潮",12,"銈",85], +["ac41","斐眷晨齑齑",5,"齑婌磱齑嶌磶齑忟磻",6,"齑氺礈齑烄礋齑"], +["ac61","齑§储齑l触齑揣齑╈椽齑喘",11,"齑",4], +["ac81","齑",28,"斓濎禐斓熜",5,"衼袞",25], +["acd1","邪",5,"褢卸",25], +["ad41","斓§耽斓l单",6,"斓蛋斓",5,"斓",7], +["ad61","於",6,"於",10,"於栰稐於欖稓於涭稘於烄稛"], +["ad81","於犾丁於㈧叮於定於",5,"於",18,"旆"], +["ae41","旆",5,"旆嶌穾旆忟窇",16], +["ae61","旆",5,"旆╈藩旆翻旆矾旆",6,"旆红芳旆",4], +["ae81","旄冹竻旄嗢竾旄夓笂旄嬱笉",6,"旄曥笘旄楈笜旄",5,"旄㈧福旄レ甫旄ъ俯旄斧"], +["af41","旄腑旄腐旄察复旄",19], +["af61","旃",13,"旃氺箾旃濎篂旃",5,"旃宫"], +["af81","旃",5,"旃鹅狗旃轨购旃混菇",6,"旌嗢簣旌",5,"旌掛簱旌曥簴旌楈簷"], +["b041","旌",5,"旌㈧害",5,"旌",12], +["b061","旌",5,"旎",19], +["b081","旎",13,"旎户旎╈华旎",6,"旎鹅缓",5,"臧臧侁皠臧囮皥臧夑皧臧",7,"臧",4,"臧犼挨臧碍臧鞍臧标案臧龟凹瓯瓯嬯睄瓯旉睒瓯滉卑瓯标贝瓯逢备瓯宏瞼瓴侁矁瓴勱矃瓴嗞矇瓴婈矉瓴岅矏瓴旉矞瓴濌矡瓴犼病瓴博瓴铂瓴舶瓴戈补瓴魂布瓴疥硜瓿勱硤瓿岅硶瓿楆碃瓿£长瓿ш敞瓿超瓿嘲瓿标吵瓿店扯瓿缄辰甏甏勱磫"], +["b141","旒傡純旒呾紗旒囲級",6,"旒掛紨旒",5,"旒濎紴旒熿肌旒㈧迹"], +["b161","旒",6,"旒疾",5,"旒",11], +["b181","旖",14,"旖栰綏旖欖綒旖涭綕",6,"旖建旖将旖磳甏嶊磸甏戧礃甏滉礌甏╆船甏创甏店锤甏缄祫甑呹祰甑夑祼甑旉禈甑£担甑淡甑瓣党甑搓档甑蛾祷甑缄到甑筷秮甓傟秷甓夑秾甓愱稖甓濌钉甓逢穩攴侁穭攴堦窅攴戧窊攴滉窢攴り犯攴龟芳攴筷竴旮侁笀旮夑笅旮嶊笖旮瓣副旮搓阜旮戈负旯旯侁箖旯呹箚旯婈箤旯嶊箮旯愱箶旯栮箿旯濌篃旯犼埂旯リ龚旯╆宫旯瓣垢"], +["b241","旖疆旖讲旖踌降旖鹅椒旖",6,"炀侅緜炀冹緞炀",5,"炀"], +["b261","炀",18,"炀",5,"炀"], +["b281","炀",5,"炀",18,"炜",6,"旯龟够旯缄菇旰勱簠旰岅杭旰疥壕昊昊勱粚昊嶊粡昊愱粦昊橁粰昊滉花昊画昊搓桓昊缄紘昙堦紞昙愱棘昙及昙碴即昙缄冀昙筷絹杲傟絻杲堦綁杲愱綔杲濌饯杲リ焦昃昃勱緢昃愱緫昃曣緶昃戈竟昃缄縺昕囮繄昕夑繈昕嶊繋昕旉繙昕咯昕瓣勘昕搓扛雬雬侂勲岆愲旊滊濍亜雭呺亪雭婋亴雭庪亾雭旊仌雭楇仚"], +["b341","炜",19,"炜㈧浚炜レ喀炜ъ咯"], +["b361","炜",5,"炜察看炜",5,"炜届烤炜宽來傢冺",5], +["b381","韤",5,"韤",5,"韤",19,"雭濍伡雭诫個雮勲倢雮嶋倧雮戨倶雮欕倸雮滊偀雮犽偂雮㈦偍雮╇偒",4,"雮彪偝雮措偟雮鸽偧雰勲儏雰囯儓雰夒儛雰戨償雰橂儬雰ル剤雱夒剫雱岆剱雱掚創雱橂剻雱涬劀雱濍劊雱る劌雱劕雱措劦雱冯劯雱闺厐雲侂厔雲堧厫雲戨厰雲曤厴雲滊厾雲鸽吂雲茧唨雴傠唸雴夒唻雴嶋啋雴撾啍雴橂啘雴噷雵愲嚁雵滊嚌"], +["b441","韤",5,"韤俄讽鬼喉豁",6,"韥嗧亪韥",5], +["b461","韥戫亽韥擁仌韥栱仐韥",6,"韥",10,"韥伅"], +["b481","韥表伈韥稠伒",6,"韥卷伩韨韨",18,"雵熾嚚雵╇嚞雵半嚬雵浑嚱雸勲垍雸堧垕雸岆垟雸曤垪雸欕垹雸措埣雺橂墱雺犽墾雺╇壌雺惦壖電勲妳電夒姁電戨姅電橂姍電氹姞電‰姡電ル姦電姮電半姶雼堧媺雼岆嫄雼掚嫎雼欕嫑雼濍嫝雼る嫢雼﹄嫧雼",4,"雼畴嫶雼惦嫹",4,"雼侩寑雽侂寗雽堧寪雽戨寭雽旊寱雽滊崝雿曤崠雿橂崨雿滊崬雿熾崵雿"], +["b541","韨",14,"韨偋韨╉偑韨偔",5], +["b561","韨稠偠韨疙偤",5,"韮傢儍韮呿儐韮図儕",5,"韮掜儢",4], +["b581","韮涰優韮燀儭韮㈨儯韮",6,"韮儾",5,"韮",11,"雿щ崺雿嵁雿半嵄雿措嵏霂霂侂巸霂勲巺霂岆帎霂旊帬霂‰帹霂弰霃呺張霃嬰弻霃庪彁霃旊彆霃楇彊霃涬彎霃犽彜霃徏霅愲悩霅滊悹霅惄霅惔霊愲憫霊旊憳霊犽憽霊k懃霊拃霋堧挐霋る挩霋挼霋冯捁霌霌勲搱霌愲摃霌滊摑霌犽摚霌る摝霌摥霌摫霌鸽敂霐曤敇霐涬敎霐る敟霐щ敤霐╇敧霐半敱霐措敻"], +["b641","韯",7,"韯",17], +["b661","韯",15,"韯岔劤韯淀劧韯讽劰韯豁劶韯巾劸"], +["b681","韯宽厒韰",5,"韰庬厪韰戫厭韰擁厱",6,"韰烅厾韰",5,"韰╉叒韰叚霑霑侂晝霑勲晠霑嬰晫霑嶋晲霑旊暅霑濍暉霑犽暋霒犽枴霒る枿霒柅霒半柋霒畴柎霒惦柣霒茧柦霔霔勲棇霔嶋棌霔愲棏霔橂棳霕愲槕霕旊槝霕ル槵霕措檲霗る櫒霘滊殱霘犽殼霘毈霘彪洈霙半洿霙鸽渶霚侂渽霚湬霚湳霚半湼霚闺溁霛勲潏霛岆潝霛曤潬霛る潹霛半澅霛畴澋霛茧澖霝霝勲瀸霝嶋瀼霝愲瀾霝掚灃霝"], +["b741","韰",13,"韰",6,"韱呿唵韱図唹韱"], +["b761","韱",20,"韱㈨啠韱ロ啨韱"], +["b781","韱",6,"韱岔喆韱俄喎韱疙喒韱豁喗韱卷喛韲",14,"霝橂灆霝滊灎霝灘霝灛霝灤霝惦灨霟囯焿霟煭霟半煷霟茧熃霟侩爛霠侂爣霠堧爥霠岆爯霠橂牂霠涬牆霠る牓霠牞霠措牭霠冯牳霠闺搿勲搿撾搿濍搿る‖搿’搿彪「搿茧擘擘措⒏耄耄侂耄呺耄愲耄濍耄‰(耄╇,耄半8耄闺;耄诫毪橂毪茧そ毳毳勲毳忞毳橂毳滊毳ォ"], +["b841","韲",7,"韲",17], +["b861","韲",8,"韲淀嚩韲讽嚬",13], +["b881","韴堩垔",5,"韴",24,"毳キ毳措サ毳鸽ゼ毽勲毽囯毽婋毽庪Μ毽Π毽措毽诫毵侂毵夒毵",4,"毵橂毵涬毵炿А毵kГ毵ルЖ毵Т毵惦Х毵鸽Ч毵弘█毹侂▓毹曤ǜ毹闺氅氅傠﹫氅夒⿱氅嶋⿴氅撾⿺氅曤氅滊─氅ル┃氅┅氅半┍氅措└氇冸獎氇呺獓氇岆氇╇氇氇搽氇闺氇诫珓氆堧珮氆欕"], +["b941","韴埆韴埊韴表埐韴稠埖",6,"韴卷墍韷",5,"韷夗墛韷嬳墝"], +["b961","韷",14,"韷",6,"韷ロ墻韷ы墾"], +["b981","韷",22,"韸傢妰韸呿妴韸図妷韸婍妺韸岆瑎氍勲瑣氍忞瑧氍橂瑴氍犽氍氍惦氍鸽氍茧氍倦瓌氕呺瓏氕夒瓖氕忞瓙氕旊瓨氕‰氕畧氘岆異氘る氘氘冯瘈氙勲瘓氙愲瘬氙鸽氙茧氚氚傠皥氚夒皨氚岆皪氚忞皯氚",4,"氚",4,"氚る哎氚щ癌氚鞍氚彪按氚鸽眬氡侂眱氡勲眳氡夒睂氡嶋睈氡濍矂氩呺矆氩嬰矊氩庪矓氩曤矖"], +["ba41","韸嶍妿韸忢姃韸擁姅韸",5,"韸濏姙韸燀姟韸㈨姡韸",6,"韸"], +["ba61","韸姱韸绊姴",5,"韸喉娀韸巾娋韹來媰",4,"韹婍媽",5], +["ba81","韹掜嫇韹曧嫋韹楉嫏韹氻嫑韹",6,"韹",9,"韹岔嫵韹淀嫸韹讽嫻韹弘矙氩氹矤氩‰菠氩щ波氩半脖氩畴泊氩惦布氩诫硛氤勲硩氤忞硱氤戨硶氤橂硿氤措车氤峨掣氤茧磩氪呺磭氪夒磹氪旊搐氪祤氲堧祲氲岆祼氲橂禉氲る胆攵攵侂秳攵囯秷攵夒秺攵愲稇攵撾稌攵欕稓攵滊钉攵半陡敕旊窌敕橂窚敕╇钒敕措犯敫敫冸竻敫岆笉敫愲笖敫滊笣敫熾箘牍呺箞牍岆箮牍旊箷牍楇箼牍氹箾牍犽埂牍"], +["bb41","韹",4,"韺傢寗韺",5,"韺忢寫韺掜寭韺曧寳",4,"韺烅將韺"], +["bb61","韺ろ對韺ы尓韺尛韺尟韺",6,"韺喉尵",5,"韻嗧崌韻堩崏"], +["bb81","韻",31,"牍躬牍半贡牍畴勾牍惦够牍茧菇牒牒勲簩牒嶋簭牒愲簯牒橂簷牒粣牖戨粩牖楇粯牖犽唬牖る互牖紒爰堧級爰橂紮爰涬紲爰濍絸虢侂絼虢堧綈虢戨綍刖旊景肟呺繉肟嶋繍肟旊繙肟熾俊靲检亼靵橃仠靵犾仺靵╈倫靷戩倲靷橃偁靷§偅靷レ偓靷偗靷办偝靷挫偟靷鹅偧靷届偪靸靸侅儏靸堨儔靸岇儛靸橃儥靸涭儨靸濎儰"], +["bc41","韻",17,"韻卷嵖韼來巶韼冺巺韼嗧巼"], +["bc61","韼堩帀韼婍帇韼庬帓",5,"韼氻帥韼濏帪韼燀帯",6,"韼幀韼"], +["bc81","韼",4,"韼淀幎韼讽幑韼喉幓韼",6,"韽嗧弴韽",5,"韽",5,"靸レ儴靸兇靸奠兎靸轨剙靹勳剤靹愳剷靹",4,"靹l劋靹劎靹劖靹劙靹膘劧靹胳劰靹检厐靺堨厜靺嬱厡靺嶌厰靺曥厴靺滌叅靺レ収靺叐靺办叴靺胳唴靻岇啀靻庫啇靻旍問靻滌啙靻熿啞靻レ啫靻╈啲靻办喗靽勳噲靽岇嚁靽楈嚇靽犾嚖靽嚢靽膘嚦靽检嚱靾靾勳垖靾嶌垙靾戩垬靾欖垳靾熿垹靾埄靾埈"], +["bd41","韽楉彊",7,"韽㈨彜",7,"韽彲韽表彶韽稠彽韽俄彿"], +["bd61","韽疙徆韽喉徎韽卷悁韾",5,"韾",13], +["bd81","韾",5,"韾",25,"靾埍靾察埓靿堨墣靿戩墧靿橃墵靿レ壃靿壈靿挫壖靿届壙鞀侅妶鞀夓姁鞀橃姏鞀濎姢鞀レ姩鞀姯鞀挫姷鞀缝姽鞁滌嫕鞁犾嫞鞁れ嫬鞁嫮鞁嫳鞁鹅嫺鞁轨嫽鞁检寑鞂堨寜鞂岇實鞂撿寯鞂曥寴鞂滌尋鞂レ尐鞂╈崊鞃崺鞃嵃鞃察嵏鞃轨嵓鞃届巹鞄堨帉鞆鞆橃彊鞆滌彑鞆犾彚鞆彥鞆彺鞆奠徃鞇堨悙鞇れ惉鞇"], +["be41","韾",7,"響來憘響冺憛",14], +["be61","響",7,"響濏憺響燀憽響㈨懀響",7,"響懓響表懖"], +["be81","響",4,"響喉懟響巾懢頀來拑",4,"頀婍拰頀",5,"頀",8,"鞇挫惣鞇届憟鞈れ懃鞈懍鞈挫懙鞈轨拃鞉旍挏鞉胳捈鞊╈摪鞊膘摯鞊胳摵鞊快攢鞌侅攲鞌愳敂鞌滌敤鞌╈敩鞌办敻鞌轨敾鞌届晞鞎呾晥鞎夓晩鞎岇晬鞎庫晸鞎旍晻鞎楈晿鞎欖暆鞎烄暊鞎§暏鞎暟鞎膘暢鞎挫暤鞎检暯鞏鞏勳枃鞏岇枍鞏忟枒鞏曥枟鞏橃枩鞏犾柀鞏挫柕鞏胳柟鞏混柤鞏届柧鞐",6,"鞐岇棊"], +["bf41","頀",10,"頀",14], +["bf61","頀",18,"頁嶍搸頁忢搼頁掜摀頁"], +["bf81","頁",5,"頁濏摓頁",7,"頁╉摢頁摥頁摨頁",6,"頁鬼摵頁检棎鞐戩棓鞐橃棤鞐§棧鞐レ棳鞐棶鞐办棿鞐鹅椃鞐",5,"鞓呾槅鞓囲槇鞓岇槓鞓橃槞鞓涭槣鞓れ槬鞓槵鞓槷鞓办槼鞓挫樀鞓缝樄鞓混檧鞕侅檮鞕堨檺鞕戩檽鞕旍檿鞕滌櫇鞕犾櫖鞕櫛鞕胳櫣鞕检殌鞖堨殙鞖嬱殟鞖旍殨鞖橃殰鞖れ殽鞖ъ毄鞖办毐鞖挫毟鞖轨毢鞗鞗侅泝鞗呾泴鞗嶌洂鞗旍洔鞗濎洜鞗§洦"], +["c041","頁",5,"頂呿攩頂図攭頂婍攱頂",6,"頂栱敇",5], +["c061","頂",25], +["c081","頂疙敼頂喉敾頂卷斂頃來晜頃冺晠",6,"頃庬晲頃",5,"頃氻暃頃濏暈頃燀暋頃㈨暎鞗╈洭鞗办浉鞗轨浗鞙勳渽鞙堨湆鞙旍湑鞙楈湙鞙犾湣鞙れ湪鞙办湵鞙踌湹鞙缝溂鞙届潃鞚勳潑鞚岇潔鞚忟潙",7,"鞚滌潬鞚潾鞚挫澋鞚胳澕鞚届澗鞛冹瀯鞛呾瀲鞛堨瀴鞛婌瀻鞛愳瀾鞛旍灃鞛楈灅鞛氺灎鞛§灒鞛れ灔鞛灛鞛灠鞛挫灱鞛届灴鞜鞜侅焾鞜夓煂鞜庫煇鞜橃煗鞜れ煥鞜爛鞝侅爠鞝堨爦"], +["c141","頃ろ暒頃ы暘頃暜",5,"頃俄暦頃鬼暫頃豁暯",6,"頄嗧枈頄"], +["c161","頄岉枍頄庬枏頄",19,"頄枾"], +["c181","頄",31,"鞝愳爲鞝撿爼鞝栰牅鞝濎牋鞝れ牞鞝牤鞝膘牳鞝检臁堨臁岇臁旍“臁膘〈臁胳『膦膦侅膦呾膦囲膦岇膦旍膦熿ⅰ膦⒓膦届欤堨欤旍欤楈欤犾!欤れ5欤检=欷欷勳欷嗢欷嶌欷戩欷ご欹愳欹旍欹犾ァ欹lガ欹办ゴ欹检歃夓歃愳歃欖歃濎歆侅歆囲歆婌歆戩"], +["c241","項婍棆項嶍棊項忢棏項",4,"項氻棞項",5,"項棫項╉棯項棴項"], +["c261","項",4,"項俄椄項",5,"順傢槂順呿槅順図槈",6,"順"], +["c281","順",5,"順濏槥順燀槨順㈨槪順",7,"順",9,"順喉樆歆曥歆欖歆滌歆犾Б歆れЁ歆Л歆О歆膘Ц歆轨Ъ歙歙堨▔歙嬱▽歙嶌〝歙橃ī飑岇⿳飑愳⿺飑滌飑熿飑§┄飑届獎飒橃飒届珋飓勳珜飓嶌珡飓戩珦飓橃珯飓犾飓挫瑘飕愳瑪飕橃瑺飕§瓉飙堨瓑飙岇瓙飙橃瓩飙濎飙胳飚滌殳旍殳ъ彀岇皪彀愳皵彀滌皾彀§阿彀ъ皑彀╈艾彀鞍彀胳肮彀"], +["c341","順巾樉順宽檨頇傢檭頇勴檰頇図檴頇岉檸頇忢檺頇掜檽頇栱櫁頇欗櫄頇涰櫇",4], +["c361","頇",4,"頇櫔",5,"頇岔櫝頇",11], +["c381","須來殏須勴殕",5,"須庬殢須戫殥須擁殨",7,"須烅殸須",5,"須╉毆彀检敖彀眷眲毂呾眻毂岇睌毂曥睏毂橃睓毂犾堡毂报毂办钡觳橃矙觳滌矤觳博觳铂觳泊觳奠哺觳检硠斐呾硣斐夓硱斐旍长斐嘲齑侅磮齑夓磳齑愳礃齑欖礇齑濎搐齑船齑轨禍斓犾丹斓淡斓当斓胳秷於旍稌於橃稖於れ顶於ъ订於办穭旆岇窅旆番旆办犯旆轨坊旆届竸旄堨笇旄旍笝旄犾浮旄れ辅旄办副旄踌傅"], +["c441","須毉須毌須",7,"須喉毤",7,"頉嗧泧頉夗泭頉"], +["c461","頉嶍泿頉忢洂頉掜洆頉曧洊頉橅洑",5,"頉№洟頉m洢頉洤頉",4], +["c481","頉洴頉表洸頉稠洿頉",5,"頉卷浛頊來渹頊冺渽",11,"頊掜湏頊旍箻旃欖箿旃熿範旃§龚旃╈公旃勾旃奠垢旃检簞旌呾簢旌夓簮旌戩簲旌橃籂旌§海旌れ亥旌涵旎侅护旎レ花旎滑旎挫坏旎缝桓旎轨紑旒侅紕旒堨紣旒戩紦旒曥紲旒犾激旒辑旒及旒膘几旖旍綍旖橃綔旖れ渐旖ъ僵旖办奖旖挫礁炀炀呾緦炀§鲸炀办縿炜犾俊炜れ卡炜办勘炜踌康炜柬韤勴戫橅错淀疙"], +["c541","頊曧湒頊楉湚頊涰湞頊烅湡頊",6,"頊湰頊",5,"頊俄湻頊"], +["c561","頊喉溁頊",6,"頋呿潌頋堩潑",5,"頋掜潛頋曧潥",4], +["c581","頋燀潰頋ろ潶頋ы潹頋潾頋澁頋澅頋岔澇頋",6,"頋卷澘頌頌",5,"頌婍瀷韥勴亝韥図亯韥愴仈韥橅仩韥伃韥绊伌韥柬伣韨來偆韨ロ偍韨偞韨淀偡韨鬼儉韮來儎韮堩儔韮愴儜韮擁償韮曧儨韮濏儬韮ろ儸韮儻韮绊儽韮疙剭韯绊劚韯错劯韯喉厐韰來厓韰勴厖韰岉厤韰愴厰韰滍厺韰燀叀韰叕韰柬唲韱堩啝韱№啢韱啺韱表喅韱淀喓韱柬噣韲橅嚧韲疙垏韴夗垚韴埈韴绊埓韴柬埥韴宽墎韷堩墱"], +["c641","頌嶍瀻頌忢瀾",6,"頌氻灉頌",5], +["c6a1","韷ろ妧韸來妱韸堩姁韸戫姇韸滍姞韸ろ姮韸表姼韸鬼娂韸宽媭韹傢媹韹夗媼韹旐嫎韹滍嫟韹ロ嫲韹表嫶韹疙寑韺來寖韺呿寣韺嶍寧韺愴寯韺栱寽韺濏専韺犿尅韺ロ尐韺╉尙韺绊尭韺鬼尰韺柬尳韻勴崊韻柬嵔韼韼勴帉韼嶍帍韼愴帒韼橅帣韼滍帬韼帺韼幁韼错幐韼柬弰韽呿張韽夗彁韽橅彙韽m彫韽彴韽错徏韽巾徔韾"], +["c7a1","韾堩悵響響勴憸響犿懁響懐響疙懝響柬懣頀頀傢拡頀夗拫頀嶍挃頀╉搶頁愴摂頁滍摕頁摤頁绊摳頁豁摻頂勴攬頂岉敂頂曧敆頂柬斀頃頃勴晫頃嶍晱頃戫晿頃欗暅頃犿暐頃暕頃暛頃错暤頃疙暭頄勴枀頄図枅頄夗枑頄ロ棃項夗棇項愴棐項橅棛項涰棟項ろ棩項棳項错椀項讽椆順順來槃順堩槓順戫槗順旐槙順滍槧"], +["c8a1","順ろ槶順疙樄順柬檧頇呿檲頇夗檵頇嶍檻頇旐檿頇橅櫆頇ы櫓頇绊櫛頇错殐須呿殞須嶍殣須旐殱須燀殹須毈須绊毠須豁泟頉呿泩頉岉洃頉旐洍頉欗洜頉ろ洦頉绊浀頉柬浗頊頊勴湋頊橅湙頊滍湢頊湬頊湱頊错湹頊疙溂頋勴潎頋夗潗頋戫潝頋栱潡頋橅潤頋犿潯頋m潵頋╉潿頋绊澊頋柬澖頌來瀳頌夗瀸頌愴灅頌欗灈頌"], +["caa1","浼戒匠鍋囧児鍔犲彲鍛靛摜鍢夊珌瀹舵殗鏋舵灧鏌瓕鐝傜梻绋艰嫑鑼勮琚堣ǘ璩堣窂杌昏喀椐曞埢鍗村悇鎭叅娈肩弿鑴氳瑙掗枺渚冨垔澧惧ジ濮﹀共骞规噰鎻鏉嗘煬妗挎緱鐧庣湅纾电▓绔跨啊鑲濊壆鑹辫闁撲公鍠濇浄娓寸ⅲ绔憶瑜愯潕闉ㄥ嫎鍧庡牚宓屾劅鎲炬垺鏁㈡煈姗勬笡鐢樼柍鐩g灠绱洪偗閼戦憭榫"], +["cba1","鍖e铂鐢茶儧閴闁樺墰鍫堝宀″礂搴峰己褰婃叿姹熺暫鐤嗙碃绲崇侗缇岃厰鑸¤枒瑗佽瑳閶奸檷楸囦粙浠峰嬪嚤濉忔劮鎰炬叏鏀规И婕戠枼鐨嗙洊绠囪姤钃嬶閹ч枊鍠瀹㈠潙铯佺渤缇归喌鍊ㄥ幓灞呭法鎷掓嵁鎿氭摟娓犵偓绁涜窛韪烇閬介墔閶镐咕浠跺仴宸惧缓鎰嗘鑵辫檾韫囬嵉楱篂鍌戞澃妗鍎夊妽鍔掓"], +["cca1","鐬奸垚榛斿姭鎬坎鍋堟啯鎻搳鏍兼獎婵鑶堣Α闅斿爡鐗界姮鐢勭倒绻偐瑕嬭閬i祽鎶夋焙娼旂祼缂鸿ǎ鍏兼厞绠濊瑱閴楅帉浜繐鍊炲偩鍎嗗媮鍕嶅嵖鍧板搴氬緫鎱舵啲鎿庢暚鏅毣鏇存娑囩倕鐑辩挓鐠ョ搳鐥欑‖纾珶绔剁祬缍撹曡胯剾鑾栬杓曢曢彙闋冮牳椹氶淇傚晸鍫哄瀛e眴鎮告垝妗傛"], +["cda1","妫ㄦ邯鐣岀櫢纾庣ń绯荤公绻艰▓瑾¤翱闅庨穭鍙ゅ彥鍛婂懕鍥哄瀛ゅ盎搴嫹鏀锋晠鏁叉殸鏋娌界椉鐨愮澗绋跨緮鑰冭偂鑶忚嫤鑻借彴钘佽牨琚磋铯冭緶閷泧椤ч珮榧撳摥鏂涙洸姊忕﹢璋烽禒鍥板潳宕戞槅姊辨婊剧惃琚為姹楠ㄤ緵鍏叡鍔熷瓟宸ユ亹鎭嫳鎺ф敾鐝欑┖铓h并闉忎覆瀵℃垐鏋滅摐"], +["cea1","绉戣彄瑾囪璺ㄩ亷閸嬮寤撴Ж钘块儹铯呭啝瀹樺鎱f:娆剧亴鐞摌绠$綈鑿呰璨棞椁ㄥ埉鎭濇嫭閫備緤鍏夊尅澹欏唬鏇犳锤鐐氱媯鐝栫瓙鑳遍憶鍗︽帥缃箹鍌濉婂鎬劎鎷愭榄佸畯绱樿偙杞熶氦鍍戝挰鍠瑢宥犲阀鏀晭鏍℃⿱鐙$殠鐭禐缈硅啝钑庤洘杓冭綆閮婇椹曢涓樹箙涔濅粐淇卞叿鍕"], +["cfa1","鍗鍙e彞鍜庡様鍧靛灑瀵囧秶寤愭嚰鎷樻晳鏋告煩妲嬫瓙姣嗘姹傛簼鐏哥嫍鐜栫悆鐬跨煩绌剁悼鑰夎嚰鑸呰垔鑻熻、璎宠臣杌閫戦偙閴ら姸椐掗﹨槌╅窏榫滃湅灞鑿婇灎闉捍鍚涚獦缇よ杌嶉儭鍫灞堟帢绐熷寮撶┕绐妿韬﹀埜鍕稿嵎鍦堟嫵鎹叉瑠娣冪湻鍘ョ崡钑ㄨ苟闂曟満娅冩桨瑭粚楗嬶鏅锋璨"], +["d0a1","楝硷鍙湱濂庢弳妲荤彧纭呯绔呯尘钁佃璧抽甸枿鍕诲潎鐣囩瓲鑿岄垶铯堟鍏嬪墜鍔囨垷妫樻サ闅欏儏鍔ゅ嫟鎳冩枻鏍规Э鐟剧瓔鑺硅彨瑕茶杩戦铯変粖濡楁搾鏄戞獛鐞寸绂借姪琛捐】瑗燂閷︿紜鍙婃ユ壉姹茬礆绲︿簶鍏㈢煖鑲紒浼庡叾鍐鍡滃櫒鍦诲熀鍩煎濂囧瀵勫矏宕庡繁骞惧繉鎶鏃楁棧"], +["d1a1","鏈炴湡鏉炴妫勬娆烘埃姹芥矀娣囩帢鐞︾惇鐠傜挘鐣哥暱纰佺/绁佺绁堢ズ绠曠磤缍虹緢鑰嗚倢瑷樿瓘璞堣捣閷¢尋椋㈤楱庨◤椹ラ簰绶婁蕉鍚夋嫯妗旈噾鍠労铯嬶濞滄嚘铯嶆嫃鎷匡",5,"閭o",4,"璜撅铯氾铯滄殩铯濈厲铯烇闆o鎹忔嵑鍗楋ぁ鏋忔婀筹あ鐢凤ぃ铯わぅ"], +["d2a1","绱嶏う铯ц〔鍥婂铯",4,"涔冿き鍏у鏌拌愶ぎ濂冲勾鎾氱蹇垫伂鎷堟嵒瀵у瘲鍔く濂村缉鎬掞ぐ铯憋げ鐟欙こ",5,"椐戯す",10,"婵冿铳呰喛杈叉儽铳嗭鑵︼铳夊翱铳",7,"瀚╄ē鏉荤磹铳",5,"鑳斤铳欏凹娉ュ尶婧哄鑼"], +["d3a1","涓逛憾浣嗗柈鍦樺褰栨柗鏃︽獉娈垫箥鐭绨炵窞铔嬭閯查崨鎾绘揪鐛虹柛閬斿晼鍧嶆喓鎿旀泧娣℃箾娼竟鐥拌亙鑶借晛瑕冭珖璀氶専娌撶晸绛旇笍閬濆攼鍫傚骞㈡垏鎾炴鐣剁硸铻抽花浠e瀳鍧ぇ灏嶅脖甯跺緟鎴存摗鐜宠嚭琚嬭哺闅婇粵瀹呭痉鎮冲掑垁鍒板湒鍫靛灏庡睜宄跺秼搴﹀緬鎮兼寫鎺夋悧妗"], +["d4a1","妫规珎娣樻浮婊旀郡鐕剧洔鐫圭Ρ绋昏悇瑕╄抄璺宠箞閫冮旈亾閮介崓闄堕煖姣掔嗙墭鐘㈢崹鐫g绡ょ簺璁澧╂儑鏁︽椊鏆炬矊鐒炵噳璞氶爴涔獊浠濆啲鍑嶅嫊鍚屾啩鏉辨妫熸礊娼肩柤鐬崇鑳磋懀閵呭厹鏂楁潨鏋撶棙绔囪嵆铳氳眴閫楅牠灞噣鑺氶亖閬垗寰楀稘姗欑噲鐧荤瓑钘よ瑒閯чò鍠囨嚩铳涚櫓缇"], +["d5a1","铇胯灪瑁搁倧铳滄礇鐑欑彏绲¤惤铳濋叒椐憋浜傚嵉娆勬瑨鐎剧垱铇笧鍓岃荆宓愭摜鏀瑬婵眱绾滆棈瑗よ鎷夎嚇锠熷粖鏈楁氮鐙肩悈鐟瀭閮炰締宕嶅緺钀婂喎鎺犵暐浜嗗叐鍑夋妯戠伯绮辩厂鑹珤杓涢噺渚跺劮鍕靛憘寤叜鎴炬梾娅氭烤绀棞锠i柇椹㈤┆楹楅粠鍔涙泦姝风濈か杞㈤潅鎲愭垁鏀f迹"], +["d6a1","鐓夌拤绶磋伅钃鸡閫i崐鍐藉垪鍔f磳鐑堣寤夋杺娈總绨剧嵉浠や级鍥癸宀哄逗鎬滅幉绗練缈庤亞閫為埓闆堕潏闋橀健渚嬫晶绂喆闅峰嫗铳犳拡鎿勬珦娼炵樼垚鐩ц佽槅铏滆矾杓呴湶榄泛楣电绁跨稜鑿夐寗楣块簱璜栧寮勬湩鐎х搹绫犺伨鍎$ㄧ墷纾婅硞璩氳炒闆蜂簡鍍氬寤栨枡鐕庣檪鐬亰钃"], +["d7a1","閬奸榫嶅濠佸雹妯撴窔婕忕樆绱阜钄炶じ閺ら檵鍔夋棐鏌虫Υ娴佹簻鐎忕悏鐟犵暀鐦ょ~璎鍏埉闄镐緰鍊礄娣陡杓緥鎱勬牀铳¢殕鍕掕倠鍑滃噷妤炵缍捐彵闄典繗鍒╁帢鍚忓攷灞ユ偋鏉庢ⅷ娴妬鐙哥悊鐠冿ア鐥㈢爆缃圭靖鑾夎瑁¢噷閲愰洟榀夊悵娼剧噽鐠樿椇韬殻楸楅簾鏋楁穻鐞宠嚚闇栫牞"], +["d8a1","绔嬬瑺绮掓懇鐟棽纰肩(棣瓟楹诲癁骞曟紶鑶滆帿閭堜竾鍗嶅ī宸掑綆鎱㈡尳鏅╂浖婊挎极鐏g灋钀敁锠昏紦楗呴盎鍞滄姽鏈搏鑼夎オ闈轰骸濡勫繕蹇欐湜缍茬綌鑺掕尗鑾借紴閭欏煁濡瑰獟瀵愭槯鏋氭姣忕叅缃佃卜璩i倎榄呰剤璨婇檶椹楹ュ瓱姘撶寷鐩茬洘钀屽啰瑕撳厤鍐曞媺妫夋矓鐪勭湢缍跨番闈㈤旱婊"], +["d9a1","钄戝啣鍚嶅懡鏄庢殱妞ф簾鐨跨瀾鑼楄搨铻熼叐閵橀炒琚備井鍐掑嫙濮嗗附鎱曟懜鎽规毊鏌愭ā姣嶆瘺鐗熺墶鐟佺湼鐭涜楄娂鑼呰瑎璎ㄨ矊鏈ㄦ矏鐗х洰鐫︾﹩槎╂娌掑あ鏈﹁挋鍗濡欏粺鎻忔槾鏉虫负鐚珬鑻楅尐鍕欏帆鎲噵鎴婃媷鎾棤妤欐姣嬬劇鐝风暆绻嗚垶鑼傝暘瑾h部闇ч怠澧ㄩ粯鍊戝垘鍚诲晱鏂"], +["daa1","姹剁磰绱嬭仦铓婇杸闆嬁娌曠墿鍛冲獨灏惧祴褰屽井鏈⒍妤f讣婀勭湁绫崇編钖囪瑤杩烽潯榛村卜鎮舵剭鎲晱鏃绘椉姘戞朝鐜熺弶绶¢枖瀵嗚湝璎愬墲鍗氭媿鎼忔挷鏈存ǜ娉婄弨鐠炵當绮曠笡鑶婅埗钖勮揩闆归浼村崐鍙嶅彌鎷屾惉鏀鏂戞娉綐鐝晹鐦㈢洡鐩肩纾荤が绲嗚埇锜犺繑闋掗/鍕冩嫈鎾ユ袱娼"], +["dba1","鐧艰穻閱遍墷楂瓋鍊e倣鍧婂Θ灏ㄥ箛褰锋埧鏀炬柟鏃佹槈鏋嬫婊傜绱¤偑鑶鑸姵钂¤殞瑷瑮閭﹂槻榫愬嶄砍铳e煿寰樻嫓鎺掓澂婀冪剻鐩冭儗鑳氳4瑁佃璩犺缉閰嶉櫔浼桨甯涙煆鏍㈢櫧鐧鹃瓌骞℃▕鐓╃嚁鐣イ绻佽晝钘╅浼愮瓘缃伴枼鍑″竼姊垫熬姹庢硾鐘瘎鑼冩硶鐞哄兓鍔堝鎿樻獥鐠х櫀"], +["dca1","纰ц槜闂㈤湽铳ュ崬寮佽畩杈ㄨ警閭婂垾鐬ラ眽榧堜笝鍊傚叺灞涘狗鏄炴樅鏌勬鐐崇攣鐥呯绔濊姬椁犻▓淇濆牎鍫卞鏅娲戞购娼界彜鐢彥瑁滆璀滆紨浼忓儠鍖愬崪瀹撳京鏈嶇鑵硅尟钄旇瑕嗚脊杓婚Ε榘掓湰涔朵扛濂夊皝宄嘲鎹ф鐑界啟鐞斧钃渹閫㈤嫆槌充笉浠樹刊鍌呭墫鍓惁鍜愬煚澶│"], +["dda1","瀛氬瀵屽簻铳︽壎鏁锋枾娴亥鐖剁绨跨级鑵愯厬鑶氳墍鑺欒帺瑷冭矤璩﹁郴璧磋逗閮ㄩ嚋闃滈檮椐欓厂鍖楀垎鍚╁櫞澧冲濂靠鎲ゆ壆鏄愭本鐒氱泦绮夌碁绱涜姮璩侀洶铳т經寮楀娇鎷傚穿鏈嬫纭肩箖榈笗鍌欏寱鍖崙濡冨搴囨偛鎲婃墘鎵规枑鏋囨Η姣旀瘱姣楁瘶娌革エ鐞电椇鐮掔绉曠绮冪穻缈¤偉"], +["dea1","鑴捐噦鑿茶湚瑁ㄨ璀不閯欓潪椋涢蓟鍤褰枌妾虫娴滄勘鐎曠墲鐜钵璩撻牷鎲戞胺鑱橀▉涔嶄簨浜涗粫浼轰技浣夸繜鍍垮彶鍙稿攩鍡e洓澹ア濞戝瀵哄皠宸冲斧寰欐濇崹鏂滄柉鏌舵熁姊娌欐硹娓g夌崊鐮傜ぞ绁绁犵绡╃礂绲茶倖鑸嶈帋钃戣泧瑁熻⿶瑭炶瑵璩滆郸杈偑椋奸楹濆墛铳╂湐铳"], +["dfa1","鍌樺埅灞辨暎姹曠強鐢g枬绠楄挏閰搁湴涔锋拻娈虹厼钖╀笁铳潐妫笚鑺熻敇琛彿婢侀垝棰笂鍌峰儚鍎熷晢鍠槜瀛灏欏碃甯稿簥搴犲粋鎯虫姗℃箻鐖界墍鐙鐩哥ゥ绠辩繑瑁宠Т瑭宠薄璩為湝濉炵捊璩藉棁铳绱㈣壊鐗茬敓鐢ワキ绗欏澹诲都搴忓憾寰愭仌鎶掓嵖鏁嶆殤鏇欐浉鏍栨2鐘鐟炵绲窎缃"], +["e0a1","鑳ヨ垝钖タ瑾撻濋嫟榛嶉紶澶曞キ甯儨鏄旀櫝鏋愭睈娣呮綗鐭崇ⅸ钃嗛噵閷粰鍍婂厛鍠勫瑡瀹f墖鏁炬棆娓茬吔鐞佺憚鐠囩捒鐧Κ绶氱箷缇ㄨ吅鑶宠埞铇氳煬瑭佃罚閬搁姂閻ラ楫崹灞戞娉勬穿娓垖钖涜せ瑷闆涧鍓℃毠娈茬簴锜捐磵闁冮櫇鏀濇秹鐕ギ鍩庡瀹ф兒鎴愭槦鏅熺尒鐝圭洓鐪佺"], +["e1a1","鑱栬伈鑵ヨ獱閱掍笘鍕㈡娲楃▍绗圭窗铳舶鍙槸濉戝灏忓皯宸㈡墍鎺冩悢鏄⒊娌兼秷婧熺偆鐕掔敠鐤忕枎鐦欑瑧绡犵矮绱犵垂钄暛铇囪ù閫嶉仭閭甸姺闊堕ǚ淇楀爆鏉熸稇绮熺簩璎栬礀閫熷宸芥悕钃閬滈!鐜囧畫鎮氭澗娣炶瑾﹂侀爩鍒凤グ鐏戠閹栬“閲椾慨鍙楀椊鍥氬瀭澹藉珎瀹堝搏宄甯ユ剚"], +["e2a1","鎴嶆墜鎺堟悳鏀舵暩妯规畩姘存礄婕辩嚙鐙╃嵏鐞囩挷鐦︾潯绉绌楃绮圭稄缍埂缇炶劑鑼辫拹钃氳棯琚栬璁愯几閬傞們閰姈閵归殝闅ч毃闆栭渶闋堥楂撻瑲鍙斿【澶欏瀹挎窇娼氱啛鐞$捁鑲呰徑宸″緡寰亗鏃爳妤⿹娈夋吹娣崇彛鐩剧灛绛嶇磾鑴h垳鑽钃磋暎瑭㈣珓閱囬尀闋嗛Υ鎴岃杩伴墺宕囧揣"], +["e3a1","宓╃憻鑶濊潹婵曟嬀缈掕ざ瑗蹭笧涔樺儳鍕濆崌鎵挎槆绻╄爡闄炰緧鍖欏樁濮嬪灏稿睅灞嶅競寮戞亙鏂芥槸鏅傛灳鏌寸寽鐭㈢ず缈呰挃钃嶈瑭﹁┅璜¤睍璞哄煷瀵斿紡鎭嫮妞嶆畺婀滅唲绡掕潟璀樿痪椋熼>浼镐緛淇″懟濞犲鎰兼柊鏅ㄧ嚰鐢崇绱宠厧鑷h帢钖棊铚冭▕韬緵铳辫繀澶卞瀵︽倝瀵╁皨蹇冩瞾"], +["e4a1","铳叉繁鐎嬬敋鑺浠鍗侊コ闆欐皬浜炰縿鍏掑暈濞ュ敞鎴戠墮鑺借帾铔捐瑷濋樋闆呴榇夐禎鍫婂渤宥藉箘鎯℃剷鎻℃▊娓ラ剛閸旈榘愰椒瀹夊哺鎸夋檹妗堢溂闆侀瀺椤旈疅鏂¤瑏杌嬮柤鍞靛博宸栧旱鏆楃檶鑿撮棁澹撴娂鐙庨川浠板ぎ鎬忔樆娈冪Ё榇﹀帗鍝鍩冨礀鎰涙洊娑鑹鹃殬闈勫巹鎵兼帠娑茬笂鑵嬮"], +["e5a1","娅荤綄槎笟涔熷诲喍澶滄児鎻舵ぐ鐖鸿讹ゴ閲庡急铳碉ザ绱勮嫢钁捇钘ヨ簫铳蜂蒋铳革ス澹ゅ瓋鎭欐彋鏀樻暛鏆橈ズ妤婃ǎ娲嬬佺叕鐥掔槏绂崇┌铳荤緤铳艰铳借畵閲闄斤ゾ椁婂渼寰℃柤婕佺榾绂﹁獮棣瓪榻剟鎲舵姂妾嶈噯鍋冨牥褰︾剦瑷璜哄铇栦亢鍎煎毚濂勬帺娣瑰丢妤唵浜堜綑铳匡铴佸铴"], +["e6a1","铴冩瓱姹濓鐠电铴呰垏鑹呰尮杓胯綕铴嗛铴囷铴変害铴婂煙褰规槗铴嬶鐤构璀閫嗛鍤ュ牕濮稿瀹达寤讹铴愭崘鎸伙妞芥矅娌挎稁娑撴返婕旓鐑熺劧鐓欙鐕冪嚂铴旂纭绛电罚铴栫腐铴楄杌燂铴欙閴涳槌讹铴濓鎮呮秴铴熺啽铴狅Α闁卞幁铴Γ铴ゆ煋铴ョ値鐒扮惏鑹惰嫆"], +["e7a1","铴﹂柣楂ラ菇鏇勶Η鐕佽憠铴Ι濉嬶Κ铴陡褰憋Μ鏄犳殠妤规Ξ姘告吵娓舵絹婵氱涚厫鐕熺嵃铴憶铴摂鐩堢⿴绾擄Ο铴拌嫳瑭犺繋铴遍崍铴查湙铴筹Υ涔傚Φ鍒堝彙鏇虫杯婵婄寠鐫跨鑺棟铇傦Χ瑁旇璀借鲍铴烽姵铴搁湏闋愪簲浼嶄繅鍌插崍鍚惧惓鍡氬、澧哄ェ濞涘鎮燂鎳婃晼鏃挎櫎姊ф睔婢"], +["e8a1","鐑忕啲鐛掔铚堣榘查紘灞嬫矁鐛勭帀閳烘韩鐟ョ槦绌╃笗铇婂厐澹呮搧鐡敃鐧扮縼閭曢泹楗旀甫鐡︾绐嚗铔欒澑瑷涘〾瀹屽疀姊℃娴g帺鐞撶惉纰楃珐缈剺鑵曡帪璞岄槷闋戞洶寰鏃烘瀴姹帇鍊▋姝煯澶栧惮宸嶇尌鐣忥铴诲儱鍑瑰牤澶濮氬铴硷宥㈡嫍鎼栨挀鎿撅鏇滐姗堬鐕跨懁铵"], +["e9a1","绐堢绻囩篂鑰鑵帮锜璎犻仚铵冮個楗掓吘娆叉荡绺熻ぅ杈变繎鍌啑鍕囧焽澧夊搴告厒姒曟秾婀ф憾鐔旂憿鐢ㄧ敩鑱宠尭钃夎笂閹旈彏铵勪簬浣戝伓鍎張鍙嬪彸瀹囧瘬灏ゆ剼鎲傛棿鐗涚帡鐟鐩傜绂戠绱嗙窘鑺嬭棔铏炶總閬囬兊閲殔闆ㄩ洨鍕栧涧鏃槺鏍厹绋堕儊闋婁簯铵呮⿸娈炴緪鐔夎樿姼钑"], +["eaa1","閬嬮殨闆查熁钄氶浜愮唺闆勫厓鍘熷摗鍦撳湌鍨e獩瀚勫瘍鎬ㄦ効鎻存矃娲规共婧愮埌鐚跨憲鑻戣杞呴仩铵嗛櫌椤橀礇鏈堣秺閴炰綅鍋夊優鍗卞湇濮斿▉灏夋叞鏆愭腑鐖茬憢绶儍钀庤懄钄胯潫琛涜璎傞仌闊嬮瓘涔充緫鍎掑叒铵囧敮鍠╁瀹ュ辜骞藉壕鎮犳儫鎰堟剦鎻勬敻鏈夛鏌旀煔铵夋ァ妤㈡补娲э娓革"], +["eba1","婵$尪鐚凤鐟滅敱铵嶇檼铵庯缍嚲钀歌瑾樿珱璜赴韫傞亰閫鹃伜閰夐噳閸铵戝爥铵掓瘬鑲夎偛铵擄鍏佸カ灏癸铵栨饯鐜ц儰璐囷閳楅枏铵橈铵氾鑱挎垘鐎滅胆铻嶏鍨犳仼鎱囨瑾鹃妧闅变箼鍚熸帆钄櫚闊抽.鎻栨常閭戝嚌鎳夎喓榉逛緷鍊氬剙瀹滄剰鎳挎摤妞呮瘏鐤戠煟缇╄墹钖忚熁琛h"], +["eca1","璀伴啱浜屼互浼婏铵炲し濮宸插紱褰涙★铵★Б铵g埦鐝ワГ鐣扮棈铵ョЩ铵﹁岃宠倓鑻¤崙铵эЖ璨借渤閭囷З铵4椁岋Й铵风泭缈婄繉缈艰瑲浜轰粊鍒冨嵃铵捊鍥犲Щ瀵呭紩蹇嶆巩铵Н绲尩铵拌殦瑾嶏П闈澐铵诧С涓浣氫骄澹规棩婧㈤搁幇棣逛换澹濮欐亖铵达У绋旓Ф鑽忚硟鍏ュ崉"], +["eda1","铵凤Ц铵逛粛鍓╁瓡鑺夸粩鍒哄挩濮夊Э瀛愬瓧瀛滄仯鎱堟粙鐐欑叜鐜嗙摲鐤电绱呰嚜鑼ㄨ敆钘夎璩囬泴浣滃嫼鍤兼柅鏄ㄧ伡鐐哥埖缍借妽閰岄泙榈插妫ф畼娼虹洖宀戞毇娼涚绨牰闆滀笀浠楀尃鍫村⒒澹ガ灏囧赋搴勫嫉鎺屾毑鏉栨妾f瑢婕跨墕铵虹崘鐠嬬珷绮ц吀鑷熻嚙鑾婅懍钄h枖钘忚璐撻啲闀"], +["eea1","闅滃啀鍝夊湪瀹版墠鏉愭牻姊撴附婊撶伣绺¤璨¤級榻嬮綆鐖畯璜嶉寶浣囦綆鍎插拃濮愬簳鎶垫澋妤娌笟鐙欑尓鐤界绱佃嫥鑿硅憲钘疯璨簢閫欓偢闆庨綗鍕e悐瀚″瘋鎽樻暤婊寸媱铵荤殑绌嶇瑳绫嶇妇缈熻嵒璎硦璧よ贰韫熻开杩归仼閺戜絻浣哄偝鍏ㄥ吀鍓嶅壀濉″〖濂犲皥灞曞粵鎮涙埌鏍撴姘堟颈"], +["efa1","鐓庣悹鐢扮敻鐣戠櫜绛岀畫绠瘑绾忚┊杓捐綁閳块姄閷㈤惈闆婚椤鍒囨埅鎶樻禉鐧ょ珚绡绲跺崰宀惧簵婕哥偣绮橀湋楫庨粸鎺ユ懞铦朵竵浜曚涵鍋滃伒鍛堝瀹氬箑搴环寰佹儏鎸烘斂鏁存棇鏅舵櫢鏌炬エ妾夋姹娣娣ㄦ笩婀炵炵偂鐜庣徑鐢虹潧纰囩绋嬬┙绮剧稁鑹囪▊璜矠閯厞閲橀墻閶岄尃闇嗛潠"], +["f0a1","闈滈爞榧庡埗鍔戝暭鍫ゅ笣寮熸倢鎻愭婵熺キ绗噸钖鸿=璜歌箘閱嶉櫎闅涢溄椤岄綂淇庡厗鍑嬪姪鍢插紨褰帾鎿嶆棭鏅佹浐鏇规湞姊濇妲芥紩娼収鐕ョ埅鐠満绁栫绉熺绐曠矖绯熺祫绻拌倗钘昏殼瑭旇瓒欒簛閫犻伃閲i樆闆曢偿鏃忕皣瓒抽弮瀛樺皧鍗掓嫏鐚濆у畻寰炴偘鎱娣欑惍绋祩缍滅副鑵"], +["f1a1","韪傅閸鹃悩浣愬潗宸﹀骇鎸姜涓讳綇渚忓仛濮濊儎鍛懆鍡惧瀹欏窞寤氭櫇鏈辨煴鏍敞娲叉箠婢嶇偡鐝犵枃绫岀磦绱盯鑸熻洓瑷昏獏璧拌簥杓抽遍厧閰掗憚椐愮绮ヤ繆鍎佸噯鍩堝宄绘櫃妯芥禋婧栨楷鐒岀暞绔h牏閫¢伒闆嬮Э鑼佷腑浠茶閲嶅嵔娅涙カ姹佽懞澧炴啂鏇炬嫰鐑濈攽鐥囩箳钂歌瓑璐堜箣鍙"], +["f2a1","鍜湴鍧蹇楁寔鎸囨懐鏀棬鏅烘灊鏋虫姹犳矚婕煡鐮ョ绁楃礄鑲㈣剛鑷宠姖鑺疯湗瑾岋Ъ璐勮毒閬茬洿绋欑ǚ绻旇伔鍞囧棓濉垫尟鎼㈡檳鏅嬫…姒涙畡娲ユ罕鐝嶇懆鐠$暃鐤圭洝鐪炵瀷绉︾笁绺濊嚮钄瑷鸿硲杌景閫查幁闄i櫝闇囦緞鍙卞И瀚夊笝妗庣搯鐤剧З绐掕啠铔唱璺岃凯鏂熸湑铵藉煼娼楃窛杓"], +["f3a1","閺堕泦寰垫嚥婢勪笖渚樺熷弶鍡熷弹宸姝ょ绠氾Ь韫夎粖閬崏鎼剧潃绐勯尟閼块姜鎾版警鐕︾挩鐡氱珓绨掔簜绮茬簶璁氳磰閼介楗屽埞瀵熸摝鏈串鍍弮濉规厴鎱欐嚭鏂珯璁掕畺鍊夊″壍鍞卞寤犲桨鎰存暈鏄屾樁鏆㈡婊勬疾鐚栫槨绐撹劰鑹欒彇钂煎偟鍩板瘈瀵ㄥ僵鎺$牔缍佃彍钄¢噰閲靛唺鏌电瓥"], +["f4a1","璨噭濡绘偨铏曞滐Э鍓斿昂鎱芥垰鎷撴摬鏂ユ粚鐦犺剨韫犻櫉闅讳粺鍗冨枠澶╁窛鎿呮硥娣虹帞绌胯垱钖﹁长韪愰伔閲ч棥闃¢焼鍑稿摬鍠嗗竟鎾ゆ緢缍磋紵杞嶉惖鍍夊皷娌炬坊鐢涚灮绨界堡瑭硅珎鍫炲甯栨嵎鐗掔枈鐫珳璨艰紥寤虫櫞娣歌伣鑿佽珛闈戦瘱铷鍓冩浛娑曟化绶犺閫仦楂斿垵鍓垮摠鎲旀妱鎷涙ⅱ"], +["f5a1","妞掓妯电倰鐒︾绀佺绉掔◢鑲栬壐鑻曡崏钑夎矀瓒呴參閱嬮啴淇冨洃鐕煑铚瑙稿蹇栨潙閭ㄥ彚濉氬鎮ゆ唩鎽犵附鑱拌敟閵冩挳鍌磾鏈澧滄娊鎺ㄦ妤告婀毢绉嬭娀钀╄珡瓒ㄨ拷閯掗厠閱滈寪閷橀帤闆涢ǘ榘嶄笐鐣滅绔虹瓚绡夌府钃勮箼韫磋桓閫愭槬妞跨憙鍑烘湲榛滃厖蹇犳矕锜茶琛锋偞鑶佃悆"], +["f6a1","璐呭彇鍚瑰槾濞跺氨鐐婄繝鑱氳剢鑷叮閱夐榉插伌浠勫帬鎯绘脯灞や緢鍊ゅ棨宄欏篃鎭ユ娌绘穭鐔剧棓鐥寸櫋绋氱〾绶囩坊缃嚧铓╄紲闆夐Τ榻掑墖鍕呴-瑕竷鏌掓紗渚靛鏋曟矆娴哥悰鐮ч嚌閸艰焺绉ょū蹇粬鍜ゅ斁澧Ε鎯版墦鎷栨湺妤曡埖闄棣遍鍊崜鍟勫澕铷佹墭铷傛摙鏅煗婵佹刊鐞㈢惛瑷"], +["f7a1","閻稿憫鍢嗗潶褰堟啔姝庣仒鐐痘瑾曞オ鑴帰鐪堣借勃濉旀惌姒诲畷甯戞汞铷冭暕鍏屽彴澶犳厠娈嗘卑娉扮瑸鑳庤嫈璺嗛偘棰憋▌鎿囨兢鎾戞攧鍏庡悙鍦熻◣鎱熸《铷呯棝绛掔当閫氬爢妲岃吙瑜闋瑰伕濂楀Μ鎶曢忛鎱濈壒闂栧潯濠嗗反鎶婃挱鎿烘澐娉㈡淳鐖惗鐮寸椒鑺窙闋楀垽鍧傛澘鐗堢摚璨╄睛閳"], +["f8a1","闃叓鍙崒浣╁攧鎮栨晽娌涙悼鐗岀嫿绋楄璨濆江婢庣児鑶ㄦ剮渚垮亸鎵佺墖绡囩法缈╅亶闉璨跺潽骞虫灠钀嶈⿻鍚犲瑬骞e虎寮婃杻鑲鸿斀闁夐櫅浣堝寘鍖嶅審鍜嗗摵鍦冨竷鎬栨姏鎶辨崟铷嗘场娴︾柋鐮茶優鑴嫗钁¤挷琚嶈閫嬮嫪椋介畱骞呮毚鏇濈戠垎铷囦康鍓藉姜鎱撴潛妯欐紓鐡㈢エ琛ㄨ惫椋囬椹"], +["f9a1","鍝佺妤撹璞婇ⅷ棣郊鎶柌鐨閬块檪鍖瑰技蹇呮硨鐝岀暍鐤嬬瓎鑻鹃涔忛间笅浣曞帵澶忓粓鏄版渤鐟曡嵎铦﹁硛閬愰湠榘曞瀛歌檺璎旈洞瀵掓仺鎮嶆棻姹楁饥婢g氱綍缈伴枒闁掗檺闊撳壊杞勫嚱鍚捀鍟e枈妾绘兜绶樿墻閵滈櫡楣瑰悎鍝堢洅铔ら枻闂旈櫆浜級濮宸锋亽鎶楁澀妗佹矄娓几鑲涜埅"], +["faa1","铷堬▔闋呬亥鍋曞挸鍨撳瀛╁鎳堟シ娴风h煿瑙h┎璜ч倐椐鍔炬牳鍊栧垢鏉忚崌琛屼韩鍚戝毊鐝﹂剷闊块楗楅鍣撳铏涜ū鎲叉鐛昏粧姝囬毆椹楀鐖璧潻淇斿炒寮︽嚫鏅涙倡鐐巹鐜圭従鐪╃潔绲冪耽绺h埛琛掞▕璩㈤墘椤瓚绌磋闋佸珜淇犲崝澶惧辰鎸炬倒鐙硅剠鑴囪帰閶忛牥浜ㄥ厔鍒戝瀷"], +["fba1","褰㈡硞婊庣呯亹鐐啋鐝╃懇鑽婅灑琛¢堥偄閹iΘ鍏綏鎯犳収鏆宠暀韫婇啹闉嬩箮浜掑懠澹曞:濂藉驳寮ф埗鎵堟槉鏅ф娴╂窂婀栨桓婢旀繝婵╃仢鐙愮惀鐟氱摖鐨撶绯婄笧鑳¤姦钁捒铏庤櫉铦磋璞幀闋椤ユ儜鎴栭叿濠氭槒娣锋妇鐞块瓊蹇芥儦绗忓搫寮樻睘娉撴椽鐑樼磪铏硅▽榇诲寲鍜屽瑓妯虹伀鐣"], +["fca1","绂嶇鑺辫彲瑭辫瓉璨ㄩ澊铷嬫摯鏀⒑纰荤┇涓稿枤濂愬骞绘偅鎻涙鏅ユ娓欑叆鐠扮磮閭勯┅榘ユ椿婊戠尵璞侀棅鍑板箤寰ㄦ亶鎯舵劙鎱屾檭鏅勬Ε娉佹篃婊夋舰鐓岀挏鐨囩瘉绨ц崚铦楅亼闅嶉粌鍖洖寤诲緤鎭㈡倲鎳锋櫐鏈冩獪娣井鐏扮崻绻喚鑼磋洈瑾ㄨ硠鍔冪嵅瀹栨┇閻勫摦鍤嗗瓭鏁堟枀鏇夋娑嶆穯"], +["fda1","鐖昏偞閰甸⿳渚欏帤鍚庡惣鍠夊梾甯垮緦鏈界叇鐝濋呭嫑鍕冲·澹庣剟鐔忕嚮钖拌〒鏆堣枿鍠ф殑鐓婅惐鍗夊枡姣佸綑寰芥彯鏆夌厙璜辫紳楹句紤鎼虹儖鐣﹁櫑鎭よ瓗榉稿厙鍑跺寛娲惰兏榛戞槙娆g倶鐥曞悆灞圭磭瑷栨瑺娆芥瓎鍚告伆娲界繒鑸堝儢鍑炲枩鍣泹濮瑝甯屾啓鎲樻埍鏅炴洣鐔欑喒鐔虹姧绂х█缇茶┌"] +] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp950.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp950.json" new file mode 100644 index 0000000000000000000000000000000000000000..d8bc87178dd38fca1829b9e2109c6f71e9721bdf --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/cp950.json" @@ -0,0 +1,177 @@ +[ +["0","\u0000",127], +["a140","銆锛屻併傦紟鈥э紱锛氾紵锛侊赴鈥︹ワ箰锕戯箳路锕旓箷锕栵箺锝溾擄副鈥旓赋鈺达复锕忥紙锛夛傅锔讹經锝濓阜锔搞斻曪腹锔恒愩戯富锔笺娿嬶附锔俱堛夛缚锕銆屻嶏箒锕傘庛忥箖锕勶箼锕"], +["a1a1","锕涳箿锕濓篂鈥樷欌溾濄濄炩碘诧純锛嗭紛鈥宦с冣棆鈼忊柍鈻测棊鈽嗏槄鈼団梿鈻♀枲鈻解柤銑b剠炉锟o伎藣锕夛箠锕嶏箮锕嬶箤锕燂範锕★紜锛嵜椕仿扁垰锛滐紴锛濃墻鈮р墵鈭炩墥鈮★耿",4,"锝炩埄鈭姤鈭犫垷鈯裤彃銖戔埆鈭埖鈭粹檧鈾傗姇鈯欌啈鈫撯啇鈫掆問鈫椻啓鈫樷垾鈭o紡"], +["a240","锛尖垥锕紕锟ャ掞繝锟★紖锛犫剝鈩夛供锕公銖曘帨銕濄帪銖庛帯銕庛帍銖劼板厵鍏涘厼鍏濆叀鍏e棫鐡╃硯鈻",7,"鈻忊枎鈻嶁枌鈻嬧枈鈻夆敿鈹粹敩鈹も敎鈻斺攢鈹傗枙鈹屸攼鈹斺敇鈺"], +["a2a1","鈺暟鈺晲鈺炩暘鈺♀棦鈼b棩鈼も暠鈺测暢锛",9,"鈪",9,"銆",8,"鍗佸崉鍗咃肌",25,"锝",21], +["a340","锝楋綐锝欙綒螒",16,"危",6,"伪",16,"蟽",6,"銊",10], +["a3a1","銊",25,"藱藟藠藝藡"], +["a3e1","鈧"], +["a440","涓涔欎竵涓冧箖涔濅簡浜屼汉鍎垮叆鍏嚑鍒鍒佸姏鍖曞崄鍗滃張涓変笅涓堜笂涓父鍑′箙涔堜篃涔炰簬浜″厐鍒冨嫼鍗冨弶鍙e湡澹澶уコ瀛愬瓚瀛撳灏忓阿灏稿北宸濆伐宸卞凡宸冲肪骞插痪寮嬪紦鎵"], +["a4a1","涓戜笎涓嶄腑涓颁腹涔嬪肮浜堜簯浜曚簰浜斾孩浠佷粈浠冧粏浠囦粛浠婁粙浠勫厓鍏佸収鍏叜鍏啑鍑跺垎鍒囧垐鍕诲嬀鍕垮寲鍖瑰崍鍗囧崊鍗炲巹鍙嬪強鍙嶅,澶╁か澶き瀛斿皯灏ゅ昂灞反骞诲豢寮斿紩蹇冩垐鎴舵墜鎵庢敮鏂囨枟鏂ゆ柟鏃ユ洶鏈堟湪娆犳姝规瘚姣旀瘺姘忔按鐏埅鐖剁埢鐗囩墮鐗涚姮鐜嬩笝"], +["a540","涓栦笗涓斾笜涓讳箥涔忎箮浠ヤ粯浠斾粫浠栦粭浠d护浠欎粸鍏呭厔鍐夊唺鍐嚬鍑哄嚫鍒婂姞鍔熷寘鍖嗗寳鍖濅粺鍗婂崏鍗″崰鍗嵁鍘诲彲鍙ゅ彸鍙彯鍙╁彣鍙煎徃鍙靛彨鍙﹀彧鍙插彵鍙板彞鍙徎鍥涘洑澶"], +["a5a1","澶け濂村ザ瀛曞畠灏煎法宸у乏甯傚竷骞冲辜寮佸紭寮楀繀鎴婃墦鎵旀墥鎵戞枼鏃︽湲鏈湭鏈湱姝f瘝姘戞皭姘告眮姹姘剧姱鐜勭帀鐡滅摝鐢樼敓鐢ㄧ敥鐢扮敱鐢茬敵鐤嬬櫧鐨毧鐩煕鐭㈢煶绀虹绌寸珛涓炰笩涔掍箵涔╀簷浜や害浜ヤ豢浼変紮浼婁紩浼嶄紣浼戜紡浠蹭欢浠讳话浠充唤浼佷紜鍏夊厙鍏嗗厛鍏"], +["a640","鍏卞啀鍐板垪鍒戝垝鍒庡垨鍔e寛鍖″尃鍗板嵄鍚夊悘鍚屽悐鍚愬悂鍚嬪悇鍚戝悕鍚堝悆鍚庡悊鍚掑洜鍥炲洕鍦冲湴鍦ㄥ湱鍦湳鍦╁澶氬し澶稿濂稿濂藉ス濡傚瀛楀瓨瀹囧畧瀹呭畨瀵哄皷灞瑰窞甯嗗苟骞"], +["a6a1","寮忓紱蹇欏繓鎴庢垖鎴嶆垚鎵f墰鎵樻敹鏃╂棬鏃棴鏇叉洺鏈夋溄鏈存湵鏈垫姝ゆ姘栨睗姹楁睓姹熸睜姹愭睍姹℃睕姹嶆睅鐏扮墴鐗濈櫨绔圭背绯哥级缇婄窘鑰佽冭岃掕宠伩鑲夎倠鑲岃嚕鑷嚦鑷艰垖鑸涜垷鑹壊鑹捐櫕琛琛岃。瑗块槨涓蹭酣浣嶄綇浣囦綏浣炰即浣涗綍浼颁綈浣戜冀浼轰几浣冧綌浼间絾浣"], +["a740","浣滀綘浼綆浼朵綑浣濅綀浣氬厡鍏嬪厤鍏靛喍鍐峰垾鍒ゅ埄鍒埁鍔姪鍔姮鍖e嵆鍗靛悵鍚悶鍚惧惁鍛庡惂鍛嗗憙鍚冲憟鍛傚悰鍚╁憡鍚瑰惢鍚稿惍鍚靛惗鍚犲惣鍛鍚卞惈鍚熷惉鍥洶鍥ゅ洬鍧婂潙鍧鍧"], +["a7a1","鍧囧潕鍦惧潗鍧忓溁澹ぞ濡濆濡ㄥ濡e濡栧濡ゅ濡婂Ε瀛濆瓬瀛氬瓫瀹屽畫瀹忓艾灞灞佸翱灏惧矏宀戝矓宀屽帆甯屽簭搴囧簥寤峰紕寮熷饯褰㈠椒褰瑰繕蹇屽織蹇嶅勘蹇扛蹇垝鎴戞妱鎶楁姈鎶鎵舵妷鎵妸鎵兼壘鎵规壋鎶掓壇鎶樻壆鎶曟姄鎶戞妴鏀规敾鏀告棻鏇存潫鏉庢潖鏉愭潙鏉滄潠鏉炴潐鏉嗘潬"], +["a840","鏉撴潡姝ユ瘡姹傛睘娌欐瞾娌堟矇娌呮矝姹焙娌愭卑娌屾报娌栨矑姹芥矁姹叉本姹存矄姹舵矋娌旀矘娌傜伓鐏肩伣鐏哥墷鐗$墵鐙勭媯鐜栫敩鐢敺鐢哥殏鐩煟绉佺绂跨┒绯荤綍鑲栬倱鑲濊倶鑲涜倸鑲茶壇鑺"], +["a8a1","鑺嬭妽瑕嬭瑷璋疯眴璞曡矟璧よ蛋瓒宠韩杌婅緵杈拌總杩嗚繀杩勫贰閭戦偄閭偊閭i厜閲嗛噷闃查槷闃遍槳闃甫涔栦钩浜嬩簺浜炰韩浜蒋渚濅緧浣充娇浣緵渚嬩締渚冧桨浣典緢浣╀交渚栦骄渚忎緫浣哄厰鍏掑厱鍏╁叿鍏跺吀鍐藉嚱鍒诲埜鍒峰埡鍒板埉鍒跺墎鍔惧娀鍗掑崝鍗撳崙鍗﹀嵎鍗稿嵐鍙栧彅鍙楀懗鍛"], +["a940","鍜栧懜鍜曞拃鍛诲懛鍜勫拻鍜嗗懠鍜愬懕鍛跺拰鍜氬憿鍛ㄥ拫鍛藉拵鍥哄瀮鍧峰潽鍧╁潯鍧﹀潳鍧煎濂夊濂堝濂斿濡诲濡瑰Ξ濮戝濮愬濮嬪濮婂Ο濡冲濮呭瓱瀛ゅ瀹楀畾瀹樺疁瀹欏疀灏氬眻灞"], +["a9a1","灞嗗卜宀″哺宀╁搏宀卞渤甯樺笟甯栧笗甯涘笐骞稿簹搴楀簻搴曞簴寤跺鸡寮у缉寰寰佸娇褰煎繚蹇犲拷蹇靛靠鎬忔旀垫栨曟℃ф╂涙垨鎴曟埧鎴炬墍鎵挎媺鎷屾媱鎶挎媯鎶规嫆鎷涙姭鎷撴嫈鎷嬫媹鎶ㄦ娊鎶兼嫄鎷欐媷鎷嶆姷鎷氭姳鎷樻嫋鎷楁媶鎶嫀鏀炬枾鏂兼椇鏄旀槗鏄屾槅鏄傛槑鏄鏄忔槙鏄"], +["aa40","鏄囨湇鏈嬫澀鏋嬫灂鏉辨灉鏉虫澐鏋囨灊鏋楁澂鏉版澘鏋夋澗鏋愭澋鏋氭灀鏉兼潽鏉叉姝︽姝挎皳姘涙常娉ㄦ吵娌辨硨娉ユ渤娌芥簿娌兼尝娌硶娉撴哺娉勬补娉佹伯娉楁硡娉辨部娌绘场娉涙硦娌朝娉滄硸娉"], +["aaa1","鐐曠値鐐掔倞鐐欑埇鐖埜鐗堢墽鐗╃媭鐙庣嫏鐙楃嫄鐜╃帹鐜熺帿鐜ョ斀鐤濈枡鐤氱殑鐩傜洸鐩寸煡鐭界ぞ绁绁佺绉堢┖绌圭绯剧綌缇岀緥鑰呰偤鑲ヨ偄鑲辫偂鑲偐鑲磋偑鑲嚗鑷捐垗鑺宠姖鑺欒姯鑺借姛鑺硅姳鑺姤鑺姼鑺h姲鑺捐姺铏庤櫛鍒濊〃杌嬭繋杩旇繎閭甸偢閭遍偠閲囬噾闀烽杸闃滈檧闃块樆闄"], +["ab40","闄傞毠闆ㄩ潚闈炰簾浜寒淇′镜渚究淇犱繎淇忎繚淇冧径淇樹繜淇婁織渚繍淇勪總淇氫繋淇炰痉鍏楀啋鍐戝啝鍓庡墐鍓婂墠鍓屽墜鍓囧媷鍕夊媰鍕佸實鍗楀嵒鍘氬彌鍜搥鍜ㄥ搸鍝夊捀鍜﹀挸鍝囧搨鍜藉挭鍝"], +["aba1","鍝勫搱鍜挮鍜卞捇鍜╁挧鍜垮浛鍨傚瀷鍨犲灒鍨㈠煄鍨灀濂曞濂忓濂愬濮樺Э濮eЖ濞冨Д濮濮﹀▉濮诲瀹e瀹ゅ瀹ュ皝灞庡睆灞嶅眿宄欏硳宸峰笣甯ュ笩骞藉籂搴﹀缓寮堝辑褰ュ緢寰呭緤寰嬪緡寰屽緣鎬掓濇犳ユ庢ㄦ亶鎭版仺鎭㈡亞鎭冩伂鎭仾鎭ゆ墎鎷滄寲鎸夋嫾鎷寔鎷嫿鎸囨嫳鎷"], +["ac40","鎷嫭鎷炬嫶鎸戞寕鏀挎晠鏂柦鏃㈡槬鏄槧鏄ф槸鏄熸槰鏄辨槫鏇锋熆鏌撴煴鏌旀煇鏌灦鏋煹鏌╂煰鏌勬煈鏋存煔鏌ユ灨鏌忔煘鏌虫灠鏌欐煝鏌濇煉姝畠娈嗘姣掓瘲姘熸硥娲嬫床娲祦娲ユ磳娲辨礊娲"], +["aca1","娲绘唇娲炬炊娲涙车娲规揣娲告穿娲吹娲庢传鐐偤鐐崇偓鐐偔鐐哥偖鐐ょ埌鐗茬壇鐗寸嫨鐙犵嫛鐜风強鐜荤幉鐝嶇弨鐜崇敋鐢晱鐣岀晭鐣嬬柅鐤ょ枼鐤㈢枺鐧哥殕鐨囩殘鐩堢泦鐩冪泤鐪佺浌鐩哥湁鐪嬬浘鐩肩渿鐭滅爞鐮旂爩鐮嶇绁夌绁囩绂虹绉掔绌跨獊绔跨绫界磦绱呯磤绱夌磭绱勭磫缂哥編缇胯"], +["ad40","鑰愯嶈戣惰儢鑳ヨ儦鑳冭儎鑳岃儭鑳涜儙鑳炶儰鑳濊嚧鑸㈣嫥鑼冭寘鑻h嫑鑻﹁寗鑻ヨ寕鑼夎嫆鑻楄嫳鑼佽嫓鑻旇嫅鑻炶嫇鑻熻嫰鑼嗚檺铏硅櫥铏鸿琛瑙旇▓瑷傝▋璨炶矤璧磋党瓒磋粛杌岃堪杩﹁竣杩骏"], +["ada1","杩揩杩よ卡閮婇儙閮侀儍閰嬮厞閲嶉杺闄愰檵闄岄檷闈㈤潻闊嬮煭闊抽爜棰ㄩ椋熼棣欎箻浜冲屽嶅d刊鍊﹀ヤ扛鍊╁栧嗗煎熷氬掑戜亢鍊鍊斿ㄤ勘鍊″嬪欏樹砍淇烤鍊夊吋鍐ゅ啣鍐㈠噸鍑屽噯鍑嬪墫鍓滃墧鍓涘墲鍖嵖鍘熷帩鍙熷摠鍞愬攣鍞峰摷鍝ュ摬鍞嗗摵鍞斿摡鍝摗鍞夊摦鍝"], +["ae40","鍝﹀敡鍞囧摻鍞忓渻鍦勫焸鍩斿煁鍩冨爥澶忓濂樺濞戝濞滃濞涘〒濮濞eī濞ュ▽濞夊灞樺瀹冲瀹村瀹靛瀹稿皠灞戝睍灞愬抄宄藉郴宄敞宄板扯宕佸炒宸腑甯韩搴骇寮卞緬寰戝緪鎭"], +["aea1","鎭f仴鎭愭仌鎭仼鎭倓鎮熸倸鎮嶆倲鎮屾倕鎮栨墖鎷虫寛鎷挎崕鎸炬尟鎹曟崅鎹嗘崗鎹夋尯鎹愭尳鎸尗鎸ㄦ崓鎹屾晥鏁夋枡鏃佹梾鏅傛檳鏅忔檭鏅掓檶鏅呮檨鏇告湐鏈曟湕鏍℃牳妗堟妗撴牴妗傛鏍╂⒊鏍楁妗戞牻鏌存妗鏍兼鏍鏍撴牁妗佹畩娈夋姘f哀姘ㄦ唉姘ゆ嘲娴稌娑堟秶娴︽蹈娴锋禉娑"], +["af40","娴秹娴禋娴存旦娑屾秺娴规秴娴ユ稊鐑婄儤鐑ょ儥鐑堢儚鐖圭壒鐙肩嫻鐙界嫺鐙风巻鐝悏鐝彔鐝彏鐣旂暆鐣滅暁鐣欑柧鐥呯棁鐤茬柍鐤界柤鐤圭梻鐤哥殝鐨扮泭鐩嶇泿鐪╃湡鐪犵湪鐭╃牥鐮х牳鐮濈牬鐮"], +["afa1","鐮ョ牠鐮犵牊鐮茬绁愮绁熺绁炵绁楃绉ょВ绉х绉︾З绉樼獎绐堢珯绗嗙瑧绮夌础绱楃磱绱婄礌绱㈢磾绱愮磿绱氱礈绱嶇礄绱涚己缃熺緮缈呯縼鑰嗚樿曡欒楄借胯儽鑴傝儼鑴呰儹鑳磋剢鑳歌兂鑴堣兘鑴婅兗鑳嚟鑷垁鑸愯埅鑸埁鑸娀鑼崚鑽旇崐鑼歌崘鑽夎尩鑼磋崗鑼茶尮鑼惰寳鑽鑼辫尐鑽"], +["b040","铏旇殜铓殦铓よ毄铓岃殻铓滆“琛疯琚傝〗琛硅瑷愯◣瑷岃〞瑷婅瑷撹瑷忚☉璞堣焙璞硅病璨㈣捣韬粧杌旇粡杈遍侀嗚糠閫杩鸿看閫冭拷閫呰扛閭曢儭閮濋儮閰掗厤閰岄嚇閲濋嚄閲滈嚈闁冮櫌闄i櫋"], +["b0a1","闄涢櫇闄ら櫂闄為毣椋㈤Μ楠ㄩ珮楝ラ楝间咕鍋哄伣鍋滃亣鍋冨亴鍋氬亯鍋ュ伓鍋庡仌鍋靛伌鍋峰亸鍊忓伅鍋厹鍐曞嚢鍓壇鍕掑嫏鍕樺嫊鍖愬審鍖欏尶鍗鍖惧弮鏇煎晢鍟暒鍟勫暈鍟″晝鍟婂敱鍟栧晱鍟曞敮鍟ゅ敻鍞暅鍞暎鍞冲晛鍟楀湀鍦嬪湁鍩熷爡鍫婂爢鍩犲煠鍩哄爞鍫靛煼鍩瑰濂㈠ǘ濠佸〾濠﹀┆濠"], +["b140","濞煎濠氬﹩濠婂瀵囧瘏瀵勫瘋瀹垮瘑灏夊皥灏囧睜灞滃睗宕囧磫宕庡礇宕栧储宕戝穿宕斿礄宕ゅ揣宕楀发甯稿付甯冲阜搴峰焊搴跺旱搴惧嫉寮峰綏褰僵褰緱寰欏緸寰樺尽寰犲緶鎭挎偅鎮夋偁鎮ㄦ儖鎮存儲鎮"], +["b1a1","鎯呮偦鎮垫儨鎮兼儤鎯曟儐鎯熸偢鎯氭儑鎴氭垱鎵堟帬鎺ф嵅鎺栨帰鎺ユ嵎鎹ф帢鎺嵄鎺╂帀鎺冩帥鎹帹鎺勬巿鎺欐帯鎺帓鎺忔巰鎹绘崺鎹ㄦ嵑鏁濇晼鏁戞暀鏁楀暉鏁忔晿鏁曟晹鏂滄枦鏂棌鏃嬫棇鏃庢櫇鏅氭櫎鏅ㄦ櫐鏅炴浌鍕楁湜姊佹姊㈡姊垫】妗舵⒈姊ф姊版妫勬姊嗘姊旀姊ㄦ姊℃娆叉"], +["b240","姣姘稁娑兼烦娣欐恫娣℃穼娣ゆ坊娣烘竻娣囨穻娑窇娑窞娣规陡娣锋返娣呮窉娓氭兜娣氭帆娣樻藩娣辨樊娣ㄦ穯娣勬丢娣犊娣︾児鐒夌剨鐑界儻鐖界壗鐘佺寽鐚涚寲鐚撶寵鐜囩悈鐞婄悆鐞嗙従鐞嶇摖鐡"], +["b2a1","鐡风敎鐢㈢暐鐣︾暍鐣扮枏鐥旂棔鐤电棅鐥嶇殠鐩旂洅鐩涚湻鐪剧溂鐪剁湼鐪虹~纭冪绁ョエ绁Щ绐掔獣绗犵绗涚绗︾瑱绗炵绮掔矖绮曠祮绲冪当绱垂绱肩祤绱扮闯绲勭疮绲傜床绱辩冀缇炵練缈岀繋缈掕滆亰鑱嗚劘鑴栬劊鑴劑鑴拌劋鑸傝埖鑸疯埗鑸硅帋鑾炶帢鑽歌帰鑾栬幗鑾帓鑾婅帗鑾夎帬鑽疯嵒鑽"], +["b340","鑾嗚帶铏曞姜铔囪泙铓惰泟铓佃泦铔嬭毐铓泬琛撹琚堣琚掕琚嶈瑕撹瑷瑷hē瑷辫ō瑷熻瑷㈣眽璞氳博璨搏璨ㄨ勃璨ц掸璧﹁毒瓒鸿粵杌熼欓嶉氶楅i熼濋愰曢為犻忛㈤栭涢"], +["b3a1","閮ㄩ儹閮介厳閲庨嚨閲﹂嚕閲ч嚟閲╅枆闄櫟闄抽櫢闄伴櫞闄堕櫡闄泙闆洨绔犵珶闋傞爟榄氶偿楣甸箍楹ラ夯鍌㈠倣鍌呭倷鍌戝個鍌栧倶鍌氭渶鍑卞壊鍓村壍鍓╁嫗鍕濆嫑鍗氬帴鍟诲杸鍠у暭鍠婂枬鍠樺杺鍠滃柂鍠斿枃鍠嬪杻鍠冲柈鍠熷斁鍠插枤鍠诲柆鍠卞暰鍠夊柅鍠欏湇鍫牚鍫村牑鍫板牨鍫″牆鍫犲9澹哄"], +["b440","濠峰獨濠垮獟濯涘瀛冲瀵掑瘜瀵撳瘣灏婂皨灏卞祵宓愬创宓囧方骞呭附骞骞冨咕寤婂粊寤傚粍寮煎江寰╁惊寰ㄦ儜鎯℃偛鎮舵儬鎰滄劊鎯烘剷鎯版兓鎯存叏鎯辨剮鎯舵剦鎰鎰掓垷鎵夋帲鎺屾弿鎻鎻╂弶鎻嗘弽"], +["b4a1","鎻掓彛鎻愭彙鎻栨彮鎻嵍鎻存彧鎻涙憭鎻氭徆鏁炴暒鏁㈡暎鏂戞枑鏂櫘鏅版櫞鏅舵櫙鏆戞櫤鏅炬櫡鏇炬浛鏈熸湞妫烘妫犳妫楁妫熸5妫'妫规妫叉#妫嬫妞嶆妞庢妫氭ギ妫绘娆烘娈樻畺娈兼姘隘姘腐娓告箶娓℃覆婀ф箠娓犳弗娓f笡婀涙箻娓ゆ箹婀腑娓︽汞娓存箥娓烘脯婀冩笣娓炬粙"], +["b540","婧夋笝婀庢梗婀勬共婀╂篃鐒欑剼鐒︾劙鐒$劧鐓劀鐗岀妱鐘鐚剁尌鐚寸尒鐞虹惇鐞崇悽鐞ョ惖鐞剁惔鐞悰鐞︾惃鐢ョ敠鐣暘鐥㈢棝鐥g棛鐥樼棡鐥犵櫥鐧肩殩鐨撶毚鐩滅潖鐭纭’绋嶇▓绋嬬▍绋绐"], +["b5a1","绐楃獤绔ョ绛夌瓥绛嗙瓙绛掔瓟绛嶇瓔绛忕瓚绮熺播绲炵祼绲ㄧ禃绱诞绲茬怠绲︾耽绲扮党鍠勭繑缈曡嬭亽鑲呰厱鑵旇厠鑵戣厧鑴硅厗鑴捐厡鑵撹叴鑸掕垳鑿╄悆鑿歌悕鑿犺弲钀嬭弫鑿彵鑿磋憲钀婅彴钀岃弻鑿借彶鑿婅惛钀庤悇鑿滆悋鑿旇彑铏涜洘铔欒洯铔旇洓铔よ洂铔炶瑁佽琚辫瑕栬ɑ瑭犺⿻瑭炶瑭"], +["b640","瑭旇瑭愯﹩瑷磋ê瑷惰〇璞¤矀璨布璨宠步璩佽不璩璨磋卜璨惰部璨歌秺瓒呰秮璺庤窛璺嬭窔璺戣穼璺涜穯杌昏桓杌艰緶閫甸遍搁查堕剛閮甸剦閮鹃叄閰ラ噺閳旈垥閳i垑閳為垗閳愰垏閳戦枖闁忛枊闁"], +["b6a1","闁撻枓闁庨殜闅庨殝闄介殔闅嗛殟闄查殑闆侀泤闆勯泦闆囬洴闆查煂闋呴爢闋堥'椋/椋╅2椋Ξ棣粌榛嶉粦浜傚偔鍌靛偛鍌冲儏鍌惧偓鍌峰偦鍌儑鍓垮壏鍓藉嫙鍕﹀嫟鍕㈠嫞鍖棢鍡ㄥ棑鍡﹀棊鍡滃棁鍡戝棧鍡ゅ棷鍡氬棥鍡呭梿鍡ュ棄鍦掑湏濉炲濉樺濉氬濉濉濉㈠濉嬪ェ瀚佸珘瀚屽濯藉"], +["b740","濯冲珎濯插旦宓箤骞瑰粔寤堝紥褰欏粳寰剼鎰忔厛鎰熸兂鎰涙児鎰佹剤鎱庢厡鎱勬厤鎰炬劥鎰ф剭鎰嗘劮鎴℃垻鎼撴惥鎼炴惇鎼惤鎼悘鎼滄悢鎼嶆惗鎼栨悧鎼嗘暚鏂熸柊鏆楁殙鏆囨殘鏆栨殑鏆樻殟鏈冩妤"], +["b7a1","妤氭シ妤犳妤垫ぐ姒傛妤ㄦカ妤炴妤规妤濇ィ妤涙瓏姝叉瘈娈挎瘬姣芥孩婧粨婧舵粋婧愭簼婊囨粎婧ユ簶婧兼汉婧粦婧栨簻婊勬粩婧骇婧寸厧鐓欑叐鐓ょ厜鐓х厹鐓叇鐓岀叆鐓炵厗鐓ㄧ厲鐖虹墥鐚风崊鐚跨尵鐟憵鐟曠憻鐟炵憗鐞跨憴鐟涚憸鐣剁暩鐦鐥扮榿鐥茬棻鐥虹椏鐥寸棾鐩炵洘鐫涚潾鐫︾潪鐫"], +["b840","鐫圭潽鐫潨鐫ョ潹鐫㈢煯纰庣纰楃纰岀纭肩纰撶】绁虹タ绂佽惉绂界绋氱绋旂绋炵獰绐犵绡绛犵绛х脖绮崇驳缍撶倒缍戠秮缍忕禌缃僵缃讲缇╃鲸缇よ仏鑱樿倖鑲勮叡鑵拌吀鑵ヨ叜鑵宠叓"], +["b8a1","鑵硅吅鑵﹁垍鑹囪拏钁疯惤钀辫懙钁﹁懌钁夎懍钁涜惣钀佃憽钁h懇钁憜铏炶櫆铏熻浌铚撹湀铚囪渶铔捐浕铚傝渻铚嗚湂琛欒瑁旇瑁滆瑁濊!瑁婅瑁掕瑙h┇瑭茶┏瑭﹁┅瑭拌獓瑭艰瑾犺┍瑾呰┉瑭㈣┊瑭┕瑭昏ň瑭ㄨ雹璨婅矇璩婅硣璩堣硠璨茶硟璩傝硡璺¤窡璺ㄨ矾璺宠泛璺筏璺﹁翰杓冭級杌捐紛"], +["b940","杈熻静閬嬮亰閬撻亗閬旈奸仌閬愰亣閬忛亷閬嶉亼閫鹃亖閯掗剹閰叒閰╅噳閳烽墬閳搁埥閴閳鹃墰閴嬮墹閴戦埓閴夐墠閴呴埞閳块墯闁橀殬闅旈殨闆嶉泲闆夐泭闆烽浕闆归浂闈栭澊闈堕爯闋戦爴闋婇爳闋岄<椋"], +["b9a1","椋介>棣抽Ρ棣撮槌╅簜榧庨紦榧犲儳鍍儱鍍栧儹鍍氬儠鍍忓儜鍍卞儙鍍╁參鍑冲妰鍔傚尡鍘椌鍢鍢涘槜鍡藉様鍢嗗槈鍢嶅槑鍡峰槚鍢熷槇鍢愬椂鍦樺湒濉靛【澧冨澧婂」澧呭〗澹藉ぅ澶㈠い濂ォ瀚″瀚╁珬瀚栧珮瀚e瀵炲瀵″瀵﹀瀵㈠瀵熷皪灞㈠秳宥囧箾骞e箷骞楀箶寤撳粬寮婂絾褰板竟鎱"], +["ba40","鎰挎厠鎱锋參鎱f厽鎱氭厴鎱垫埅鎾囨憳鎽旀挙鎽告憻鎽烘憫鎽ф惔鎽懟鏁叉枴鏃楁棖鏆㈡毃鏆濇姒ㄦ妲佹Ξ妲撴姒涙Ψ姒绘Λ姒存妲嶆Ν妲屾Ζ妲冩Γ姝夋瓕姘虫汲婕旀痪婕撴淮婕╂季婕犳棘婕忔紓婕"], +["baa1","婊挎化婕嗘急婕告疾婕f紩婕集婢堟吉婊紒婊叉粚婊风啍鐔欑吔鐔婄唲鐔掔埦鐘掔姈鐛勭崘鐟ょ懀鐟懓鐟攧鐤戠槯鐦嶇構鐦夌槗鐩$洠鐬勭澖鐫跨潯纾佺纰х⒊纰╃ⅲ绂庣绂嶇ó绋辩绐╃绔绠曠畫绛电畻绠濈當绠忕绠囩畡绮圭步绮剧痘缍扮稖缍界毒缍犵穵缍寸恫缍辩逗缍㈢犊缍电陡缍窉绶囩冬"], +["bb40","缃扮繝缈$繜鑱炶仛鑲囪厫鑶鑶忚唸鑶婅吙鑶傝嚙鑷鸿垏鑸旇垶鑹嬭搲钂胯搯钃勮挋钂炶挷钂滆搵钂歌搥钃撹拹钂艰搼钃婅溈铚滆溁铚㈣湧铚磋湗铦曡湻铚╄3瑜傝4瑁硅8瑁借(瑜氳/瑾﹁獙瑾炶瑾嶈瑾撹"], +["bba1","瑾瑾ㄨ獦瑾戣獨瑾ц豹璨嶈矊璩撹硲璩掕但瓒欒稌璺艰紨杓掕紩杓撹荆閬犻仒閬滈仯閬欓仦閬㈤仢閬涢剻閯橀劄閰甸吀閰烽叴閴搁妧閵呴姌閵栭壔閵撻姕閵ㄩ壖閵戦枴闁ㄩ柀闁i枼闁ら殭闅滈殯闆岄洅闇闈奸瀰闊堕牀闋橀棰遍椁呴椁夐楠楂﹂瓉榄傞炒槌堕吵楹奸蓟榻婂剟鍎鍍诲兊鍍瑰剛鍎堝剦鍎呭嚋"], +["bc40","鍔囧妶鍔夊妽鍔婂嫲鍘插槷鍢诲樄鍢插樋鍢村槱鍣撳檸鍣楀櫞鍢跺槸鍢板澧熷澧冲澧ⅸ澧﹀キ瀣夊瀣嬪瀣屽瑘瀵瀵╁灞ゅ饱宥濆稊骞㈠篃骞″虎寤氬粺寤濆唬寤犲綀褰卞痉寰垫叾鎱ф叜鎱濇厱鎲"], +["bca1","鎱兼叞鎱吘鎲ф啇鎲啂鎲啔鎲ゆ啍鎲埉鎽╂懐鎽规挒鎾叉拡鎾愭挵鎾ユ挀鎾曟挬鎾掓挳鎾挮鎾氭挰鎾欐挗鎾虫暤鏁锋暩鏆毇鏆存毐妯f妲ㄦ▉妯炴妲芥ā妯撴▕妲虫▊妯呮Л妯戞瓙姝庢姣呮瘑婕挎郊婢勬綉娼︽綌婢嗘江娼涙礁娼編娼烘桨娼ゆ緱娼樻粫娼綘娼熺啛鐔啽鐔ㄧ墫鐘涚崕鐛楃懇鐠嬬拑"], +["bd40","鐟剧拃鐣跨槧鐦╃槦鐦ょ槮鐦$槩鐨氱毢鐩ょ瀻鐬囩瀸鐬戠瀷纾嬬纰虹纰剧纰肩绋跨绌绋界ǚ绋荤绐绠辩瘎绠寸瘑绡囩瘉绠犵瘜绯婄窢绶寸矾绶荤窐绶窛绶ㄧ罚绶氱窞绶╃稙绶欑凡绶圭降缃风警"], +["bda1","缈╄﹁啗鑶滆啙鑶犺啔鑶樿敆钄借敋钃敩钄敁钄戣敚钄¤敂钃敟钃胯攩铻傝澊铦惰潬铦﹁澑铦ㄨ潤铦楄潓铦撹琛濊瑜囪瑜撹瑜婅璜掕珖璜勮獣璜嬭瑾茶珘璜傝瑾拌珫璜嶈瑾硅珱璞岃睅璞碃璩炶肠璩よ超璩尝璩h硿璩场璧稛瓒h斧韪愯笣韪㈣笍韪╄笩韪¤笧韬鸿紳杓涜紵杓╄鸡杓紲杓"], +["be40","杓ラ仼閬仺閬伔閯伴劖閯ч劚閱囬唹閱嬮唭閶呴娀閵烽嫪閵嫟閶侀姵閵奸嫆閶囬嫲閵查柇闁遍渼闇嗛渿闇夐潬闉嶉瀷闉忛牎闋牅棰抽椁撻椁橀椐愰椐涢椐曢椐欓楂楝ч瓍榄勯榄磫榇"], +["bea1","榇冮憨楹鹃粠澧ㄩ綊鍎掑剺鍎斿剱鍎曞唨鍐嚌鍔戝姄鍕冲櫃鍣櫣鍣╁櫎鍣稿櫔鍣ㄥ櫏鍣卞櫙鍣櫌鍣跺澧惧澹呭ギ瀣濆瀛稿灏庡綂鎲叉啈鎲╂唺鎳嶆喍鎲炬噴鎳堟埌鎿呮搧鎿嬫捇鎾兼摎鎿勬搰鎿傛搷鎾挎搾鎿旀捑鏁存泦鏇夋毠鏇勬泧鏆告ń妯告ê姗欐┇姗樻ü姗勬姗℃⿱姗囨ǖ姗熸﹫姝欐姘呮總婢辨尽"], +["bf40","婵冩兢婵佹晶婢虫縺婢规径婢︽緺婢寸喚鐕夌噽鐕掔噲鐕曠喒鐕庣嚈鐕滅噧鐕勭崹鐠滅挘鐠樼挓鐠炵摙鐢岀攳鐦寸樃鐦虹洤鐩ョ灎鐬炵灍鐬ョ(纾氱,纾хΖ绌嶇⿴绌嗙⿲绌嬬绡欑皯绡夌绡涚绡╃绯曠硸绺"], +["bfa1","绺戠笀绺涚福绺炵笣绺夌笎缃圭静缈扮勘缈ㄨ喅鑶╄啫鑷昏垐鑹樿墮钑婅暀钑堣暔钑╄晝钑夎暛钑暈铻冭灍铻炶灑铻嶈 瑜げ瑜ヨか瑜¤Κ瑕﹁璜鸿璜辫瑎璜滆璜璎佽瑐璜疯璜宠璜艰鲍璞矒璩磋箘韪辫复韫傝腹韪佃蓟杓几杓宠鲸杈﹂伒閬撮伕閬查伡閬洪劥閱掗尃閷堕嫺閷抽尟閷㈤嫾閷寗閷"], +["c040","閷愰對閷¢寱閷寵闁婚毀闅ㄩ毆闆曢湈闇戦湒闇嶉湏闇忛潧闈滈潶闉橀牥闋搁牷闋烽牠闋归牑椁愰え椁為椁¢椐Б椐遍楠奸楂楫戦磿榇i处榇ㄩ磼榇涢粯榛旈緧榫滃劒鍎熷劇鍎插嫷鍤庡殌鍤愬殔鍤"], +["c0a1","鍤忓澹撳澹庡瀣瀛哄胺灞ㄥ都宥哄督宥稿公褰屽窘鎳夋噦鎳囨嚘鎳嬫埐鎴存搸鎿婃摌鎿犳摪鎿︽摤鎿辨摙鎿杺鏂冩洐鏇栨獉妾旀獎妾㈡獪娅涙姗炬獥妾愭獱姝滄姣氭皥婵樻勘婵熸繝婵涙郡婵刊婢婵俊婵╂繒婵堪鐕х嚐鐕嚘鐕ョ嚟鐕嚧鐕犵埖鐗嗙嵃鐛茬挬鐠扮挦鐠ㄧ檰鐧傜檶鐩灣鐬灠鐬"], +["c140","鐬х灜鐭7纾虹4纾绂хΚ绌楃绨囩皪绡剧绨岀癄绯犵硿绯炵尝绯熺硻绯濈府绺剧箚绺风覆绻冪斧绺界副绻呯箒绺寸腹绻堢傅绺跨腐缃勭砍缈艰伇鑱茶伆鑱伋鑷嗚噧鑶鸿噦鑷鑶胯喗鑷夎喚鑷ㄨ垑鑹辫柂"], +["c1a1","钖勮暰钖滆枒钖旇柉钖涜枃钖ㄨ枈铏ц焵锜戣灣锜掕焼铻灮铻鸿焾锜嬭せ瑜惰瑜歌そ瑕瑤璎楄瑱璎涜瑠璎犺瑵璎勮瑦璞佽翱璞宠澈璩借臣璩歌郴瓒ㄨ箟韫嬭箞韫婅絼杓捐絺杞呰伎閬块伣閭勯倎閭傞個閯归啠閱為啘閸嶉巶閷ㄩ嵉閸婇崶閸嬮寴閸鹃崿閸涢嵃閸氶崝闂婇棆闂岄棃闂嗛毐闅搁洊闇滈湠闉犻煋椤嗛⒍椁甸▉"], +["c240","椐块楫楫椿榇块簨榛忛粸榛滈粷榛涢季榻嬪彚鍤曞毊澹欏瀣稿綕鎳f埑鎿存摬鎿炬攩鎿烘摶鎿锋柗鏇滄湨妾虫娅冩妾告珎妾姝熸娈夌嬫烤鐎嗘亢鐎戠忕嚮鐕肩嚲鐕哥嵎鐛电挧鐠跨敃鐧栫櫂"], +["c2a1","鐧掔灲鐬跨灮鐬肩绂绌㈢绔勭珔绨哀绨盀绨g啊绯х箶绻曠篂绻氱埂绻掔箼缃堢抗缈昏伔鑱惰噸鑷忚垔钘忚柀钘嶈棎钘夎柊钖鸿柟钖﹁煰锜煵锜犺瑕茶Т璎ㄨ璎璞愯磪韫欒梗韫﹁工韫熻箷杌杞夎綅閭囬們閭堥啱閱噽閹旈帄閹栭帰閹抽幃閹幇閹橀帤閹楅棓闂栭棎闂曢洟闆滈洐闆涢洖闇ら灒闉"], +["c340","闉煿椤嶉椤岄椤撻⒑椁鹃た椁介ぎ棣ラ◣楂侀瑑楝嗛瓘榄庨瓖榀婇瘔榀介瘓榀榈戦禎榈犻粻榧曢棘鍎冲殽澹炲澹㈠榫愬滑鎳叉嚪鎳舵嚨鏀鏀忔洜鏇濇娅濇珰娅撶涚熺ㄧ氱濈曠樼垎鐖嶇墭鐘㈢嵏"], +["c3a1","鐛虹捊鐡婄摚鐤囩枂鐧熺櫋鐭囩绂辩┇绌╃熬绨跨案绨界胺绫绻弓绻圭供绻緟绻崇径缇圭靖鑷樿棭钘濊棯钘曡棨钘ヨ椃锜昏爡锠嶈煿锜捐瑗熻瑗炶瓉璀滆瓨璀夎瓪璀庤瓘璀嗚瓩璐堣磰韫艰共韬囪苟韫购韫磋綌杞庤经閭婇倠閱遍啴閺¢彂閺熼弮閺堥彍閺濋彇閺㈤弽閺橀彜閺楅彣闂滈毚闆i湭闇ч潯闊滈熁椤"], +["c440","椤橀棰奸楗夐楱欓瑣榀ㄩ榀栭瘺槎夐怠榈查氮榈簰楹楅簱楹村嫺鍤ㄥ毞鍤跺毚鍤煎¥瀛瀛冨瀵跺穳鎳告嚭鏀樻敂鏀欐洣鏈ф鐎剧扮茬垚鐛荤搹鐧㈢櫏绀︾お绀か绔囩绫岀眱绫嶇朝绯拌井绻界辜"], +["c4a1","绾傜綄鑰鑷氳墻钘昏椆铇戣椇铇嗚構铇囪槉锠旇爼瑗よ瑙歌璀璀瓱璀磸璐嶈簤韬佽簠韬傞喆閲嬮悩閻冮徑闂¢湴椋勯楗戦Θ楱ò楱烽ǖ榘撻皪楣归旱榛ㄩ集榻熼剑榻″劮鍎稿泚鍥鍥傚灞穽鎳兼嚲鏀濇敎鏂曟洨娅绘瑒娅烘鐏岀垱鐘х摉鐡旂櫓鐭撶睈绾忕簩缇艰槜铇槡锠h牏锠¤牊瑗ガ瑕借"], +["c540","璀疯璐撹簥韬嶈簨杞熻警閱洪惍閻抽惖閻洪惛閻查惈闂㈤湼闇归湶闊块¨椤ラ椹呴﹥椹楱鹃珡榄旈瓚榘哎槎洞榉傞陡楹濋化榧欓綔榻﹂涧鍎煎劵鍥堝泭鍥夊宸斿窉褰庢嚳鏀ゆ瑠姝$亼鐏樼巰鐡ょ枈鐧櫖"], +["c5a1","绂崇睜绫熻伨鑱借嚐瑗茶ク瑙艰畝璐栬礂韬戣簱杞¢厛閼勯憫閼掗溄闇鹃焹闊侀~楗曢⿻椹嶉珤楝氶眽榘遍熬榘婚窊榉楅即榻姜榫斿泴宸栨垁鏀f敨鏀洭娆愮摎绔婄堡绫g饱绾撶簴绾旇嚔铇歌樋锠辫畩閭愰倧閼i憼閼ら潹椤椹氶椹楅珦楂旈珣楸旈睏楸栭伐楹熼淮鍥戝)鏀仦鐧辩櫜鐭楃綈缇堣牰锠硅、璁撹畳"], +["c640","璁栬壏璐涢噣閼潅闈堥潉闊嗛“椹熼榄橀睙榉归泛楣奸菇榧囬椒榻插怀娆栫仯绫碑锠昏韬¢噥閼查懓椤遍楂栭榛岀仱鐭氳畾閼烽焿椹㈤━绾滆疁韬噮閼介懢閼奸狈楸搁环璞旈懣楦氱埁椹楦涢笧绫"], +["c940","涔備箿鍑靛寶鍘備竾涓屼箛浜嶅洍铷屽碑褰充笍鍐囦笌涓簱浠備粔浠堝啒鍕煎崿鍘瑰湢澶冨が灏愬房鏃℃姣屾皵鐖夸副涓间花浠滀哗浠′粷浠氬垖鍖滃崒鍦㈠湥澶楀く瀹佸畡灏掑盎灞村背甯勫簚搴傚繅鎴夋墣姘"], +["c9a1","姘舵眱姘挎盎鐘姲鐜婄Ω鑲婇槥浼庝紭浼坏浼斾槐浼浠蜂紙浼濅紓浼呬饥浼撲紕浠翠紥鍐卞垞鍒夊垚鍔﹀將鍖熷崓鍘婂悋鍥″洘鍦湭鍦村ぜ濡濂煎濂诲ゾ濂峰タ瀛栧皶灏ュ奔灞哄被灞惧窡骞靛簞寮傚細褰村繒蹇斿繌鎵滄墳鎵ゆ墶鎵︽墷鎵欐墵鎵氭墺鏃棶鏈炬湽鏈告溁鏈烘溈鏈兼湷姘樻眴姹掓睖姹忔眾姹旀眿"], +["ca40","姹岀伇鐗炵姶鐘电帋鐢櫩绌电綉鑹歌壖鑺鑹借壙铏嶈ゾ閭欓倵閭橀倹閭旈槩闃ら槧闃d綎浼讳舰浣変綋浣や季浣т綊浣熶絹浣樹辑浼充伎浣″啅鍐瑰垳鍒炲垺鍔姰鍖夊崳鍗插帋鍘忓惏鍚峰惇鍛斿憛鍚欏悳鍚ュ悩"], +["caa1","鍚藉憦鍛佸惃鍚ゅ憞鍥洤鍥ュ潄鍧呭潓鍧夊潒鍧掑濂濡﹀濡犲濡庡Β濡愬濡уΑ瀹庡畳灏ㄥ蔼宀嶅矎宀堝矉宀夊矑宀婂矄宀撳矔宸犲笂甯庡簨搴夊簩搴堝簫寮呭紳褰稿蕉蹇掑繎蹇愬凯蹇ㄥ慨蹇冲俊蹇ゅ浚蹇哄刊蹇峰炕鎬蹇存埡鎶冩妼鎶庢姀鎶旀妵鎵辨壔鎵烘壈鎶佹妶鎵锋壗鎵叉壌鏀锋棸鏃存棾鏃叉椀鏉呮潎"], +["cb40","鏉欐潟鏉屾潏鏉濇潔鏉氭潒姣愭皺姘氭备姹ф鲍娌勬矉娌忔北姹暴娌氭杯娌囨矔娌滄宝姹虫饱姹绘矌鐏寸伜鐗g娍鐘界媰鐙嗙媮鐘虹媴鐜曠帡鐜撶帞鐜掔敽鐢圭枖鐤曠殎绀借磋倳鑲欒倫鑲掕倻鑺愯姀鑺呰妿鑺戣姄"], +["cba1","鑺婅妰鑺勮备杩夎究閭熼偂閭ラ倿閭ч偁闃伴槰闃槶涓充緲浣间緟浣戒線渚囦蕉浣翠緣渚勪椒浣屼緱浣練浣逛緛浣镐緪渚滀緮渚炰緬渚備緯浣疆鍐炲喖鍐惧埖鍒插埑鍓嗗埍鍔煎寠鍖嬪尲鍘掑帞鍜囧懣鍜佸拺鍜傚拡鍛懞鍛惧懃鍛懘鍛﹀拲鍛憽鍛犲挊鍛e懅鍛ゅ浄鍥瑰澂鍧插澀鍧澅鍧板澏鍨鍧靛澔鍧冲澊鍧"], +["cc40","鍧ㄥ澖澶屽濡靛濮忓濡插濮佸Χ濡煎濮栧Ρ濡藉濮堝Υ濮囧瀛ュ畵瀹曞眲灞囧伯宀ゅ矤宀靛帛宀ㄥ铂宀熷玻宀并宀钵宀濆播宀跺舶宀﹀笚甯斿笝寮ㄥ饥寮e激褰斿緜褰惧浇蹇炲骏鎬︽欐叉"], +["cca1","鎬存婃楁虫氭炴㈡嶆愭撴戞屾夋滄垟鎴芥姯鎶存嫅鎶炬姫鎶舵媻鎶姵鎶娀鎶╂姲鎶告斀鏂ㄦ柣鏄夋椉鏄勬槖鏄堟椈鏄冩構鏄嶆槄鏃芥槕鏄愭浂鏈婃瀰鏉瀻鏋掓澏鏉绘灅鏋嗘瀯鏉存瀺鏋屾澓鏋熸瀾鏋欐瀮鏉芥瀬鏉告澒鏋旀娈姝炬癁姘濇矒娉倡娉硻娌舵硵娌厂娌锋硱娉傛埠娉冩硢娉巢"], +["cd40","娉掓碀娌存矈娌濇瞼娉炴硛娲版硩娉囨舶娉规硰娉╂硲鐐旂倶鐐呯倱鐐嗙倓鐐戠倴鐐傜倸鐐冪壀鐙栫媼鐙樼媺鐙滅嫆鐙旂嫐鐙岀嫅鐜ょ帯鐜帵鐜㈢帬鐜帩鐡濈摠鐢跨晙鐢剧枌鐤樼毌鐩崇洷鐩扮浀鐭哥熂鐭圭熁鐭"], +["cda1","鐭风绀跨绌哥┗绔荤钡绯借佃倧鑲偅鑲歌偟鑲垹鑺犺媭鑺姎鑺樿姏鑺佃姧鑺娂鑺炶姾鑺磋姩鑺¤姪鑻傝姢鑻冭姸鑺㈣櫚铏櫗铏睎杩掕繈杩撹繊杩栬繒杩楅偛閭撮偗閭抽偘闃归樈闃奸樅闄冧繊淇呬繐渚蹭繅淇嬩縼淇斾繙淇欎净渚充繘淇囦繓渚轰縺渚逛楷鍓勫墘鍕鍕傚尳鍗煎帡鍘栧帣鍘樺捄鍜″挱鍜ュ搹"], +["ce40","鍝冭實鍜峰挳鍝栧挾鍝呭搯鍜犲懓鍜煎挗鍜惧懖鍝炲挵鍨靛灋鍨熷灓鍨屽灄鍨濆灈鍨斿灅鍨忓灆鍨ュ灇鍨曞4澶嶅濮″濮█濮卞濮哄Ы濮煎Ф濮ゅР濮峰濮╁С濮靛濮惧Т濮灞屽硱宄樺硨宄楀硧宄"], +["cea1","宄炲硽宄夊硣宄婂硸宄撳硵宄忓硤宄嗗硯宄熷掣宸瑰浮甯㈠福甯犲袱搴板氦搴㈠簺搴e亥寮囧籍褰栧締鎬锋规仈鎭叉仦鎭呮亾鎭囨亯鎭涙亴鎭鎭傛仧鎬ゆ亜鎭樻仸鎭墏鎵冩嫃鎸嶆寢鎷垫寧鎸冩嫬鎷规審鎸屾嫺鎷舵寑鎸撴寯鎷烘寱鎷绘嫲鏁佹晝鏂柨鏄舵槨鏄叉樀鏄滄槮鏄㈡槼鏄樅鏄濇槾鏄规槷鏈忔湊鏌佹煵鏌堟灪"], +["cf40","鏌滄灮鏌告煒鏌鏋锋焻鏌煠鏌熸灥鏌嶆灣鏌锋煻鏌煟鏌傛灩鏌庢煣鏌版灢鏌兼焼鏌煂鏋煢鏌涙熀鏌夋煀鏌冩煪鏌嬫娈傛畡娈舵瘱姣樻癄姘犳啊娲ㄦ创娲礋娲兼纯娲掓磰娉氭闯娲勬礄娲烘礆娲戞磤娲濇祩"], +["cfa1","娲佹礃娲锋磧娲忔祤娲囨礌娲磮娲㈡磯娲愮偡鐐熺偩鐐辩偘鐐$偞鐐电偐鐗佺墘鐗婄壃鐗扮壋鐗媻鐙ょ嫧鐙嫙鐙嫤鐙g巺鐝岀弬鐝堢弲鐜圭幎鐜电幋鐝幙鐝囩幘鐝冪弳鐜哥弸鐡摦鐢晣鐣堢枾鐤櫣鐩勭湀鐪冪渼鐪呯湂鐩风浕鐩虹煣鐭ㄧ爢鐮戠爳鐮呯爯鐮忕爭鐮夌爟鐮撶绁岀绁呯绉曠绉忕绉庣獉"], +["d040","绌剧珣绗绗佺焙绫哥惫绫跨瞼绮佺磧绱堢磥缃樼緫缇嶇揪鑰囪庤忚旇疯儤鑳囪儬鑳戣儓鑳傝儛鑳呰儯鑳欒儨鑳婅儠鑳夎儚鑳楄儲鑳嶈嚳鑸¤姅鑻欒嬀鑻硅寚鑻ㄨ寑鑻曡尯鑻嫋鑻磋嫭鑻¤嫴鑻佃寣鑻昏嫸鑻拌嫪"], +["d0a1","鑻よ嫚鑻鸿嫵鑻櫡铏磋櫦铏宠琛庤¨琛々瑙撹▌瑷囪挡杩h俊杩繝閮遍偨閭块儠閮呴偩閮囬儖閮堥嚁閲撻檾闄忛檻闄撻檴闄庡炲呭囧撳㈠板涗康淇村冲峰慷淇峰楀滃犲у靛卞庡厷鍐斿啌鍑婂噭鍑呭噲鍑庡墶鍓氬墥鍓炲墴鍓曞墷鍕嶅寧鍘炲敠鍝㈠敆鍞掑摟鍝冲摛鍞氬摽鍞勫攬鍝攽鍞呭摫"], +["d140","鍞婂摶鍝峰摳鍝犲攷鍞冨攱鍦佸渹鍩屽牪鍩曞煉鍨哄焼鍨藉灱鍨稿灦鍨垮焽鍩愬灩鍩佸濂婂濞栧ō濞〞濞忓濞婂濞冲瀹у瀹皟灞栧睌宄晨宄潮宄峰磤宄瑰俯甯ㄥ酣搴邯搴汲寮板涧鎭濇仛鎭"], +["d1a1","鎭佹偄鎮堟個鎮掓倎鎮濇們鎮曟倹鎮楁倗鎮滄値鎴欐墕鎷叉寪鎹栨尙鎹勬崊鎸舵崈鎻ゆ尮鎹嬫崐鎸兼尒鎹佹尨鎹樻崝鎹欐尛鎹囨尦鎹氭崙鎸告崡鎹鎹堟晩鏁嗘梿鏃冩梽鏃傛檴鏅熸檱鏅戞湌鏈撴牊鏍氭鏍叉牫鏍绘妗忔爾鏍辨牅鏍垫牜鏍牤妗庢鏍存牆鏍掓爺鏍︽牗鏍鏍烘牓鏍犳娆娆辨姝倐娈堟姣"], +["d240","姣ㄦ姣㈡姘ユ岛娴f丹娴舵磵娴℃稈娴樻耽娴弹娑戞秿娣悼娑嗘禐娴ф禒娑楁蛋娴兼禑娑傛稑娲胆娑嬫稻娑娑勬礀娑冩祷娴芥档娑愮儨鐑撶儜鐑濈儖缂圭儮鐑楃儝鐑炵儬鐑旂儘鐑呯儐鐑囩儦鐑庣儭鐗傜壐"], +["d2a1","鐗风壎鐚鐙虹嫶鐙剧嫸鐙崇嫽鐚佺彄鐝欑彞鐝栫幖鐝х彛鐝╃彍鐝掔彌鐝旂彎鐝氱彈鐝樼彣鐡炵摕鐡寸摰鐢$暃鐣熺柊鐥佺柣鐥勭梹鐤跨柖鐤虹殜鐩夌湞鐪涚湊鐪撶湌鐪g湋鐪曠湙鐪氱湤鐪х牐鐮牏鐮电牤鐮ㄧ牣鐮牎鐮╃牫鐮牨绁旂绁忕绁撶绁戠Й绉绉Л绉绉炵绐嗙獕绐呯獘绐岀獖绐囩珮绗"], +["d340","绗勭瑩绗呯瑥绗堢瑠绗庣瑝绗掔矂绮戠矈绮岀矆绮嶇矃绱炵礉绱戠磶绱樼礀绱撶礋绱掔磸绱岀綔缃$綖缃犵綕缃涚緰缇掔績缈傜縺鑰栬捐硅兒鑳茶児鑳佃剚鑳昏剙鑸佽埊鑸ヨ尦鑼崉鑼欒崙鑼ヨ崠鑼胯崄鑼﹁寽鑼"], +["d3a1","鑽傝崕鑼涜尓鑼堣尲鑽嶈寲鑼よ尃鑼疯尟鑼╄崌鑽呰崒鑽撹尀鑼崑鑼ц崍铏撹檼铓㈣毃铓栬殟铓戣殲铓囪殫铓嗚殝铓氳殔铓ヨ殭铓¤毀铓曡殬铓庤殱铓愯殧琛冭琛〉琛惰〔琚琛辫】琛琛捐〈琛艰⊕璞囪睏璞昏菠璨h刀璧歌兜瓒疯抖杌戣粨杩捐康閫傝靠杩婚勮考杩堕儢閮犻儥閮氶儯閮熼儱閮橀儧閮楅儨閮ら厫"], +["d440","閰庨厪閲曢嚔閲氶櫆闄熼毤椋i珶楝箍鍋板仾鍋″仦鍋犲亾鍋嬪仢鍋插亪鍋嶅亖鍋涘亰鍋㈠曞亝鍋熷仼鍋仯鍋ゅ亞鍋鍋伋鍋楀亼鍑愬壂鍓壃鍓嫋鍕撳尛鍘滃暤鍟跺敿鍟嶅晲鍞村敧鍟戝暍鍞跺數鍞板晵鍟"], +["d4a1","鍞屽敳鍟ュ晭鍞瑰晥鍞敾鍟鍟嬪湂鍦囧熁鍫斿煝鍩跺煖鍩村爛鍩熃鍫堝煾鍫嬪煶鍩忓爣鍩煟鍩插煡鍩煛鍫庡熂鍫愬煣鍫佸爩鍩卞煩鍩板爫鍫勫濠犲濠曞┃濠炲ǜ濞靛┉濠愬濠ュ┈濠撳─濠楀﹥濠濆⿸濠勫濠堝獛濞惧⿳濞瑰⿲濠板┅濠囧⿷濠栧﹤濠滃瀛瘉瀵灞欏礊宕嬪礉宕氬礌宕屽川宕嶅处宕ュ磸"], +["d540","宕板磼宕e礋宕妇甯村罕搴村汗搴插撼寮跺几寰涘緰寰熸倞鎮愭倖鎮炬偘鎮烘儞鎯旀儚鎯ゆ儥鎯濇儓鎮辨儧鎮锋儕鎮挎儍鎯嶆儉鎸叉崶鎺婃巶鎹芥幗鎺炴幁鎺濇帡鎺帋鎹巼鎺愭嵁鎺嵉鎺滄嵀鎺嵓鎺ゆ尰鎺"], +["d5a1","鎹告巺鎺佹帒鎺嶆嵃鏁撴棈鏅ユ櫋鏅涙櫃鏅滄櫌鏈樻」姊囨姊滄…妗姊妗ⅲ姊ⅸ妗垫〈姊叉妗锋妗兼~妗叉ⅹ姊妗辨【姊涙姊嬫姊夋ⅳ妗告』姊戞姊婃〗娆舵娆锋娈戞畯娈嶆畮娈屾蔼娣娑洞娑虫勾娑珐娣㈡斗娣舵窋娓娣堟窢娣熸窎娑炬伐娣滄窛娣涙反娣婃督娣钒娑烘窌娣傛窂娣"], +["d640","娣愭凡娣撴方娣楁穽娣f痘鐑虹剭鐑风剹鐑寸剬鐑扮剟鐑崇剱鐑肩兛鐒嗙創鐒鐑哥兌鐒嬬剛鐒庣壘鐗荤壖鐗跨対鐚楃寚鐚戠寴鐚婄寛鐙跨審鐚炵巿鐝剁徃鐝电悇鐞佺徑鐞囩悁鐝虹徏鐝跨悓鐞嬬彺鐞堢暏鐣g棊鐥掔棌"], +["d6a1","鐥嬬棇鐥戠棎鐨忕殙鐩撶湽鐪湱鐪辩湶鐪寸湷鐪界湧鐪荤湹纭堢纭夌纭婄鐮︾纭愮イ绁хォ绁ィ绁ァ绂荤Ш绉哥Ф绉风獜绐旂獝绗电瓏绗寸绗扮绗ょ绗樼绗濈绗绗绗哥瑲绗g矓绮樼矕绮g吹绱界锤绱剁春绲呯船绱╃祦绲囩淳绱跨祳绱荤川缃g緯缇滅緷缇涚繆缈嬬繊缈愮繎缈囩繌缈夎"], +["d740","鑰炶涜亣鑱冭亪鑴樿劌鑴欒剾鑴劅鑴劄鑴¤剷鑴ц劃鑴㈣垜鑸歌埑鑸鸿埓鑸茶壌鑾愯帲鑾ㄨ帊鑽鸿嵆鑾よ嵈鑾忚巵鑾曡帣鑽佃帞鑾╄嵔鑾冭帉鑾濊帥鑾帇鑽捐帴鑾巿鑾楄幇鑽胯帵鑾囪幃鑽惰帤铏欒櫀铓胯毞"], +["d7a1","铔傝泚铔呰毢铓拌泩铓硅毘铓歌泴铓磋毣铓艰泝铓借毦琛掕琚曡ⅷ琚㈣ⅹ琚氳琚¤琚樿ⅶ琚欒琚楄ⅳ琚琚撹瑕傝瑙欒瑷拌ě瑷璋硅盎璞滆睗璞借播璧借祷璧硅都璺傝豆瓒胯穪杌樿粸杌濊粶杌楄粻杌¢ら嬮戦滈岄¢儻閮儼閮撮儾閮抽償閮儸閮╅厲閰橀厷閰撻厱閲嚧閲遍嚦閲搁嚖閲归嚜"], +["d840","閲嚪閲ㄩ嚠闀洪枂闁堥櫦闄櫕闄遍櫙闅块潽闋勯%棣楀倹鍌曞倲鍌炲倠鍌e們鍌屽値鍌濆仺鍌滃倰鍌傚倗鍏熷嚁鍖掑寫鍘ゅ帶鍠戝枿鍠ュ柇鍟峰檯鍠㈠枔鍠堝枏鍠靛杹鍠e枓鍠ゅ暯鍠屽枽鍟垮枙鍠″枎鍦屽牘鍫"], +["d8a1","鍫欏牉鍫у牐鍫ㄥ煹濉堝牓鍫滃牄鍫冲牽鍫跺牣鍫瑰牳鍫牞鍫诲ァ濯獢濯熷┖濯㈠獮濠稿濠煎濯獣濯ǚ濯勫獖濯楀獌濯嬪濠诲┙濯屽獪濯忓獡濯濆瀵嶅瘚瀵斿瘧瀵婂瘞灏屽鞍宕峰祪宓祦宓嬪纯宕靛祽宓庡禃宕冲春宓掑唇宕卞禉宓傚垂宓夊锤宕煎床宕跺祤宓呭箘骞佸綐寰﹀茎寰儔鎮规儗鎯㈡儙鎯勬剶"], +["d940","鎯叉剨鎰栨剠鎯垫創鎯告兗鎯炬儊鎰冩剺鎰濇剱鎯挎剟鎰嬫墛鎺旀幈鎺版弾鎻ユ彣鎻弮鎾濇彸鎻婃彔鎻舵彆鎻叉彽鎽℃彑鎺炬彎鎻滄弰鎻樻彄鎻傛弴鎻屾弸鎻堟彴鎻楁彊鏀叉暓鏁暏鏁滄暔鏁ユ枌鏂濇枮鏂棎鏃"], +["d9a1","鏅兼櫖鏅绘殌鏅辨櫣鏅櫜鏈佹妫撴妫滄お妫*妫辨妫栨7妫¥妫舵妞愭3妫℃妫屾妤版⒋妞戞/妫嗘妫告妫芥<妫ㄦ妞婃妫庢妫濇妫︽4妫戞妫旀)妞曟ぅ妫囨娆绘娆兼當娈楁畽娈曟姣版姣虫鞍娣兼箚婀囨笩婀夋簣娓兼附婀呮耿娓缚婀佹節婀虫笢娓虫箣婀婀戞富娓冩府婀"], +["da40","婀ㄦ箿婀℃副娓ㄦ範婀辨公娓规涪娓版箵婀ユ抚婀告工婀锋箷婀规箳婀︽傅娓舵箽鐒犵劄鐒兓鐒劚鐒g劌鐒㈢劜鐒熺劏鐒虹剾鐗嬬墯鐘堢妷鐘嗙妳鐘嬬寬鐚嬬尠鐚㈢尡鐚崇導鐚茬尛鐚︾專鐚电寣鐞惉鐞扮惈鐞"], +["daa1","鐞氱悺鐞惐鐞ょ悾鐞濈惄鐞犵惒鐡荤敮鐣暚鐥х棜鐥$棪鐥濈棢鐥ょ棗鐨曠殥鐩氱潌鐫囩潉鐫嶇潊鐫婄潕鐫嬬潓鐭炵煬纭犵·纭ョ纭”纭‘纭扮々纭ㄧ纭㈢ゴ绁崇ゲ绁扮▊绋婄▋绋岀▌绐欑绔ょ瓓绗荤瓌绛堢瓕绛庣瓈绛樼瓍绮㈢矠绮ㄧ病绲樼弹绲g祿绲栫掸绲祻绲禍绲祾绲旂旦绲戠禑绲庣季缂跨渐"], +["db40","缃︾劲缇犵尽缈楄亼鑱忚亹鑳捐償鑵冭厞鑵掕厪鑵囪劷鑵嶈労鑷﹁嚠鑷疯嚫鑷硅垊鑸艰埥鑸胯壍鑼昏弿鑿硅悾鑿鑿ㄨ悞鑿ц彜鑿艰彾钀愯弳鑿堣彨鑿h幙钀佽彎鑿ヨ彉鑿胯彙鑿嬭弾鑿栬彽鑿夎悏钀忚彏钀戣悊鑿傝彸"], +["dba1","鑿曡徍鑿囪彂鑿悡鑿冭彫鑿弰鑿昏彈鑿㈣悰鑿涜従铔樿洟铔﹁洆铔h洑铔洕铔洔铔洨铔楄洦铔戣琛栬琚鸿琚硅⒏瑁琚捐⒍琚艰⒎琚借⒉瑜佽瑕曡瑕楄瑙氳瑭庤⿳瑷硅瑭瑭楄瑭勮﹨瑭掕﹫瑭戣⿰瑭岃⿵璞熻瞾璨璨鸿簿璨拌补璨佃秳瓒瓒夎窐璺撹穽璺囪窎璺滆窂璺曡窓璺堣窏璺呰化杌疯缓"], +["dc40","杌硅沪杌互杌佃户杌ㄨ欢杌槐杌淮杌╅撮剢閯剟閮块兗閯堥児閮婚剚閯閯囬剠閯冮叀閰ら厽閰㈤厾閳侀垔閳ラ垉閳氶垿閳忛垖閳閳掗嚳閲介垎閳勯埀閳傞垳閳ら垯閳楅垍閳栭暬闁嶉枌闁愰殗闄鹃殘"], +["dca1","闅夐殐闅闆傞泩闆冮洷闆伴潿闈伴澁闋囬ⅸ椋肠榛逛簝浜勪憾鍌藉偪鍍嗗偖鍍勫儕鍌村儓鍍傚偘鍍佸偤鍌卞儖鍍夊偠鍌稿嚄鍓哄壐鍓诲壖鍡冨棝鍡屽棎鍡嬪棅鍡濆梹鍡斿梽鍡╁柨鍡掑枍鍡忓棔鍡㈠棖鍡堝棽鍡嶅棛鍡傚湐濉撳〃濉ゅ濉嶅濉濉庡濉欏ˉ濉涘牻濉e”澹煎珖瀚勫珛濯哄濯卞濯板瀚堝瀚"], +["dd40","濯峰珋瀚婂濯跺珝濯瑰獝瀵栧瘶瀵欏盁灏冲当宓e祳宓ュ挡宓禐宓ㄥ掸宓㈠钒骞忓箮骞婂箥骞嬪粎寤屽粏寤嬪粐褰寰经鎯锋厜鎱婃劔鎱呮劧鎰叉劗鎱嗘劘鎱忔劑鎱鎴犻叏鎴f垾鎴ゆ弲鎻辨彨鎼愭悞鎼夋悹鎼"], +["dda1","鎼虫憙鎼熸悤鎼樻惞鎼锋悽鎼f悓鎼︽惏鎼ㄦ憗鎼垫惎鎼婃悮鎽鎼ユ惂鎼嬫彠鎼涙惍鎼℃悗鏁枓鏃撴殕鏆屾殨鏆愭殝鏆婃殭鏆旀櫢鏈犳ウ妤熸じ妤庢ア妤辨た妤呮オ妞规妤楁妤烘妤夋さ妤こ妞芥ゥ妫版ジ妞存ォ妤妤妤舵妤佹ゴ妤屾せ妤嬫し妤滄妤戞げ妤掓く妤绘ぜ姝嗘瓍姝冩瓊姝堟瓉娈涳◢姣绘"], +["de40","姣规姣告簺婊栨粓婧忔粈婧熸簱婧旀籂婧辨汗婊嗘粧婧芥粊婧炴粔婧锋喊婊嶆害婊忔翰婧炬粌婊滄粯婧欐簰婧庢簫婧ゆ骸婧挎撼婊愭粖婧楁寒婧g厙鐓旂厭鐓g厾鐓佺厺鐓㈢叢鐓哥叒鐓$厒鐓樼厓鐓嬬叞鐓熺厫鐓"], +["dea1","鐓勭厤鐓氱墢鐘嶇妼鐘戠姁鐘庣尲鐛傜尰鐚虹崁鐛婄崏鐟勭憡鐟嬬憭鐟戠憲鐟鐟忕憪鐟庣憘鐟嗙憤鐟旂摗鐡跨摼鐡界敐鐣圭暦姒冪棷鐦忕槂鐥风椌鐥肩椆鐥哥槓鐥荤椂鐥椀鐥界殭鐨电洕鐫曠潫鐫犵潚鐫栫潥鐫╃潷鐫旂潤鐫煚纰囩纰旂纰勭纰呯纰$纭圭纰纰栫』绁肩绁界ス绋戠绋欑⊕绋楃〞绋㈢〒"], +["df40","绋涚◥绐g绐炵绛︾绛绛╃绛ョ绛辩绛$绛剁绮茬泊绮秷缍嗙秬缍嶇悼缍呯岛缍庣祷缍冪导缍岀稊缍勭到缍掔江缃涧缃ㄧ浆缇︾茎缇х繘缈滆¤叅鑵犺叿鑵滆叐鑵涜參鑵叉湣鑵炶叾鑵ц叝"], +["dfa1","鑵勮叀鑸濊墘鑹勮墍鑹傝墔钃辫惪钁栬懚钁硅拸钂嶈懃钁戣憖钂嗚懅钀拌憤钁借憵钁欒懘钁宠憹钄囪憺钀疯惡钀磋懞钁冭懜钀茶憛钀╄彊钁嬭惎钁傝惌钁熻懓钀硅憥钁岃憭钁搮钂庤惢钁囪惗钀宠懆钁捐憚钀憼钁旇懏钁愯湅铚勮浄铚岃浐铔栬浀铦嶈浉铚庤湁铚佽浂铚嶈渽瑁栬瑁嶈瑁炶瑁氳瑁愯瑕涜瑙ヨГ"], +["e040","瑙¤瑙㈣瑙﹁┒瑾嗚┛瑭¤ǹ瑭疯獋瑾勮┑瑾冭獊瑭磋┖璋艰眿璞婅饱璞よ宝璨嗚矂璨呰硨璧ㄨ旦瓒戣秾瓒庤稄瓒嶈稉瓒旇稅瓒掕钒璺犺番璺辫樊璺愯珐璺h发璺ц凡璺反杓嗚豢杓佽紑杓呰紘杓堣紓杓嬮亽閫"], +["e0a1","閬勯亯閫介剱閯嶉剰閯戦剸閯旈剫閯庨叜閰増閴掗埌閳洪墻閳抽墺閴為妰閳墛閴嗛壄閴墢閴犻墽閴埗閴¢壈閳遍墧閴i墣閴查墡閴撻墝閴栭埐闁熼枩闁為枦闅掗殦闅戦殫闆庨浐闆介浉闆甸澇闈烽澑闈查爮闋嶉爭棰6椋归Ο棣查Π棣甸楠瓫槌抄槌ч簚榛藉儲鍍斿儣鍍ㄥ兂鍍涘儶鍍濆儰鍍撳儸鍍板儻鍍e儬"], +["e140","鍑樺妧鍔佸嫨鍕尠鍘槯鍢曞槍鍢掑椉鍢忓槣鍢佸槗鍢傚椇鍢濆槃鍡垮椆澧夊〖澧愬澧嗗濉垮〈澧嬪『澧囧澧庡《澧傚濉诲澧忓>濂珳瀚瀚曞瀚氬瀚瀚㈠珷瀚涘瀚炲珴瀚欏瀚熷瀵"], +["e1a1","瀵e保宥傚秬宓藉秵宓哄秮宓峰秺宥夊秷宓惧导宥嶅倒宓垮箻骞欏箵寤樺粦寤楀粠寤滃粫寤欏粧寤斿絼褰冨蒋寰舵劕鎰ㄦ厑鎱炴叡鎱虫厭鎱撴叢鎱唨鎱存厰鎱烘厸鎱ユ劵鎱叀鎱栨埄鎴ф埆鎼憤鎽涙憹鎽存懚鎽叉懗鎽芥懙鎽︽挦鎽庢拏鎽炴憸鎽嬫憮鎽犳憪鎽挎惪鎽懌鎽欐懃鎽锋暢鏂犳殹鏆犳殶鏈呮渼鏈㈡Ρ姒舵"], +["e240","姒犳姒栨Π姒姒戞姒庢Η姒嶆Ι姒炬Ο姒挎姒芥Δ妲旀妲婃妲忔Τ姒撴Κ姒℃妲欐姒愭姒垫Ε妲嗘瓓姝嶆瓔娈炴疅娈犳瘍姣勬婊庢坏婊辨純婕ユ桓婕锋换婕級娼庢紮婕氭姬婕樻蓟婕掓画婕"], +["e2a1","婕舵匠婊规划婕絸婕版技婕垫猾婕囨紟娼冩紖婊芥欢婕规紲婊兼己婕熸紞婕炴紙婕$唶鐔愮唹鐔鐔呯唫鐔忕吇鐔嗙唩鐔楃墑鐗撶姉鐘曠姄鐛冪崓鐛戠崒鐟㈢懗鐟辩懙鐟茬懅鐟攢鐢傜攦鐣界枑鐦栫槇鐦岀槙鐦戠槉鐦旂毟鐬佺澕鐬呯瀭鐫瀫鐫澗鐬冪⒉纰⒋纰ⅷ纭剧纰炵ⅴ纰犵纰㈢ⅳ绂樼绂嬬绂曠绂"], +["e340","绂楃绂掔绋⿰绋扮ǒ绋ㄧé绐ㄧ绐绠堢疁绠婄畱绠愮畺绠嶇畬绠涚畮绠呯畼鍔勭畽绠ょ畟绮荤部绮肩埠缍х斗绶傜叮缍穪绶绶呯稘绶庣穭绶嗙穻绶岀动缍圭稏缍肩稛缍︾懂缍╃丁绶夌匠缈㈢浚缈ョ繛"], +["e3a1","鑰よ仢鑱滆唹鑶嗚唭鑶囪啀鑶岃唻鑸曡挆钂よ挕钂熻捄钃庤搨钂挳钂捁钂磋搧钃嶈挭钂氳挶钃愯挐钂ц捇钂㈣挃钃囪搶钂涜挬钂挩钃栬挊钂惰搹钂犺摋钃旇搾钃涜挵钂戣櫋铚宠湥铚ㄨ潾铦铚湠铚¤湙铚涜潈铚潄铚捐潌铚犺湶铚湱铚艰湌铚鸿湵铚佃潅铚﹁湩铚歌湦铚氳湴铚戣7瑁ц1瑁茶:瑁捐.瑁艰6瑁"], +["e440","瑁拌,瑁瑕¤瑕炶З瑙Ж瑾獧瑾嬭獟瑾忚獤璋借报璞╄硶璩忚硹瓒栬笁韪傝房韪嶈方韪婅竷韪囪竼韪呰肪韪韪勮紣杓戣紟杓嶉劊閯滈劆閯㈤劅閯濋剼閯ら劇閯涢吅閰查吂閰抽姤閵ら壎閵涢壓閵犻姅閵妽"], +["e4a1","閵﹂姎閵壒閵楅壙閵i嫯閵庨妭閵曢姠閴介妶閵¢妸閵嗛妼閵欓姧閴鹃妵閵╅姖閵嬮埈闅為殹闆块潣闈介澓闈鹃瀮闉闉傞澔闉勯瀬闈块煄闊嶉爾棰椁傞椁囬棣滈棣归棣洪棣介楠遍楂ч楝块瓲榄¢瓱槌遍巢槌甸骇鍍垮剝鍎板兏鍎嗗剣鍍跺兙鍎嬪剬鍍藉剨鍔嬪妼鍕卞嫰鍣堝檪鍣屽樀鍣佸檴鍣夊檰鍣"], +["e540","鍣氬檧鍢冲樈鍢樉鍢稿槳鍢哄湚澧澧卞澧e澧ⅴ澧″?瀚垮瀚藉瀚跺瑑瀚稿瑐瀚瑰瑏瀣囧瑓瀣忓抱宥欏稐宥熷稈宥㈠稉宥曞稜宥滃丁宥氬稙骞╁節骞犲箿绶冲粵寤炲弧褰夊静鎲嬫唭鎱规啽鎲版啟鎲"], +["e5a1","鎲涙啌鎲啳鎲熸啋鎲啞鎲嶆叇鎲虫埈鎽懓鎾栨挔鎾呮挆鎾滄拸鎾嬫拪鎾屾挘鎾熸懆鎾辨挊鏁舵暫鏁规暬鏂叉柍鏆垫毎鏆╂毑鏆锋毆鏆█妯嗘妲ユЦ妯曟П妲ゆ妲挎К妲㈡妯濇Ь妯фР妲〝妲锋Ё姗妯堟Е妲绘◢妲兼Й妯夋▌妯樻ē妯忔Ф妯︽▏妲存姝戞娈f娈︽皝姘姣挎皞娼佹鸡娼炬緡婵嗘緬"], +["e640","婢嶆緣婢屾舰娼忔緟娼氭緰娼舵浆婢傛綍娼叉綊娼愭綏婢旀緭娼濇紑娼℃将娼芥涧婢愭綋婢嬫僵娼挎緯娼f椒娼交鐔茬啹鐔涚啺鐔犵啔鐔╃喌鐔濈啣鐔炵啢鐔$啰鐔滅啩鐔崇姌鐘氱崢鐛掔崬鐛熺崰鐛濈崨鐛$崥鐛"], +["e6a1","鐛㈢拠鐠夌拪鐠嗙拋鐟界拝鐠堢懠鐟圭攬鐢囩暰鐦ョ槥鐦欑槤鐦滅槪鐦氱槰鐦涚殰鐨濈殲鐨涚瀺鐬忕瀴鐬堢纰荤纾岀纾庣纾堢纾勭绂氱Α绂犵绂㈢姝剁ü绐茬绐崇绡嬬绠瘞绠绡婄绯呯硤绯岀硧绶风窙绶阀绶楃贰绺冪泛绶︾范绶辩钒绶窡缃剁粳缇扮经缈揩缈楷缈︾卡鑱よ仹鑶h啛"], +["e740","鑶炶啎鑶㈣啓鑶楄垨鑹忚墦鑹掕墣鑹庤墤钄よ敾钄忚攢钄╄攷钄夎攳钄熻攰钄ц敎钃昏敨钃鸿攬钄岃摯钄摬钄曡摲钃摮钃艰敀钃摡钄栬摼钄ㄨ敐钄攤钃借敒钃惰敱钄﹁摟钃ㄨ摪钃摴钄樿敔钄拌攱钄欒敮铏"], +["e7a1","铦栬潱铦よ澐锜¤澇铦樿潝铦涜潚铦¤潥铦戣潪铦潽铦愯潕铦熻潩铦潿铦鸿澁铦滆潵铦忚澔铦佃潰铦ц潻琛氳瑜岃瑜嬭瑜樿瑜嗚瑜戣瑜夎Β瑕よΓ瑙О瑙珡璜嗚璜撹珣璜旇珪瑾昏珬瑾捐珋璜呰珮璜冭瑾借珯璋捐睄璨忚偿璩熻硻璩ㄨ硽璩濊厂瓒犺稖瓒¤稕韪犺福韪ヨ袱韪笗韪涜笘韪戣笝韪﹁抚"], +["e840","韪旇笒韪樿笓韪滆笚韪氳棘杓よ紭杓氳紶杓h紪杓楅伋閬伴伅閬ч伀閯劔閯╅劒閯查劍閯唴閱嗛唺閱侀唫閱勯唨閶愰媰閶勯媭閶欓姸閶忛嫳閶熼嫎閶╅嫍閶濋媽閶媯閶ㄩ媻閶堥嫀閶﹂媿閶曢媺閶犻嫗閶ч嫅閶"], +["e8a1","閵甸嫛閶嗛姶闀奸柆闁柈闁伴殼闅㈤洆闇呴湀闇傞潥闉婇瀻闉堥煇闊忛牉闋濋牔闋╅牗闋犻牄闋ч⒉椁堥:椁戦椁栭椁曢椐嶉椐撻椐庨椐栭椐嬮椐岄楂楂抽楂遍瓎榄冮榄撮榄﹂榄甸榄ㄩ榄臣槌洪辰槌块撤榇囬磤槌归郴榇堥磪榇勯簝榛撻紡榧愬劀鍎撳剹鍎氬剳鍑炲尨鍙″櫚鍣犲櫘"], +["e940","鍣冲櫐鍣e櫗鍣插櫈鍣峰湝鍦涘澧藉澧垮⒑澹傚⒓澹嗗瑮瀣欏瑳瀣″瑪瀣撳瑦瀣栧瀣氬瑺瀣炲宥侗宥╁锭宥靛栋宥丢宥ㄥ恫宥动宥村恭骞ㄥ功骞哗寤у沪寤ㄥ互褰嬪炯鎲濇啫鎲栨噮鎲存噯鎳佹噷鎲"], +["e9a1","鎲挎喐鎲屾摋鎿栨搻鎿忔搲鎾芥拤鎿冩摏鎿虫摍鏀虫暱鏁兼枹鏇堟毦鏇鏇婃泲鏇忔毥鏆绘毢鏇屾湥妯存│姗夋┃妯叉┄妯炬姗┒姗涙⿷妯ㄦ妯绘ǹ姗佹┆姗ゆ⿶姗忔⿺姗┅姗犳姗炴〇姗曟⿳姗庢﹩姝曟瓟姝栨娈姣堟瘒姘勬皟姘嗘经婵嬫荆婵囨炯婵庢繄娼炴縿婢芥緸婵婃鲸鐎勬茎婢竞婢惊婵忔究婢"], +["ea40","婢㈡繅婢繊婢静婢扮噮鐕傜喛鐔哥嚃鐕鐕佺噵鐕旂噴鐕囩噺鐔界嚇鐔肩噯鐕氱嚊鐘濈姙鐛╃崷鐛х崿鐛ョ崼鐛懣鐠氱挔鐠旂拻鐠曠挕鐢嬬杸鐦槶鐦辩樈鐦崇樇鐦电槻鐦扮毣鐩︾灇鐬濈灐鐬滅灈鐬㈢灒鐬曠灆"], +["eaa1","鐬楃纾╃%纾纾g纾$"纾纾犵Δ绌勭﹫绌囩绐哥绐辩绡炵绡х瘽绡曠绡氱绡圭瘮绡绡滅绡樼療绯掔硵绯楃硱绯戠笒绺$笚绺岀笩绺犵笓绺庣笢绺曠笟绺㈢笅绺忕笘绺嶇笖绺ョ袱缃冪交缃肩胶缇辩刊鑰╄伂鑶辫啨鑶喒鑶佃啱鑶拌啲鑶磋啿鑶疯啩鑷茶墪鑹栬墬钑栬晠钑晬钑撹暋钑"], +["eb40","钑钑嗚暏钑佽暍钑勮晳钑囪暎钄捐暃钑辫晭钑暤钑曡暓钑犺枌钑﹁暆钑旇暐钑櫍铏ヨ櫎铻涜瀼铻楄灀铻掕瀳铻佽灃铻樿澒铻囪灒铻呰瀽铻戣灊铻勮灁铻滆灇铻夎瑜﹁ぐ瑜ぎ瑜цけ瑜㈣ぉ瑜hく瑜瑙辫珷"], +["eba1","璜㈣璜磋璜濊瑪璜よ珶璜拌珗璜炶璜ㄨ璜璨戣矑璨愯车璩潮璩拌吵璧诞瓒ヨ锭韪宠妇韪歌箑韫呰付韪艰附韫佽赴韪胯航杓惰籍杓佃疾杓硅挤杓撮伓閬归伝閭嗛兒閯抽劦閯堕啌閱愰啈閱嶉啅閷ч尀閷堥専閷嗛審閸洪尭閷奸寷閷i寬閷侀崋閷寧閷嶉媼閷濋嫼閷ラ寭閶归嫹閷撮寕閷ら嬁閷╅尮閷甸尓閷旈寣"], +["ec40","閷嬮嬀閷夐寑閶婚寲闁奸棈闁鹃柟闁洪柖闁块柕闁介毄闆旈湅闇掗湊闉欓灄闉旈煱闊搁牭闋牪椁ら椁чぉ棣為М椐Д椐らО椐iИ椐╅Ё楠归楠撮楂堕楂归楝抽畝楫呴畤榄奸榄婚畟楫撻畳楫愰楫"], +["eca1","榄介畧榇ラ礂榇犻礊榇旈穿榇濋礃榇㈤磹榇欓礋楹堥簡楹囬寒楹粫榛栭缓榧掗冀鍎﹀劌鍎㈠劋鍎犲劑鍕村殦鍤屽殟鍤嗗殑鍤冨櫨鍤傚櫩鍤佸澹斿澹掑瀣ュ瀣e瀣у瀣瀛诲瀵插斗骞躬寰惧净鎳冩喌鎲兼嚙鎳犳嚗鎳ゆ嚚鎳炴摨鎿╂摚鎿摛鎿ㄦ杹鏂鏂舵棜鏇掓獚妾栨獊妾ユ獕妾熸獩妾℃獮妾囨獡妾"], +["ed40","妾曟獌妾ㄦ妾戞┛妾︽獨妾呮獙妾掓瓫娈皦婵屾京婵存繑婵f繙婵咖婵︽繛婵叉繚婵㈡卡鐕$嚤鐕ㄧ嚥鐕ょ嚢鐕㈢嵆鐛嵂鐠楃挷鐠拹鐠挱鐠辩挜鐠攼鐢戠敀鐢忕杽鐧冪檲鐧夌檱鐨ょ洨鐬电灚鐬茬灧鐬"], +["eda1","鐬寸灡鐬ㄧ煱纾崇=绀傜;纾肩2绀呯9纾剧绂Θ绌滅绌栫绌旂绐剧珋绔佺皡绨忕绨绡跨绨庣绨嬬绨傜皦绨冪皝绡哥绨嗙绡辩皭绨婄敞绺讣绻傜赋椤堢父绺箟绻绻囩俯绻岀赴绺荤付绻勭负缃呯娇缃剧浇缈寸坎鑰喕鑷勮噷鑷婅噮鑷囪喖鑷╄墰鑹氳墱钖冭杸钖忚枾钖曡枲钖嬭枺钑昏枻钖氳枮"], +["ee40","钑疯暭钖夎枴钑鸿暩钑楄枎钖栬枂钖嶈枡钖濊杹钖㈣杺钖堣枀钑硅暥钖樿枑钖熻櫒铻捐灙铻焻铻拌灛铻硅灥铻艰灝锜夎焹锜傝煂铻疯灟锜勮煀铻磋灦铻胯灨铻借煘铻茶さ瑜宠ぜ瑜捐瑗掕し瑗傝Ν瑕Ξ瑙茶С璎"], +["eea1","璎樿瑬璎戣瑓璎嬭璎忚瑨璎曡瑖璎嶈瑘璎嗚瑴璎撹瑲璞忚卑璞茶北璞矔璨旇彻璧箮韫嶈箵韫愯箤韫囪絻杞閭呴伨閯搁啔閱㈤啗閱欓啛閱¢啙閱犻帯閹冮幆閸ら崠閸囬嵓閸橀崪閸堕崏閸愰崙閸犻嵀閹忛崒閸嵐閸楅崟閸掗崗閸遍嵎閸婚崱閸為崳閸ч巰閸庨崣闂囬梹闂夐梼闂呴柗闅毎闅湢闇熼湗闇濋湙闉氶灐闉"], +["ef40","闉為灊闊曢煍闊遍椤勯椤夐椤冮ぅ椁が椁こ椁查く椁け椁伴棣iΑ楱傞Ш椐撮Х椐归Ц椐堕Щ椐介Ь椐奸▋楠鹃楂介瑏楂奸瓐楫氶楫為疀楫﹂楫ラ楫嗛楫犻榇抽祦榈ч炊榇疮榇遍锤榇"], +["efa1","榈呴祩榈冮淳榇烽祤榇界康榇簥楹夐簫楹伴粓榛氶换榛块激榧i饥榻旈緺鍎卞劖鍎殬鍤滃殫鍤氬殱鍤欏グ瀣煎暴灞穩骞巩鎳樻嚐鎳嚠鎳辨嚜鎳版嚝鎳栨嚛鎿挎攧鎿芥摳鏀佹攦鎿兼枖鏃涙洑鏇涙洏娅呮妾芥娅嗘妾舵娅囨妾瓰姣夋皨鐎囩岀嶇佺呯旂庢靠鐎婵荤︽考婵风婄垇鐕跨嚬鐖冪嚱鐛"], +["f040","鐠哥搥鐠电搧鐠剧挾鐠荤搨鐢旂敁鐧滅櫎鐧欑檺鐧撶櫁鐧氱殾鐨界洭鐭傜灪纾跨绀撶绀夌绀掔绂Μ绌熺皽绨╃皺绨犵盁绨皾绨︾皑绨㈢哎绨扮箿绻愮箹绻g箻绻㈢篃绻戠範绻楃箵缇电境缈风扛鑱佃噾鑷"], +["f0a1","鑷愯墴鑹炶柎钘嗚梹钘冭梻钖宠柕钖借棁钘勮柨钘嬭棊钘堣梾钖辫柖钘掕槫钖歌柗钖捐櫓锜ц煢锜㈣煕锜煪锜ヨ煙锜宠煠锜旇煖锜撹煭锜樿煟铻よ煑锜欒爜锜磋煥锜濊瑗嬭瑗岃瑗愯瑗夎璎ц璎宠璎佃瓏璎璎捐璎ヨ璎﹁璎璎昏璎鸿眰璞佃矙璨樿矖璩捐磩璐傝磤韫滆耿韫犺箺韫栬篂韫ヨ恭"], +["f140","韫涜箽韫¤節韫╄箶杞嗚絿杞堣綃閯ㄩ労閯婚劸閱ㄩ啣閱ч啹閱幍閹岄帓閹烽帥閹濋帀閹ч帋閹帪閹﹂帟閹堥帣閹熼帊閹遍帒閹查帳閹ㄩ幋閹i帴闂掗棑闂戦毘闆楅洑宸傞洘闆橀洕闇i湤闇ラ灛闉灗闉灓闉"], +["f1a1","闉㈤灔闊楅煓闊栭煒闊洪椤戦棰搁椁奸ず楱忛▼楱夐◢楱勯☉楱婇▍楱囬▎楂楂滈瑘楝勯瑓楝╅榄婇瓕榄嬮瘒榀嗛瘍楫块瘉楫甸榀撻榀勯楫介禍榈撻祻榈婇禌榈嬮禉榈栭祵榈楅祾榈旈禑榈橀禋楹庨簩榛熼紒榧榧栭讥榧吉榧╅绩榻岄綍鍎村劦鍔栧嫹鍘村毇鍤殾鍤у毆鍤澹濆澶掑瀣惧宸冨拱"], +["f240","寰挎嚮鏀囨攼鏀嶆攭鏀屾攷鏂勬棡鏃濇洖娅ф珷娅屾珣娅欐珛娅熸珳娅愭娅忔珝娅炴瓲娈版皩鐎欑х犵栫$㈢g╃楃ょ滅垖鐖婄垏鐖傜垍鐘ョ姦鐘ょ姡鐘$搵鐡呯挿鐡冪敄鐧犵焿鐭婄焺鐭辩绀"], +["f2a1","绀$绀楃绂扮┃绌ㄧ俺绨肩肮绨盎绯唱绻剁沟绻哥拱绻风汞绻虹共绻寸龚缃嬬綂缇冪締缇风拷缈捐伕鑷楄嚂鑹よ墶鑹h棲钘辫棴钘欒棥钘ㄨ棜钘楄棳钘茶椄钘樿棢钘h棞钘戣棸钘﹁棷钘炶棦锠锜鸿爟锜惰煼锠夎爩锠嬭爢锜艰爤锜胯爦锠傝ア瑗氳瑗楄ァ瑗滆瑗濊瑕堣Ψ瑕惰Ф璀愯瓐璀婅瓈璀撹瓥璀旇瓔璀"], +["f340","璀戣瓊璀掕瓧璞冭狈璞惰矚璐嗚磭璐夎冬瓒董瓒弓韫歌钩韫汞韫昏粋杞掕綉杞忚綈杞撹敬閰閯块啺閱彏閺囬弿閺傞彋閺愰徆閺弻閺欓帺閺﹂強閺旈彯閺i彆閺勯弾閺閺掗彠闀介棜闂涢洝闇╅湯闇湪闇"], +["f3a1","闉抽灧闉堕煗闊為煙椤滈椤濋棰块⒔棰婚⒕楗堥楗冮Ζ棣ч楱曢ē楱濋à楱涢á楱犻ě楱i楱滈〝楂傞瑡楝婇瑤楝岄榀榀犻癁榀ら榀㈤榀旈瘲榀瘻榀欓榀曢榀氶捣槎侀秺槎勯秷榈遍秬榈搁秵槎嬮秾榈介但榈撮档榈伴旦槎呴党榈婚秱榈倒榈块秶榈ㄩ簲楹戦粈榛奸辑榻榻侀綅榻栭綏榻樺尫鍤"], +["f440","鍤靛毘澹e瓍宸嗗穱寤化蹇蹇佹嚬鏀楁敄鏀曟敁鏃熸洦鏇f洡娅虫娅娅规娅鐎肩电风寸辩亗鐎哥跨虹圭亐鐎荤崇亖鐖撶垟鐘ㄧ嵔鐛肩捄鐨毆鐨剧洯鐭岀煄鐭忕煃鐭茬ぅ绀gぇ绀ㄧい绀"], +["f4a1","绂茬┊绌┉绔风眽绫堢眾绫囩眳绯够绻剧簛绾缇虹靠鑱硅嚊鑷欒垕鑹ㄨ墿铇㈣椏铇佽椌铇涜榾钘惰槃铇夎槄铇岃椊锠欒爯锠戣牀锠撹爾瑗hウ瑕硅Х璀犺璀濊璀h璀ц瓒簡韬堣簞杞欒綎杞楄綍杞樿綒閭嶉厓閰侀喎閱甸啿閱抽悑閻撻徎閻犻悘閻旈従閻曢悙閻ㄩ悪閻嶉彽閻閺烽悋閻庨悥閻掗徍閻夐徃閻婇徔"], +["f540","閺奸悓閺堕悜閻嗛棡闂犻棢闇湳闉归灮闊介熅椤犻、椤i椋侀楗愰楗欓楗嬮楱查ù楱遍ì楱ǘ楱╅ó楱搁ō楂囬珚楂嗛瑦楝掗瑧榘嬮皥榀烽皡榘掗楸榘囬皫榘嗛皸榘旈皦槎熼稒槎ら稘槎掗稑槎愰稕"], +["f5a1","槎犻稊槎滈丢槎楅丁槎氶盯槎ㄩ稙槎i犊槎╅稏槎﹂锭楹欓簺楹氶互榛ら户榛﹂及榧經榻犻綖榻濋綑榫戝労鍎瑰姌鍔楀泝鍤藉毦瀛堝瓏宸嬪窂寤辨嚱鏀涙瑐娅兼瑑娅告瑎鐏冪亜鐏婄亪鐏夌亝鐏嗙垵鐖氱垯鐛剧敆鐧煇绀け绀睌绫撶巢绾婄簢绾堢簨绾嗙簫缃嶇净鑰拌嚌铇樿槳铇﹁槦铇h槣铇欒槯铇槨铇犺槱铇炶槬"], +["f640","锠╄牆锠涜牋锠よ牅锠瑗ォ瑗カ瑙鸿璀歌瓍璀鸿璐愯磾瓒簬韬岃綖杞涜綕閰嗛厔閰呴喒閻块惢閻堕惄閻介惣閻伴惞閻惙閻憖閻遍棩闂ら棧闇甸満闉块煛椤ら椋嗛楗橀楱归ń椹嗛﹦椹傞﹣楱"], +["f6a1","楱块珝楝曢瑮楝橀瑬楝洪瓛榘皾榘滈艾榘i皑榘╅挨榘¢斗槎堕都榉侀穱榉婇窂槎鹃穮榉冮痘槎甸穾槎归逗槎穲槎遍董榉岄冻榉嶉恫楣洪簻榛划榛紱榧橀細榧遍綆榻ラ饯榫掍汗鍥嗗泤鍥嬪ケ瀛嬪瓕宸曞窇寤叉敗鏀犳敠鏀㈡瑡娆堟瑝姘嶇仌鐏栫仐鐏掔垶鐖熺姪鐛跨摌鐡曠摍鐡楃櫗鐨さ绂寸┌绌辩睏绫滅睓绫涚睔"], +["f740","绯寸潮绾戠綇缇囪嚍鑹槾铇佃槼铇槻铇惰牞锠ㄨ牔锠牓瑗辫瑕捐Щ璀捐畡璁傝畣璁呰璐曡簳韬旇簹韬掕簮韬栬簵杞犺舰閰囬憣閼愰憡閼嬮憦閼囬憛閼堥憠閼嗛溈闊i—椤╅楗旈椹庨⿹椹旈⿲椹忛﹫椹"], +["f7a1","椹夐⿸椹愰珢楝欓楝婚瓥榄曢眴楸堥翱楸勯肮榘抽眮榘奸胺榘撮安榘介岸榉涢窉榉為窔榉嬮窅榉滈窇榉熼珐榉欓窐榉栭返榉曢窛楹堕话榧甸汲榧查絺榻緯榫㈠劷鍔欏(澹уゲ瀛嶅窐锠綇鎴佹垉鎴勬敥鏀ユ枛鏇瑧娆掓瑥姣婄仜鐏氱垻鐜傜巵鐜冪櫚鐭旂抱绫︾簳鑹樅铏铇硅樇铇辫樆铇捐牥锠茶牣锠宠ザ瑗磋コ瑙"], +["f840","璁岃畮璁嬭畧璞呰礄韬樿饯杞i喖閼㈤憰閼濋憲閼為焺闊呴爛椹栭楝為瑹楝犻睊楸橀睈楸婇睄楸嬮睍楸欓睂楸庨坊榉烽矾榉i帆榉搁筏榉堕贰榉乏榉查钒榉㈤番榉撮烦榉ㄩ翻榛傞粣榛查怀榧嗛紲榧搁挤榧堕絻榻"], +["f8a1","榻遍桨榻蒋鍥撳泹瀛庡杯鏀洯鏇瑩鐏熺仭鐏濈仩鐖g摏鐡ョ煏绀哥Ψ绂剁豹绾楃緣鑹檭锠歌牱锠佃璁旇畷韬炶簾韬犺簼閱鹃喗閲傞懌閼ㄩ懇闆ラ潌闈冮潎闊囬煡椹為珪榄欓保楸ч宝楸㈤睘楸犻競榉鹃竾楦冮竼楦呴竴楦侀笁榉块方楦勯籂榧為絾榻撮降榻跺洈鏀柛娆樻瑱娆楁瑲鐏㈢垿鐘煒鐭欑す绫╃鲍绯剁簹"], +["f940","绾樼簺绾欒嚑鑷¤檰铏囪檲瑗硅ズ瑗艰セ瑙胯畼璁欒亥韬よ海閼懎閼懕閼抽潐椤查楸ㄩ碑楸笅楦嶉笎楦忛笒楦戦骸榛甸級榻囬礁榻婚胶榻瑰湠鐏︾悲锠艰恫韬﹂噧閼撮懜閼堕懙椹犻贝楸抽北楸甸笖楦撻欢榧"], +["f9a1","榫ょ仺鐏ョ撤铏牼锠借牽璁炶矞韬╄粔闈嬮〕椤撮楗¢Λ椹ら│椹ч楦曢笚榻堟垏娆炵埀铏岃酣閽傞拃閽侀┅椹ㄩ楦欑埄铏嬭疅閽冮惫楹风櫟椹焙楦濈仼鐏氦榻鹃綁榫樼閵硅澧绘亽绮у鈺斺暒鈺椻暊鈺暎鈺氣暕鈺濃晵鈺も晻鈺炩暘鈺♀晿鈺р暃鈺撯暐鈺栤暉鈺暍鈺欌暔鈺溾晳鈺愨暛鈺暟鈺枔"] +] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/eucjp.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/eucjp.json" new file mode 100644 index 0000000000000000000000000000000000000000..4fa61ca116009efc18ecbd1531538f31234ad103 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/eucjp.json" @@ -0,0 +1,182 @@ +[ +["0","\u0000",127], +["8ea1","锝",62], +["a1a1","銆銆併傦紝锛庛兓锛氾紱锛燂紒銈涖倻麓锝篓锛撅浚锛裤兘銉俱倽銈炪冧粷銆呫嗐囥兗鈥曗愶紡锛硷綖鈭ワ綔鈥︹モ樷欌溾濓紙锛夈斻曪蓟锛斤經锝濄",9,"锛嬶紞卤脳梅锛濃墵锛滐紴鈮︹墽鈭炩埓鈾傗檧掳鈥测斥剝锟ワ紕锟狅俊锛咃純锛嗭紛锛犅р槅鈽呪棆鈼忊棊鈼"], +["a2a1","鈼嗏枴鈻犫柍鈻测柦鈻尖汇掆啋鈫愨啈鈫撱"], +["a2ba","鈭堚垕鈯嗏妵鈯傗妰鈭埄"], +["a2ca","鈭р埁锟⑩噿鈬斺垁鈭"], +["a2dc","鈭犫姤鈱掆垈鈭団墶鈮掆壀鈮垰鈭解垵鈭碘埆鈭"], +["a2f2","鈩扳櫙鈾櫔鈥犫÷"], +["a2fe","鈼"], +["a3b0","锛",9], +["a3c1","锛",25], +["a3e1","锝",25], +["a4a1","銇",82], +["a5a1","銈",85], +["a6a1","螒",16,"危",6], +["a6c1","伪",16,"蟽",6], +["a7a1","袗",5,"衼袞",25], +["a7d1","邪",5,"褢卸",25], +["a8a1","鈹鈹傗攲鈹愨敇鈹斺敎鈹敜鈹粹敿鈹佲攦鈹忊敁鈹涒敆鈹b敵鈹敾鈺嬧敔鈹敤鈹封斂鈹濃敯鈹モ敻鈺"], +["ada1","鈶",19,"鈪",9], +["adc0","銔夈寯銓€崓銓樸導銓冦尪銔戙崡銓嶃對銓c尗銔娿尰銕溿帩銕炪帋銕忋弰銕"], +["addf","銔汇濄熲剸銖嶁劇銑",4,"銏便埐銏广嵕銔姐嵓鈮掆墶鈭埉鈭戔垰鈯モ垹鈭熲娍鈭碘埄鈭"], +["b0a1","浜滃敄濞冮樋鍝鎰涙尐濮堕㈣懙鑼滅⿶鎮彙娓ユ棴钁﹁姦榀垫鍦ф枴鎵卞疀濮愯櫥椋寸耽缍鹃畮鎴栫矡琚峰畨搴垫寜鏆楁闂囬瀺鏉忎互浼婁綅渚濆亯鍥插し濮斿▉灏夋儫鎰忔叞鏄撴鐐虹晱鐣扮Щ缍矾鑳冭悗琛h瑐閬曢伜鍖讳簳浜ュ煙鑲查儊纾竴澹辨孩閫哥ú鑼ㄨ妺榘厑鍗板捊鍝″洜濮诲紩椋叉帆鑳よ敪"], +["b1a1","闄㈤櫚闅犻熁鍚嬪彸瀹囩儚缇借總闆ㄥ嵂榈滅涓戠鑷兼甫鍢樺攧娆濊敋榘诲Д鍘╂郸鐡滈枏鍣備簯閬嬮洸鑽忛鍙″柖瀣板奖鏄犳洺鏍勬案娉虫穿鐟涚泩绌庨牬鑻辫瑭犻嫮娑茬柅鐩婇鎮﹁瑏瓒婇柌姒庡幁鍐嗗湌鍫板瀹村欢鎬ㄦ帺鎻存部婕旂値鐒旂厵鐕曠尶绺佽壎鑻戣枟閬犻墰榇涘々鏂兼睔鐢ュ嚬澶ゥ寰蹇"], +["b2a1","鎶兼椇妯娈寸帇缈佽榇磶榛勫病娌栬嵒鍎勫眿鎲惰噯妗剁墶涔欎亢鍗告仼娓╃⿵闊充笅鍖栦划浣曚冀渚′匠鍔犲彲鍢夊瀚佸瀵$鏆囨灉鏋舵瓕娌崇伀鐝傜绂剧绠囪姳鑻涜寗鑽疯彲鑿撹潶瑾插槱璨ㄨ喀閬庨湠铓婁縿宄ㄦ垜鐗欑敾鑷ヨ娊铔捐硛闆呴椐曚粙浼氳В鍥炲澹婂换蹇倲鎭㈡噽鎴掓嫄鏀"], +["b3a1","榄佹櫐姊版捣鐏扮晫鐨嗙档鑺ヨ煿闁嬮殠璨濆嚤鍔惧鍜冲宕栨叏姒傛动纰嶈搵琛楄┎閹ч娴Θ铔欏灒鏌胯泿閳庡妰鍤囧悇寤撴嫛鎾规牸鏍告鐛茬⒑绌瑙掕但杓冮儹闁i殧闈╁宀虫ソ椤嶉鎺涚瑺妯┛姊堕皪娼熷壊鍠濇伆鎷椿娓囨粦钁涜杞勪笖榘瑰彾妞涙ê闉勬牚鍏滅珒钂查嚋閹屽櫅榇ㄦ牏鑼呰惐"], +["b4a1","绮ュ垐鑻呯摝涔句緝鍐犲瘨鍒婂嫎鍕у坊鍠氬牚濮﹀畬瀹樺瘺骞插构鎮f劅鎱f喚鎻涙暍鏌戞妫烘姝撴睏婕㈡緱娼呯挵鐢樼洠鐪嬬绠$啊绶╃级缈拌倽鑹﹁帪瑕宠珜璨倓閼戦枔闁戦枹闄ラ煋椁ㄨ垬涓稿惈宀稿穼鐜╃檶鐪煎博缈磱闆侀爲椤旈浼佷紟鍗卞枩鍣ㄥ熀濂囧瑝瀵勫矏甯屽咕蹇屾彯鏈烘棗鏃㈡湡妫嬫"], +["b5a1","姗熷赴姣呮皸姹界暱绁堝绋绱寰借瑷樿泊璧疯粚杓濋"楱庨浜鍋藉剙濡撳疁鎴妧鎿鐘犵枒绁囩京锜昏璀版幀鑿婇灎鍚夊悆鍠姗樿┌鐮ф澋榛嶅嵈瀹㈣剼铏愰嗕笜涔呬粐浼戝強鍚稿寮撴ユ晳鏈芥眰姹叉常鐏哥悆绌剁绗堢礆绯剧郸鏃х墰鍘诲眳宸ㄦ嫆鎷犳寵娓犺櫄瑷辫窛閶告紒绂﹂瓪浜ㄤ韩浜"], +["b6a1","渚涗緺鍍戝厙绔跺叡鍑跺崝鍖″嵖鍙柆澧冨场寮峰綂鎬亹鎭専鏁欐⿱娉佺媯鐙煰鑳歌剠鑸堣晭閮烽彙闊块椹氫话鍑濆碍鏆佹キ灞鏇叉サ鐜夋绮佸儏鍕ゅ潎宸鹃對鏂ゆ娆界惔绂佺绛嬬穵鑺硅弻琛胯璎硅繎閲戝悷閵涔濆跺彞鍖虹嫍鐜栫煩鑻﹁函椐嗛椐掑叿鎰氳櫈鍠扮┖鍋跺瘬閬囬殔涓叉珱閲у睉灞"], +["b7a1","鎺樼獰娌撻澊杞$鐔婇殘绮傛牀绻版閸嫴鍚涜柅瑷撶兢杌嶉儭鍗﹁绁佷總鍌惧垜鍏勫晸鍦彧鍨嬪褰㈠緞鎭垫叾鎱ф啯鎺叉惡鏁櫙妗傛笓鐣︾ń绯荤祵缍欑箣缃寧鑽婅泹瑷堣璀﹁唤闋氶稄鑺歌繋榀ㄥ妵鎴熸拑婵闅欐鍌戞瑺姹烘綌绌寸祼琛瑷f湀浠跺瑰﹀仴鍏煎埜鍓e枾鍦忓爡瀚屽缓鎲叉嚫鎷虫嵅"], +["b8a1","妞滄ī鐗界姮鐚爺纭倒鐪岃偐瑕嬭瑱璩㈣粧閬i嵉闄洪楱撻垢鍏冨師鍘冲够寮︽笡婧愮巹鐝剧祪鑸疯█璜洪檺涔庡嬪彜鍛煎浐濮戝宸卞韩寮ф埜鏁呮灟婀栫嫄绯婅⒋鑲¤儭鑿拌檸瑾囪法閳烽泧椤ч紦浜斾簰浼嶅崍鍛夊惥濞緦寰℃偀姊ф獛鐟氱瑾炶璀烽啇涔為瘔浜や郊渚欏栧厜鍏姛鍔瑰嬀鍘氬彛鍚"], +["b9a1","鍚庡枆鍧戝灑濂藉瓟瀛濆畯宸ュ阀宸峰垢搴冨簹搴峰紭鎭掓厡鎶楁嫎鎺ф敾鏄傛檭鏇存澀鏍℃妲嬫睙娲旦娓簼鐢茬殗纭ǹ绯犵磪绱樼禐缍辫曡冭偗鑲辫厰鑶忚埅鑽掕琛¤瑳璨㈣臣閮婇叺閴辩牽閶奸枻闄嶉爡棣欓珮榇诲墰鍔彿鍚堝鎷锋繝璞綗楹瑰厠鍒诲憡鍥界﹢閰烽禒榛掔崉婕夎叞鐢戝拷鎯氶鐙涜炯"], +["baa1","姝ら爟浠婂洶鍧ゅ⒕濠氭仺鎳囨槒鏄嗘牴姊辨贩鐥曠春鑹瓊浜涗綈鍙夊攩宓乏宸熁娌欑懗鐮傝⿶閹栬鍧愬骇鎸偟鍌啀鏈鍝夊濡诲褰╂墠鎺℃牻姝虫笀鐏介噰鐘鐮曠牔绁枎绱拌彍瑁佽級闅涘墹鍦ㄦ潗缃病鍐村潅闃牶姒婅偞鍜插磶鍩肩榉轰綔鍓婂拫鎼炬槰鏈旀煹绐勭瓥绱㈤尟妗滈绗瑰寵鍐婂埛"], +["bba1","瀵熸嫸鎾摝鏈钖╅洃鐨愰瘱鎹岄寙楫毧鏅掍笁鍌樺弬灞辨儴鎾掓暎妗熺嚘鐝婄敚绠楃簜铓曡畠璩涢吀椁愭柆鏆畫浠曚粩浼轰娇鍒哄徃鍙插棧鍥涘+濮嬪濮垮瓙灞嶅競甯織鎬濇寚鏀瓬鏂柦鏃ㄦ灊姝㈡姘忕崊绁夌绯哥礄绱偄鑴傝嚦瑕栬瑭╄│瑾岃璩囪硿闆岄<姝簨浼间緧鍏愬瓧瀵烘厛鎸佹檪"], +["bca1","娆℃粙娌荤埦鐠界棓纾佺ず鑰岃宠嚜钂旇緸姹愰箍寮忚瓨榇杌稿畭闆竷鍙卞煼澶卞珘瀹ゆ倝婀挎紗鐤捐唱瀹熻攢绡犲伈鏌磋姖灞¤晩绺炶垘鍐欏皠鎹ㄨ郸鏂滅叜绀剧礂鑰呰瑵杌婇伄铔囬偑鍊熷嫼灏烘潛鐏肩埖閰岄噲閷嫢瀵傚急鎯逛富鍙栧畧鎵嬫湵娈婄嫨鐝犵ó鑵叮閰掗鍎掑彈鍛鎺堟ü缍渶鍥氬弾鍛"], +["bda1","瀹楀氨宸炰慨鎰佹嬀娲茬绉嬬祩绻嶇繏鑷垷钂愯瑗茶異韫磋集閫遍厠閰泦閱滀粈浣忓厖鍗佸緭鎴庢煍姹佹笅鐛g甫閲嶉妰鍙斿瀹挎窇绁濈府绮涘【鐔熷嚭琛撹堪淇婂郴鏄ョ灛绔h垳椐垮噯寰棳妤畨娣虫簴娼ょ浘绱斿贰閬甸唶闋嗗嚘鍒濇墍鏆戞洐娓氬憾绶掔讲鏇歌柉钘疯鍔╁彊濂冲簭寰愭仌閶ら櫎鍌峰劅"], +["bea1","鍕濆尃鍗囧彫鍝ㄥ晢鍞卞槜濂ㄥ濞煎灏嗗皬灏戝皻搴勫簥寤犲桨鎵挎妱鎷涙帉鎹锋槆鏄屾槶鏅舵澗姊㈡妯垫布娑堟笁婀樼劶鐒︾収鐥囩渷纭濈绁ョО绔犵瑧绮х垂鑲栬彇钂嬭晧琛濊3瑷熻瑭旇┏璞¤碁閱ら墻閸鹃悩闅滈灅涓婁笀涓炰箺鍐楀壈鍩庡牬澹屽甯告儏鎿炬潯鏉栨祫鐘剁暢绌h捀璀查喐閷犲槺鍩撮>"], +["bfa1","鎷娈栫嚟绻旇伔鑹茶Е椋熻潟杈卞盎浼镐俊渚靛攪濞犲瘽瀵╁績鎱庢尟鏂版檵妫娴告繁鐢崇柟鐪熺绉︾闯鑷h姱钖Κ瑷鸿韩杈涢查嚌闇囦汉浠佸垉濉靛,灏嬬敋灏借厧瑷婅繀闄i澀绗ヨ珡闋堥參鍥冲帹閫楀惞鍨傚弗鎺ㄦ按鐐婄潯绮嬬繝琛伴亗閰旈寪閷橀殢鐟為珓宕囧旦鏁版灑瓒ㄩ洓鎹潐妞欒弲闋楅泙瑁"], +["c0a1","婢勬懞瀵镐笘鐎暆鏄噭鍒跺嫝濮撳緛鎬ф垚鏀挎暣鏄熸櫞妫叉爾姝f竻鐗茬敓鐩涚簿鑱栧0瑁借タ瑾犺獡璜嬮濋啋闈掗潤鏂夌◣鑴嗛毣甯儨鎴氭枼鏄旀瀽鐭崇⿳绫嶇妇鑴婅铂璧よ贰韫熺ⅸ鍒囨嫏鎺ユ憘鎶樿ō绐冪瘈瑾洩绲惰垖铦変粰鍏堝崈鍗犲灏傚皷宸濇垿鎵囨挵鏍撴牬娉夋祬娲楁煋娼滅厧鐓芥棆绌跨绶"], +["c1a1","绻婄鲸鑵鸿垱鑸硅枽瑭硯璺甸伕閬烽姯閵戦杻楫墠鍠勬几鐒跺叏绂呯箷鑶崇硯鍣屽宀ㄦ帾鏇炬浗妤氱嫏鐤忕枎绀庣绉熺矖绱犵祫铇囪ù闃婚仭榧犲儳鍓靛弻鍙㈠夊柂澹鐖藉畫灞ゅ対鎯f兂鎹滄巸鎸挎幓鎿嶆棭鏇瑰罚妲嶆Ы婕曠嚗浜夌棭鐩哥獡绯熺窂缍滆仭鑽夎崢钁捈钘昏璧伴侀伃閹楅湝楱掑儚澧楁啂"], +["c2a1","鑷撹數璐堥犱績鍋村墖鍗虫伅鎹夋潫娓冻閫熶織灞炶硦鏃忕稓鍗掕鍏舵弮瀛樺灏婃悕鏉戦仠浠栧澶卑瑭戝斁鍫曞Ε鎯版墦鏌佽埖妤曢檧椐勯è浣撳爢瀵捐愬脖甯緟鎬犳厠鎴存浛娉版粸鑳庤吙鑻旇璨搁閫殜榛涢瘺浠e彴澶х閱嶉榉规粷鐎у崜鍟勫畢鎵樻姙鎷撴并婵悽瑷楅惛婵佽鑼稿嚙铔稿彧"], +["c3a1","鍙╀絾閬旇景濂劚宸界杈挎璋风嫺楸堟ń瑾颁腹鍗樺槅鍧︽媴鎺㈡棪姝庢贰婀涚偔鐭绠痘鑰借儐铔嬭獣閸涘洠澹囧季鏂殩妾娈电敺璜囧ょ煡鍦板紱鎭ユ櫤姹犵棿绋氱疆鑷磋湗閬呴Τ绡夌暅绔圭瓚钃勯愮З绐掕尪瀚$潃涓徊瀹欏繝鎶芥樇鏌辨敞铏》瑷婚厧閶抽妯楃︾尓鑻ц憲璨竵鍏嗗噵鍠嬪"], +["c4a1","甯栧赋搴佸紨寮靛将寰存嚥鎸戞殺鏈濇疆鐗掔敽鐪鸿伌鑴硅吀铦惰璜滆秴璺抽姎闀烽爞槌ュ媴鎹楃洿鏈曟矆鐝嶈硟閹櫝娲ュ妞庢杩介帤鐥涢氬鏍傛幋妲讳絻婕煒杈昏敠缍撮崝妞挎桨鍧7瀣船鐖悐閲i洞浜綆鍋滃伒鍓冭矠鍛堝牑瀹氬笣搴曞涵寤峰紵鎮屾姷鎸烘彁姊眬纰囩绋嬬窢鑹囪▊璜﹁箘閫"], +["c5a1","閭搁劖閲橀紟娉ユ憳鎿㈡暤婊寸殑绗涢仼閺戞汉鍝插竟鎾よ綅杩墑鍏稿~澶╁睍搴楁坊绾忕敎璨艰虎椤涚偣浼濇婢辩敯闆诲厧鍚愬牭濉楀Μ灞犲緬鏂楁潨娓$櫥鑿熻抄閫旈兘閸嶇牓鐮哄姫搴﹀湡濂存掑掑厷鍐噸鍒鍞愬濉樺瀹曞扯宥嬫偧鎶曟惌鏉辨姊兼鐩楁窐婀稕鐏噲褰撶棙绁风瓑绛旂瓛绯栫当鍒"], +["c6a1","钁h暕钘よ◣璎勮眴韪忛冮忛悪闄堕牠楱伴棙鍍嶅嫊鍚屽爞灏庢啩鎾炴礊鐬崇鑳磋悇閬撻妳宄犻磭鍖垮緱寰虫稖鐗圭潱绂跨姣掔嫭瑾爟姗″嚫绐佹ご灞婇扯鑻瘏閰夌炲櫢灞儑鏁︽矊璞氶亖闋撳憫鏇囬垗濂堥偅鍐呬箥鍑枡璎庣仒鎹洪崑妤㈤Υ绺勭暦鍗楁杌熼洠姹濅簩灏煎紣杩╁寕璩戣倝铏瑰豢鏃ヤ钩鍏"], +["c7a1","濡傚翱闊换濡婂繊瑾嶆俊绂扮ア瀵ц懕鐚啽骞村康鎹绘挌鐕冪矘涔冨患涔嬪煖鍤㈡偐婵冪磵鑳借劤鑶胯静瑕楄殼宸存妸鎾鏉锋尝娲剧惗鐮村﹩缃佃姯棣砍寤冩嫕鎺掓晽鏉泝鐗岃儗鑲鸿缉閰嶅嶅煿濯掓妤崇叅鐙借卜澹茶碃闄欒澘绉ょ煣钀╀集鍓ュ崥鎷嶆煆娉婄櫧绠旂矔鑸惰杽杩洕婕犵垎绺涜帿椐侀害"], +["c8a1","鍑界纭茬鑲囩瓐娅ㄥ埂鑲岀晳鐣犲叓閴㈡簩鐧洪啑楂紣缃版姕绛忛枼槌╁櫤濉欒洡闅间即鍒ゅ崐鍙嶅彌甯嗘惉鏂戞澘姘炬睅鐗堢姱鐝晹绻佽埇钘╄博绡勯噯鐓╅爳椋尳鏅╃暘鐩ょ钑冭洰鍖崙鍚﹀搴囧郊鎮叉墘鎵规姭鏂愭瘮娉岀柌鐨绉樼穻缃疯偉琚璨婚伩闈為妯嬬案鍌欏熬寰瀲姣樼惖鐪夌編"], +["c9a1","榧绘煀绋楀尮鐤嬮褰﹁啙鑿辫倶寮煎繀鐣㈢瓎閫兼¨濮獩绱愮櫨璎康褰姘锋紓鐡㈢エ琛ㄨ⿻璞瑰粺鎻忕梾绉掕嫍閷ㄩ嫴钂滆洯榘搧褰枌娴滅曡钵璩撻牷鏁忕摱涓嶄粯鍩犲か濠﹀瘜鍐ㄥ竷搴滄栨壎鏁锋枾鏅诞鐖剁鑵愯啔鑺欒瓬璨犺肠璧撮槣闄勪井鎾鑸炶憽钑儴灏佹棰ㄨ懞钑椾紡鍓京骞呮湇"], +["caa1","绂忚吂瑜囪娣靛紬鎵曟哺浠忕墿楫掑垎鍚诲櫞澧虫啢鎵剼濂矇绯炵礇闆版枃鑱炰笝浣靛叺濉骞e钩寮婃焺涓﹁斀闁夐櫅绫抽爜鍍诲鐧栫ⅶ鍒ョ灔钄戠畣鍋忓鐗囩瘒绶ㄨ竞杩旈亶渚垮媺濞╁紒闉繚鑸楅嫪鍦冩崟姝╃敨瑁滆紨绌傚嫙澧撴厱鎴婃毊姣嶇翱鑿╁d扛鍖呭憜鍫卞瀹濆嘲宄穿搴栨姳鎹ф斁鏂规湅"], +["cba1","娉曟场鐑圭牪绺優鑺宠悓钃渹瑜掕í璞婇偊閶掗=槌抽惮涔忎骸鍌嶅墫鍧婂Θ甯藉繕蹇欐埧鏆存湜鏌愭鍐掔础鑲啫璎璨岃部閴鹃槻鍚犻牞鍖楀儠鍗滃ⅷ鎾叉湸鐗х潶绌嗛嚘鍕冩病娈嗗爛骞屽鏈炕鍑$泦鎽╃(榄旈夯鍩嬪鏄ф灇姣庡摡妲欏箷鑶滄灂楫熅楸掓浜︿浚鍙堟姽鏈搏杩勪经绻嚎涓囨參婧"], +["cca1","婕敁鍛虫湭榄呭烦绠曞铂瀵嗚湝婀婅搼绋旇剤濡欑矋姘戠湢鍕欏あ鐒$墴鐭涢湩榈℃濠垮鍐ュ悕鍛芥槑鐩熻糠閵橀炒濮墲婊呭厤妫夌犊绶潰楹烘懜妯¤寕濡勫瓱姣涚寷鐩茬恫鑰楄挋鍎叉湪榛欑洰鏉㈠嬁椁呭挨鎴荤本璨板晱鎮剁磱闁鍖佷篃鍐跺鐖鸿堕噹寮ョ煝鍘勫焦绱勮柆瑷宠簫闈栨煶钖憮鎰夋剤娌圭檼"], +["cda1","璜几鍞綉鍎媷鍙嬪骞芥偁鎲傛彇鏈夋煔婀ф秾鐚剁尫鐢辩瑁曡獦閬婇倯閮甸泟铻嶅浜堜綑涓庤獕杓块爯鍌辜濡栧搴告彋鎻烘搧鏇滄妲樻磱婧剁啍鐢ㄧ缇婅钁夎搲瑕佽韪婇仴闄介鎱炬姂娆叉矁娴寸繉缈兼穩缇呰灪瑁告潵鑾遍牸闆锋礇绲¤惤閰贡鍗靛祼娆勬揩钘嶈槶瑕у埄鍚忓饱鏉庢ⅷ鐞嗙拑"], +["cea1","鐥㈣瑁¢噷闆㈤櫢寰嬬巼绔嬭憥鎺犵暐鍔夋祦婧滅悏鐣欑~绮掗殕绔滈緧渚舵叜鏃呰櫆浜嗕寒鍍氫浮鍑屽鏂欐娑肩専鐧傜灜绋滅厂鑹珤閬奸噺闄甸牁鍔涚窇鍊帢鏋楁穻鐕愮惓鑷ㄨ吉闅i睏楹熺憼濉佹稒绱浠や级渚嬪喎鍔卞逗鎬滅幉绀艰嫇閳撮毞闆堕湂楹楅舰鏆︽鍒楀姡鐑堣寤夋亱鎲愭迹鐓夌熬绶磋伅"], +["cfa1","钃i尙鍛傞娅撶倝璩傝矾闇插姶濠佸粖寮勬湕妤兼娴紡鐗㈢嫾绡佽伨铦嬮儙鍏簱绂勮倠閷茶珫鍊拰瑭辨璩勮剣鎯戞灎榉蹭簷浜橀皭瑭梺钑ㄦ婀剧鑵"], +["d0a1","寮屼笎涓曚釜涓变付涓间缚涔備箹涔樹簜浜呰鲍浜婅垝寮嶄簬浜炰簾浜犱孩浜颁撼浜朵粠浠嶄粍浠嗕粋浠椾粸浠粺浠蜂級浣氫及浣涗綕浣椾絿浣朵緢渚忎緲浣讳僵浣颁緫浣締渚栧剺淇斾繜淇庝繕淇涗繎淇氫繍淇や骏鍊氬ㄥ斿ュ呬紲淇跺″╁烤淇戝嗗亙鍋囨渻鍋曞亹鍋堝仛鍋栧伂鍋稿個鍌氬倕鍌村偛"], +["d1a1","鍍夊儕鍌冲儌鍍栧優鍍ュ儹鍍e儺鍍瑰兊鍎夊剚鍎傚剸鍎曞剶鍎氬劇鍎哄劮鍎煎劵鍎垮厐鍏掑厡鍏斿參绔稿叐鍏叜鍐鍐傚洏鍐屽唹鍐忓啈鍐撳啎鍐栧啢鍐﹀啟鍐╁啰鍐喅鍐卞啿鍐板喌鍐藉噮鍑夊嚊鍑犺檿鍑╁嚟鍑板嚨鍑惧垊鍒嬪垟鍒庡埀鍒埉鍒冲埞鍓忓墑鍓嬪墝鍓炲墧鍓壌鍓╁壋鍓垮壗鍔嶅姅鍔掑壉鍔堝姂杈"], +["d2a1","杈у姮鍔娂鍔靛媮鍕嶅嫍鍕炲嫞鍕﹂-鍕犲嫵鍕靛嫺鍕瑰寙鍖堢敻鍖嶅寪鍖忓寱鍖氬專鍖尡鍖冲尭鍗鍗嗗崊涓楀崏鍗嶅嚃鍗炲崺鍗鍗诲嵎鍘傚帠鍘犲帵鍘ュ幃鍘板幎鍙冪皰闆欏彑鏇肩嚠鍙彣鍙徍鍚佸惤鍛鍚惌鍚煎惍鍚跺惄鍚濆憥鍜忓懙鍜庡憻鍛卞懛鍛板拻鍛诲拃鍛跺拕鍜愬拞鍝囧挗鍜稿挜鍜搫鍝堝挩"], +["d3a1","鍜搨鍜ゅ捑鍜煎摌鍝ュ摝鍞忓敂鍝藉摦鍝摵鍝㈠敼鍟鍟e晫鍞暅鍟呭晼鍟楀敻鍞冲暆鍠欏杸鍜枈鍠熷暬鍟惧枠鍠炲柈鍟煎杻鍠╁枃鍠ㄥ棜鍡呭棢鍡勫棞鍡ゅ棓鍢斿椃鍢栧椌鍡藉槢鍡瑰檸鍣愮嚐鍢村樁鍢插樃鍣櫎鍢櫖鍣殕鍤鍤婂殸鍤斿殢鍤ュ毊鍤跺毚鍥傚毤鍥佸泝鍥鍥堝泿鍥戝洆鍥楀洰鍥瑰渶鍥垮渼鍦"], +["d4a1","鍦堝湅鍦嶅湏鍦樺湒鍡囧湝鍦﹀湻鍦稿潕鍦诲潃鍧忓潻鍩鍨堝潯鍧垮瀴鍨撳灎鍨冲灓鍨灠鍩冨焼鍩斿煉鍩撳爦鍩栧煟鍫嬪牂鍫濆〔鍫″、濉嬪“姣濉掑牻濉瑰澧瑰澧⒑澹炲⒒澧稿澹呭澹戝澹欏澹ュ澹ゅ澹:澹瑰;澹煎=澶傚澶愬姊﹀ぅ澶き澶插じ澶剧珤濂曞濂庡濂樺ア濂犲ェ濂ォ"], +["d5a1","濂稿濡濅綖渚Γ濡插濮ㄥ濡嶅濮氬ē濞熷☉濞滃▔濞氬﹢濠〾濞靛ǘ濠㈠┆濯氬濯惧珛瀚傚瀚e珬瀚﹀瀚栧瀚诲瑢瀣嬪瑬瀣插珢瀣瀣惧瓋瀛呭瓈瀛戝瓡瀛氬瓫瀛ュ瀛板瀛靛鏂堝瀹瀹冨瀹稿瘍瀵囧瘔瀵斿瘣瀵ゅ瀵㈠癁瀵ュ瀵板瀵冲皡灏囧皥灏嶅皳灏犲阿灏ㄥ案灏瑰眮灞嗗睅灞"], +["d6a1","灞愬睆瀛卞爆灞耿灞跺惫宀屽矐宀斿宀不宀跺布宀峰硡宀惧硣宄欏畅宄藉澈宄秾宄磱宕曞礂宓滃礋宕涘磻宕斿储宕氬礄宕樺祵宓掑祹宓嬪惮宓冲刀宥囧秳宥傚盯宥濆冬宥督宥愬斗宥煎穳宸嶅窊宸掑窎宸涘帆宸插返甯嬪笟甯欏笐甯涘付甯峰箘骞冨箑骞庡箺骞斿篃骞㈠工骞囧沟骞跺购楹煎箍搴犲粊寤傚粓寤愬粡"], +["d7a1","寤栧唬寤濆粴寤涘虎寤″花寤╁滑寤卞怀寤板淮寤稿痪寮冨級褰濆綔寮嬪紤寮栧缉寮几褰佸綀褰屽綆寮綉褰栧綏褰欏健褰匠褰峰緝寰傚娇寰婂緢寰戝緡寰炲緳寰樺緺寰ㄥ经寰煎繓蹇诲郡蹇稿勘蹇濇偝蹇挎℃仩鎬欐愭╂庢辨涙曟︽忔烘仛鎭佹仾鎭锋仧鎭婃亞鎭嶆仯鎭冩仱鎭傛伂鎭仚鎮佹倣鎯ф們鎮"], +["d8a1","鎮勬倹鎮栨倵鎮掓偋鎮嬫儭鎮告儬鎯撴偞蹇版偨鎯嗘偟鎯樻厤鎰曟剢鎯舵兎鎰鎯存兒鎰冩劇鎯绘儽鎰嶆剮鎱囨劸鎰ㄦ劎鎱婃効鎰兼劕鎰存劷鎱傛厔鎱虫叿鎱樻厵鎱氭叓鎱存叝鎱ユ叡鎱熸厺鎱撴叺鎲欐問鎲囨啲鎲旀啔鎲婃啈鎲啴鎳屾噴鎳夋嚪鎳堟噧鎳嗘喓鎳嬬焦鎳嶆嚘鎳f嚩鎳烘嚧鎳挎嚱鎳兼嚲鎴鎴堟垑鎴嶆垖鎴旀垱"], +["d9a1","鎴炴垺鎴埉鎴版埐鎴虫墎鎵庢墳鎵f墰鎵犳墾鎵兼妭鎶夋壘鎶掓姄鎶栨嫈鎶冩姅鎷楁嫅鎶绘嫃鎷挎媶鎿旀媹鎷滄媽鎷婃媯鎷囨姏鎷夋寣鎷嫳鎸ф寕鎸堟嫰鎷垫崘鎸炬崓鎼滄崗鎺栨帋鎺鎺嵍鎺f帍鎺夋師鎺垫崼鎹╂幘鎻╂弨鎻嗘彛鎻夋彃鎻舵弰鎼栨惔鎼嗘悡鎼︽惗鏀濇悧鎼ㄦ悘鎽ф懐鎽舵憥鏀挄鎾撴挜鎾╂拡鎾"], +["daa1","鎿氭搾鎿呮搰鎾绘摌鎿傛摫鎿ц垑鎿犳摗鎶摚鎿敩鎿舵摯鎿叉摵鏀鎿芥敇鏀滄攨鏀ゆ敚鏀敶鏀垫敺鏀舵敻鐣嬫晥鏁栨晻鏁嶆晿鏁炴暆鏁叉暩鏂傛杻璁婃枦鏂熸柅鏂锋梼鏃嗘梺鏃勬棇鏃掓棝鏃欐棤鏃℃棻鏉叉槉鏄冩椈鏉虫樀鏄舵槾鏄滄檹鏅勬檳鏅佹櫈鏅濇櫎鏅ф櫒鏅熸櫌鏅版殐鏆堟殠鏆夋殑鏆樻殱鏇佹毠鏇夋毦鏆"], +["dba1","鏇勬毟鏇栨洑鏇犳樋鏇︽洨鏇版浀鏇锋湉鏈栨湠鏈︽湩闇告湲鏈挎湺鏉佹湼鏈锋潌鏉炴潬鏉欐潱鏉ゆ瀴鏉版灘鏉兼潽鏋屾瀷鏋︽灐鏋呮灧鏌灤鏌灣鏌╂灨鏌ゆ煘鏌濇煝鏌灩鏌庢焼鏌ф獪鏍炴鏍╂妗嶆牪妗庢⒊鏍妗f》妗挎姊忔姊旀姊涙妾⒐妗存⒌姊犳⒑妞忔妗炬妫婃妫樻あ妞︽!妞屾"], +["dca1","妫旀'妫曟ざ妞掓妫楁#妞ユ9妫犳/妞ㄦお妞氭ぃ妞℃妤规シ妤滄ジ妤妤炬ギ妞规ゴ妞芥妞版ァ妤炴姒佹オ姒叉Ξ妲愭妲佹姒炬瀵ㄦ妲濇妲冩Η妯姒犳姒曟Υ妲炴Ж妯傛妲挎瑠妲规Р妲ф▍姒辨妲〝妲▕妯掓珌妯f〒姗勬▽姗叉ǘ姗告﹪姗㈡姗︽﹫妯告á妾愭獚妾犳獎妾㈡"], +["dda1","妾楄槜妾绘珒娅傛妾虫娅炴珣娅熸娅氭娅绘瑓铇栨娆掓瑬楝辨瑹娆告鐩滄椋瓏姝冩瓑姝愭瓩姝旀瓫姝熸姝告姝挎畝娈勬畠娈嶆畼娈曟疄娈ゆ娈娈叉娈虫娈兼瘑姣嬫瘬姣熸姣姣壕姘堟皳姘旀皼姘ゆ埃姹炴睍姹㈡豹娌傛矋娌氭瞾娌涙本姹ㄦ背娌掓矏娉勬潮娉撴步娉楁硡娉濇伯娌辨簿"], +["dea1","娌烘硾娉硻娉礋琛嶆炊娲唇娲告礄娲垫闯娲掓磳娴f稉娴ゆ禋娴规禉娑庢稌婵ゆ秴娣规笗娓婃兜娣囨乏娑告穯娣窞娣屾法娣掓穮娣烘窓娣ゆ窌娣樊娓巩娓笝婀叉篃娓炬福婀斧婀舵箥娓熸箖娓烘箮娓ゆ豢娓濇父婧傛邯婧樻粔婧锋粨婧芥函婊勬翰婊旀粫婧忔亥婊傛簾娼佹紤鐏屾滑婊告痪婕挎徊婕辨化婕叉粚"], +["dfa1","婕炬紦婊锋締娼烘礁婢佹線娼經婵虫江婢傛郊娼樻編婢戞總娼︽境婢f尽婢ゆ竟婵嗘惊婵熸繒婵繑婵樻勘婵繘鐎夌嬫亢鐎戠佺忔烤鐎涚氭酱鐎濈樼熺扮剧茬亼鐏g倷鐐掔偗鐑辩偓鐐哥偝鐐儫鐑嬬儩鐑欑剦鐑界劀鐒欑叆鐓曠唸鐓︾參鐓岀厲鐓啅鐕荤唲鐔曠啫鐔嚄鐔圭喚鐕掔噳鐕旂噹鐕犵嚞鐕х嚨鐕"], +["e0a1","鐕圭嚳鐖嶇垚鐖涚埁鐖埇鐖扮埐鐖荤埣鐖跨墍鐗嗙墜鐗樼壌鐗剧妭鐘佺妵鐘掔姈鐘㈢姧鐘圭姴鐙冪媶鐙勭嫀鐙掔嫝鐙犵嫛鐙圭嫹鍊忕寳鐚婄寽鐚栫対鐚寸尟鐚╃尌鐚剧崕鐛忛粯鐛楃崻鐛ㄧ嵃鐛哥嵉鐛荤嵑鐝堢幊鐝庣幓鐝鐝ョ彯鐝炵挗鐞呯懐鐞ョ徃鐞茬惡鐟曠惪鐟熺憴鐟佺憸鐟╃懓鐟g應鐟剁懢鐠嬬挒鐠х搳鐡忕摂鐝"], +["e1a1","鐡犵摚鐡х摡鐡摬鐡扮摫鐡哥摲鐢勭攦鐢呯攲鐢庣攳鐢曠敁鐢炵敠鐢敿鐣勭晬鐣婄晧鐣涚晢鐣氱暕鐣ょ暓鐣暛鐣哥暥鐤嗙枃鐣寸枈鐤夌杺鐤旂枤鐤濈枼鐤g梻鐤崇梼鐤电柦鐤哥柤鐤辩棈鐥婄棐鐥欑棧鐥炵椌鐥跨椉鐦佺棸鐥虹棽鐥崇構鐦嶇槈鐦熺槯鐦犵槨鐦㈢槫鐦寸槹鐦荤檱鐧堢檰鐧滅櫂鐧$櫌鐧ㄧ櫓鐧櫑鐧櫚"], +["e2a1","鐧茬櫠鐧哥櫦鐨鐨冪殘鐨嬬殠鐨栫殦鐨欑殮鐨扮毚鐨哥毠鐨虹泜鐩嶇洊鐩掔洖鐩$洢鐩х洩铇浕鐪堢渿鐪勭湬鐪ょ湠鐪ョ湨鐪涚湻鐪哥潎鐫氱潹鐫潧鐫ョ澘鐫剧澒鐬庣瀷鐬戠灎鐬炵灠鐬剁灩鐬跨灱鐬界灮鐭囩煃鐭楃煔鐭滅煟鐭熂鐮岀爳绀︾牋绀纰庣〈纰嗙〖纰氱纰g⒌纰纾戠纾嬬纰剧⒓纾呯纾"], +["e3a1","纾х纾界4绀囩绀戠绀か绁绁犵绁熺绁曠绁虹タ绂婄绂ч綃绂Ξ绂崇绂虹绉曠Ё绉А绉g▓绋嶇绋欑绋熺绋辩ɑ绋剧ǚ绌冪绌夌绌㈢┅榫濈┌绌圭┙绐堢獥绐曠獦绐栫绔堢绐剁珔绔勭閭冪珖绔婄珝绔忕珪绔撶珯绔氱珴绔$绔︾绔扮瑐绗忕瑠绗嗙绗樼瑱绗炵绗ㄧ绛"], +["e4a1","绛虹瑒绛嶇瑡绛岀瓍绛电绛寸绛扮绛绠濈畼绠熺畭绠滅畾绠嬬畳绠忕瓭绠欑瘚绡佺瘜绡忕绡嗙瘽绡╃皯绨旂绡ョ睜绨绨囩皳绡崇绨楃皪绡剁埃绨х蔼绨熺胺绨敖绫岀眱绫旂睆绫绫愮睒绫熺堡绫栫饱绫钡绮冪矏绮ょ箔绮㈢搏绮$波绮崇膊绮辩伯绮圭步绯绯呯硞绯樼硳绯滅尝楝荤朝绯茬炒绯剁澈绱"], +["e5a1","绱傜礈绱曠磰绲呯祴绱床绱跨吹绲嗙党绲栫祹绲茬胆绲祻绲g稉缍夌禌缍忕到缍涚逗缍叮缍电穱缍界东绺界盯缍窚缍哥稛缍扮窐绶濈筏绶炵坊绶茬贰绺呯笂绺g浮绺掔副绺熺笁绺嬬涪绻嗙功绺荤傅绺圭箖绺风覆绺虹恭绻濈箹绻炵箼绻氱构绻供绻肩够绾冪窌绻借井绻跨簣绾夌簩绾掔簮绾撶簲绾栫簬绾涚簻缂哥己"], +["e6a1","缃呯綄缃嶇綆缃愮綉缃曠綌缃樼綗缃犵建缃╃涧缃哥緜缇嗙緝缇堢緡缇岀緮缇炵緷缇氱荆缇静缇圭井缇剁靖璀辩繀缈嗙繆缈曠繑缈$喀缈╃砍缈归鑰嗚勮嬭掕樿欒滆¤ㄨ胯昏亰鑱嗚亽鑱樿仛鑱熻仮鑱ㄨ伋鑱茶伆鑱惰伖鑱借伩鑲勮倖鑲呰倹鑲撹倸鑲啇鑲儧鑳ヨ儥鑳濊儎鑳氳儢鑴夎儻鑳辫剾鑴╄劊鑴厠"], +["e7a1","闅嬭厗鑴捐厯鑵戣兗鑵辫叜鑵ヨ叇鑵磋唭鑶堣唺鑶鑶傝啝鑶曡啢鑶h厽鑶撹啯鑶拌喌鑶捐喐鑶借噣鑷傝喓鑷夎噸鑷戣嚈鑷樿噲鑷氳嚐鑷犺嚙鑷鸿嚮鑷捐垇鑸傝垍鑸囪垔鑸嶈垚鑸栬埄鑸埜鑸宠墍鑹欒墭鑹濊墯鑹熻墹鑹㈣墾鑹壂鑸壉鑹疯壐鑹捐妽鑺掕姭鑺熻娀鑺嫛鑻h嫙鑻掕嫶鑻宠嫼鑾撹寖鑻昏嫻鑻炶寙鑻滆寜鑻"], +["e8a1","鑼佃尨鑼栬尣鑼辫崁鑼硅崘鑽呰尟鑼寳鑼樿巺鑾氳帾鑾熻帰鑾栬專鑾庤巼鑾婅嵓鑾佃嵆鑽佃帬鑾夎帹鑿磋悡鑿弾鑿借悆鑿樿悑鑿佽彿钀囪彔鑿茶悕钀㈣悹鑾借惛钄嗚徎钁惇钀艰暁钂勮懛钁挱钁拏钁╄憜钀懐钁硅惖钃婅憿钂硅捒钂熻摍钃嶈捇钃氳搻钃佽搯钃栬挕钄¤摽钃磋敆钄樿敩钄熻敃钄旇摷钑钑h晿钑"], +["e9a1","钑佽槀钑嬭晻钖钖よ枅钖戣枈钖ㄨ暛钖旇枦钘枃钖滆暦钑捐枑钘夎柡钘忚柟钘愯棔钘濊棩钘滆椆铇婅槗铇嬭椌钘鸿槅铇㈣槡铇拌樋铏嶄箷铏旇櫉铏ц櫛铓撹殻铓╄毆铓嬭殞铓惰毌铔勮泦铓拌泬锠h毇铔旇洖铔╄洭铔熻洓铔湌铚嗚湀铚铚冭浕铚戣湁铚嶈浌铚婅湸铚胯湻铚昏湧铚╄湚铦犺潫铦歌潓铦庤澊铦楄潹铦潤"], +["eaa1","铦撹潱铦爡铻㈣灍铻傝灟锜嬭灲锜锜愰洊铻焺铻宠焽锜嗚灮锜煵锜犺爮锠嶈熅锜惰煼锠庤煉锠戣爾锠曡牏锠¤牨锠惰牴锠ц牷琛勮琛掕琛炶、琛琛捐琛佃〗琚佃〔琚傝琚掕琚欒ⅱ琚嶈ⅳ琚拌⒖琚辫瑁勮瑁樿瑁濊9瑜傝<瑁磋(瑁茶瑜岃瑜撹瑜炶ぅ瑜か瑗佽瑜昏ざ瑜歌瑜濊瑗"], +["eba1","瑗﹁イ瑗オ瑗ゴ瑗疯ゾ瑕冭瑕婅瑕樿Α瑕╄Ζ瑕Ο瑕茶瑕借瑙瑙氳瑙濊Ё瑙磋Ц瑷冭瑷愯▽瑷涜瑷ヨǘ瑭佽瑭掕﹩瑭堣┘瑭┈瑭㈣獏瑾傝獎瑾ㄨ瑾戣瑾﹁獨瑾h珓璜嶈珎璜氳璜宠璜よ璎旇珷璜㈣璜炶珱璎岃瑖璎氳璎栬瑦璎楄瑺璎抽灚璎﹁璎捐璀佽瓕璀忚瓗璀夎瓥璀涜瓪璀"], +["eca1","璀熻璀璀借畝璁岃畮璁掕畵璁栬畽璁氳昂璞佽翱璞堣睂璞庤睈璞曡雹璞备璞鸿矀璨夎矃璨婅矋璨庤矓璞艰矘鎴濊箔璨步璨茶渤璨捕璩堣硜璩よ常璩氳辰璩鸿郴璐勮磪璐婅磭璐忚磵璐愰綆璐撹硩璐旇礀璧ц淡璧辫党瓒佽稒璺傝毒瓒鸿窂璺氳窎璺岃窙璺嬭藩璺窡璺h芳韪堣笁璺胯笣韪炶笎韪熻箓韪佃赴韪磋箠"], +["eda1","韫囪箟韫岃箰韫堣箼韫よ範韪梗韫曡苟韫茶辜韬佽簢韬呰簞韬嬭簥韬撹簯韬旇簷韬骸韬喊杌嗚罕韬捐粎杌堣粙杌涜唬杌艰换杌痪杓婅紖杓曡紥杓欒紦杓滆紵杓涜紝杓﹁汲杓昏脊杞呰絺杓捐綄杞夎絾杞庤綏杞滆舰杞h饯杈滆緹杈h经杈痉杩氳骏杩㈣开杩倗杩撮呰抗杩洪戦曢¢嶉為栭嬮ч堕甸硅扛"], +["eea1","閬忛亹閬戦亽閫庨亯閫鹃仏閬橀仦閬ㄩ伅閬堕毃閬查倐閬介倎閭閭婇倝閭忛偍閭偙閭甸儮閮ゆ増閮涢剛閯掗剻閯查劙閰婇厲閰橀叄閰ラ叐閰抽叢閱嬮唹閱傞啟閱啹閱喌閱撮喓閲閲侀噳閲嬮噽閲栭嚐閲¢嚊閲奸嚨閲堕垶閲块垟閳垥閳戦墳閴楅墔閴夐墹閴堥姇閳块墜閴愰姕閵栭姄閵涢墯閶忛姽閵烽嫨閷忛嫼閸勯尞"], +["efa1","閷欓將閷氶專閷洪尩閷婚崪閸犻嵓閸崠閹伴幀閹帞閹归彇閺楅彣閺ラ彉閺冮彎閺愰張閺ら悮閻旈悡閻冮悋閻愰惗閻惖閻¢惡閼侀憭閼勯憶閼犻憿閼為應閳╅懓閼甸懛閼介憵閼奸懢閽侀懣闁傞枃闁婇枖闁栭枠闁欓枲闁ㄩ枾闁柤闁婚柟闁鹃棅婵堕梼闂嶉棇闂曢棓闂栭棞闂¢棩闂㈤槨闃ㄩ槷闃檪闄岄檹闄嬮櫡闄滈櫈"], +["f0a1","闄濋櫉闄﹂櫜闄殟闅橀殨闅楅毆闅ч毐闅查毎闅撮毝闅搁毠闆庨泲闆夐泹瑗嶉洔闇嶉洉闆归渼闇嗛湀闇撻湈闇戦湉闇栭湙闇ら湭闇伴湽闇介溇闈勯潌闈堥潅闈夐潨闈犻潳闈﹂潹鍕掗潾闈遍澒闉呴澕闉侀澓闉嗛瀷闉忛瀽闉滈灗闉﹂灒闉抽灤闊冮焼闊堥煁闊滈煭榻忛煵绔熼煻闊甸爮闋岄牳闋ら牎闋烽牻椤嗛椤嬮~椤“"], +["f1a1","椤遍〈椤抽ⅹ棰⒈棰堕椋冮椋╅+椁冮椁掗椁橀ぁ椁濋椁ら椁ぎ椁介ぞ楗傞楗呴楗嬮楗掗楗曢棣橀Ε棣Ξ棣奸椐涢椐橀椐М椐遍Р椐婚Ц楱侀◤楱呴Б楱欓ǐ楱烽﹨椹傞﹢椹冮ň椹曢⿳椹涢椹熼椹ラ─椹╅┇椹楠伴楂楂忛珣楂撻珨楂為珶楂㈤楂﹂楂楂撮楂"], +["f2a1","楂婚瑔楝橀瑲楝熼楝i楝ч楝╅楝楝查瓌榄冮瓘榄嶉瓗榄戦瓨榄撮畵楫冮畱楫栭畻楫熼疇楫ㄩ榀榀婇榀嗛瘡榀戦瘨榀i榀ら瘮榀¢昂榀查榀伴皶榘旈皦榘撻皩榘嗛皥榘掗皧榘勯爱榘涢哎榘ら啊榘伴眹榘查眴榘鹃睔楸犻抱楸堕备槌ч超槌伴磯榇堥倡榇冮磫榇处槎矗榇熼祫榇曢磼榈侀纯榇鹃祮榈"], +["f3a1","榈濋禐榈ら祽榈愰禉榈查秹槎囬东榈岛槎氶钉槎╅恫榉勯穪槎婚陡槎洪穯榉忛穫榉欓窊榉搁乏榉矾榉介笟楦涢笧楣甸构楣介簛楹堥簨楹岄簰楹曢簯楹濋亥楹╅焊楹涵闈¢粚榛庨粡榛愰粩榛滈粸榛濋粻榛ラ花榛淮榛堕环榛归换榛奸唤榧囬紙鐨烽紩榧¢棘榧鹃綂榻掗綌榻i綗榻犻健榻﹂涧榻姜榻烽讲榻堕緯榫滈緺"], +["f4a1","鍫閬欑懁鍑滅啓"], +["f9a1","绾婅閸堥妶钃滀繅鐐绘槺妫堥嫻鏇诲絽涓ㄤ弧浠间紑浼冧脊浣栦緬渚婁練渚斾繊鍋鍊靠鍊炲亞鍋板亗鍌斿兇鍍樺厞鍏ゅ啙鍐惧嚞鍒曞姕鍔﹀媭鍕涘寑鍖囧尋鍗插帗鍘插彎铷庡挏鍜婂挬鍝垮枂鍧欏潵鍨焾鍩囷◤铷愬澧插濂撳濂濆ィ濡ゅ瀛栧瘈鐢瘶瀵盀宀﹀埠宄靛揣宓擄☉宓傚淡宥稿豆宸愬肌寮村涧寰"], +["faa1","蹇炴仢鎮呮倞鎯炴儠鎰犳儾鎰戞劮鎰版啒鎴撴姦鎻垫憼鎾濇搸鏁庢榾鏄曟樆鏄夋槷鏄炴槫鏅ユ櫁鏅欙⊕鏅虫殭鏆犳毑鏆挎浐鏈庯ぉ鏉︽灮妗掓焵鏍佹妫忥〒妤〝姒樻Б妯版┇姗嗘┏姗炬娅ゆ瘱姘挎睖娌嗘悲娉氭磩娑囨弹娑栨冬娣忔犯娣叉芳娓规箿娓ф讣婧挎緢婢垫康鐎呯囩ㄧ倕鐐剰鐒勭厹鐓嗙厙铷曠噥鐕剧姳"], +["fba1","鐘剧尋铷栫嵎鐜界弶鐝栫彛鐝掔悋鐝电惁鐞惄鐞憿鐠夌挓鐢佺暞鐨傜殰鐨炵殯鐨︼鐫嗗姱鐮$纭ょ『绀帮铷欙绂旓绂涚珣绔э绔疄铷濈祱绲滅斗缍犵窎绻掔絿缇★鑼佽崲鑽胯弴鑿惰憟钂磋晸钑欒暙铷熻柊铷狅ā锠囪5瑷掕ǚ瑭硅瑾捐珶铷㈣璀撹璩拌炒璐掕刀铷h粡铷わē閬ч優铷﹂剷閯ч嚉"], +["fca1","閲楅嚍閲嚠閲ら嚗閳嗛垚閳婇埡閴閳奸墡閴欓墤閳归墽閵ч壏閴搁嫥閶楅嫏閶愶ě閶曢嫚閶撻尌閷¢嫽铷ㄩ尀閶块対閷傞嵃閸楅帳閺嗛彏閺搁惐閼呴憟闁掞铷╅殱闅湷闇婚潈闈嶉潖闈戦潟椤楅ˉ铷ǐ椁эì棣為⿴楂欓珳榄甸楫忛楫婚皜榈伴但铷笝榛"], +["fcf1","鈪",9,"锟郡锛囷紓"], +["8fa2af","藰藝赂藱藵炉藳藲锝炍勎"], +["8fa2c2","隆娄驴"], +["8fa2eb","潞陋漏庐鈩⒙も剸"], +["8fa6e1","螁螆螇螉为"], +["8fa6e7","螌"], +["8fa6e9","螏潍"], +["8fa6ec","螐"], +["8fa6f1","维苇萎委蠆螑蠈蟼蠉蠇伟蠋"], +["8fa7c2","袀",10,"袔袕"], +["8fa7f2","褣",10,"褳褵"], +["8fa9a1","脝膼"], +["8fa9a4","摩"], +["8fa9a6","牟"], +["8fa9a8","艁目"], +["8fa9ab","艎脴艗"], +["8fa9af","纽脼"], +["8fa9c1","忙膽冒魔谋某母艂艀艍艐酶艙脽脓镁"], +["8faaa1","脕脌脛脗膫菎膧膭脜脙膯膱膶脟膴膸脡脠脣脢臍臇膾臉"], +["8faaba","臏臑蘑臓膜脥脤脧脦菑陌莫漠抹拇亩墓慕幕艃艊艆脩脫脪脰脭菓艕艑脮艛艠艝艢艤艩艦扭泞脷脵脺脹努菗虐弄挪女浓菞菦菣菚糯脻鸥哦殴沤呕"], +["8faba1","谩脿盲芒膬菐膩膮氓茫膰膲膷莽膵膹茅猫毛锚臎臈膿臋堑臐臒"], +["8fabbd","摹磨铆矛茂卯菒"], +["8fabc5","墨寞末牡姆暮木募艅艌艈帽贸貌枚么菕艖艒玫艜艡艞艣艥拧艧钮牛煤霉眉没怒菙疟奴懦暖农菢菧菤菛诺媒每欧藕啪偶"], +["8fb0a1","涓備竸涓呬笇涓掍笩涓d袱涓ㄤ斧涓腐涓颁傅涔涔佷箘涔囦箲涔氫箿涔d龚涔╀勾涔典构涔夸簫浜栦簵浜濅函浜逛粌浠愪粴浠涗粻浠′虎浠ㄤ化浠变怀浠典唤浠句豢浼浼備純浼堜紜浼屼紥浼曚紪浼椾紮浼急浣犱汲浼典挤浼逛蓟浼句絸浣備綀浣変綃浣屼綊浣斾綎浣樹綗浣d姜浣疆浣变椒浣镐焦浣轰浇浣句緛渚備緞"], +["8fb1a1","渚呬緣渚婁緦渚庝緪渚掍緭渚斾緱渚欎練渚炰緹渚蹭痉渚逛净渚间窘渚句縺淇佷繀淇嗕繄淇変繈淇屼繊淇忎繏淇滀繝淇堪淇蹭考淇戒靠鍊鍊佸勫囧婂屽庡愬撳楀樺涘滃濆炲㈠у板插冲靛亐鍋佸亗鍋呭亞鍋婂亴鍋庡亼鍋掑亾鍋楀仚鍋熷仩鍋㈠仯鍋﹀仹鍋伃鍋板伇鍊诲倎鍌冨倓鍌嗗倞鍌庡倧鍌"], +["8fb2a1","鍌掑倱鍌斿倴鍌涘倻鍌",4,"鍌偗鍌板偣鍌哄偨鍍鍍冨儎鍍囧儗鍍庡儛鍍撳償鍍樺儨鍍濆儫鍍㈠儰鍍﹀儴鍍╁儻鍍卞兌鍍哄兙鍎冨剢鍎囧剤鍎嬪剬鍎嶅剮鍍插剱鍎楀剻鍎涘劀鍎濆劄鍎e劎鍎ㄥ劕鍎劘鍎卞劤鍎村劦鍎稿劰鍏傚厞鍏忓厯鍏曞厳鍏樺厽鍏ゅ叇鍏惧唭鍐勫唻鍐庡啒鍐濆啞鍐e啳鍐稿喓鍐煎喚鍐垮噦"], +["8fb3a1","鍑堝噺鍑戝噿鍑撳嚂鍑樺嚍鍑㈠嚗鍑嚥鍑冲嚧鍑峰垇鍒傚垍鍒掑垞鍒曞垨鍒樺垻鍒ㄥ埍鍒插埖鍒煎墔鍓夊墪鍓楀墭鍓氬墱鍓熷墵鍓″墻鍓壏鍓稿壒鍔鍔傚妳鍔婂妼鍔撳姇鍔栧姉鍔樺姎鍔滃姢鍔ュ姦鍔у姱鍔板姸鍔峰姼鍔哄娀鍔藉媭鍕勫媶鍕堝媽鍕忓嫅鍕斿嫋鍕涘嫓鍕″嫢鍕ㄥ嫨鍕嫭鍕板嫳鍕村嫸鍕峰寑鍖冨寠鍖"], +["8fb4a1","鍖屽寫鍖撳寴鍖涘寽鍖炲専鍖ュ導鍖ㄥ尒鍖尙鍖尠鍖插尩鍖煎尳鍖惧崅鍗屽崑鍗欏崨鍗″崳鍗ュ崿鍗嵅鍗瑰嵕鍘冨巼鍘堝帋鍘撳帞鍘欏帩鍘″帳鍘帿鍘幉鍘村幍鍘峰幐鍘哄幗鍙鍙呭弿鍙掑彄鍙曞彋鍙濆彏鍙犲彟鍙у彽鍚傚悡鍚氬悺鍚у惃鍚惎鍚卞惔鍚靛憙鍛勫憞鍛嶅憦鍛炲憿鍛ゅ懄鍛у懇鍛懎鍛懘鍛"], +["8fb5a1","鍜佸拑鍜呭拡鍜夊拲鍜戝挄鍜栧挏鍜熷挕鍜﹀挧鍜╁挭鍜挳鍜卞挿鍜瑰捄鍜诲捒鍝嗗搳鍝嶅搸鍝犲摢鍝摨鍝跺摷鍝惧摽鍞鍞佸攨鍞堝攭鍞屽攳鍞庡敃鍞敨鍞插數鍞跺敾鍞煎斀鍟佸晣鍟夊晩鍟嶅晲鍟戝晿鍟氬暃鍟炲暊鍟″暏鍟﹀暱鍠佸杺鍠嗗枅鍠庡枏鍠戝枓鍠撳枖鍠楀枺鍠ゅ柇鍠插柨鍡佸梼鍡嗗棄鍡嬪棇鍡庡棏鍡"], +["8fb6a1","鍡撳棗鍡樺棝鍡炲棦鍡╁椂鍡垮槄鍢堝槉鍢",5,"鍢欏槵鍢板槼鍢靛樂鍢瑰樆鍢煎樈鍢垮檧鍣佸檭鍣勫檰鍣夊檵鍣嶅檹鍣斿櫈鍣犲櫋鍣㈠櫍鍣﹀櫓鍣櫙鍣卞櫜鍣靛殑鍤呭殘鍤嬪殞鍤曞殭鍤氬殱鍤炲殶鍤﹀毀鍤ㄥ毄鍤毈鍤毐鍤冲毞鍤惧泤鍥夊泭鍥嬪洀鍥愬泴鍥嶅洐鍥滃洕鍥熷洝鍥",4,"鍥卞洬鍥"], +["8fb7a1","鍥跺浄鍦佸渹鍦囧湂鍦屽湋鍦曞湚鍦涘湞鍦犲湤鍦e湦鍦ュ湬鍦湰鍦湳鍦冲湸鍦藉溇鍦垮潊鍧嗗潓鍧嶅潚鍧㈠潵鍧у潹鍧澀",4,"鍧冲澊鍧靛澐鍧瑰澓鍧诲澕鍧惧瀬鍨冨瀸鍨斿灄鍨欏灇鍨滃灊鍨炲灍鍨″灂鍨у灗鍨╁灛鍨稿灲鍩囧焾鍩屽煆鍩曞煗鍩炲煠鍩﹀煣鍩╁煭鍩板煹鍩跺煾鍩藉熅鍩垮爟鍫勫爤鍫夊煛"], +["8fb8a1","鍫屽爫鍫涘牉鍫熷牋鍫﹀牕鍫牪鍫瑰牽濉夊濉嶅濉愬濉熷 濉ゅ¨濉ㄥ「濉煎】澧澧佸澧堝澧婂澧嶅澧愬澧栧澧犲ⅰ澧㈠ⅵ澧╁⒈澧插澧煎澹堝澹庡澹掑澹栧澹濆!澹㈠)澹冲澶嗗澶屽澶撳铏佸澶″ぃ澶ゅえ澶ぐ澶冲さ澶跺た濂冨濂掑濂欏濂濆濂熷ァ濂eカ濂"], +["8fb9a1","濂ゲ濂靛ザ濂瑰セ濂煎濡屽濡掑濡楀濡ゅΗ濡Ξ濡Π濡冲Ψ濡哄濮佸濮勫濮婂濮掑濮炲濮eГ濮уМ濮П濮插Т濮峰█濞勫▽濞嶅◣濞掑〒濞炲ǎ濞ゅě濞ㄥí濞ò濠勫﹨濠囧﹫濠屽⿶濠曞濠e━濠у┉濠峰┖濠诲┚濯嬪獝濯撳獤濯欏獪濯炲獰濯犲濯у濯卞濯冲濯稿濯诲"], +["8fbaa1","瀚勫珕瀚堝珡瀚氬珳瀚犲瀚瀚靛瀚藉瑎瀣佸瑘瀣楀瀣欏瑳瀣濆瀣ュ瀣稿瓉瀛嬪瓕瀛掑瓥瀛炲瀛瀛煎瀛惧瀹佸畡瀹嗗畩瀹庡異瀹戝畵瀹斿畺瀹ㄥ瀹瀹瀹插瀹哄瀵瀵佸瘝瀵忓瘱",4,"瀵犲瀵卞瀵藉皩灏楀盀灏熷埃灏﹀癌灏艾灏鞍灏插暗灏跺睓灞氬睖灞㈠保灞у报灞"], +["8fbba1","灞卑灞村钡灞哄被灞煎苯宀囧矆宀婂矎宀掑矟宀熷矤宀㈠玻宀﹀勃宀插泊宀靛埠宄夊硧宄掑碀宄楀钞宄卞巢宄村磥宕嗗磵宕掑传宕e搐宕﹀揣宕卞创宕瑰唇宕垮祩宓冨祮宓堝禃宓戝禉宓婂禑宓犲怠宓㈠丹宓淡宓板倒宓哄稻宓垮秮宥冨秷宥婂稈宥撳稊宥曞稒宥涘稛宥犲锭宥栋宥村陡宥瑰穬宸囧穻宸愬穾宸樺窓宸犲筏"], +["8fbca1","宸╁犯宸瑰竴甯囧笉甯掑笖甯曞笜甯熷笭甯辅甯插傅甯惧箣骞愬箟骞戝箹骞樺箾骞滃篂骞ㄥ躬",4,"骞板簚搴嬪簬搴㈠氦搴ュ酣搴含搴卞撼搴藉壕搴垮粏寤屽粙寤庡粦寤掑粩寤曞粶寤炲互寤紓寮嗗紘寮堝紟寮欏紲寮濆肌寮㈠迹寮ゅ绩寮棘寮及寮村级寮诲冀寮垮絸褰勫絽褰囧綅褰愬綌褰樺經褰犲剑褰ゅ涧"], +["8fbda1","褰讲褰村降褰稿胶褰藉骄寰夊緧寰忓緰寰滃緷寰㈠晶寰兢寰警寰板颈寰稿縿蹇囧繄蹇夊繈蹇",4,"蹇炲俊蹇㈠卡蹇╁开蹇凯蹇刊蹇插砍蹇跺亢蹇兼囨婃嶆撴旀楁樻氭熸ゆ虫垫亐鎭囨亪鎭夋亴鎭戞仈鎭栨仐鎭濇仭鎭ф伇鎭炬伩鎮傛倖鎮堟倞鎮庢倯鎮撴倳鎮樻倽鎮炴偄鎮ゆ偉鎮ㄦ偘鎮辨偡"], +["8fbea1","鎮绘偩鎯傛儎鎯堟儔鎯婃儖鎯庢儚鎯旀儠鎯欐儧鎯濇優鎯㈡儱鎯叉兊鎯告兗鎯芥剛鎰囨剨鎰屾剱",4,"鎰栨剹鎰欐劀鎰炴劉鎰劔鎰版劚鎰垫劧鎰锋劰鎱佹厖鎱嗘厜鎱炴厾鎱叢鎱告吇鎱兼吙鎲鎲佹唭鎲勬唻鎲嶆啋鎲撴啑鎲樻啘鎲濇啛鎲犳啣鎲ㄦ啰鎲喐鎲规喖鎳鎳佹噦鎳庢噺鎳曟嚋鎳濇嚍鎳熸嚒鎳㈡嚙鎳╂嚗"], +["8fbfa1","鎳嚟鎳垇鎴冩垊鎴囨垞鎴曟垳鎴犳垻鎴f埀鎴╂埆鎴规埥鎵傛墐鎵勬墕鎵屾墣鎵戞墥鎵旀墫鎵氭墱鎵ゆ壄鎵壋鎵烘壗鎶嶆妿鎶忔姁鎶︽姩鎶虫姸鎶锋姾鎶炬娍鎷勬嫀鎷曟嫋鎷氭嫪鎷叉嫶鎷兼嫿鎸冩寗鎸婃寢鎸嶆寪鎸撴寲鎸樻尒鎸尛鎸垫尪鎸规尲鎹佹崅鎹冩崉鎹嗘崐鎹嬫崕鎹掓崜鎹旀崢鎹涙崶鎹︽崿鎹嵄鎹存嵉"], +["8fc0a1","鎹告嵓鎹芥嵖鎺傛巹鎺囨帄鎺愭帞鎺曟帣鎺氭帪鎺ゆ帵鎺幃鎺幗鎻佹弲鎻堟弾鎻戞彄鎻旀彆鎻滄彔鎻ユ彧鎻彶鎻虫彽鎻告徆鎼夋悐鎼愭悞鎼旀悩鎼炴悹鎼㈡悿鎼ユ惄鎼惎鎼版惖鎼芥惪鎽嬫憦鎽戞憭鎽撴憯鎽氭憶鎽滄憹鎽熸憼鎽℃懀鎽懗鎽存懟鎽芥拝鎾囨拸鎾愭拺鎾樻挋鎾涙挐鎾熸挕鎾f挦鎾ㄦ挰鎾虫捊鎾炬捒"], +["8fc1a1","鎿勬搲鎿婃搵鎿屾搸鎿愭搼鎿曟摋鎿ゆ摜鎿╂摢鎿摪鎿垫摲鎿绘摽鏀佹攧鏀堟攭鏀婃攺鏀撴敂鏀栨敊鏀涙敒鏀熸敘鏀︽敥鏀敱鏀烘敿鏀芥晝鏁囨晧鏁愭晵鏁旀暉鏁犳暓鏁暫鏁芥杹鏂呮枈鏂掓枙鏂樻枬鏂犳枺鏂︽柈鏂叉柍鏂存柨鏃傛棃鏃夋棊鏃愭棓鏃栨棙鏃熸棸鏃叉棿鏃垫椆鏃炬椏鏄鏄勬槇鏄夋槏鏄戞槖鏄曟槚鏄"], +["8fc2a1","鏄炴槨鏄㈡槪鏄ゆ槮鏄╂槳鏄槵鏄槹鏄辨槼鏄规樂鏅鏅呮檰鏅婃檶鏅戞檸鏅楁櫂鏅欐櫅鏅滄櫊鏅℃浕鏅櫕鏅櫨鏅虫櫟鏅挎櫡鏅告櫣鏅绘殌鏅兼殝鏆屾殟鏆愭殥鏆欐殮鏆涙殰鏆熸殸鏆ゆ毉鏆辨毑鏆垫毣鏆挎泙鏇傛泝鏇堟泴鏇庢洀鏇旀洓鏇熸洦鏇洭鏇浐鏈呮渿鏈庢湏鏈欐湝鏈犳湤鏈虫溇鏉呮潎鏉堟潓鏉旀潟鏉"], +["8fc3a1","鏉︽潿鏉澊鏉舵澔鏋佹瀯鏋庢瀼鏋戞灀鏋栨灅鏋欐灈鏋版灡鏋叉灥鏋绘灱鏋芥煿鏌鏌傛焹鏌呮焾鏌夋煉鏌楁煓鏌滄煛鏌︽煱鏌叉煻鏌锋鏍旀牂鏍濇牊鏍ㄦ牕鏍牠鏍牥鏍辨牫鏍绘牽妗勬妗婃妗曟妗樻妗‘",4,"妗垫」妗烘』妗兼姊勬姊堟姊樻姊滄ⅰ姊fⅴ姊╂ⅹ姊⒉姊绘妫堟妫"], +["8fc4a1","妫愭妫撴妫欐妫濇%妫ㄦ*妫,妫0妫辨5妫舵;妫兼=妞嗘妞婃妞戞妞栨妞辨こ妞垫じ妞绘妤呮妤庢妤涙ィ妤ゆゥ妤︽エ妤╂ガ妤版ケ妤叉ズ妤绘タ姒姒嶆姒栨姒℃Ε姒︽Θ姒Ν姒Ψ姒告姒兼妲堟妲栨妲㈡Д妲Н妲辨С妲垫Ь妯妯佹▋妯忔☉妯曟妯濇妯ゆè妯版ú"], +["8fc5a1","妯存ǚ妯绘ň妯挎﹨姗嗘〾姗婃⿴姗愭⿷姗掓⿻姗栨姗ゆ┃姗┍姗虫┚妾佹獌妾嗘獓妾夋獘妾戞獩妾濇獮妾熸妾妾版妾存妾炬娅嗘珘娅堟珜娅愭珨娅曟珫娅滄珴娅ゆ娅娅辨娅兼娆傛瑑娆嗘瑖娆夋瑥娆愭瑧娆楁瑳娆炴娆ㄦ娆娆垫娆绘姝嗘瓓姝嶆瓛姝栨瓨姝濇瓲姝ф姝姝垫"], +["8fc6a1","姝炬畟娈呮畻娈涙疅娈犳娈f娈╂娈娈版娈规娈炬瘍姣勬瘔姣屾瘱姣氭姣f姣ф姣辨姣规姘傛皠姘呮皦姘嶆皫姘愭皰姘欐盁姘︽哀姘ㄦ艾姘俺姘垫岸姘烘盎姘挎眾姹嬫睄姹忔睊姹旀睓姹涙睖姹杯姹贝姹舵备姹规被娌呮矄娌囨矇娌旀矔娌楁矘娌滄矡娌版膊娌存硞娉嗘硩娉忔硱娉戞硳娉旀硸"], +["8fc7a1","娉氭硿娉犳厂娉╂倡娉钞娉叉炒娲勬磭娲婃磶娲忔磻娲撴礆娲︽揣娲ㄦ抱娲疮娲辨垂娲兼纯娴楁禐娴熸怠娴ユ掸娴蛋娴兼秱娑囨稇娑掓稊娑栨稐娑樻丢娑洞娑锋豆娑芥犊娣勬穲娣婃穾娣忔窎娣涙窛娣熸窢娣㈡伐娣╂矾娣版反娣舵芳娓娓勬笧娓㈡抚娓叉付娓规富娓兼箘婀呮箞婀夋箣婀忔箲婀掓箵婀旀箺婀滄節婀"], +["8fc8a1","婀㈡梗婀ㄦ钩婀绘菇婧嶆簱婧欐籂婧ф涵婧罕婧虫夯婧挎粈婊佹粌婊囨粓婊婃粛婊庢粡婊画婊还婊绘唤婕勬紙婕婃紝婕嶆紪婕樻細婕涙鸡婕╂吉婕及婕虫级婕绘技婕綇娼戞綊娼撴綏娼欐綒娼濇綖娼℃舰娼ㄦ浆娼芥骄婢冩緡婢堟緥婢屾緧婢愭緬婢撴緮婢栨練婢熸緺婢ユ睛婢ф鲸婢警婢版镜婢舵炯婵呮繃婵堟繆"], +["8fc9a1","婵氭繛婵ㄦ咯婵版康婵规考婵界鐎呯嗙囩嶇楃犵g寸风圭肩亙鐏勭亪鐏夌亰鐏嬬仈鐏曠仢鐏炵亷鐏ょ仴鐏伄鐏电伓鐏剧倎鐐呯倖鐐",4,"鐐涚偆鐐偘鐐辩偞鐐风儕鐑戠儞鐑旂儠鐑栫儤鐑滅儰鐑虹剝",4,"鐒嬬剬鐒忕劄鐒犵劔鐒劘鐒扮劚鐒哥厑鐓呯厗鐓囩厞鐓嬬厫鐓掔厳鐓氱厹鐓炵厾"], +["8fcaa1","鐓ㄧ吂鐔鐔呯唶鐔岀啋鐔氱啗鐔犵啟鐔啺鐔茬喅鐔虹喛鐕鐕佺噭鐕嬬噷鐕撶嚃鐕欑嚉鐕滅嚫鐕剧垁鐖囩垐鐖夌垞鐖楃垰鐖濈垷鐖ょ埆鐖埓鐖哥埞鐗佺墏鐗冪墔鐗庣墢鐗愮墦鐗曠墫鐗氱墱鐗炵墵鐗g墾鐗壆鐗壉鐗风壐鐗荤壖鐗跨妱鐘夌妽鐘庣姄鐘涚姩鐘姰鐘辩姶鐘剧媮鐙囩媺鐙岀嫊鐙栫嫎鐙熺嫢鐙崇嫶鐙虹嫽"], +["8fcba1","鐙剧寕鐚勭寘鐚囩寢鐚嶇寬鐚撶寴鐚欑尀鐚㈢尋鐚х尐鐚尡鐚茬尩鐚虹尰鐚界崈鐛嶇崘鐛掔崠鐛樼崫鐛炵崯鐛犵崷鐛х崺鐛崿鐛嵂鐛辩嵎鐛圭嵓鐜鐜佺巸鐜呯巻鐜庣帎鐜撶帟鐜楃帢鐜滅帪鐜熺帬鐜㈢帴鐜︾帾鐜幁鐜电幏鐜圭幖鐜界幙鐝呯弳鐝夌弸鐝岀弿鐝掔彄鐝栫彊鐝濈彙鐝g彟鐝х彥鐝寸彽鐝风徆鐝虹徎鐝"], +["8fcca1","鐝跨悁鐞佺悇鐞囩悐鐞戠悮鐞涚悿鐞︾惃",9,"鐞圭憖鐟冪憚鐟嗙憞鐟嬬憤鐟戠憭鐟楃憹鐟㈢懄鐟х懆鐟懎鐟懕鐟茬拃鐠佺拝鐠嗙拠鐠夌拸鐠愮拺鐠掔挊鐠欑挌鐠滅挓鐠犵挕鐠g挦鐠ㄧ挬鐠挮鐠挴鐠辩挷鐠电捁鐠荤捒鐡堢搲鐡岀搻鐡撶摌鐡氱摏鐡炵摕鐡ょ摠鐡摣鐡摯鐡虹摶鐡肩摽鐢"], +["8fcda1","鐢掔敄鐢楃敔鐢$敜鐢х敥鐢敮鐢剁敼鐢界斁鐢跨晙鐣冪晣鐣堢晭鐣愮晵鐣楃暈鐣熺暋鐣暠鐣",5,"鐤佺枀鐤愮枓鐤撶枙鐤欑枩鐤㈢枻鐤寸柡鐤跨梹鐥佺梽鐥嗙棇鐥庣棌鐥楃棞鐥熺棤鐥$棨鐥х棳鐥棷鐥辩椆鐦鐦傜槂鐦勭槆鐦堢槉鐦岀槒鐦掔槗鐦曠槚鐦欑槢鐦滅槤鐦炵槪鐦ョ槮鐦╃槶鐦茬槼鐦电樃鐦"], +["8fcea1","鐦虹樇鐧婄檧鐧佺檭鐧勭檯鐧夌檵鐧曠櫃鐧熺櫎鐧ョ櫗鐧櫙鐧辩櫞鐨佺殔鐨岀殟鐨曠殯鐨滅殱鐨熺殸鐨",6,"鐨毉鐨界泚鐩呯泬鐩嬬泴鐩庣洈鐩欑洜鐩︾洦鐩洶鐩辩浂鐩圭浖鐪鐪嗙湂鐪庣湌鐪旂湑鐪楃湙鐪氱湝鐪㈢湪鐪湲鐪湸鐪电湺鐪圭溄鐪剧潅鐫呯潌鐫婄潔鐫庣潖鐫掔潠鐫楃潨鐫炵潫鐫犵潰"], +["8fcfa1","鐫ょ潷鐫潿鐫扮澆鐫崇澊鐫虹澖鐬鐬勭瀸鐬嶇灁鐬曠灃鐬氱灍鐬㈢灖鐬灝鐬灡鐬电灳鐭冪焿鐭戠煉鐭曠煓鐭炵煙鐭犵煠鐭︾煪鐭煱鐭辩煷鐭哥熁鐮呯爢鐮夌爫鐮庣爲鐮濈牎鐮㈢牐鐮牣鐮扮牭鐮风纭勭纭堢纭庣纭滅纭犵 纭g·纭ㄧ—纭『纭剧纰忕纰樼ⅰ纰濈纰熺ⅳ纰ㄧ纰纰辩⒉纰"], +["8fd0a1","纰荤⒔纰跨纾堢纾岀纾掔纾曠纾ょ纾熺纾$&纾2纾崇纾剁7纾虹;纾跨绀岀绀氱绀炵绀犵ぅ绀хぉ绀け绀寸さ绀荤そ绀跨绁呯绁婄绁忕绁旂绁涚绁хォ绁ゲ绁圭セ绁肩ゾ绂嬬绂戠绂旂绂栫绂涚绂$Θ绂╃Λ绂Ρ绂寸Ω绂荤绉勭绉堢绉忕绉栫绉濈"], +["8fd1a1","绉犵Б绉ョИ绉Л绉辩Ц绉肩▊绋冪▏绋夌▕绋岀☉绋曠绋炵ā绋хǐ绋ǒ绋扮ù绋电ǜ绋圭ê绌勭﹨绌囩﹫绌岀⿻绌栫绌滅绌熺绌ョ┃绌┉绌电└绌剧獉绐傜獏绐嗙獖绐嬬獝绐戠獢绐炵獱绐g绐崇绐圭绐肩珕绔夌珜绔庣珣绔涚绔╃绔绔寸绔界绗囩瑪绗熺绗х绗绗绗"], +["8fd2a1","绗辩绗界绛绛佺瓏绛庣瓡绛犵绛︾绛绛绛崇绠勭畨绠庣異绠戠畺绠涚疄绠犵绠绠扮绠电绠虹绠肩绡傜瘏绡堢瘖绡旂瘱绡楃瘷绡氱瘺绡ㄧ绡茬绡电绡圭绡肩绨佺皞绨冪皠绨嗙皦绨嬬皩绨庣皬绨欑皼绨犵哎绨︾皑绨氨绨崇按绨剁肮绨虹眴绫婄睍绫戠睊绫撶睓",5], +["8fd3a1","绫$保绫х暴绫碑绫扮辈绫圭奔绫界矄绮囩矎绮旂矠绮犵拨绮扮捕绮风埠绮荤布绮跨硠绯囩硤绯夌硩绯忕硴绯旂硶绯楃硻绯氱碀绯︾畅绯车绱冪磭绱堢磯绱忕磻绱掔磽绱栫礉绱炵矗绱︾椽绱幢绱肩唇绱剧祤绲佺祰绲堢祶绲戠祿绲楃禉绲氱禍绲濈单绲х氮绲扮蹈绲虹祷绲跨秮缍傜秲缍呯秵缍堢秼缍岀秿缍戠稏缍楃稘"], +["8fd4a1","缍炵鼎缍х丢缍崇抖缍风豆绶",4,"绶岀穽绶庣窏绶欑竴绶㈢伐绶︾藩绶翻绶辩返绶剁饭绶虹笀绺愮笐绺曠笚绺滅笣绺犵抚绺ㄧ脯绺腐绺崇付绺跨箘绻呯箛绻庣箰绻掔箻绻熺埂绻㈢攻绻巩绻钩绻哥咕绾佺簡绾囩簥绾嶇簯绾曠簶绾氱簼绾炵技缂荤冀缂剧伎缃冪絼缃囩綇缃掔綋缃涚綔缃濈健缃g饯缃ョ溅缃"], +["8fd5a1","缃辩浇缃剧娇缇缇嬬緧缇忕緪缇戠緰缇楃緶缇$劲缇︾惊缇敬缇肩究缈缈冪繄缈庣繌缈涚繜缈g骏缈ㄧ楷缈刊缈茬亢缈界烤缈胯囪堣婅嶈庤忚戣撹旇栬濊炶熻犺よ﹁拌磋佃疯硅鸿艰捐亐鑱勮仩鑱よ仸鑱伇鑱佃倎鑲堣値鑲滆倿鑲﹁偋鑲偢鑲硅儓鑳嶈儚鑳掕償鑳曡儣鑳樿儬鑳儺"], +["8fd6a1","鑳拌儾鑳宠兌鑳硅兒鑳捐剝鑴嬭剸鑴楄剺鑴滆劄鑴犺劋鑴ц劕鑴拌劦鑴鸿劶鑵呰厙鑵婅厡鑵掕厳鑵犺叀鑵ц叏鑵╄叚鑵叿鑶佽啇鑶勮唴鑶嗚唻鑶庤問鑶樿啗鑶炶啟鑶啿鑶磋喕鑷嬭噧鑷呰噴鑷庤噺鑷曡嚄鑷涜嚌鑷炶嚒鑷よ嚝鑷嚢鑷辫嚥鑷佃嚩鑷歌嚬鑷借嚳鑸鑸冭垙鑸撹垟鑸欒垰鑸濊垺鑸㈣埁鑸茶埓鑸鸿墐鑹勮墔鑹"], +["8fd7a1","鑹嬭墡鑹忚墤鑹栬墱鑹犺墸鑹ц壄鑹磋壔鑹借壙鑺鑺佽妰鑺勮妵鑺夎妸鑺庤姂鑺旇姈鑺樿姎鑺涜姞鑺¤姡鑺よ姧鑺ㄨ姪鑺姰鑺拌姴鑺磋姺鑺鸿娂鑺捐娍鑻嗚嫄鑻曡嫐鑻犺嫝鑻よ嫧鑻嫮鑻嫸鑻疯嫿鑻捐寑鑼佽寚鑼堣寠鑼嬭崝鑼涜対鑼炶専鑼¤將鑼尛鑼尠鑼宠尫鑼鸿尲鑼借崅鑽冭崉鑽囪崓鑽庤崙鑽曡崠鑽楄嵃鑽"], +["8fd8a1","鑽借嵖鑾鑾傝巹鑾嗚帊鑾掕帞鑾曡帢鑾欒帥鑾滆帩鑾﹁帶鑾╄幀鑾捐幙鑿鑿囪弶鑿忚彁鑿戣彅鑿濊崜鑿ㄨ彧鑿惰徃鑿硅徏钀佽悊钀婅悘钀戣悤钀欒幁钀惞钁呰憞钁堣憡钁嶈憦钁戣憭钁栬憳钁欒憵钁滆憼钁よ懃钁ц應钁拌懗钁磋懚钁歌懠钁借拋钂呰拻钂撹挄钂炶挦钂ㄨ挬钂挴钂辫挻钂鸿捊钂捐搥钃傝搰钃堣搶钃忚摀"], +["8fd9a1","钃滆摟钃摨钃拌摫钃茶摲钄茶摵钃昏摻钄傝攦钄囪攲钄庤攼钄滆敒钄㈣敚钄よ敟钄ц敧钄敮钄宠敶钄惰斂钑嗚晱",4,"钑栬暀钑",6,"钑よ暙钑暪钑鸿暬钑借暱钖佽枀钖嗚枆钖嬭枌钖忚枔钖樿枬钖熻枲钖㈣枼钖ц柎钖惰柗钖歌柤钖借柧钖胯梻钘囪棅钘嬭棊钖棙钘氳棢钘犺棪钘ㄨ棴钘宠椂钘"], +["8fdaa1","钘胯榾铇勮槄铇嶈槑铇愯槕铇掕槝铇欒槢铇炶槨铇ц槱铇惰樃铇鸿樇铇借檧铏傝檰铏掕檽铏栬櫁铏樿櫃铏濊櫊",4,"铏╄櫖铏櫟铏惰櫡铏鸿殟铓戣殩铓樿殮铓滆殹铓﹁毀铓ㄨ毉铓辫毘铓磋毜铓疯毟铓硅毧铔铔佽泝铔呰洃铔掕洉铔楄洑铔滆洜铔h洢铔ц殘铔鸿浖铔借渼铚呰渿铚嬭湈铚忚湊铚撹湐铚欒湠铚熻湣铚"], +["8fdba1","铚ㄨ湲铚湵铚茶湽铚鸿溂铚借溇铦铦冭潊铦嶈潣铦濊潯铦よ潵铦澅铦茶澔铻",6,"铻嬭瀸铻愯灀铻曡灄铻樿灆铻炶灎铻h灖铻灜铻灡铻佃灳铻胯焷锜堣焿锜婅煄锜曡煐锜欒煔锜滆煙锜㈣煟锜よ煪锜煭锜辫煶锜歌熀锜胯爜锠冭爢锠夎爦锠嬭爯锠欒爳锠撹爺锠樿牃锠涜牅锠炶牊锠ㄨ牠锠牥锠茶牭"], +["8fdca1","锠鸿牸琛佽琛呰琛夎琛嬭琛戣琛栬琛氳琛熻琛よ々琛辫」琛昏琚樿琚涜琚熻琚ㄨⅹ琚鸿⒔琚捐瑁",4,"瑁戣瑁撹瑁炶'瑁0瑁辫5瑁疯瑜嗚瑜庤瑜曡瑜樿瑜氳瑜犺う瑜цえ瑜拌け瑜茶さ瑜硅ず瑜捐瑗傝瑗嗚瑗忚瑗楄瑗涜瑗¤ア瑗hカ瑗グ瑗宠サ瑗"], +["8fdda1","瑗昏ゼ瑗借瑕嶈瑕旇瑕涜瑕熻瑕ヨΠ瑕磋Φ瑕惰Ψ瑕艰",4,"瑙ヨЗ瑙Л瑙辫С瑙惰Ч瑙借Э瑷勮▍瑷囪◤瑷戣⊕瑷旇〞瑷炶瑷㈣à瑷﹁ǐ瑷ǒ瑷佃ǚ瑷借ň瑭瑭冭﹨瑭囪〾瑭嶈⿴瑭撹〇瑭楄瑭滆瑭¤━瑭ц┑瑭惰┓瑭硅┖瑭昏┚瑭胯獉瑾冭獑瑾嬭獜瑾愯獟瑾栬獥瑾欒獰瑾ц瑾瑾"], +["8fdea1","瑾惰瑾昏璜冭珕璜堣珘璜婅珣璜撹珨璜曡珬璜濊珶璜璜磋璜惰璜胯瑓璎嗚瑡璎戣瑴璎炶瑹璎婅璎拌璎艰瓊",4,"璀堣瓛璀撹瓟璀欒瓖璀炶璀璀歌璀艰璁佽畡璁呰畫璁嶈畯璁旇畷璁滆疄璁熻案璋硅敖璋捐眳璞囪眽璞嬭睆璞戣睋璞旇睏璞樿睕璞濊睓璞h堡璞﹁报璞╄杯璞宠钡璞惰被璞捐矄"], +["8fdfa1","璨囪矉璨愯矑璨撹矙璨涜矞璨よ补璨鸿硡璩嗚硥璩嬭硰璩栬硶璩欒碀璩¤敞璩朝璩拌巢璩佃撤璩歌尘璩胯磥璐冭磯璐掕礂璐涜单璧╄惮璧悼瓒傝秳瓒堣秿瓒愯稇瓒曡稙瓒熻稜瓒﹁东瓒动瓒茶兜瓒疯豆瓒昏穩璺呰穯璺囪穲璺婅穾璺戣窋璺曡窏璺欒筏璺ヨ阀璺钒瓒艰繁璺茶反璺借竵韪勮竻韪嗚笅韪戣笖韪栬笭韪¤涪"], +["8fe0a1","韪h甫韪ц副韪宠付韪疯父韪硅附韫韫佽箣韫嶈箮韫忚箶韫涜箿韫濊篂韫¤耿韫╄宫韫汞韫拌贡韫硅购韫昏簜韬冭簤韬愯簰韬曡簹韬涜簼韬炶孩韬ц憨韬寒韬宠旱韬鸿夯杌杌佽粌杌勮粐杌忚粦杌旇粶杌ㄨ划杌拌槐杌疯还杌鸿画杓杓傝紘杓堣紡杓愯紪杓楄紭杓炶紶杓¤迹杓ヨ姬杓ㄨ棘杓籍杓磋嫉杓惰挤杓鸿絸杞"], +["8fe1a1","杞冭絿杞忚綉",4,"杞樿綕杞炶渐杈濊緺杈¤兢杈ヨ睛杈佃径杈歌揪杩杩佽繂杩婅繈杩嶈繍杩掕繐杩曡繝杩h郡杩ㄨ慨杩辫康杩惰炕杩鹃傞勯堥岄橀涢ㄩ╅抽撮烽块亙閬勯亴閬涢仢閬㈤仸閬ч伂閬伴伌閬归倕閭堥倠閭岄値閭愰倳閭楅倶閭欓倹閭犻偂閭㈤偉閭伴偛閭抽偞閭堕偨閮岄偩閮"], +["8fe2a1","閮勯儏閮囬儓閮曢儣閮橀儥閮滈儩閮熼儱閮掗兌閮儻閮伴兇閮鹃兛閯閯勯剠閯嗛剤閯嶉剱閯旈剸閯楅剺閯氶劀閯為劆閯ラ劉閯i劎閯╅劗閯劚閯撮劧閯烽劰閯洪劶閯介厓閰囬厛閰忛厯閰楅厵閰氶厸閰¢叅閰ч叚閰撮吂閰洪吇閱侀唭閱呴唵閱婇啂閱戦啌閱旈啎閱橀啚閱¢啨閱ㄩ啲閱啴閱伴啽閱查喅閱堕喕閱奸喗閱"], +["8fe3a1","閲傞噧閲呴嚀閲旈嚄閲欓嚉閲為嚖閲ラ嚛閲嚞",5,"閲烽嚬閲婚嚱閳閳侀垊閳呴垎閳囬垑閳婇垖閳愰垝閳撻垨閳橀垳閳濋垼閳ら垾閳﹂埁閳埊閳伴埑閳甸埗閳搁埞閳洪埣閳鹃墍閴傞墐閴嗛墖閴婇墠閴庨墢閴戦墭閴欓墱閴濋墵閴¢墺閴ч墾閴╅壆閴壈閴",4,"閴婚壖閴介壙閵堥妷閵婇妽閵庨姃閵"], +["8fe4a1","閵欓姛閵犻姢閵ラ姧閵ㄩ姭閵姴閵堕姼閵洪娀閵奸娊閵",4,"閶呴媶閶囬媹閶嬮媽閶嶉嫀閶愰嫇閶曢嫍閶橀嫏閶滈嫕閶熼嫚閶¢嫞閶ラ嫥閶ㄩ嫭閶嫲閶归嫽閶块寑閷傞寛閷嶉寫閷旈寱閷滈対閷為専閷¢尋閷ラ導閷╅尓閷抽尨閷堕尫閸囬崍閸夐崘閸戦崚閸曢崡閸橀崥閸為崵閸ラ崸閸╅崻閸嵂閸伴嵄閸抽嵈閸"], +["8fe5a1","閸洪嵔閸块巰閹侀巶閹堥帄閹嬮帊閹忛帓閹曢帢閹涢帪閹¢帲閹ら帵閹ㄩ帿閹撮幍閹堕幒閹╅弫閺勯弲閺嗛弴閺",4,"閺撻彊閺滈彏閺熼彚閺﹂彠閺归彿閺搁徍閺婚徑閻侀悅閻勯悎閻夐悕閻庨悘閻曢悥閻楅悷閻惎閻遍惒閻抽惔閻婚惪閻介憙閼呴憟閼婇憣閼曢憴閼滈憻閼¢懀閼ㄩ懌閼懏閼懕閼查拕閽冮暩闀"], +["8fe6a1","闀鹃杽闁堥枌闁嶉枎闁濋枮闁熼枴闁﹂柀闁柆闁撮柖闁洪柦闁块梿闂堥棄闂嬮棎闂戦棐闂撻棛闂氶棟闂為棢闂犻棨闂﹂槤闃為槩闃ら槬闃﹂槵闃遍槼闃烽樃闃归樅闃奸樈闄侀檼闄旈櫀闄楅櫂闄¢櫘闄撮櫥闄奸櫨闄块殎闅傞殐闅勯殙闅戦殩闅氶殱闅熼殼闅ラ殾闅╅毊闅毘闅洪泭闆掑恫闆橀洑闆濋洖闆熼洨闆洷闆洪渹"], +["8fe7a1","闇冮渽闇夐湚闇涢湞闇¢湤闇i湪闇遍湷闈侀潈闈婇潕闈忛潟闈楅潣闈氶潧闈i潷闈澁闈抽澏闈烽澑闈婚澖闈块瀫闉夐灂闉栭灄闉欓灇闉為灍闉㈤灛闉灡闉查灥闉堕灨闉归灪闉奸灳闉块焷闊勯焻闊囬焿闊婇煂闊嶉煄闊愰煈闊旈煑闊橀煓闊濋煘闊犻煕闊¢煠闊煴闊撮煼闊搁熀闋囬爦闋欓爫闋庨爺闋栭牅闋為牋闋i牔"], +["8fe8a1","闋牣闋牥闋查牫闋甸牓闋鹃椤囬椤戦椤撻椤楅椤氶、椤iˉ椤﹂—椤棰棰伴⒋棰烽⒏棰洪⒒棰块椋呴椋岄!椋i%椋﹂'椋3椋堕椁囬椁戦椁栭椁氶椁滈椁㈤う椁чか椁",4,"椁归ず椁婚ぜ楗楗侀楗囬楗嶉楗旈楗欓楗滈楗熼棣涢棣熼Ζ棣伴Ρ棣查Φ"], +["8fe9a1","棣归棣介椐冮椐撻椐欓椐滈椐чИ椐К椐伴Т椐甸Ч椐介Ь楱傞▋楱勯▼楱岄◥楱戦楱為楱㈤ǎ楱らě楱ó楱抽ǖ楱堕ǜ椹囬﹣椹勯⿰椹嬮⿲椹庨⿷椹旈〇椹濋楠楠楠撮楠堕楠婚楠块珌楂冮珕楂堥珟楂愰珤楂曢珫楂楅珱楂滈珷楂ら楂ч楂楂抽楂归楂介",4], +["8feaa1","楝勯瑓楝堥瑝楝嬮瑢楝嶉瑤楝愰瑨楝栭瑱楝涢瑴楝犻楝楝抽楝甸楝归楝介瓐榄嬮瓕榄曢瓥榄楅瓫榄為榄i榄﹂榄",4,"榄抽榄烽榄归楫楫勯畢楫嗛畤楫夐畩楫嬮畭楫忛異楫旈畾楫濋疄楫﹂楫╅楫伴楫查楫搁楫奸楫块瘉榀囬瘓榀庨瘣榀楅瘶榀濋療榀ラ榀榀榀烽"], +["8feba1","榀归榀介榘榘傞皨榘忛皯榘栭皹榘欓皻榘滈盀榘㈤埃榘",4,"榘遍暗榘堕胺榘介眮楸冮眲楸呴眽楸婇睅楸忛睈楸撻睌楸栭睒楸涢睗楸為睙楸i暴楸睖楸报楸卑楸查钡楸烽被槌﹂巢槌烽彻榇嬮磦榇戦礂榇橀礈榇濋礊榇窗榇查闯榇撮春榇奸祬榇介祩榈冮祰榈婇祿榈旈禑榈i耽榈ラ旦榈但榈伴刀榈烽祷"], +["8feca1","榈奸稻槎冮秳槎嗛秺槎嶉稁槎掗稉槎曢稏槎楅稑槎¢丢槎懂槎遍兜槎归都槎块穬榉囬穳榉婇窋榉曢窎榉楅窔榉為窡榉犻伐榉ч珐榉樊榉伴烦榉撮肪楦婇競楦囬笌楦愰笐楦掗笗楦栭笝楦滈笣楣洪够楣奸簚楹傞簝楹勯簠楹囬簬楹忛簴楹橀簺楹為氦楹ㄩ含楹函楹伴撼楹撮旱榛嗛粓榛嬮粫榛熼护榛ч滑榛划榛伴槐榛查坏"], +["8feda1","榛搁豢榧傞純榧夐紡榧愰紤榧掗紨榧栭紬榧欓細榧涢紵榧㈤鸡榧极榧急榧查即榧烽脊榧洪技榧介伎榻侀絻",4,"榻撻綍榻栭綏榻橀綒榻濋綖榻ㄩ僵榻",4,"榻抽降榻洪浇榫忛緪榫戦緬榫旈緰榫楅緸榫¢劲榫i茎"] +] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json" new file mode 100644 index 0000000000000000000000000000000000000000..85c6934757761e98580abf0c26c351b6fdfd6ad5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json" @@ -0,0 +1 @@ +{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/gbk-added.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/gbk-added.json" new file mode 100644 index 0000000000000000000000000000000000000000..8abfa9f7b987ad6effc35544dbc488d9c67e0c5e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/gbk-added.json" @@ -0,0 +1,55 @@ +[ +["a140","顡",62], +["a180","顢",32], +["a240","顢",62], +["a280","顣",32], +["a2ab","顫",5], +["a2e3","鈧澀"], +["a2ef","顫澂"], +["a2fd","顫邦澅"], +["a340","顤",62], +["a380","顥",31,"銆"], +["a440","顥",62], +["a480","顦",32], +["a4f4","顫",10], +["a540","顧",62], +["a580","顨",32], +["a5f7","顫",7], +["a640","顨",62], +["a680","顩",32], +["a6b9","顬",7], +["a6d9","顬",6], +["a6ec","顬旑灂"], +["a6f3","顬"], +["a6f6","顬",8], +["a740","顪",62], +["a780","顫",32], +["a7c2","顬",14], +["a7f2","顬",12], +["a896","顬",10], +["a8bc","顭"], +["a8bf","枪"], +["a8c1","顭夘煀顭嬵煂"], +["a8ea","顭",20], +["a958","顭"], +["a95b","顭"], +["a95d","顭ゎ煡顭"], +["a989","銆锯堪",11], +["a997","顭",12], +["a9f0","顮",14], +["aaa1","顎",93], +["aba1","顏",93], +["aca1","顐",93], +["ada1","顒",93], +["aea1","顓",93], +["afa1","顕",93], +["d7fa","顮",4], +["f8a1","顖",93], +["f9a1","願",93], +["faa1","顙",93], +["fba1","顛",93], +["fca1","顜",93], +["fda1","類",93], +["fe50","夂侇爾顮楊牁夂勩懗銘団簣夂嬵牉銝炪槡銟庘簩夂椼ギ悚橆牔悃忋悌炽顮牞悱庛碑愠犫骇顮鳖牪夂仏鋮熲寒鋵封撼夂垛悍顮讳幈鋷夯鋸濅摉錂′檶睢"], +["fe80","錅d湬錆间瀺饣婁浈轰ソ洇備洇呬洇熶洇蜂Χ睢旑洳d矡洳犱病浔蜂并浯",6,"涠·顟",93] +] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/shiftjis.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/shiftjis.json" new file mode 100644 index 0000000000000000000000000000000000000000..5a3a43cf8cf6d20324a49b75aff87d1bf902d108 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/tables/shiftjis.json" @@ -0,0 +1,125 @@ +[ +["0","\u0000",128], +["a1","锝",62], +["8140","銆銆併傦紝锛庛兓锛氾紱锛燂紒銈涖倻麓锝篓锛撅浚锛裤兘銉俱倽銈炪冧粷銆呫嗐囥兗鈥曗愶紡锛硷綖鈭ワ綔鈥︹モ樷欌溾濓紙锛夈斻曪蓟锛斤經锝濄",9,"锛嬶紞卤脳"], +["8180","梅锛濃墵锛滐紴鈮︹墽鈭炩埓鈾傗檧掳鈥测斥剝锟ワ紕锟狅俊锛咃純锛嗭紛锛犅р槅鈽呪棆鈼忊棊鈼団梿鈻♀枲鈻斥柌鈻解柤鈥汇掆啋鈫愨啈鈫撱"], +["81b8","鈭堚垕鈯嗏妵鈯傗妰鈭埄"], +["81c8","鈭р埁锟⑩噿鈬斺垁鈭"], +["81da","鈭犫姤鈱掆垈鈭団墶鈮掆壀鈮垰鈭解垵鈭碘埆鈭"], +["81f0","鈩扳櫙鈾櫔鈥犫÷"], +["81fc","鈼"], +["824f","锛",9], +["8260","锛",25], +["8281","锝",25], +["829f","銇",82], +["8340","銈",62], +["8380","銉",22], +["839f","螒",16,"危",6], +["83bf","伪",16,"蟽",6], +["8440","袗",5,"衼袞",25], +["8470","邪",5,"褢卸",7], +["8480","芯",17], +["849f","鈹鈹傗攲鈹愨敇鈹斺敎鈹敜鈹粹敿鈹佲攦鈹忊敁鈹涒敆鈹b敵鈹敾鈺嬧敔鈹敤鈹封斂鈹濃敯鈹モ敻鈺"], +["8740","鈶",19,"鈪",9], +["875f","銔夈寯銓€崓銓樸導銓冦尪銔戙崡銓嶃對銓c尗銔娿尰銕溿帩銕炪帋銕忋弰銕"], +["877e","銔"], +["8780","銆濄熲剸銖嶁劇銑",4,"銏便埐銏广嵕銔姐嵓鈮掆墶鈭埉鈭戔垰鈯モ垹鈭熲娍鈭碘埄鈭"], +["889f","浜滃敄濞冮樋鍝鎰涙尐濮堕㈣懙鑼滅⿶鎮彙娓ユ棴钁﹁姦榀垫鍦ф枴鎵卞疀濮愯櫥椋寸耽缍鹃畮鎴栫矡琚峰畨搴垫寜鏆楁闂囬瀺鏉忎互浼婁綅渚濆亯鍥插し濮斿▉灏夋儫鎰忔叞鏄撴鐐虹晱鐣扮Щ缍矾鑳冭悗琛h瑐閬曢伜鍖讳簳浜ュ煙鑲查儊纾竴澹辨孩閫哥ú鑼ㄨ妺榘厑鍗板捊鍝″洜濮诲紩椋叉帆鑳よ敪"], +["8940","闄㈤櫚闅犻熁鍚嬪彸瀹囩儚缇借總闆ㄥ嵂榈滅涓戠鑷兼甫鍢樺攧娆濊敋榘诲Д鍘╂郸鐡滈枏鍣備簯閬嬮洸鑽忛鍙″柖瀣板奖鏄犳洺鏍勬案娉虫穿鐟涚泩绌庨牬鑻辫瑭犻嫮娑茬柅鐩婇鎮﹁瑏瓒婇柌姒庡幁鍐"], +["8980","鍦掑牥濂勫寤舵ㄦ帺鎻存部婕旂値鐒旂厵鐕曠尶绺佽壎鑻戣枟閬犻墰榇涘々鏂兼睔鐢ュ嚬澶ゥ寰蹇滄娂鏃烘í娆ф鐜嬬縼瑗栭船榇庨粍宀℃矕鑽诲剟灞嬫喍鑷嗘《鐗′箼淇哄嵏鎭╂俯绌忛煶涓嬪寲浠綍浼戒尽浣冲姞鍙槈澶忓珌瀹跺绉戞殗鏋滄灦姝屾渤鐏弬绂嶇绋肩畤鑺辫嫑鑼勮嵎鑿彄铦﹁鍢╄波杩﹂亷闇炶殜淇勫敞鎴戠墮鐢昏嚗鑺借浘璩闆呴椐曚粙浼氳В鍥炲澹婂换蹇倲鎭㈡噽鎴掓嫄鏀"], +["8a40","榄佹櫐姊版捣鐏扮晫鐨嗙档鑺ヨ煿闁嬮殠璨濆嚤鍔惧鍜冲宕栨叏姒傛动纰嶈搵琛楄┎閹ч娴Θ铔欏灒鏌胯泿閳庡妰鍤囧悇寤撴嫛鎾规牸鏍告鐛茬⒑绌瑙掕但杓冮儹闁i殧闈╁宀虫ソ椤嶉鎺涚瑺妯"], +["8a80","姗挎⒍榘嶆綗鍓插枬鎭版嫭娲绘竾婊戣憶瑜愯絼涓旈肮鍙舵妯洪瀯鏍厹绔冭挷閲滈帉鍣涢川鏍㈣寘钀辩播鍒堣媴鐡︿咕渚冨啝瀵掑垔鍕樺嫥宸诲枤鍫Е瀹屽畼瀵涘共骞规偅鎰熸叄鎲炬彌鏁㈡煈妗撴:娆炬瓝姹楁饥婢楁絽鐠扮敇鐩g湅绔跨绨$珐缂剁堪鑲濊墻鑾炶Τ璜岃搏閭勯憫闁撻枒闁㈤櫏闊撻え鑸樹父鍚哺宸岀帺鐧岀溂宀╃揩璐嬮泚闋戦椤樹紒浼庡嵄鍠滃櫒鍩哄瀣夊瘎宀愬笇骞惧繉鎻満鏃楁棦鏈熸妫"], +["8b40","姗熷赴姣呮皸姹界暱绁堝绋绱寰借瑷樿泊璧疯粚杓濋"楱庨浜鍋藉剙濡撳疁鎴妧鎿鐘犵枒绁囩京锜昏璀版幀鑿婇灎鍚夊悆鍠姗樿┌鐮ф澋榛嶅嵈瀹㈣剼铏愰嗕笜涔呬粐浼戝強鍚稿寮撴ユ晳"], +["8b80","鏈芥眰姹叉常鐏哥悆绌剁绗堢礆绯剧郸鏃х墰鍘诲眳宸ㄦ嫆鎷犳寵娓犺櫄瑷辫窛閶告紒绂﹂瓪浜ㄤ韩浜緵渚犲儜鍏囩鍏卞嚩鍗斿尅鍗垮彨鍠宄″挤褰婃亹鎭専鏁欐⿱娉佺媯鐙煰鑳歌剠鑸堣晭閮烽彙闊块椹氫话鍑濆碍鏆佹キ灞鏇叉サ鐜夋绮佸儏鍕ゅ潎宸鹃對鏂ゆ娆界惔绂佺绛嬬穵鑺硅弻琛胯璎硅繎閲戝悷閵涔濆跺彞鍖虹嫍鐜栫煩鑻﹁函椐嗛椐掑叿鎰氳櫈鍠扮┖鍋跺瘬閬囬殔涓叉珱閲у睉灞"], +["8c40","鎺樼獰娌撻澊杞$鐔婇殘绮傛牀绻版閸嫴鍚涜柅瑷撶兢杌嶉儭鍗﹁绁佷總鍌惧垜鍏勫晸鍦彧鍨嬪褰㈠緞鎭垫叾鎱ф啯鎺叉惡鏁櫙妗傛笓鐣︾ń绯荤祵缍欑箣缃寧鑽婅泹瑷堣璀﹁唤闋氶稄鑺歌繋榀"], +["8c80","鍔囨垷鎾冩縺闅欐鍌戞瑺姹烘綌绌寸祼琛瑷f湀浠跺瑰﹀仴鍏煎埜鍓e枾鍦忓爡瀚屽缓鎲叉嚫鎷虫嵅妞滄ī鐗界姮鐚爺纭倒鐪岃偐瑕嬭瑱璩㈣粧閬i嵉闄洪楱撻垢鍏冨師鍘冲够寮︽笡婧愮巹鐝剧祪鑸疯█璜洪檺涔庡嬪彜鍛煎浐濮戝宸卞韩寮ф埜鏁呮灟婀栫嫄绯婅⒋鑲¤儭鑿拌檸瑾囪法閳烽泧椤ч紦浜斾簰浼嶅崍鍛夊惥濞緦寰℃偀姊ф獛鐟氱瑾炶璀烽啇涔為瘔浜や郊渚欏栧厜鍏姛鍔瑰嬀鍘氬彛鍚"], +["8d40","鍚庡枆鍧戝灑濂藉瓟瀛濆畯宸ュ阀宸峰垢搴冨簹搴峰紭鎭掓厡鎶楁嫎鎺ф敾鏄傛檭鏇存澀鏍℃妲嬫睙娲旦娓簼鐢茬殗纭ǹ绯犵磪绱樼禐缍辫曡冭偗鑲辫厰鑶忚埅鑽掕琛¤瑳璨㈣臣閮婇叺閴辩牽閶奸枻闄"], +["8d80","闋呴楂橀椿鍓涘姭鍙峰悎澹曟嫹婵犺豹杞熼汗鍏嬪埢鍛婂浗绌閰烽禒榛掔崉婕夎叞鐢戝拷鎯氶鐙涜炯姝ら爟浠婂洶鍧ゅ⒕濠氭仺鎳囨槒鏄嗘牴姊辨贩鐥曠春鑹瓊浜涗綈鍙夊攩宓乏宸熁娌欑懗鐮傝⿶閹栬鍧愬骇鎸偟鍌啀鏈鍝夊濡诲褰╂墠鎺℃牻姝虫笀鐏介噰鐘鐮曠牔绁枎绱拌彍瑁佽級闅涘墹鍦ㄦ潗缃病鍐村潅闃牶姒婅偞鍜插磶鍩肩榉轰綔鍓婂拫鎼炬槰鏈旀煹绐勭瓥绱㈤尟妗滈绗瑰寵鍐婂埛"], +["8e40","瀵熸嫸鎾摝鏈钖╅洃鐨愰瘱鎹岄寙楫毧鏅掍笁鍌樺弬灞辨儴鎾掓暎妗熺嚘鐝婄敚绠楃簜铓曡畠璩涢吀椁愭柆鏆畫浠曚粩浼轰娇鍒哄徃鍙插棧鍥涘+濮嬪濮垮瓙灞嶅競甯織鎬濇寚鏀瓬鏂柦鏃ㄦ灊姝"], +["8e80","姝绘皬鐛呯绉佺掣绱欑传鑲㈣剛鑷宠瑭炶┅瑭﹁獙璜硣璩滈泴椋兼浜嬩技渚嶅厫瀛楀鎱堟寔鏅傛婊嬫不鐖剧捊鐥旂绀鸿岃宠嚜钂旇緸姹愰箍寮忚瓨榇杌稿畭闆竷鍙卞煼澶卞珘瀹ゆ倝婀挎紗鐤捐唱瀹熻攢绡犲伈鏌磋姖灞¤晩绺炶垘鍐欏皠鎹ㄨ郸鏂滅叜绀剧礂鑰呰瑵杌婇伄铔囬偑鍊熷嫼灏烘潛鐏肩埖閰岄噲閷嫢瀵傚急鎯逛富鍙栧畧鎵嬫湵娈婄嫨鐝犵ó鑵叮閰掗鍎掑彈鍛鎺堟ü缍渶鍥氬弾鍛"], +["8f40","瀹楀氨宸炰慨鎰佹嬀娲茬绉嬬祩绻嶇繏鑷垷钂愯瑗茶異韫磋集閫遍厠閰泦閱滀粈浣忓厖鍗佸緭鎴庢煍姹佹笅鐛g甫閲嶉妰鍙斿瀹挎窇绁濈府绮涘【鐔熷嚭琛撹堪淇婂郴鏄ョ灛绔h垳椐垮噯寰棳妤畨娣"], +["8f80","婧栨饯鐩剧磾宸¢伒閱囬爢鍑﹀垵鎵鏆戞洐娓氬憾绶掔讲鏇歌柉钘疯鍔╁彊濂冲簭寰愭仌閶ら櫎鍌峰劅鍕濆尃鍗囧彫鍝ㄥ晢鍞卞槜濂ㄥ濞煎灏嗗皬灏戝皻搴勫簥寤犲桨鎵挎妱鎷涙帉鎹锋槆鏄屾槶鏅舵澗姊㈡妯垫布娑堟笁婀樼劶鐒︾収鐥囩渷纭濈绁ョО绔犵瑧绮х垂鑲栬彇钂嬭晧琛濊3瑷熻瑭旇┏璞¤碁閱ら墻閸鹃悩闅滈灅涓婁笀涓炰箺鍐楀壈鍩庡牬澹屽甯告儏鎿炬潯鏉栨祫鐘剁暢绌h捀璀查喐閷犲槺鍩撮>"], +["9040","鎷娈栫嚟绻旇伔鑹茶Е椋熻潟杈卞盎浼镐俊渚靛攪濞犲瘽瀵╁績鎱庢尟鏂版檵妫娴告繁鐢崇柟鐪熺绉︾闯鑷h姱钖Κ瑷鸿韩杈涢查嚌闇囦汉浠佸垉濉靛,灏嬬敋灏借厧瑷婅繀闄i澀绗ヨ珡闋堥參鍥冲帹"], +["9080","閫楀惞鍨傚弗鎺ㄦ按鐐婄潯绮嬬繝琛伴亗閰旈寪閷橀殢鐟為珓宕囧旦鏁版灑瓒ㄩ洓鎹潐妞欒弲闋楅泙瑁炬緞鎽哄涓栫暆鏄噭鍒跺嫝濮撳緛鎬ф垚鏀挎暣鏄熸櫞妫叉爾姝f竻鐗茬敓鐩涚簿鑱栧0瑁借タ瑾犺獡璜嬮濋啋闈掗潤鏂夌◣鑴嗛毣甯儨鎴氭枼鏄旀瀽鐭崇⿳绫嶇妇鑴婅铂璧よ贰韫熺ⅸ鍒囨嫏鎺ユ憘鎶樿ō绐冪瘈瑾洩绲惰垖铦変粰鍏堝崈鍗犲灏傚皷宸濇垿鎵囨挵鏍撴牬娉夋祬娲楁煋娼滅厧鐓芥棆绌跨绶"], +["9140","绻婄鲸鑵鸿垱鑸硅枽瑭硯璺甸伕閬烽姯閵戦杻楫墠鍠勬几鐒跺叏绂呯箷鑶崇硯鍣屽宀ㄦ帾鏇炬浗妤氱嫏鐤忕枎绀庣绉熺矖绱犵祫铇囪ù闃婚仭榧犲儳鍓靛弻鍙㈠夊柂澹鐖藉畫灞ゅ対鎯f兂鎹滄巸鎸挎幓"], +["9180","鎿嶆棭鏇瑰罚妲嶆Ы婕曠嚗浜夌棭鐩哥獡绯熺窂缍滆仭鑽夎崢钁捈钘昏璧伴侀伃閹楅湝楱掑儚澧楁啂鑷撹數璐堥犱績鍋村墖鍗虫伅鎹夋潫娓冻閫熶織灞炶硦鏃忕稓鍗掕鍏舵弮瀛樺灏婃悕鏉戦仠浠栧澶卑瑭戝斁鍫曞Ε鎯版墦鏌佽埖妤曢檧椐勯è浣撳爢瀵捐愬脖甯緟鎬犳厠鎴存浛娉版粸鑳庤吙鑻旇璨搁閫殜榛涢瘺浠e彴澶х閱嶉榉规粷鐎у崜鍟勫畢鎵樻姙鎷撴并婵悽瑷楅惛婵佽鑼稿嚙铔稿彧"], +["9240","鍙╀絾閬旇景濂劚宸界杈挎璋风嫺楸堟ń瑾颁腹鍗樺槅鍧︽媴鎺㈡棪姝庢贰婀涚偔鐭绠痘鑰借儐铔嬭獣閸涘洠澹囧季鏂殩妾娈电敺璜囧ょ煡鍦板紱鎭ユ櫤姹犵棿绋氱疆鑷磋湗閬呴Τ绡夌暅绔圭瓚钃"], +["9280","閫愮З绐掕尪瀚$潃涓徊瀹欏繝鎶芥樇鏌辨敞铏》瑷婚厧閶抽妯楃︾尓鑻ц憲璨竵鍏嗗噵鍠嬪甯栧赋搴佸紨寮靛将寰存嚥鎸戞殺鏈濇疆鐗掔敽鐪鸿伌鑴硅吀铦惰璜滆秴璺抽姎闀烽爞槌ュ媴鎹楃洿鏈曟矆鐝嶈硟閹櫝娲ュ妞庢杩介帤鐥涢氬鏍傛幋妲讳絻婕煒杈昏敠缍撮崝妞挎桨鍧7瀣船鐖悐閲i洞浜綆鍋滃伒鍓冭矠鍛堝牑瀹氬笣搴曞涵寤峰紵鎮屾姷鎸烘彁姊眬纰囩绋嬬窢鑹囪▊璜﹁箘閫"], +["9340","閭搁劖閲橀紟娉ユ憳鎿㈡暤婊寸殑绗涢仼閺戞汉鍝插竟鎾よ綅杩墑鍏稿~澶╁睍搴楁坊绾忕敎璨艰虎椤涚偣浼濇婢辩敯闆诲厧鍚愬牭濉楀Μ灞犲緬鏂楁潨娓$櫥鑿熻抄閫旈兘閸嶇牓鐮哄姫搴﹀湡濂存掑掑厷鍐"], +["9380","鍑嶅垁鍞愬濉樺瀹曞扯宥嬫偧鎶曟惌鏉辨姊兼鐩楁窐婀稕鐏噲褰撶棙绁风瓑绛旂瓛绯栫当鍒拌懀钑╄棨瑷庤瑒璞嗚笍閫冮忛悪闄堕牠楱伴棙鍍嶅嫊鍚屽爞灏庢啩鎾炴礊鐬崇鑳磋悇閬撻妳宄犻磭鍖垮緱寰虫稖鐗圭潱绂跨姣掔嫭瑾爟姗″嚫绐佹ご灞婇扯鑻瘏閰夌炲櫢灞儑鏁︽矊璞氶亖闋撳憫鏇囬垗濂堥偅鍐呬箥鍑枡璎庣仒鎹洪崑妤㈤Υ绺勭暦鍗楁杌熼洠姹濅簩灏煎紣杩╁寕璩戣倝铏瑰豢鏃ヤ钩鍏"], +["9440","濡傚翱闊换濡婂繊瑾嶆俊绂扮ア瀵ц懕鐚啽骞村康鎹绘挌鐕冪矘涔冨患涔嬪煖鍤㈡偐婵冪磵鑳借劤鑶胯静瑕楄殼宸存妸鎾鏉锋尝娲剧惗鐮村﹩缃佃姯棣砍寤冩嫕鎺掓晽鏉泝鐗岃儗鑲鸿缉閰嶅嶅煿濯掓"], +["9480","妤崇叅鐙借卜澹茶碃闄欒澘绉ょ煣钀╀集鍓ュ崥鎷嶆煆娉婄櫧绠旂矔鑸惰杽杩洕婕犵垎绺涜帿椐侀害鍑界纭茬鑲囩瓐娅ㄥ埂鑲岀晳鐣犲叓閴㈡簩鐧洪啑楂紣缃版姕绛忛枼槌╁櫤濉欒洡闅间即鍒ゅ崐鍙嶅彌甯嗘惉鏂戞澘姘炬睅鐗堢姱鐝晹绻佽埇钘╄博绡勯噯鐓╅爳椋尳鏅╃暘鐩ょ钑冭洰鍖崙鍚﹀搴囧郊鎮叉墘鎵规姭鏂愭瘮娉岀柌鐨绉樼穻缃疯偉琚璨婚伩闈為妯嬬案鍌欏熬寰瀲姣樼惖鐪夌編"], +["9540","榧绘煀绋楀尮鐤嬮褰﹁啙鑿辫倶寮煎繀鐣㈢瓎閫兼¨濮獩绱愮櫨璎康褰姘锋紓鐡㈢エ琛ㄨ⿻璞瑰粺鎻忕梾绉掕嫍閷ㄩ嫴钂滆洯榘搧褰枌娴滅曡钵璩撻牷鏁忕摱涓嶄粯鍩犲か濠﹀瘜鍐ㄥ竷搴滄栨壎鏁"], +["9580","鏂ф櫘娴埗绗﹁厫鑶氳姍璀滆矤璩﹁荡闃滈檮渚挮姝﹁垶钁¤暘閮ㄥ皝妤撻ⅷ钁鸿晽浼忓壇寰╁箙鏈嶇鑵硅瑕嗘返寮楁墪娌镐粡鐗╅畳鍒嗗惢鍣村⒊鎲ゆ壆鐒氬ギ绮夌碁绱涢洶鏂囪仦涓欎降鍏靛骞e钩寮婃焺涓﹁斀闁夐櫅绫抽爜鍍诲鐧栫ⅶ鍒ョ灔钄戠畣鍋忓鐗囩瘒绶ㄨ竞杩旈亶渚垮媺濞╁紒闉繚鑸楅嫪鍦冩崟姝╃敨瑁滆紨绌傚嫙澧撴厱鎴婃毊姣嶇翱鑿╁d扛鍖呭憜鍫卞瀹濆嘲宄穿搴栨姳鎹ф斁鏂规湅"], +["9640","娉曟场鐑圭牪绺優鑺宠悓钃渹瑜掕í璞婇偊閶掗=槌抽惮涔忎骸鍌嶅墫鍧婂Θ甯藉繕蹇欐埧鏆存湜鏌愭鍐掔础鑲啫璎璨岃部閴鹃槻鍚犻牞鍖楀儠鍗滃ⅷ鎾叉湸鐗х潶绌嗛嚘鍕冩病娈嗗爛骞屽鏈炕鍑$泦"], +["9680","鎽╃(榄旈夯鍩嬪鏄ф灇姣庡摡妲欏箷鑶滄灂楫熅楸掓浜︿浚鍙堟姽鏈搏杩勪经绻嚎涓囨參婧婕敁鍛虫湭榄呭烦绠曞铂瀵嗚湝婀婅搼绋旇剤濡欑矋姘戠湢鍕欏あ鐒$墴鐭涢湩榈℃濠垮鍐ュ悕鍛芥槑鐩熻糠閵橀炒濮墲婊呭厤妫夌犊绶潰楹烘懜妯¤寕濡勫瓱姣涚寷鐩茬恫鑰楄挋鍎叉湪榛欑洰鏉㈠嬁椁呭挨鎴荤本璨板晱鎮剁磱闁鍖佷篃鍐跺鐖鸿堕噹寮ョ煝鍘勫焦绱勮柆瑷宠簫闈栨煶钖憮鎰夋剤娌圭檼"], +["9740","璜几鍞綉鍎媷鍙嬪骞芥偁鎲傛彇鏈夋煔婀ф秾鐚剁尫鐢辩瑁曡獦閬婇倯閮甸泟铻嶅浜堜綑涓庤獕杓块爯鍌辜濡栧搴告彋鎻烘搧鏇滄妲樻磱婧剁啍鐢ㄧ缇婅钁夎搲瑕佽韪婇仴闄介鎱炬姂娆"], +["9780","娌冩荡缈岀考娣缇呰灪瑁告潵鑾遍牸闆锋礇绲¤惤閰贡鍗靛祼娆勬揩钘嶈槶瑕у埄鍚忓饱鏉庢ⅷ鐞嗙拑鐥㈣瑁¢噷闆㈤櫢寰嬬巼绔嬭憥鎺犵暐鍔夋祦婧滅悏鐣欑~绮掗殕绔滈緧渚舵叜鏃呰櫆浜嗕寒鍍氫浮鍑屽鏂欐娑肩専鐧傜灜绋滅厂鑹珤閬奸噺闄甸牁鍔涚窇鍊帢鏋楁穻鐕愮惓鑷ㄨ吉闅i睏楹熺憼濉佹稒绱浠や级渚嬪喎鍔卞逗鎬滅幉绀艰嫇閳撮毞闆堕湂楹楅舰鏆︽鍒楀姡鐑堣寤夋亱鎲愭迹鐓夌熬绶磋伅"], +["9840","钃i尙鍛傞娅撶倝璩傝矾闇插姶濠佸粖寮勬湕妤兼娴紡鐗㈢嫾绡佽伨铦嬮儙鍏簱绂勮倠閷茶珫鍊拰瑭辨璩勮剣鎯戞灎榉蹭簷浜橀皭瑭梺钑ㄦ婀剧鑵"], +["989f","寮屼笎涓曚釜涓变付涓间缚涔備箹涔樹簜浜呰鲍浜婅垝寮嶄簬浜炰簾浜犱孩浜颁撼浜朵粠浠嶄粍浠嗕粋浠椾粸浠粺浠蜂級浣氫及浣涗綕浣椾絿浣朵緢渚忎緲浣讳僵浣颁緫浣締渚栧剺淇斾繜淇庝繕淇涗繎淇氫繍淇や骏鍊氬ㄥ斿ュ呬紲淇跺″╁烤淇戝嗗亙鍋囨渻鍋曞亹鍋堝仛鍋栧伂鍋稿個鍌氬倕鍌村偛"], +["9940","鍍夊儕鍌冲儌鍍栧優鍍ュ儹鍍e儺鍍瑰兊鍎夊剚鍎傚剸鍎曞剶鍎氬劇鍎哄劮鍎煎劵鍎垮厐鍏掑厡鍏斿參绔稿叐鍏叜鍐鍐傚洏鍐屽唹鍐忓啈鍐撳啎鍐栧啢鍐﹀啟鍐╁啰鍐喅鍐卞啿鍐板喌鍐藉噮鍑夊嚊鍑犺檿鍑╁嚟"], +["9980","鍑板嚨鍑惧垊鍒嬪垟鍒庡埀鍒埉鍒冲埞鍓忓墑鍓嬪墝鍓炲墧鍓壌鍓╁壋鍓垮壗鍔嶅姅鍔掑壉鍔堝姂杈ㄨ晶鍔姯鍔煎姷鍕佸媿鍕楀嫗鍕e嫤椋嫚鍕冲嫷鍕稿嫻鍖嗗寛鐢稿實鍖愬審鍖曞寶鍖e尟鍖卞尦鍖稿崁鍗嗗崊涓楀崏鍗嶅嚃鍗炲崺鍗鍗诲嵎鍘傚帠鍘犲帵鍘ュ幃鍘板幎鍙冪皰闆欏彑鏇肩嚠鍙彣鍙徍鍚佸惤鍛鍚惌鍚煎惍鍚跺惄鍚濆憥鍜忓懙鍜庡憻鍛卞懛鍛板拻鍛诲拃鍛跺拕鍜愬拞鍝囧挗鍜稿挜鍜搫鍝堝挩"], +["9a40","鍜搨鍜ゅ捑鍜煎摌鍝ュ摝鍞忓敂鍝藉摦鍝摵鍝㈠敼鍟鍟e晫鍞暅鍟呭晼鍟楀敻鍞冲暆鍠欏杸鍜枈鍠熷暬鍟惧枠鍠炲柈鍟煎杻鍠╁枃鍠ㄥ棜鍡呭棢鍡勫棞鍡ゅ棓鍢斿椃鍢栧椌鍡藉槢鍡瑰檸鍣愮嚐鍢村樁鍢插樃"], +["9a80","鍣櫎鍢櫖鍣殕鍤鍤婂殸鍤斿殢鍤ュ毊鍤跺毚鍥傚毤鍥佸泝鍥鍥堝泿鍥戝洆鍥楀洰鍥瑰渶鍥垮渼鍦夊湀鍦嬪湇鍦撳湗鍦栧棁鍦滃湨鍦峰湼鍧庡溁鍧鍧忓潻鍩鍨堝潯鍧垮瀴鍨撳灎鍨冲灓鍨灠鍩冨焼鍩斿煉鍩撳爦鍩栧煟鍫嬪牂鍫濆〔鍫″、濉嬪“姣濉掑牻濉瑰澧瑰澧⒑澹炲⒒澧稿澹呭澹戝澹欏澹ュ澹ゅ澹:澹瑰;澹煎=澶傚澶愬姊﹀ぅ澶き澶插じ澶剧珤濂曞濂庡濂樺ア濂犲ェ濂ォ"], +["9b40","濂稿濡濅綖渚Γ濡插濮ㄥ濡嶅濮氬ē濞熷☉濞滃▔濞氬﹢濠〾濞靛ǘ濠㈠┆濯氬濯惧珛瀚傚瀚e珬瀚﹀瀚栧瀚诲瑢瀣嬪瑬瀣插珢瀣瀣惧瓋瀛呭瓈瀛戝瓡瀛氬瓫瀛ュ瀛板瀛靛鏂堝瀹"], +["9b80","瀹冨瀹稿瘍瀵囧瘔瀵斿瘣瀵ゅ瀵㈠癁瀵ュ瀵板瀵冲皡灏囧皥灏嶅皳灏犲阿灏ㄥ案灏瑰眮灞嗗睅灞撳睈灞忓灞碑涔㈠倍灞瑰矊宀戝矓濡涘搏宀诲捕宀煎卜宄呭簿宄囧硻宄╁辰宄哄抄宥屽唱宕嬪磿宕楀禍宕熷礇宕戝磾宕㈠礆宕欏礃宓屽祾宓庡祴宓党宓跺秶宥勫秱宥㈠稘宥懂宥藉稅宥峰都宸夊穽宸撳窉宸栧窙宸凡宸靛笅甯氬笝甯戝笡甯跺阜骞勫箖骞骞庡箺骞斿篃骞㈠工骞囧沟骞跺购楹煎箍搴犲粊寤傚粓寤愬粡"], +["9c40","寤栧唬寤濆粴寤涘虎寤″花寤╁滑寤卞怀寤板淮寤稿痪寮冨級褰濆綔寮嬪紤寮栧缉寮几褰佸綀褰屽綆寮綉褰栧綏褰欏健褰匠褰峰緝寰傚娇寰婂緢寰戝緡寰炲緳寰樺緺寰ㄥ经寰煎繓蹇诲郡蹇稿勘蹇濇偝蹇挎℃仩"], +["9c80","鎬欐愭╂庢辨涙曟︽忔烘仛鎭佹仾鎭锋仧鎭婃亞鎭嶆仯鎭冩仱鎭傛伂鎭仚鎮佹倣鎯ф們鎮氭倓鎮涙倴鎮楁倰鎮ф倠鎯℃偢鎯犳儞鎮村堪鎮芥儐鎮垫儤鎱嶆剷鎰嗘兌鎯锋剙鎯存兒鎰冩劇鎯绘儽鎰嶆剮鎱囨劸鎰ㄦ劎鎱婃効鎰兼劕鎰存劷鎱傛厔鎱虫叿鎱樻厵鎱氭叓鎱存叝鎱ユ叡鎱熸厺鎱撴叺鎲欐問鎲囨啲鎲旀啔鎲婃啈鎲啴鎳屾噴鎳夋嚪鎳堟噧鎳嗘喓鎳嬬焦鎳嶆嚘鎳f嚩鎳烘嚧鎳挎嚱鎳兼嚲鎴鎴堟垑鎴嶆垖鎴旀垱"], +["9d40","鎴炴垺鎴埉鎴版埐鎴虫墎鎵庢墳鎵f墰鎵犳墾鎵兼妭鎶夋壘鎶掓姄鎶栨嫈鎶冩姅鎷楁嫅鎶绘嫃鎷挎媶鎿旀媹鎷滄媽鎷婃媯鎷囨姏鎷夋寣鎷嫳鎸ф寕鎸堟嫰鎷垫崘鎸炬崓鎼滄崗鎺栨帋鎺鎺嵍鎺f帍鎺夋師鎺垫崼"], +["9d80","鎹╂幘鎻╂弨鎻嗘彛鎻夋彃鎻舵弰鎼栨惔鎼嗘悡鎼︽惗鏀濇悧鎼ㄦ悘鎽ф懐鎽舵憥鏀挄鎾撴挜鎾╂拡鎾兼摎鎿掓搮鎿囨捇鎿樻搨鎿辨摟鑸夋摖鎿℃姮鎿f摨鏀摱鎿存摬鎿烘攢鎿芥敇鏀滄攨鏀ゆ敚鏀敶鏀垫敺鏀舵敻鐣嬫晥鏁栨晻鏁嶆晿鏁炴暆鏁叉暩鏂傛杻璁婃枦鏂熸柅鏂锋梼鏃嗘梺鏃勬棇鏃掓棝鏃欐棤鏃℃棻鏉叉槉鏄冩椈鏉虫樀鏄舵槾鏄滄檹鏅勬檳鏅佹櫈鏅濇櫎鏅ф櫒鏅熸櫌鏅版殐鏆堟殠鏆夋殑鏆樻殱鏇佹毠鏇夋毦鏆"], +["9e40","鏇勬毟鏇栨洑鏇犳樋鏇︽洨鏇版浀鏇锋湉鏈栨湠鏈︽湩闇告湲鏈挎湺鏉佹湼鏈锋潌鏉炴潬鏉欐潱鏉ゆ瀴鏉版灘鏉兼潽鏋屾瀷鏋︽灐鏋呮灧鏌灤鏌灣鏌╂灨鏌ゆ煘鏌濇煝鏌灩鏌庢焼鏌ф獪鏍炴鏍╂妗嶆牪妗"], +["9e80","姊虫牜妗欐。妗锋】姊熸姊姊濇姊冩姊规〈姊垫姊烘姊嶆【妞佹妞堟妞㈡う妫℃妫嶆妫ф妞舵妞勬妫fぅ妫规妫え妞妞fぁ妫嗘ス妤锋妤告カ妤旀ゾ妤す妤存そ妤欐ぐ妤℃妤濇妤Σ姒姒挎妲撴妲庡妲婃姒绘姒фó姒戞姒滄姒存妲ㄦ▊妯涙Э娆婃Ч妲叉Ё妯呮Ρ妯炴Л妯旀Й妯婃⊕娅佹ǎ妯撴﹦妯屾┎妯舵└姗囨姗欐│姗堟ǜ妯㈡獝妾嶆獱妾勬妾"], +["9f40","妾楄槜妾绘珒娅傛妾虫娅炴珣娅熸娅氭娅绘瑓铇栨娆掓瑬楝辨瑹娆告鐩滄椋瓏姝冩瓑姝愭瓩姝旀瓫姝熸姝告姝挎畝娈勬畠娈嶆畼娈曟疄娈ゆ娈娈叉娈虫娈兼瘑姣嬫瘬姣熸姣姣"], +["9f80","楹炬皥姘撴皵姘涙挨姘f睘姹曟雹姹矀娌嶆矚娌佹矝姹炬报姹虫矑娌愭硠娉辨硴娌芥硹娉呮碀娌脖娌炬埠娉涙朝娉欐唱娲熻娲舵传娲芥锤娲欐吹娲虫磼娲屾担娑撴丹娴氭倒娴欐稁娑曟郡娑呮饭娓曟笂娑垫穱娣︽陡娣嗘番娣炴穼娣ㄦ窉娣呮泛娣欐筏娣曟藩娣腑婀府娓欐共婀熸妇娓f公娓苟婀嶆笩婀冩负婀庢袱婊挎笣娓告簜婧簶婊夋悍婊撴航婧粍婧叉粩婊曟簭婧ユ粋婧熸絹婕戠亴婊桓婊炬伎婊叉急婊疾婊"], +["e040","婕炬紦婊锋締娼烘礁婢佹線娼經婵虫江婢傛郊娼樻編婢戞總娼︽境婢f尽婢ゆ竟婵嗘惊婵熸繒婵繑婵樻勘婵繘鐎夌嬫亢鐎戠佺忔烤鐎涚氭酱鐎濈樼熺扮剧茬亼鐏g倷鐐掔偗鐑辩偓鐐哥偝鐐儫鐑嬬儩"], +["e080","鐑欑剦鐑界劀鐒欑叆鐓曠唸鐓︾參鐓岀厲鐓啅鐕荤唲鐔曠啫鐔嚄鐔圭喚鐕掔噳鐕旂噹鐕犵嚞鐕х嚨鐕肩嚬鐕跨垗鐖愮垱鐖ㄧ埈鐖埌鐖茬埢鐖肩埧鐗鐗嗙墜鐗樼壌鐗剧妭鐘佺妵鐘掔姈鐘㈢姧鐘圭姴鐙冪媶鐙勭嫀鐙掔嫝鐙犵嫛鐙圭嫹鍊忕寳鐚婄寽鐚栫対鐚寸尟鐚╃尌鐚剧崕鐛忛粯鐛楃崻鐛ㄧ嵃鐛哥嵉鐛荤嵑鐝堢幊鐝庣幓鐝鐝ョ彯鐝炵挗鐞呯懐鐞ョ徃鐞茬惡鐟曠惪鐟熺憴鐟佺憸鐟╃懓鐟g應鐟剁懢鐠嬬挒鐠х搳鐡忕摂鐝"], +["e140","鐡犵摚鐡х摡鐡摬鐡扮摫鐡哥摲鐢勭攦鐢呯攲鐢庣攳鐢曠敁鐢炵敠鐢敿鐣勭晬鐣婄晧鐣涚晢鐣氱暕鐣ょ暓鐣暛鐣哥暥鐤嗙枃鐣寸枈鐤夌杺鐤旂枤鐤濈枼鐤g梻鐤崇梼鐤电柦鐤哥柤鐤辩棈鐥婄棐鐥欑棧鐥炵椌鐥"], +["e180","鐥肩榿鐥扮椇鐥茬棾鐦嬬槏鐦夌槦鐦х槧鐦$槩鐦ょ槾鐦扮樆鐧囩檲鐧嗙櫆鐧樼櫋鐧㈢櫒鐧╃櫔鐧х櫖鐧扮櫜鐧剁櫢鐧肩殌鐨冪殘鐨嬬殠鐨栫殦鐨欑殮鐨扮毚鐨哥毠鐨虹泜鐩嶇洊鐩掔洖鐩$洢鐩х洩铇浕鐪堢渿鐪勭湬鐪ょ湠鐪ョ湨鐪涚湻鐪哥潎鐫氱潹鐫潧鐫ョ澘鐫剧澒鐬庣瀷鐬戠灎鐬炵灠鐬剁灩鐬跨灱鐬界灮鐭囩煃鐭楃煔鐭滅煟鐭熂鐮岀爳绀︾牋绀纰庣〈纰嗙〖纰氱纰g⒌纰纾戠纾嬬纰剧⒓纾呯纾"], +["e240","纾х纾界4绀囩绀戠绀か绁绁犵绁熺绁曠绁虹タ绂婄绂ч綃绂Ξ绂崇绂虹绉曠Ё绉А绉g▓绋嶇绋欑绋熺绋辩ɑ绋剧ǚ绌冪绌夌绌㈢┅榫濈┌绌圭┙绐堢獥绐曠獦绐栫绔堢"], +["e280","绐剁珔绔勭閭冪珖绔婄珝绔忕珪绔撶珯绔氱珴绔$绔︾绔扮瑐绗忕瑠绗嗙绗樼瑱绗炵绗ㄧ绛愮绗勭瓖绗嬬瓕绛呯绛ョ绛х绛辩绛疂绠樼疅绠嶇疁绠氱畫绠掔畯绛濈畽绡嬬瘉绡岀瘡绠寸瘑绡濈绨戠皵绡︾绫犵皜绨囩皳绡崇绨楃皪绡剁埃绨х蔼绨熺胺绨敖绫岀眱绫旂睆绫绫愮睒绫熺堡绫栫饱绫钡绮冪矏绮ょ箔绮㈢搏绮$波绮崇膊绮辩伯绮圭步绯绯呯硞绯樼硳绯滅尝楝荤朝绯茬炒绯剁澈绱"], +["e340","绱傜礈绱曠磰绲呯祴绱床绱跨吹绲嗙党绲栫祹绲茬胆绲祻绲g稉缍夌禌缍忕到缍涚逗缍叮缍电穱缍界东绺界盯缍窚缍哥稛缍扮窐绶濈筏绶炵坊绶茬贰绺呯笂绺g浮绺掔副绺熺笁绺嬬涪绻嗙功绺荤傅绺圭箖绺"], +["e380","绺茬负绻х節绻栫篂绻欑箽绻圭躬绻╃辜绻荤簝绶曠菇杈箍绾堢簤绾岀簰绾愮簱绾旂簴绾庣簺绾滅几缂虹絽缃岀綅缃庣綈缃戠綍缃旂綐缃熺綘缃ㄧ僵缃х礁缇傜締缇冪緢缇囩緦缇旂緸缇濈練缇g警缇茬竟缇径缇歌缈呯繂缈婄繒缈旂俊缈︾咯缈崇抗椋滆嗚勮嬭掕樿欒滆¤ㄨ胯昏亰鑱嗚亽鑱樿仛鑱熻仮鑱ㄨ伋鑱茶伆鑱惰伖鑱借伩鑲勮倖鑲呰倹鑲撹倸鑲啇鑲儧鑳ヨ儥鑳濊儎鑳氳儢鑴夎儻鑳辫剾鑴╄劊鑴厠"], +["e440","闅嬭厗鑴捐厯鑵戣兗鑵辫叜鑵ヨ叇鑵磋唭鑶堣唺鑶鑶傝啝鑶曡啢鑶h厽鑶撹啯鑶拌喌鑶捐喐鑶借噣鑷傝喓鑷夎噸鑷戣嚈鑷樿噲鑷氳嚐鑷犺嚙鑷鸿嚮鑷捐垇鑸傝垍鑸囪垔鑸嶈垚鑸栬埄鑸埜鑸宠墍鑹欒墭鑹濊墯鑹熻墹"], +["e480","鑹㈣墾鑹壂鑸壉鑹疯壐鑹捐妽鑺掕姭鑺熻娀鑺嫛鑻h嫙鑻掕嫶鑻宠嫼鑾撹寖鑻昏嫻鑻炶寙鑻滆寜鑻欒尩鑼磋寲鑼茶尡鑽鑼硅崘鑽呰尟鑼寳鑼樿巺鑾氳帾鑾熻帰鑾栬專鑾庤巼鑾婅嵓鑾佃嵆鑽佃帬鑾夎帹鑿磋悡鑿弾鑿借悆鑿樿悑鑿佽彿钀囪彔鑿茶悕钀㈣悹鑾借惛钄嗚徎钁惇钀艰暁钂勮懛钁挱钁拏钁╄憜钀懐钁硅惖钃婅憿钂硅捒钂熻摍钃嶈捇钃氳搻钃佽搯钃栬挕钄¤摽钃磋敆钄樿敩钄熻敃钄旇摷钑钑h晿钑"], +["e540","钑佽槀钑嬭晻钖钖よ枅钖戣枈钖ㄨ暛钖旇枦钘枃钖滆暦钑捐枑钘夎柡钘忚柟钘愯棔钘濊棩钘滆椆铇婅槗铇嬭椌钘鸿槅铇㈣槡铇拌樋铏嶄箷铏旇櫉铏ц櫛铓撹殻铓╄毆铓嬭殞铓惰毌铔勮泦铓拌泬锠h毇铔旇洖铔╄洭"], +["e580","铔熻洓铔湌铚嗚湀铚铚冭浕铚戣湁铚嶈浌铚婅湸铚胯湻铚昏湧铚╄湚铦犺潫铦歌潓铦庤澊铦楄潹铦潤铦撹潱铦爡铻㈣灍铻傝灟锜嬭灲锜锜愰洊铻焺铻宠焽锜嗚灮锜煵锜犺爮锠嶈熅锜惰煼锠庤煉锠戣爾锠曡牏锠¤牨锠惰牴锠ц牷琛勮琛掕琛炶、琛琛捐琛佃〗琚佃〔琚傝琚掕琚欒ⅱ琚嶈ⅳ琚拌⒖琚辫瑁勮瑁樿瑁濊9瑜傝<瑁磋(瑁茶瑜岃瑜撹瑜炶ぅ瑜か瑗佽瑜昏ざ瑜歌瑜濊瑗"], +["e640","瑗﹁イ瑗オ瑗ゴ瑗疯ゾ瑕冭瑕婅瑕樿Α瑕╄Ζ瑕Ο瑕茶瑕借瑙瑙氳瑙濊Ё瑙磋Ц瑷冭瑷愯▽瑷涜瑷ヨǘ瑭佽瑭掕﹩瑭堣┘瑭┈瑭㈣獏瑾傝獎瑾ㄨ瑾戣瑾﹁獨瑾h珓璜嶈珎璜氳璜宠"], +["e680","璜よ璎旇珷璜㈣璜炶珱璎岃瑖璎氳璎栬瑦璎楄瑺璎抽灚璎﹁璎捐璀佽瓕璀忚瓗璀夎瓥璀涜瓪璀瓱璀璀磋璁璁岃畮璁掕畵璁栬畽璁氳昂璞佽翱璞堣睂璞庤睈璞曡雹璞备璞鸿矀璨夎矃璨婅矋璨庤矓璞艰矘鎴濊箔璨步璨茶渤璨捕璩堣硜璩よ常璩氳辰璩鸿郴璐勮磪璐婅磭璐忚磵璐愰綆璐撹硩璐旇礀璧ц淡璧辫党瓒佽稒璺傝毒瓒鸿窂璺氳窎璺岃窙璺嬭藩璺窡璺h芳韪堣笁璺胯笣韪炶笎韪熻箓韪佃赴韪磋箠"], +["e740","韫囪箟韫岃箰韫堣箼韫よ範韪梗韫曡苟韫茶辜韬佽簢韬呰簞韬嬭簥韬撹簯韬旇簷韬骸韬喊杌嗚罕韬捐粎杌堣粙杌涜唬杌艰换杌痪杓婅紖杓曡紥杓欒紦杓滆紵杓涜紝杓﹁汲杓昏脊杞呰絺杓捐綄杞夎絾杞庤綏杞"], +["e780","杞㈣剑杞よ緶杈熻荆杈警杈疯繗杩ヨ竣杩刊閭囪看閫呰抗杩洪戦曢¢嶉為栭嬮ч堕甸硅扛閬忛亹閬戦亽閫庨亯閫鹃仏閬橀仦閬ㄩ伅閬堕毃閬查倐閬介倎閭閭婇倝閭忛偍閭偙閭甸儮閮ゆ増閮涢剛閯掗剻閯查劙閰婇厲閰橀叄閰ラ叐閰抽叢閱嬮唹閱傞啟閱啹閱喌閱撮喓閲閲侀噳閲嬮噽閲栭嚐閲¢嚊閲奸嚨閲堕垶閲块垟閳垥閳戦墳閴楅墔閴夐墹閴堥姇閳块墜閴愰姕閵栭姄閵涢墯閶忛姽閵烽嫨閷忛嫼閸勯尞"], +["e840","閷欓將閷氶專閷洪尩閷婚崪閸犻嵓閸崠閹伴幀閹帞閹归彇閺楅彣閺ラ彉閺冮彎閺愰張閺ら悮閻旈悡閻冮悋閻愰惗閻惖閻¢惡閼侀憭閼勯憶閼犻憿閼為應閳╅懓閼甸懛閼介憵閼奸懢閽侀懣闁傞枃闁婇枖闁栭枠闁"], +["e880","闁犻枿闁ч柇闁奸柣闁归柧闂婃慷闂冮棈闂岄棔闂旈棖闂滈棥闂ラ棦闃¢槰闃槸闄傞檶闄忛檵闄烽櫆闄為櫇闄熼櫐闄查櫖闅嶉殬闅曢殫闅毀闅遍毑闅伴毚闅堕毟闅归泿闆嬮泬闆嶈闆滈湇闆曢浌闇勯渾闇堥湏闇庨湋闇忛湒闇欓湦闇湴闇归溄闇鹃潉闈嗛潏闈傞潐闈滈潬闈ら潶闈ㄥ嫆闈澅闈归瀰闈奸瀬闈洪瀱闉嬮瀼闉愰灉闉ㄩ灕闉i灣闉撮焹闊嗛焾闊嬮煖闊綇闊茬珶闊堕煹闋忛爩闋搁牑闋¢牱闋介椤忛椤’椤"], +["e940","椤遍〈椤抽ⅹ棰⒈棰堕椋冮椋╅+椁冮椁掗椁橀ぁ椁濋椁ら椁ぎ椁介ぞ楗傞楗呴楗嬮楗掗楗曢棣橀Ε棣Ξ棣奸椐涢椐橀椐М椐遍Р椐婚Ц楱侀◤楱呴Б楱欓ǐ楱烽﹨椹傞﹢椹"], +["e980","楱鹃⿻椹嶉椹楅椹㈤━椹ら┅椹┆楠楠奸珋楂忛珣楂撻珨楂為珶楂㈤楂﹂楂楂撮楂烽楝嗛瑯楝氶瑹楝㈤楝ラ楝ㄩ楝楝榄勯瓋榄忛瓖榄庨瓚榄橀楫撻畠楫戦畺楫楅疅楫犻楫撮瘈榀婇榀嗛瘡榀戦瘨榀i榀ら瘮榀¢昂榀查榀伴皶榘旈皦榘撻皩榘嗛皥榘掗皧榘勯爱榘涢哎榘ら啊榘伴眹榘查眴榘鹃睔楸犻抱楸堕备槌ч超槌伴磯榇堥倡榇冮磫榇处槎矗榇熼祫榇曢磼榈侀纯榇鹃祮榈"], +["ea40","榈濋禐榈ら祽榈愰禉榈查秹槎囬东榈岛槎氶钉槎╅恫榉勯穪槎婚陡槎洪穯榉忛穫榉欓窊榉搁乏榉矾榉介笟楦涢笧楣甸构楣介簛楹堥簨楹岄簰楹曢簯楹濋亥楹╅焊楹涵闈¢粚榛庨粡榛愰粩榛滈粸榛濋粻榛ラ花榛"], +["ea80","榛撮欢榛烽还榛婚患榛介紘榧堢毞榧曢肌榧季榻婇綊榻旈剑榻熼綘榻¢溅榻ч浆榻椒榻查蕉榫曢緶榫犲牤妲囬仚鐟ゅ嚋鐔"], +["ed40","绾婅閸堥妶钃滀繅鐐绘槺妫堥嫻鏇诲絽涓ㄤ弧浠间紑浼冧脊浣栦緬渚婁練渚斾繊鍋鍊靠鍊炲亞鍋板亗鍌斿兇鍍樺厞鍏ゅ啙鍐惧嚞鍒曞姕鍔﹀媭鍕涘寑鍖囧尋鍗插帗鍘插彎铷庡挏鍜婂挬鍝垮枂鍧欏潵鍨焾鍩囷◤"], +["ed80","铷愬澧插濂撳濂濆ィ濡ゅ瀛栧瘈鐢瘶瀵盀宀﹀埠宄靛揣宓擄☉宓傚淡宥稿豆宸愬肌寮村涧寰峰繛鎭濇倕鎮婃優鎯曟劆鎯叉剳鎰锋劙鎲樻垞鎶︽彽鎽犳挐鎿庢晭鏄鏄曟樆鏄夋槷鏄炴槫鏅ユ櫁鏅欙⊕鏅虫殭鏆犳毑鏆挎浐鏈庯ぉ鏉︽灮妗掓焵鏍佹妫忥〒妤〝姒樻Б妯版┇姗嗘┏姗炬娅ゆ瘱姘挎睖娌嗘悲娉氭磩娑囨弹娑栨冬娣忔犯娣叉芳娓规箿娓ф讣婧挎緢婢垫康鐎呯囩ㄧ倕鐐剰鐒勭厹鐓嗙厙铷曠噥鐕剧姳"], +["ee40","鐘剧尋铷栫嵎鐜界弶鐝栫彛鐝掔悋鐝电惁鐞惄鐞憿鐠夌挓鐢佺暞鐨傜殰鐨炵殯鐨︼鐫嗗姱鐮$纭ょ『绀帮铷欙绂旓绂涚珣绔э绔疄铷濈祱绲滅斗缍犵窎绻掔絿缇★鑼佽崲鑽胯弴鑿惰憟钂磋晸钑"], +["ee80","钑钖帮铷¤爣瑁佃⊕瑷疯┕瑾ц璜燂á璜惰瓝璀胯嘲璩磋磼璧讹ǎ杌忥à铷ラ仹閮烇é閯曢劎閲氶嚄閲為嚟閲嚖閲ラ垎閳愰垔閳洪墍閳奸墡閴欓墤閳归墽閵ч壏閴搁嫥閶楅嫏閶愶ě閶曢嫚閶撻尌閷¢嫽铷ㄩ尀閶块対閷傞嵃閸楅帳閺嗛彏閺搁惐閼呴憟闁掞铷╅殱闅湷闇婚潈闈嶉潖闈戦潟椤楅ˉ铷ǐ椁эì棣為⿴楂欓珳榄甸楫忛楫婚皜榈伴但铷笝榛"], +["eeef","鈪",9,"锟郡锛囷紓"], +["f040","顎",62], +["f080","顎",124], +["f140","顐",62], +["f180","顑",124], +["f240","顓",62], +["f280","顔",124], +["f340","顖",62], +["f380","顗",124], +["f440","顙",62], +["f480","顚",124], +["f540","顜",62], +["f580","顝",124], +["f640","顟",62], +["f680","顠",124], +["f740","顢",62], +["f780","顣",124], +["f840","顥",62], +["f880","顦",124], +["f940","顨"], +["fa40","鈪",9,"鈪",9,"锟郡锛囷紓銏扁剸鈩♀埖绾婅閸堥妶钃滀繅鐐绘槺妫堥嫻鏇诲絽涓ㄤ弧浠间紑浼冧脊浣栦緬渚婁練渚斾繊鍋鍊靠鍊炲亞鍋板亗鍌斿兇鍍樺厞"], +["fa80","鍏ゅ啙鍐惧嚞鍒曞姕鍔﹀媭鍕涘寑鍖囧尋鍗插帗鍘插彎铷庡挏鍜婂挬鍝垮枂鍧欏潵鍨焾鍩囷◤铷愬澧插濂撳濂濆ィ濡ゅ瀛栧瘈鐢瘶瀵盀宀﹀埠宄靛揣宓擄☉宓傚淡宥稿豆宸愬肌寮村涧寰峰繛鎭濇倕鎮婃優鎯曟劆鎯叉剳鎰锋劙鎲樻垞鎶︽彽鎽犳挐鎿庢晭鏄鏄曟樆鏄夋槷鏄炴槫鏅ユ櫁鏅欙⊕鏅虫殭鏆犳毑鏆挎浐鏈庯ぉ鏉︽灮妗掓焵鏍佹妫忥〒妤〝姒樻Б妯版┇姗嗘┏姗炬娅ゆ瘱姘挎睖娌嗘悲娉氭磩娑囨弹"], +["fb40","娑栨冬娣忔犯娣叉芳娓规箿娓ф讣婧挎緢婢垫康鐎呯囩ㄧ倕鐐剰鐒勭厹鐓嗙厙铷曠噥鐕剧姳鐘剧尋铷栫嵎鐜界弶鐝栫彛鐝掔悋鐝电惁鐞惄鐞憿鐠夌挓鐢佺暞鐨傜殰鐨炵殯鐨︼鐫嗗姱鐮$纭ょ『绀帮铷"], +["fb80","铷氱铷涚绔戠铷滅绠烇绲堢禍缍风稜绶栫箳缃囩尽铷炶寔鑽㈣嵖鑿囪彾钁堣挻钑撹暀钑钖帮铷¤爣瑁佃⊕瑷疯┕瑾ц璜燂á璜惰瓝璀胯嘲璩磋磼璧讹ǎ杌忥à铷ラ仹閮烇é閯曢劎閲氶嚄閲為嚟閲嚖閲ラ垎閳愰垔閳洪墍閳奸墡閴欓墤閳归墽閵ч壏閴搁嫥閶楅嫏閶愶ě閶曢嫚閶撻尌閷¢嫽铷ㄩ尀閶块対閷傞嵃閸楅帳閺嗛彏閺搁惐閼呴憟闁掞铷╅殱闅湷闇婚潈闈嶉潖闈戦潟椤楅ˉ铷ǐ椁эì棣為⿴楂"], +["fc40","楂滈榄查畯楫遍榘榈伴但铷笝榛"] +] diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/utf16.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/utf16.js" new file mode 100644 index 0000000000000000000000000000000000000000..54765aeee2f11ec423c0b719cd424bed876d6402 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/utf16.js" @@ -0,0 +1,177 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js + +// == UTF16-BE codec. ========================================================== + +exports.utf16be = Utf16BECodec; +function Utf16BECodec() { +} + +Utf16BECodec.prototype.encoder = Utf16BEEncoder; +Utf16BECodec.prototype.decoder = Utf16BEDecoder; +Utf16BECodec.prototype.bomAware = true; + + +// -- Encoding + +function Utf16BEEncoder() { +} + +Utf16BEEncoder.prototype.write = function(str) { + var buf = Buffer.from(str, 'ucs2'); + for (var i = 0; i < buf.length; i += 2) { + var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp; + } + return buf; +} + +Utf16BEEncoder.prototype.end = function() { +} + + +// -- Decoding + +function Utf16BEDecoder() { + this.overflowByte = -1; +} + +Utf16BEDecoder.prototype.write = function(buf) { + if (buf.length == 0) + return ''; + + var buf2 = Buffer.alloc(buf.length + 1), + i = 0, j = 0; + + if (this.overflowByte !== -1) { + buf2[0] = buf[0]; + buf2[1] = this.overflowByte; + i = 1; j = 2; + } + + for (; i < buf.length-1; i += 2, j+= 2) { + buf2[j] = buf[i+1]; + buf2[j+1] = buf[i]; + } + + this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1; + + return buf2.slice(0, j).toString('ucs2'); +} + +Utf16BEDecoder.prototype.end = function() { +} + + +// == UTF-16 codec ============================================================= +// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic. +// Defaults to UTF-16LE, as it's prevalent and default in Node. +// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le +// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'}); + +// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false). + +exports.utf16 = Utf16Codec; +function Utf16Codec(codecOptions, iconv) { + this.iconv = iconv; +} + +Utf16Codec.prototype.encoder = Utf16Encoder; +Utf16Codec.prototype.decoder = Utf16Decoder; + + +// -- Encoding (pass-through) + +function Utf16Encoder(options, codec) { + options = options || {}; + if (options.addBOM === undefined) + options.addBOM = true; + this.encoder = codec.iconv.getEncoder('utf-16le', options); +} + +Utf16Encoder.prototype.write = function(str) { + return this.encoder.write(str); +} + +Utf16Encoder.prototype.end = function() { + return this.encoder.end(); +} + + +// -- Decoding + +function Utf16Decoder(options, codec) { + this.decoder = null; + this.initialBytes = []; + this.initialBytesLen = 0; + + this.options = options || {}; + this.iconv = codec.iconv; +} + +Utf16Decoder.prototype.write = function(buf) { + if (!this.decoder) { + // Codec is not chosen yet. Accumulate initial bytes. + this.initialBytes.push(buf); + this.initialBytesLen += buf.length; + + if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below) + return ''; + + // We have enough bytes -> detect endianness. + var buf = Buffer.concat(this.initialBytes), + encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + this.initialBytes.length = this.initialBytesLen = 0; + } + + return this.decoder.write(buf); +} + +Utf16Decoder.prototype.end = function() { + if (!this.decoder) { + var buf = Buffer.concat(this.initialBytes), + encoding = detectEncoding(buf, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + + var res = this.decoder.write(buf), + trail = this.decoder.end(); + + return trail ? (res + trail) : res; + } + return this.decoder.end(); +} + +function detectEncoding(buf, defaultEncoding) { + var enc = defaultEncoding || 'utf-16le'; + + if (buf.length >= 2) { + // Check BOM. + if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM + enc = 'utf-16be'; + else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM + enc = 'utf-16le'; + else { + // No BOM found. Try to deduce encoding from initial content. + // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon. + // So, we count ASCII as if it was LE or BE, and decide from that. + var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions + _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even. + + for (var i = 0; i < _len; i += 2) { + if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++; + if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++; + } + + if (asciiCharsBE > asciiCharsLE) + enc = 'utf-16be'; + else if (asciiCharsBE < asciiCharsLE) + enc = 'utf-16le'; + } + } + + return enc; +} + + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/utf7.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/utf7.js" new file mode 100644 index 0000000000000000000000000000000000000000..b7631c23a801b0275c1f12a9d1a8fe00d8f51f0c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/encodings/utf7.js" @@ -0,0 +1,290 @@ +"use strict"; +var Buffer = require("safer-buffer").Buffer; + +// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152 +// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3 + +exports.utf7 = Utf7Codec; +exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7 +function Utf7Codec(codecOptions, iconv) { + this.iconv = iconv; +}; + +Utf7Codec.prototype.encoder = Utf7Encoder; +Utf7Codec.prototype.decoder = Utf7Decoder; +Utf7Codec.prototype.bomAware = true; + + +// -- Encoding + +var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; + +function Utf7Encoder(options, codec) { + this.iconv = codec.iconv; +} + +Utf7Encoder.prototype.write = function(str) { + // Naive implementation. + // Non-direct chars are encoded as "+-"; single "+" char is encoded as "+-". + return Buffer.from(str.replace(nonDirectChars, function(chunk) { + return "+" + (chunk === '+' ? '' : + this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) + + "-"; + }.bind(this))); +} + +Utf7Encoder.prototype.end = function() { +} + + +// -- Decoding + +function Utf7Decoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ''; +} + +var base64Regex = /[A-Za-z0-9\/+]/; +var base64Chars = []; +for (var i = 0; i < 256; i++) + base64Chars[i] = base64Regex.test(String.fromCharCode(i)); + +var plusChar = '+'.charCodeAt(0), + minusChar = '-'.charCodeAt(0), + andChar = '&'.charCodeAt(0); + +Utf7Decoder.prototype.write = function(buf) { + var res = "", lastI = 0, + inBase64 = this.inBase64, + base64Accum = this.base64Accum; + + // The decoder is more involved as we must handle chunks in stream. + + for (var i = 0; i < buf.length; i++) { + if (!inBase64) { // We're in direct mode. + // Write direct chars until '+' + if (buf[i] == plusChar) { + res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars. + lastI = i+1; + inBase64 = true; + } + } else { // We decode base64. + if (!base64Chars[buf[i]]) { // Base64 ended. + if (i == lastI && buf[i] == minusChar) {// "+-" -> "+" + res += "+"; + } else { + var b64str = base64Accum + buf.slice(lastI, i).toString(); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + if (buf[i] != minusChar) // Minus is absorbed after base64. + i--; + + lastI = i+1; + inBase64 = false; + base64Accum = ''; + } + } + } + + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars. + } else { + var b64str = base64Accum + buf.slice(lastI).toString(); + + var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars. + base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. + b64str = b64str.slice(0, canBeDecoded); + + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + + return res; +} + +Utf7Decoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be"); + + this.inBase64 = false; + this.base64Accum = ''; + return res; +} + + +// UTF-7-IMAP codec. +// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3) +// Differences: +// * Base64 part is started by "&" instead of "+" +// * Direct characters are 0x20-0x7E, except "&" (0x26) +// * In Base64, "," is used instead of "/" +// * Base64 must not be used to represent direct characters. +// * No implicit shift back from Base64 (should always end with '-') +// * String must end in non-shifted position. +// * "-&" while in base64 is not allowed. + + +exports.utf7imap = Utf7IMAPCodec; +function Utf7IMAPCodec(codecOptions, iconv) { + this.iconv = iconv; +}; + +Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; +Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; +Utf7IMAPCodec.prototype.bomAware = true; + + +// -- Encoding + +function Utf7IMAPEncoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = Buffer.alloc(6); + this.base64AccumIdx = 0; +} + +Utf7IMAPEncoder.prototype.write = function(str) { + var inBase64 = this.inBase64, + base64Accum = this.base64Accum, + base64AccumIdx = this.base64AccumIdx, + buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0; + + for (var i = 0; i < str.length; i++) { + var uChar = str.charCodeAt(i); + if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'. + if (inBase64) { + if (base64AccumIdx > 0) { + bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx); + base64AccumIdx = 0; + } + + buf[bufIdx++] = minusChar; // Write '-', then go to direct mode. + inBase64 = false; + } + + if (!inBase64) { + buf[bufIdx++] = uChar; // Write direct character + + if (uChar === andChar) // Ampersand -> '&-' + buf[bufIdx++] = minusChar; + } + + } else { // Non-direct character + if (!inBase64) { + buf[bufIdx++] = andChar; // Write '&', then go to base64 mode. + inBase64 = true; + } + if (inBase64) { + base64Accum[base64AccumIdx++] = uChar >> 8; + base64Accum[base64AccumIdx++] = uChar & 0xFF; + + if (base64AccumIdx == base64Accum.length) { + bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx); + base64AccumIdx = 0; + } + } + } + } + + this.inBase64 = inBase64; + this.base64AccumIdx = base64AccumIdx; + + return buf.slice(0, bufIdx); +} + +Utf7IMAPEncoder.prototype.end = function() { + var buf = Buffer.alloc(10), bufIdx = 0; + if (this.inBase64) { + if (this.base64AccumIdx > 0) { + bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx); + this.base64AccumIdx = 0; + } + + buf[bufIdx++] = minusChar; // Write '-', then go to direct mode. + this.inBase64 = false; + } + + return buf.slice(0, bufIdx); +} + + +// -- Decoding + +function Utf7IMAPDecoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ''; +} + +var base64IMAPChars = base64Chars.slice(); +base64IMAPChars[','.charCodeAt(0)] = true; + +Utf7IMAPDecoder.prototype.write = function(buf) { + var res = "", lastI = 0, + inBase64 = this.inBase64, + base64Accum = this.base64Accum; + + // The decoder is more involved as we must handle chunks in stream. + // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end). + + for (var i = 0; i < buf.length; i++) { + if (!inBase64) { // We're in direct mode. + // Write direct chars until '&' + if (buf[i] == andChar) { + res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars. + lastI = i+1; + inBase64 = true; + } + } else { // We decode base64. + if (!base64IMAPChars[buf[i]]) { // Base64 ended. + if (i == lastI && buf[i] == minusChar) { // "&-" -> "&" + res += "&"; + } else { + var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/'); + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + if (buf[i] != minusChar) // Minus may be absorbed after base64. + i--; + + lastI = i+1; + inBase64 = false; + base64Accum = ''; + } + } + } + + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars. + } else { + var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/'); + + var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars. + base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future. + b64str = b64str.slice(0, canBeDecoded); + + res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be"); + } + + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + + return res; +} + +Utf7IMAPDecoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) + res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be"); + + this.inBase64 = false; + this.base64Accum = ''; + return res; +} + + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/bom-handling.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/bom-handling.js" new file mode 100644 index 0000000000000000000000000000000000000000..1050872385c7f96b4f54d50ebc873b1031e2528c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/bom-handling.js" @@ -0,0 +1,52 @@ +"use strict"; + +var BOMChar = '\uFEFF'; + +exports.PrependBOM = PrependBOMWrapper +function PrependBOMWrapper(encoder, options) { + this.encoder = encoder; + this.addBOM = true; +} + +PrependBOMWrapper.prototype.write = function(str) { + if (this.addBOM) { + str = BOMChar + str; + this.addBOM = false; + } + + return this.encoder.write(str); +} + +PrependBOMWrapper.prototype.end = function() { + return this.encoder.end(); +} + + +//------------------------------------------------------------------------------ + +exports.StripBOM = StripBOMWrapper; +function StripBOMWrapper(decoder, options) { + this.decoder = decoder; + this.pass = false; + this.options = options || {}; +} + +StripBOMWrapper.prototype.write = function(buf) { + var res = this.decoder.write(buf); + if (this.pass || !res) + return res; + + if (res[0] === BOMChar) { + res = res.slice(1); + if (typeof this.options.stripBOM === 'function') + this.options.stripBOM(); + } + + this.pass = true; + return res; +} + +StripBOMWrapper.prototype.end = function() { + return this.decoder.end(); +} + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/extend-node.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/extend-node.js" new file mode 100644 index 0000000000000000000000000000000000000000..87f5394a4b3966eca00c9a01a2ef0b2f2f27f5c6 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/extend-node.js" @@ -0,0 +1,217 @@ +"use strict"; +var Buffer = require("buffer").Buffer; +// Note: not polyfilled with safer-buffer on a purpose, as overrides Buffer + +// == Extend Node primitives to use iconv-lite ================================= + +module.exports = function (iconv) { + var original = undefined; // Place to keep original methods. + + // Node authors rewrote Buffer internals to make it compatible with + // Uint8Array and we cannot patch key functions since then. + // Note: this does use older Buffer API on a purpose + iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array); + + iconv.extendNodeEncodings = function extendNodeEncodings() { + if (original) return; + original = {}; + + if (!iconv.supportsNodeEncodingsExtension) { + console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"); + console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility"); + return; + } + + var nodeNativeEncodings = { + 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true, + 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true, + }; + + Buffer.isNativeEncoding = function(enc) { + return enc && nodeNativeEncodings[enc.toLowerCase()]; + } + + // -- SlowBuffer ----------------------------------------------------------- + var SlowBuffer = require('buffer').SlowBuffer; + + original.SlowBufferToString = SlowBuffer.prototype.toString; + SlowBuffer.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.SlowBufferToString.call(this, encoding, start, end); + + // Otherwise, use our decoding method. + if (typeof start == 'undefined') start = 0; + if (typeof end == 'undefined') end = this.length; + return iconv.decode(this.slice(start, end), encoding); + } + + original.SlowBufferWrite = SlowBuffer.prototype.write; + SlowBuffer.prototype.write = function(string, offset, length, encoding) { + // Support both (string, offset, length, encoding) + // and the legacy (string, encoding, offset, length) + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = undefined; + } + } else { // legacy + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.SlowBufferWrite.call(this, string, offset, length, encoding); + + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError('attempt to write beyond buffer bounds'); + + // Otherwise, use our encoding method. + var buf = iconv.encode(string, encoding); + if (buf.length < length) length = buf.length; + buf.copy(this, offset, 0, length); + return length; + } + + // -- Buffer --------------------------------------------------------------- + + original.BufferIsEncoding = Buffer.isEncoding; + Buffer.isEncoding = function(encoding) { + return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding); + } + + original.BufferByteLength = Buffer.byteLength; + Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) { + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.BufferByteLength.call(this, str, encoding); + + // Slow, I know, but we don't have a better way yet. + return iconv.encode(str, encoding).length; + } + + original.BufferToString = Buffer.prototype.toString; + Buffer.prototype.toString = function(encoding, start, end) { + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.BufferToString.call(this, encoding, start, end); + + // Otherwise, use our decoding method. + if (typeof start == 'undefined') start = 0; + if (typeof end == 'undefined') end = this.length; + return iconv.decode(this.slice(start, end), encoding); + } + + original.BufferWrite = Buffer.prototype.write; + Buffer.prototype.write = function(string, offset, length, encoding) { + var _offset = offset, _length = length, _encoding = encoding; + // Support both (string, offset, length, encoding) + // and the legacy (string, encoding, offset, length) + if (isFinite(offset)) { + if (!isFinite(length)) { + encoding = length; + length = undefined; + } + } else { // legacy + var swap = encoding; + encoding = offset; + offset = length; + length = swap; + } + + encoding = String(encoding || 'utf8').toLowerCase(); + + // Use native conversion when possible + if (Buffer.isNativeEncoding(encoding)) + return original.BufferWrite.call(this, string, _offset, _length, _encoding); + + offset = +offset || 0; + var remaining = this.length - offset; + if (!length) { + length = remaining; + } else { + length = +length; + if (length > remaining) { + length = remaining; + } + } + + if (string.length > 0 && (length < 0 || offset < 0)) + throw new RangeError('attempt to write beyond buffer bounds'); + + // Otherwise, use our encoding method. + var buf = iconv.encode(string, encoding); + if (buf.length < length) length = buf.length; + buf.copy(this, offset, 0, length); + return length; + + // TODO: Set _charsWritten. + } + + + // -- Readable ------------------------------------------------------------- + if (iconv.supportsStreams) { + var Readable = require('stream').Readable; + + original.ReadableSetEncoding = Readable.prototype.setEncoding; + Readable.prototype.setEncoding = function setEncoding(enc, options) { + // Use our own decoder, it has the same interface. + // We cannot use original function as it doesn't handle BOM-s. + this._readableState.decoder = iconv.getDecoder(enc, options); + this._readableState.encoding = enc; + } + + Readable.prototype.collect = iconv._collect; + } + } + + // Remove iconv-lite Node primitive extensions. + iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() { + if (!iconv.supportsNodeEncodingsExtension) + return; + if (!original) + throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.") + + delete Buffer.isNativeEncoding; + + var SlowBuffer = require('buffer').SlowBuffer; + + SlowBuffer.prototype.toString = original.SlowBufferToString; + SlowBuffer.prototype.write = original.SlowBufferWrite; + + Buffer.isEncoding = original.BufferIsEncoding; + Buffer.byteLength = original.BufferByteLength; + Buffer.prototype.toString = original.BufferToString; + Buffer.prototype.write = original.BufferWrite; + + if (iconv.supportsStreams) { + var Readable = require('stream').Readable; + + Readable.prototype.setEncoding = original.ReadableSetEncoding; + delete Readable.prototype.collect; + } + + original = undefined; + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/index.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/index.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..0547eb346b24f470e041bdf67e15f5861e6c8d14 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/index.d.ts" @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + * REQUIREMENT: This definition is dependent on the @types/node definition. + * Install with `npm install @types/node --save-dev` + *--------------------------------------------------------------------------------------------*/ + +declare module 'iconv-lite' { + export function decode(buffer: Buffer, encoding: string, options?: Options): string; + + export function encode(content: string, encoding: string, options?: Options): Buffer; + + export function encodingExists(encoding: string): boolean; + + export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; + + export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream; +} + +export interface Options { + stripBOM?: boolean; + addBOM?: boolean; + defaultEncoding?: string; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..5391919ca2c6314bdd7c246e4d00ae1cec42c98d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/index.js" @@ -0,0 +1,153 @@ +"use strict"; + +// Some environments don't have global Buffer (e.g. React Native). +// Solution would be installing npm modules "buffer" and "stream" explicitly. +var Buffer = require("safer-buffer").Buffer; + +var bomHandling = require("./bom-handling"), + iconv = module.exports; + +// All codecs and aliases are kept here, keyed by encoding name/alias. +// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`. +iconv.encodings = null; + +// Characters emitted in case of error. +iconv.defaultCharUnicode = '锟'; +iconv.defaultCharSingleByte = '?'; + +// Public API. +iconv.encode = function encode(str, encoding, options) { + str = "" + (str || ""); // Ensure string. + + var encoder = iconv.getEncoder(encoding, options); + + var res = encoder.write(str); + var trail = encoder.end(); + + return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res; +} + +iconv.decode = function decode(buf, encoding, options) { + if (typeof buf === 'string') { + if (!iconv.skipDecodeWarning) { + console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding'); + iconv.skipDecodeWarning = true; + } + + buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer. + } + + var decoder = iconv.getDecoder(encoding, options); + + var res = decoder.write(buf); + var trail = decoder.end(); + + return trail ? (res + trail) : res; +} + +iconv.encodingExists = function encodingExists(enc) { + try { + iconv.getCodec(enc); + return true; + } catch (e) { + return false; + } +} + +// Legacy aliases to convert functions +iconv.toEncoding = iconv.encode; +iconv.fromEncoding = iconv.decode; + +// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache. +iconv._codecDataCache = {}; +iconv.getCodec = function getCodec(encoding) { + if (!iconv.encodings) + iconv.encodings = require("../encodings"); // Lazy load all encoding definitions. + + // Canonicalize encoding name: strip all non-alphanumeric chars and appended year. + var enc = iconv._canonicalizeEncoding(encoding); + + // Traverse iconv.encodings to find actual codec. + var codecOptions = {}; + while (true) { + var codec = iconv._codecDataCache[enc]; + if (codec) + return codec; + + var codecDef = iconv.encodings[enc]; + + switch (typeof codecDef) { + case "string": // Direct alias to other encoding. + enc = codecDef; + break; + + case "object": // Alias with options. Can be layered. + for (var key in codecDef) + codecOptions[key] = codecDef[key]; + + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + + enc = codecDef.type; + break; + + case "function": // Codec itself. + if (!codecOptions.encodingName) + codecOptions.encodingName = enc; + + // The codec function must load all tables and return object with .encoder and .decoder methods. + // It'll be called only once (for each different options object). + codec = new codecDef(codecOptions, iconv); + + iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later. + return codec; + + default: + throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')"); + } + } +} + +iconv._canonicalizeEncoding = function(encoding) { + // Canonicalize encoding name: strip all non-alphanumeric chars and appended year. + return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); +} + +iconv.getEncoder = function getEncoder(encoding, options) { + var codec = iconv.getCodec(encoding), + encoder = new codec.encoder(options, codec); + + if (codec.bomAware && options && options.addBOM) + encoder = new bomHandling.PrependBOM(encoder, options); + + return encoder; +} + +iconv.getDecoder = function getDecoder(encoding, options) { + var codec = iconv.getCodec(encoding), + decoder = new codec.decoder(options, codec); + + if (codec.bomAware && !(options && options.stripBOM === false)) + decoder = new bomHandling.StripBOM(decoder, options); + + return decoder; +} + + +// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json. +var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node; +if (nodeVer) { + + // Load streaming support in Node v0.10+ + var nodeVerArr = nodeVer.split(".").map(Number); + if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) { + require("./streams")(iconv); + } + + // Load Node primitive extensions. + require("./extend-node")(iconv); +} + +if ("膧" != "\u0100") { + console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info."); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/streams.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/streams.js" new file mode 100644 index 0000000000000000000000000000000000000000..4409552958edca1b2eb6b30742759ddf1bb5f3c8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/lib/streams.js" @@ -0,0 +1,121 @@ +"use strict"; + +var Buffer = require("buffer").Buffer, + Transform = require("stream").Transform; + + +// == Exports ================================================================== +module.exports = function(iconv) { + + // Additional Public API. + iconv.encodeStream = function encodeStream(encoding, options) { + return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options); + } + + iconv.decodeStream = function decodeStream(encoding, options) { + return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options); + } + + iconv.supportsStreams = true; + + + // Not published yet. + iconv.IconvLiteEncoderStream = IconvLiteEncoderStream; + iconv.IconvLiteDecoderStream = IconvLiteDecoderStream; + iconv._collect = IconvLiteDecoderStream.prototype.collect; +}; + + +// == Encoder stream ======================================================= +function IconvLiteEncoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.decodeStrings = false; // We accept only strings, so we don't need to decode them. + Transform.call(this, options); +} + +IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteEncoderStream } +}); + +IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { + if (typeof chunk != 'string') + return done(new Error("Iconv encoding stream needs strings as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteEncoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteEncoderStream.prototype.collect = function(cb) { + var chunks = []; + this.on('error', cb); + this.on('data', function(chunk) { chunks.push(chunk); }); + this.on('end', function() { + cb(null, Buffer.concat(chunks)); + }); + return this; +} + + +// == Decoder stream ======================================================= +function IconvLiteDecoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.encoding = this.encoding = 'utf8'; // We output strings. + Transform.call(this, options); +} + +IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteDecoderStream } +}); + +IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { + if (!Buffer.isBuffer(chunk)) + return done(new Error("Iconv decoding stream needs buffers as its input.")); + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res, this.encoding); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteDecoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res, this.encoding); + done(); + } + catch (e) { + done(e); + } +} + +IconvLiteDecoderStream.prototype.collect = function(cb) { + var res = ''; + this.on('error', cb); + this.on('data', function(chunk) { res += chunk; }); + this.on('end', function() { + cb(null, res); + }); + return this; +} + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..56ac32947f33acafbedcec09005dc7bbf4a1d1e3 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/iconv-lite/package.json" @@ -0,0 +1,77 @@ +{ + "_from": "iconv-lite@0.4.24", + "_id": "iconv-lite@0.4.24", + "_inBundle": false, + "_integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "_location": "/iconv-lite", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "iconv-lite@0.4.24", + "name": "iconv-lite", + "escapedName": "iconv-lite", + "rawSpec": "0.4.24", + "saveSpec": null, + "fetchSpec": "0.4.24" + }, + "_requiredBy": [ + "/body-parser", + "/raw-body" + ], + "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "_shasum": "2022b4b25fbddc21d2f524974a474aafe733908b", + "_spec": "iconv-lite@0.4.24", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\body-parser", + "author": { + "name": "Alexander Shtuchkin", + "email": "ashtuchkin@gmail.com" + }, + "browser": { + "./lib/extend-node": false, + "./lib/streams": false + }, + "bugs": { + "url": "https://github.com/ashtuchkin/iconv-lite/issues" + }, + "bundleDependencies": false, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "deprecated": false, + "description": "Convert character encodings in pure javascript.", + "devDependencies": { + "async": "*", + "errto": "*", + "iconv": "*", + "istanbul": "*", + "mocha": "^3.1.0", + "request": "~2.87.0", + "semver": "*", + "unorm": "*" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/ashtuchkin/iconv-lite", + "keywords": [ + "iconv", + "convert", + "charset", + "icu" + ], + "license": "MIT", + "main": "./lib/index.js", + "name": "iconv-lite", + "repository": { + "type": "git", + "url": "git://github.com/ashtuchkin/iconv-lite.git" + }, + "scripts": { + "coverage": "istanbul cover _mocha -- --grep .", + "coverage-open": "open coverage/lcov-report/index.html", + "test": "mocha --reporter spec --grep ." + }, + "typings": "./lib/index.d.ts", + "version": "0.4.24" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..dea3013d6710ee273f49ac606a65d5211d480c88 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/LICENSE" @@ -0,0 +1,16 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..b1c56658557b8162aa9f5ba8610ed03a5e558d9d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/README.md" @@ -0,0 +1,42 @@ +Browser-friendly inheritance fully compatible with standard node.js +[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). + +This package exports standard `inherits` from node.js `util` module in +node environment, but also provides alternative browser-friendly +implementation through [browser +field](https://gist.github.com/shtylman/4339901). Alternative +implementation is a literal copy of standard one located in standalone +module to avoid requiring of `util`. It also has a shim for old +browsers with no `Object.create` support. + +While keeping you sure you are using standard `inherits` +implementation in node.js environment, it allows bundlers such as +[browserify](https://github.com/substack/node-browserify) to not +include full `util` package to your client code if all you need is +just `inherits` function. It worth, because browser shim for `util` +package is large and `inherits` is often the single function you need +from it. + +It's recommended to use this package instead of +`require('util').inherits` for any code that has chances to be used +not only in node.js but in browser too. + +## usage + +```js +var inherits = require('inherits'); +// then use exactly as the standard one +``` + +## note on version ~1.0 + +Version ~1.0 had completely different motivation and is not compatible +neither with 2.0 nor with standard node.js `inherits`. + +If you are using version ~1.0 and planning to switch to ~2.0, be +careful: + +* new version uses `super_` instead of `super` for referencing + superclass +* new version overwrites current prototype while old one preserves any + existing fields on it diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/inherits.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/inherits.js" new file mode 100644 index 0000000000000000000000000000000000000000..f71f2d93294a67ad5d9300aae07973e259f26068 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/inherits.js" @@ -0,0 +1,9 @@ +try { + var util = require('util'); + /* istanbul ignore next */ + if (typeof util.inherits !== 'function') throw ''; + module.exports = util.inherits; +} catch (e) { + /* istanbul ignore next */ + module.exports = require('./inherits_browser.js'); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/inherits_browser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/inherits_browser.js" new file mode 100644 index 0000000000000000000000000000000000000000..86bbb3dc29e4847df14de2c2b4b168e065184643 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/inherits_browser.js" @@ -0,0 +1,27 @@ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }) + } + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..5f589e788d705b9479804e9f83dbe886ae4506f2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/inherits/package.json" @@ -0,0 +1,61 @@ +{ + "_from": "inherits@2.0.4", + "_id": "inherits@2.0.4", + "_inBundle": false, + "_integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "_location": "/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inherits@2.0.4", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/http-errors" + ], + "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "_shasum": "0fa2c64f932917c3433a0ded55363aae37416b7c", + "_spec": "inherits@2.0.4", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\http-errors", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", + "devDependencies": { + "tap": "^14.2.4" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ], + "homepage": "https://github.com/isaacs/inherits#readme", + "keywords": [ + "inheritance", + "class", + "klass", + "oop", + "object-oriented", + "inherits", + "browser", + "browserify" + ], + "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, + "scripts": { + "test": "tap" + }, + "version": "2.0.4" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..f6b37b52dec6faa7f48b9d1be5da2ad9b883be2f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/LICENSE" @@ -0,0 +1,19 @@ +Copyright (C) 2011-2017 whitequark + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f57725b0fed3b74b2ed13d99c0fe8ee65ab29f3c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/README.md" @@ -0,0 +1,233 @@ +# ipaddr.js 鈥 an IPv6 and IPv4 address manipulation library [![Build Status](https://travis-ci.org/whitequark/ipaddr.js.svg)](https://travis-ci.org/whitequark/ipaddr.js) + +ipaddr.js is a small (1.9K minified and gzipped) library for manipulating +IP addresses in JavaScript environments. It runs on both CommonJS runtimes +(e.g. [nodejs]) and in a web browser. + +ipaddr.js allows you to verify and parse string representation of an IP +address, match it against a CIDR range or range list, determine if it falls +into some reserved ranges (examples include loopback and private ranges), +and convert between IPv4 and IPv4-mapped IPv6 addresses. + +[nodejs]: http://nodejs.org + +## Installation + +`npm install ipaddr.js` + +or + +`bower install ipaddr.js` + +## API + +ipaddr.js defines one object in the global scope: `ipaddr`. In CommonJS, +it is exported from the module: + +```js +var ipaddr = require('ipaddr.js'); +``` + +The API consists of several global methods and two classes: ipaddr.IPv6 and ipaddr.IPv4. + +### Global methods + +There are three global methods defined: `ipaddr.isValid`, `ipaddr.parse` and +`ipaddr.process`. All of them receive a string as a single parameter. + +The `ipaddr.isValid` method returns `true` if the address is a valid IPv4 or +IPv6 address, and `false` otherwise. It does not throw any exceptions. + +The `ipaddr.parse` method returns an object representing the IP address, +or throws an `Error` if the passed string is not a valid representation of an +IP address. + +The `ipaddr.process` method works just like the `ipaddr.parse` one, but it +automatically converts IPv4-mapped IPv6 addresses to their IPv4 counterparts +before returning. It is useful when you have a Node.js instance listening +on an IPv6 socket, and the `net.ivp6.bindv6only` sysctl parameter (or its +equivalent on non-Linux OS) is set to 0. In this case, you can accept IPv4 +connections on your IPv6-only socket, but the remote address will be mangled. +Use `ipaddr.process` method to automatically demangle it. + +### Object representation + +Parsing methods return an object which descends from `ipaddr.IPv6` or +`ipaddr.IPv4`. These objects share some properties, but most of them differ. + +#### Shared properties + +One can determine the type of address by calling `addr.kind()`. It will return +either `"ipv6"` or `"ipv4"`. + +An address can be converted back to its string representation with `addr.toString()`. +Note that this method: + * does not return the original string used to create the object (in fact, there is + no way of getting that string) + * returns a compact representation (when it is applicable) + +A `match(range, bits)` method can be used to check if the address falls into a +certain CIDR range. +Note that an address can be (obviously) matched only against an address of the same type. + +For example: + +```js +var addr = ipaddr.parse("2001:db8:1234::1"); +var range = ipaddr.parse("2001:db8::"); + +addr.match(range, 32); // => true +``` + +Alternatively, `match` can also be called as `match([range, bits])`. In this way, +it can be used together with the `parseCIDR(string)` method, which parses an IP +address together with a CIDR range. + +For example: + +```js +var addr = ipaddr.parse("2001:db8:1234::1"); + +addr.match(ipaddr.parseCIDR("2001:db8::/32")); // => true +``` + +A `range()` method returns one of predefined names for several special ranges defined +by IP protocols. The exact names (and their respective CIDR ranges) can be looked up +in the source: [IPv6 ranges] and [IPv4 ranges]. Some common ones include `"unicast"` +(the default one) and `"reserved"`. + +You can match against your own range list by using +`ipaddr.subnetMatch(address, rangeList, defaultName)` method. It can work with a mix of IPv6 or IPv4 addresses, and accepts a name-to-subnet map as the range list. For example: + +```js +var rangeList = { + documentationOnly: [ ipaddr.parse('2001:db8::'), 32 ], + tunnelProviders: [ + [ ipaddr.parse('2001:470::'), 32 ], // he.net + [ ipaddr.parse('2001:5c0::'), 32 ] // freenet6 + ] +}; +ipaddr.subnetMatch(ipaddr.parse('2001:470:8:66::1'), rangeList, 'unknown'); // => "tunnelProviders" +``` + +The addresses can be converted to their byte representation with `toByteArray()`. +(Actually, JavaScript mostly does not know about byte buffers. They are emulated with +arrays of numbers, each in range of 0..255.) + +```js +var bytes = ipaddr.parse('2a00:1450:8007::68').toByteArray(); // ipv6.google.com +bytes // => [42, 0x00, 0x14, 0x50, 0x80, 0x07, 0x00, , 0x00, 0x68 ] +``` + +The `ipaddr.IPv4` and `ipaddr.IPv6` objects have some methods defined, too. All of them +have the same interface for both protocols, and are similar to global methods. + +`ipaddr.IPvX.isValid(string)` can be used to check if the string is a valid address +for particular protocol, and `ipaddr.IPvX.parse(string)` is the error-throwing parser. + +`ipaddr.IPvX.isValid(string)` uses the same format for parsing as the POSIX `inet_ntoa` function, which accepts unusual formats like `0xc0.168.1.1` or `0x10000000`. The function `ipaddr.IPv4.isValidFourPartDecimal(string)` validates the IPv4 address and also ensures that it is written in four-part decimal format. + +[IPv6 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L186 +[IPv4 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L71 + +#### IPv6 properties + +Sometimes you will want to convert IPv6 not to a compact string representation (with +the `::` substitution); the `toNormalizedString()` method will return an address where +all zeroes are explicit. + +For example: + +```js +var addr = ipaddr.parse("2001:0db8::0001"); +addr.toString(); // => "2001:db8::1" +addr.toNormalizedString(); // => "2001:db8:0:0:0:0:0:1" +``` + +The `isIPv4MappedAddress()` method will return `true` if this address is an IPv4-mapped +one, and `toIPv4Address()` will return an IPv4 object address. + +To access the underlying binary representation of the address, use `addr.parts`. + +```js +var addr = ipaddr.parse("2001:db8:10::1234:DEAD"); +addr.parts // => [0x2001, 0xdb8, 0x10, 0, 0, 0, 0x1234, 0xdead] +``` + +A IPv6 zone index can be accessed via `addr.zoneId`: + +```js +var addr = ipaddr.parse("2001:db8::%eth0"); +addr.zoneId // => 'eth0' +``` + +#### IPv4 properties + +`toIPv4MappedAddress()` will return a corresponding IPv4-mapped IPv6 address. + +To access the underlying representation of the address, use `addr.octets`. + +```js +var addr = ipaddr.parse("192.168.1.1"); +addr.octets // => [192, 168, 1, 1] +``` + +`prefixLengthFromSubnetMask()` will return a CIDR prefix length for a valid IPv4 netmask or +null if the netmask is not valid. + +```js +ipaddr.IPv4.parse('255.255.255.240').prefixLengthFromSubnetMask() == 28 +ipaddr.IPv4.parse('255.192.164.0').prefixLengthFromSubnetMask() == null +``` + +`subnetMaskFromPrefixLength()` will return an IPv4 netmask for a valid CIDR prefix length. + +```js +ipaddr.IPv4.subnetMaskFromPrefixLength(24) == "255.255.255.0" +ipaddr.IPv4.subnetMaskFromPrefixLength(29) == "255.255.255.248" +``` + +`broadcastAddressFromCIDR()` will return the broadcast address for a given IPv4 interface and netmask in CIDR notation. +```js +ipaddr.IPv4.broadcastAddressFromCIDR("172.0.0.1/24") == "172.0.0.255" +``` +`networkAddressFromCIDR()` will return the network address for a given IPv4 interface and netmask in CIDR notation. +```js +ipaddr.IPv4.networkAddressFromCIDR("172.0.0.1/24") == "172.0.0.0" +``` + +#### Conversion + +IPv4 and IPv6 can be converted bidirectionally to and from network byte order (MSB) byte arrays. + +The `fromByteArray()` method will take an array and create an appropriate IPv4 or IPv6 object +if the input satisfies the requirements. For IPv4 it has to be an array of four 8-bit values, +while for IPv6 it has to be an array of sixteen 8-bit values. + +For example: +```js +var addr = ipaddr.fromByteArray([0x7f, 0, 0, 1]); +addr.toString(); // => "127.0.0.1" +``` + +or + +```js +var addr = ipaddr.fromByteArray([0x20, 1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]) +addr.toString(); // => "2001:db8::1" +``` + +Both objects also offer a `toByteArray()` method, which returns an array in network byte order (MSB). + +For example: +```js +var addr = ipaddr.parse("127.0.0.1"); +addr.toByteArray(); // => [0x7f, 0, 0, 1] +``` + +or + +```js +var addr = ipaddr.parse("2001:db8::1"); +addr.toByteArray(); // => [0x20, 1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] +``` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/ipaddr.min.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/ipaddr.min.js" new file mode 100644 index 0000000000000000000000000000000000000000..b54a7cc42ac48524d2de2fa43979367e09fbe385 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/ipaddr.min.js" @@ -0,0 +1 @@ +(function(){var r,t,n,e,i,o,a,s;t={},s=this,"undefined"!=typeof module&&null!==module&&module.exports?module.exports=t:s.ipaddr=t,a=function(r,t,n,e){var i,o;if(r.length!==t.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(i=0;e>0;){if((o=n-e)<0&&(o=0),r[i]>>o!=t[i]>>o)return!1;e-=n,i+=1}return!0},t.subnetMatch=function(r,t,n){var e,i,o,a,s;null==n&&(n="unicast");for(o in t)for(!(a=t[o])[0]||a[0]instanceof Array||(a=[a]),e=0,i=a.length;e=0;t=n+=-1){if(!((e=this.octets[t])in a))return null;if(o=a[e],i&&0!==o)return null;8!==o&&(i=!0),r+=o}return 32-r},r}(),n="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp("^"+n+"\\."+n+"\\."+n+"\\."+n+"$","i"),longValue:new RegExp("^"+n+"$","i")},t.IPv4.parser=function(r){var t,n,i,o,a;if(n=function(r){return"0"===r[0]&&"x"!==r[1]?parseInt(r,8):parseInt(r)},t=r.match(e.fourOctet))return function(){var r,e,o,a;for(a=[],r=0,e=(o=t.slice(1,6)).length;r4294967295||a<0)throw new Error("ipaddr: address outside defined range");return function(){var r,t;for(t=[],o=r=0;r<=24;o=r+=8)t.push(a>>o&255);return t}().reverse()}return null},t.IPv6=function(){function r(r,t){var n,e,i,o,a,s;if(16===r.length)for(this.parts=[],n=e=0;e<=14;n=e+=2)this.parts.push(r[n]<<8|r[n+1]);else{if(8!==r.length)throw new Error("ipaddr: ipv6 part count should be 8 or 16");this.parts=r}for(i=0,o=(s=this.parts).length;it&&(r=n.index,t=n[0].length);return t<0?i:i.substring(0,r)+"::"+i.substring(r+t)},r.prototype.toByteArray=function(){var r,t,n,e,i;for(r=[],t=0,n=(i=this.parts).length;t>8),r.push(255&e);return r},r.prototype.toNormalizedString=function(){var r,t,n;return r=function(){var r,n,e,i;for(i=[],r=0,n=(e=this.parts).length;r>8,255&r,n>>8,255&n])},r.prototype.prefixLengthFromSubnetMask=function(){var r,t,n,e,i,o,a;for(a={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},r=0,i=!1,t=n=7;n>=0;t=n+=-1){if(!((e=this.parts[t])in a))return null;if(o=a[e],i&&0!==o)return null;16!==o&&(i=!0),r+=o}return 128-r},r}(),i="(?:[0-9a-f]+::?)+",o={zoneIndex:new RegExp("%[0-9a-z]{1,}","i"),native:new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?(%[0-9a-z]{1,})?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+n+"\\."+n+"\\."+n+"\\."+n+"(%[0-9a-z]{1,})?$","i")},r=function(r,t){var n,e,i,a,s,p;if(r.indexOf("::")!==r.lastIndexOf("::"))return null;for((p=(r.match(o.zoneIndex)||[])[0])&&(p=p.substring(1),r=r.replace(/%.+$/,"")),n=0,e=-1;(e=r.indexOf(":",e+1))>=0;)n++;if("::"===r.substr(0,2)&&n--,"::"===r.substr(-2,2)&&n--,n>t)return null;for(s=t-n,a=":";s--;)a+="0:";return":"===(r=r.replace("::",a))[0]&&(r=r.slice(1)),":"===r[r.length-1]&&(r=r.slice(0,-1)),t=function(){var t,n,e,o;for(o=[],t=0,n=(e=r.split(":")).length;t=0&&t<=32)return e=[this.parse(n[1]),t],Object.defineProperty(e,"toString",{value:function(){return this.join("/")}}),e;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},t.IPv4.subnetMaskFromPrefixLength=function(r){var t,n,e;if((r=parseInt(r))<0||r>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(e=[0,0,0,0],n=0,t=Math.floor(r/8);n=0&&t<=128)return e=[this.parse(n[1]),t],Object.defineProperty(e,"toString",{value:function(){return this.join("/")}}),e;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},t.isValid=function(r){return t.IPv6.isValid(r)||t.IPv4.isValid(r)},t.parse=function(r){if(t.IPv6.isValid(r))return t.IPv6.parse(r);if(t.IPv4.isValid(r))return t.IPv4.parse(r);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},t.parseCIDR=function(r){try{return t.IPv6.parseCIDR(r)}catch(n){n;try{return t.IPv4.parseCIDR(r)}catch(r){throw r,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},t.fromByteArray=function(r){var n;if(4===(n=r.length))return new t.IPv4(r);if(16===n)return new t.IPv6(r);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},t.process=function(r){var t;return t=this.parse(r),"ipv6"===t.kind()&&t.isIPv4MappedAddress()?t.toIPv4Address():t}}).call(this); \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/lib/ipaddr.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/lib/ipaddr.js" new file mode 100644 index 0000000000000000000000000000000000000000..18bd93b5e6dfd2af35147a656b913b952cfc7043 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/lib/ipaddr.js" @@ -0,0 +1,673 @@ +(function() { + var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex; + + ipaddr = {}; + + root = this; + + if ((typeof module !== "undefined" && module !== null) && module.exports) { + module.exports = ipaddr; + } else { + root['ipaddr'] = ipaddr; + } + + matchCIDR = function(first, second, partSize, cidrBits) { + var part, shift; + if (first.length !== second.length) { + throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); + } + part = 0; + while (cidrBits > 0) { + shift = partSize - cidrBits; + if (shift < 0) { + shift = 0; + } + if (first[part] >> shift !== second[part] >> shift) { + return false; + } + cidrBits -= partSize; + part += 1; + } + return true; + }; + + ipaddr.subnetMatch = function(address, rangeList, defaultName) { + var k, len, rangeName, rangeSubnets, subnet; + if (defaultName == null) { + defaultName = 'unicast'; + } + for (rangeName in rangeList) { + rangeSubnets = rangeList[rangeName]; + if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) { + rangeSubnets = [rangeSubnets]; + } + for (k = 0, len = rangeSubnets.length; k < len; k++) { + subnet = rangeSubnets[k]; + if (address.kind() === subnet[0].kind()) { + if (address.match.apply(address, subnet)) { + return rangeName; + } + } + } + } + return defaultName; + }; + + ipaddr.IPv4 = (function() { + function IPv4(octets) { + var k, len, octet; + if (octets.length !== 4) { + throw new Error("ipaddr: ipv4 octet count should be 4"); + } + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!((0 <= octet && octet <= 255))) { + throw new Error("ipaddr: ipv4 octet should fit in 8 bits"); + } + } + this.octets = octets; + } + + IPv4.prototype.kind = function() { + return 'ipv4'; + }; + + IPv4.prototype.toString = function() { + return this.octets.join("."); + }; + + IPv4.prototype.toNormalizedString = function() { + return this.toString(); + }; + + IPv4.prototype.toByteArray = function() { + return this.octets.slice(0); + }; + + IPv4.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== 'ipv4') { + throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); + } + return matchCIDR(this.octets, other.octets, 8, cidrRange); + }; + + IPv4.prototype.SpecialRanges = { + unspecified: [[new IPv4([0, 0, 0, 0]), 8]], + broadcast: [[new IPv4([255, 255, 255, 255]), 32]], + multicast: [[new IPv4([224, 0, 0, 0]), 4]], + linkLocal: [[new IPv4([169, 254, 0, 0]), 16]], + loopback: [[new IPv4([127, 0, 0, 0]), 8]], + carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]], + "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]], + reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]] + }; + + IPv4.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + + IPv4.prototype.toIPv4MappedAddress = function() { + return ipaddr.IPv6.parse("::ffff:" + (this.toString())); + }; + + IPv4.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, octet, stop, zeros, zerotable; + zerotable = { + 0: 8, + 128: 7, + 192: 6, + 224: 5, + 240: 4, + 248: 3, + 252: 2, + 254: 1, + 255: 0 + }; + cidr = 0; + stop = false; + for (i = k = 3; k >= 0; i = k += -1) { + octet = this.octets[i]; + if (octet in zerotable) { + zeros = zerotable[octet]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 8) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 32 - cidr; + }; + + return IPv4; + + })(); + + ipv4Part = "(0?\\d+|0x[a-f0-9]+)"; + + ipv4Regexes = { + fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", 'i'), + longValue: new RegExp("^" + ipv4Part + "$", 'i') + }; + + ipaddr.IPv4.parser = function(string) { + var match, parseIntAuto, part, shift, value; + parseIntAuto = function(string) { + if (string[0] === "0" && string[1] !== "x") { + return parseInt(string, 8); + } else { + return parseInt(string); + } + }; + if (match = string.match(ipv4Regexes.fourOctet)) { + return (function() { + var k, len, ref, results; + ref = match.slice(1, 6); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseIntAuto(part)); + } + return results; + })(); + } else if (match = string.match(ipv4Regexes.longValue)) { + value = parseIntAuto(match[1]); + if (value > 0xffffffff || value < 0) { + throw new Error("ipaddr: address outside defined range"); + } + return ((function() { + var k, results; + results = []; + for (shift = k = 0; k <= 24; shift = k += 8) { + results.push((value >> shift) & 0xff); + } + return results; + })()).reverse(); + } else { + return null; + } + }; + + ipaddr.IPv6 = (function() { + function IPv6(parts, zoneId) { + var i, k, l, len, part, ref; + if (parts.length === 16) { + this.parts = []; + for (i = k = 0; k <= 14; i = k += 2) { + this.parts.push((parts[i] << 8) | parts[i + 1]); + } + } else if (parts.length === 8) { + this.parts = parts; + } else { + throw new Error("ipaddr: ipv6 part count should be 8 or 16"); + } + ref = this.parts; + for (l = 0, len = ref.length; l < len; l++) { + part = ref[l]; + if (!((0 <= part && part <= 0xffff))) { + throw new Error("ipaddr: ipv6 part should fit in 16 bits"); + } + } + if (zoneId) { + this.zoneId = zoneId; + } + } + + IPv6.prototype.kind = function() { + return 'ipv6'; + }; + + IPv6.prototype.toString = function() { + return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, '::'); + }; + + IPv6.prototype.toRFC5952String = function() { + var bestMatchIndex, bestMatchLength, match, regex, string; + regex = /((^|:)(0(:|$)){2,})/g; + string = this.toNormalizedString(); + bestMatchIndex = 0; + bestMatchLength = -1; + while ((match = regex.exec(string))) { + if (match[0].length > bestMatchLength) { + bestMatchIndex = match.index; + bestMatchLength = match[0].length; + } + } + if (bestMatchLength < 0) { + return string; + } + return string.substring(0, bestMatchIndex) + '::' + string.substring(bestMatchIndex + bestMatchLength); + }; + + IPv6.prototype.toByteArray = function() { + var bytes, k, len, part, ref; + bytes = []; + ref = this.parts; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + bytes.push(part >> 8); + bytes.push(part & 0xff); + } + return bytes; + }; + + IPv6.prototype.toNormalizedString = function() { + var addr, part, suffix; + addr = ((function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16)); + } + return results; + }).call(this)).join(":"); + suffix = ''; + if (this.zoneId) { + suffix = '%' + this.zoneId; + } + return addr + suffix; + }; + + IPv6.prototype.toFixedLengthString = function() { + var addr, part, suffix; + addr = ((function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16).padStart(4, '0')); + } + return results; + }).call(this)).join(":"); + suffix = ''; + if (this.zoneId) { + suffix = '%' + this.zoneId; + } + return addr + suffix; + }; + + IPv6.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== 'ipv6') { + throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); + } + return matchCIDR(this.parts, other.parts, 16, cidrRange); + }; + + IPv6.prototype.SpecialRanges = { + unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128], + linkLocal: [new IPv6([0xfe80, 0, 0, 0, 0, 0, 0, 0]), 10], + multicast: [new IPv6([0xff00, 0, 0, 0, 0, 0, 0, 0]), 8], + loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128], + uniqueLocal: [new IPv6([0xfc00, 0, 0, 0, 0, 0, 0, 0]), 7], + ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 0xffff, 0, 0]), 96], + rfc6145: [new IPv6([0, 0, 0, 0, 0xffff, 0, 0, 0]), 96], + rfc6052: [new IPv6([0x64, 0xff9b, 0, 0, 0, 0, 0, 0]), 96], + '6to4': [new IPv6([0x2002, 0, 0, 0, 0, 0, 0, 0]), 16], + teredo: [new IPv6([0x2001, 0, 0, 0, 0, 0, 0, 0]), 32], + reserved: [[new IPv6([0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]), 32]] + }; + + IPv6.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + + IPv6.prototype.isIPv4MappedAddress = function() { + return this.range() === 'ipv4Mapped'; + }; + + IPv6.prototype.toIPv4Address = function() { + var high, low, ref; + if (!this.isIPv4MappedAddress()) { + throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); + } + ref = this.parts.slice(-2), high = ref[0], low = ref[1]; + return new ipaddr.IPv4([high >> 8, high & 0xff, low >> 8, low & 0xff]); + }; + + IPv6.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, part, stop, zeros, zerotable; + zerotable = { + 0: 16, + 32768: 15, + 49152: 14, + 57344: 13, + 61440: 12, + 63488: 11, + 64512: 10, + 65024: 9, + 65280: 8, + 65408: 7, + 65472: 6, + 65504: 5, + 65520: 4, + 65528: 3, + 65532: 2, + 65534: 1, + 65535: 0 + }; + cidr = 0; + stop = false; + for (i = k = 7; k >= 0; i = k += -1) { + part = this.parts[i]; + if (part in zerotable) { + zeros = zerotable[part]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 16) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 128 - cidr; + }; + + return IPv6; + + })(); + + ipv6Part = "(?:[0-9a-f]+::?)+"; + + zoneIndex = "%[0-9a-z]{1,}"; + + ipv6Regexes = { + zoneIndex: new RegExp(zoneIndex, 'i'), + "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", 'i'), + transitional: new RegExp(("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)") + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), 'i') + }; + + expandIPv6 = function(string, parts) { + var colonCount, lastColon, part, replacement, replacementCount, zoneId; + if (string.indexOf('::') !== string.lastIndexOf('::')) { + return null; + } + zoneId = (string.match(ipv6Regexes['zoneIndex']) || [])[0]; + if (zoneId) { + zoneId = zoneId.substring(1); + string = string.replace(/%.+$/, ''); + } + colonCount = 0; + lastColon = -1; + while ((lastColon = string.indexOf(':', lastColon + 1)) >= 0) { + colonCount++; + } + if (string.substr(0, 2) === '::') { + colonCount--; + } + if (string.substr(-2, 2) === '::') { + colonCount--; + } + if (colonCount > parts) { + return null; + } + replacementCount = parts - colonCount; + replacement = ':'; + while (replacementCount--) { + replacement += '0:'; + } + string = string.replace('::', replacement); + if (string[0] === ':') { + string = string.slice(1); + } + if (string[string.length - 1] === ':') { + string = string.slice(0, -1); + } + parts = (function() { + var k, len, ref, results; + ref = string.split(":"); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseInt(part, 16)); + } + return results; + })(); + return { + parts: parts, + zoneId: zoneId + }; + }; + + ipaddr.IPv6.parser = function(string) { + var addr, k, len, match, octet, octets, zoneId; + if (ipv6Regexes['native'].test(string)) { + return expandIPv6(string, 8); + } else if (match = string.match(ipv6Regexes['transitional'])) { + zoneId = match[6] || ''; + addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6); + if (addr.parts) { + octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])]; + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!((0 <= octet && octet <= 255))) { + return null; + } + } + addr.parts.push(octets[0] << 8 | octets[1]); + addr.parts.push(octets[2] << 8 | octets[3]); + return { + parts: addr.parts, + zoneId: addr.zoneId + }; + } + } + return null; + }; + + ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) { + return this.parser(string) !== null; + }; + + ipaddr.IPv4.isValid = function(string) { + var e; + try { + new this(this.parser(string)); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + + ipaddr.IPv4.isValidFourPartDecimal = function(string) { + if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) { + return true; + } else { + return false; + } + }; + + ipaddr.IPv6.isValid = function(string) { + var addr, e; + if (typeof string === "string" && string.indexOf(":") === -1) { + return false; + } + try { + addr = this.parser(string); + new this(addr.parts, addr.zoneId); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + + ipaddr.IPv4.parse = function(string) { + var parts; + parts = this.parser(string); + if (parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(parts); + }; + + ipaddr.IPv6.parse = function(string) { + var addr; + addr = this.parser(string); + if (addr.parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(addr.parts, addr.zoneId); + }; + + ipaddr.IPv4.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 32) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, 'toString', { + value: function() { + return this.join('/'); + } + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range"); + }; + + ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) { + var filledOctetCount, j, octets; + prefix = parseInt(prefix); + if (prefix < 0 || prefix > 32) { + throw new Error('ipaddr: invalid IPv4 prefix length'); + } + octets = [0, 0, 0, 0]; + j = 0; + filledOctetCount = Math.floor(prefix / 8); + while (j < filledOctetCount) { + octets[j] = 255; + j++; + } + if (filledOctetCount < 4) { + octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - (prefix % 8); + } + return new this(octets); + }; + + ipaddr.IPv4.broadcastAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error('ipaddr: the address does not have IPv4 CIDR format'); + } + }; + + ipaddr.IPv4.networkAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10)); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error('ipaddr: the address does not have IPv4 CIDR format'); + } + }; + + ipaddr.IPv6.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 128) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, 'toString', { + value: function() { + return this.join('/'); + } + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range"); + }; + + ipaddr.isValid = function(string) { + return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string); + }; + + ipaddr.parse = function(string) { + if (ipaddr.IPv6.isValid(string)) { + return ipaddr.IPv6.parse(string); + } else if (ipaddr.IPv4.isValid(string)) { + return ipaddr.IPv4.parse(string); + } else { + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format"); + } + }; + + ipaddr.parseCIDR = function(string) { + var e; + try { + return ipaddr.IPv6.parseCIDR(string); + } catch (error1) { + e = error1; + try { + return ipaddr.IPv4.parseCIDR(string); + } catch (error1) { + e = error1; + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format"); + } + } + }; + + ipaddr.fromByteArray = function(bytes) { + var length; + length = bytes.length; + if (length === 4) { + return new ipaddr.IPv4(bytes); + } else if (length === 16) { + return new ipaddr.IPv6(bytes); + } else { + throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address"); + } + }; + + ipaddr.process = function(string) { + var addr; + addr = this.parse(string); + if (addr.kind() === 'ipv6' && addr.isIPv4MappedAddress()) { + return addr.toIPv4Address(); + } else { + return addr; + } + }; + +}).call(this); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/lib/ipaddr.js.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/lib/ipaddr.js.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..52174b6b6b28411c03f230e779c6f1edf93f9423 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/lib/ipaddr.js.d.ts" @@ -0,0 +1,68 @@ +declare module "ipaddr.js" { + type IPv4Range = 'unicast' | 'unspecified' | 'broadcast' | 'multicast' | 'linkLocal' | 'loopback' | 'carrierGradeNat' | 'private' | 'reserved'; + type IPv6Range = 'unicast' | 'unspecified' | 'linkLocal' | 'multicast' | 'loopback' | 'uniqueLocal' | 'ipv4Mapped' | 'rfc6145' | 'rfc6052' | '6to4' | 'teredo' | 'reserved'; + + interface RangeList { + [name: string]: [T, number] | [T, number][]; + } + + // Common methods/properties for IPv4 and IPv6 classes. + class IP { + prefixLengthFromSubnetMask(): number | null; + toByteArray(): number[]; + toNormalizedString(): string; + toString(): string; + } + + namespace Address { + export function isValid(addr: string): boolean; + export function fromByteArray(bytes: number[]): IPv4 | IPv6; + export function parse(addr: string): IPv4 | IPv6; + export function parseCIDR(mask: string): [IPv4 | IPv6, number]; + export function process(addr: string): IPv4 | IPv6; + export function subnetMatch(addr: IPv4, rangeList: RangeList, defaultName?: string): string; + export function subnetMatch(addr: IPv6, rangeList: RangeList, defaultName?: string): string; + + export class IPv4 extends IP { + static broadcastAddressFromCIDR(addr: string): IPv4; + static isIPv4(addr: string): boolean; + static isValidFourPartDecimal(addr: string): boolean; + static isValid(addr: string): boolean; + static networkAddressFromCIDR(addr: string): IPv4; + static parse(addr: string): IPv4; + static parseCIDR(addr: string): [IPv4, number]; + static subnetMaskFromPrefixLength(prefix: number): IPv4; + constructor(octets: number[]); + octets: number[] + + kind(): 'ipv4'; + match(addr: IPv4, bits: number): boolean; + match(mask: [IPv4, number]): boolean; + range(): IPv4Range; + subnetMatch(rangeList: RangeList, defaultName?: string): string; + toIPv4MappedAddress(): IPv6; + } + + export class IPv6 extends IP { + static broadcastAddressFromCIDR(addr: string): IPv6; + static isIPv6(addr: string): boolean; + static isValid(addr: string): boolean; + static parse(addr: string): IPv6; + static parseCIDR(addr: string): [IPv6, number]; + static subnetMaskFromPrefixLength(prefix: number): IPv6; + constructor(parts: number[]); + parts: number[] + zoneId?: string + + isIPv4MappedAddress(): boolean; + kind(): 'ipv6'; + match(addr: IPv6, bits: number): boolean; + match(mask: [IPv6, number]): boolean; + range(): IPv6Range; + subnetMatch(rangeList: RangeList, defaultName?: string): string; + toIPv4Address(): IPv4; + } + } + + export = Address; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..f606a466672121dfd007c334465efa089fd88b7c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ipaddr.js/package.json" @@ -0,0 +1,70 @@ +{ + "_from": "ipaddr.js@1.9.1", + "_id": "ipaddr.js@1.9.1", + "_inBundle": false, + "_integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "_location": "/ipaddr.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ipaddr.js@1.9.1", + "name": "ipaddr.js", + "escapedName": "ipaddr.js", + "rawSpec": "1.9.1", + "saveSpec": null, + "fetchSpec": "1.9.1" + }, + "_requiredBy": [ + "/proxy-addr" + ], + "_resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "_shasum": "bff38543eeb8984825079ff3a2a8e6cbd46781b3", + "_spec": "ipaddr.js@1.9.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\proxy-addr", + "author": { + "name": "whitequark", + "email": "whitequark@whitequark.org" + }, + "bugs": { + "url": "https://github.com/whitequark/ipaddr.js/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.", + "devDependencies": { + "coffee-script": "~1.12.6", + "nodeunit": "^0.11.3", + "uglify-js": "~3.0.19" + }, + "directories": { + "lib": "./lib" + }, + "engines": { + "node": ">= 0.10" + }, + "files": [ + "lib/", + "LICENSE", + "ipaddr.min.js" + ], + "homepage": "https://github.com/whitequark/ipaddr.js#readme", + "keywords": [ + "ip", + "ipv4", + "ipv6" + ], + "license": "MIT", + "main": "./lib/ipaddr.js", + "name": "ipaddr.js", + "repository": { + "type": "git", + "url": "git://github.com/whitequark/ipaddr.js.git" + }, + "scripts": { + "test": "cake build test" + }, + "types": "./lib/ipaddr.js.d.ts", + "version": "1.9.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/.npmignore" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/.npmignore" new file mode 100644 index 0000000000000000000000000000000000000000..3c3629e647f5ddf82548912e337bea9826b434af --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/.npmignore" @@ -0,0 +1 @@ +node_modules diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/.travis.yml" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/.travis.yml" new file mode 100644 index 0000000000000000000000000000000000000000..cc4dba29d959a2da7b97f9edd3c7c91384b2ee5b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/.travis.yml" @@ -0,0 +1,4 @@ +language: node_js +node_js: + - "0.8" + - "0.10" diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/Makefile" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/Makefile" new file mode 100644 index 0000000000000000000000000000000000000000..787d56e1e982e48588bc199f36f0d50cb4724066 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/Makefile" @@ -0,0 +1,6 @@ + +test: + @node_modules/.bin/tape test.js + +.PHONY: test + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..16d2c59c6195f9a1ac9af37cb9d75f1a6b85ab01 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/README.md" @@ -0,0 +1,60 @@ + +# isarray + +`Array#isArray` for older browsers. + +[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) +[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) + +[![browser support](https://ci.testling.com/juliangruber/isarray.png) +](https://ci.testling.com/juliangruber/isarray) + +## Usage + +```js +var isArray = require('isarray'); + +console.log(isArray([])); // => true +console.log(isArray({})); // => false +``` + +## Installation + +With [npm](http://npmjs.org) do + +```bash +$ npm install isarray +``` + +Then bundle for the browser with +[browserify](https://github.com/substack/browserify). + +With [component](http://component.io) do + +```bash +$ component install juliangruber/isarray +``` + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/component.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/component.json" new file mode 100644 index 0000000000000000000000000000000000000000..9e31b6838890159e397063bdd2ea7de80b4e4a42 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/component.json" @@ -0,0 +1,19 @@ +{ + "name" : "isarray", + "description" : "Array#isArray for older browsers", + "version" : "0.0.1", + "repository" : "juliangruber/isarray", + "homepage": "https://github.com/juliangruber/isarray", + "main" : "index.js", + "scripts" : [ + "index.js" + ], + "dependencies" : {}, + "keywords": ["browser","isarray","array"], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..a57f63495943a07b3b08d17e0f9ef6793548c801 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/index.js" @@ -0,0 +1,5 @@ +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..0fd869c9e79da5c1d97ec39f84bc599979f46a21 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/package.json" @@ -0,0 +1,73 @@ +{ + "_from": "isarray@~1.0.0", + "_id": "isarray@1.0.0", + "_inBundle": false, + "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "_location": "/isarray", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "isarray@~1.0.0", + "name": "isarray", + "escapedName": "isarray", + "rawSpec": "~1.0.0", + "saveSpec": null, + "fetchSpec": "~1.0.0" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "_shasum": "bb935d48582cba168c06834957a54a3e07124f11", + "_spec": "isarray@~1.0.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\readable-stream", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/isarray/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Array#isArray for older browsers", + "devDependencies": { + "tape": "~2.13.4" + }, + "homepage": "https://github.com/juliangruber/isarray", + "keywords": [ + "browser", + "isarray", + "array" + ], + "license": "MIT", + "main": "index.js", + "name": "isarray", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/isarray.git" + }, + "scripts": { + "test": "tape test.js" + }, + "testling": { + "files": "test.js", + "browsers": [ + "ie/8..latest", + "firefox/17..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "version": "1.0.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/test.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/test.js" new file mode 100644 index 0000000000000000000000000000000000000000..e0c3444d85d5c799bd70b2ee9df62ef56d9763ea --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/isarray/test.js" @@ -0,0 +1,20 @@ +var isArray = require('./'); +var test = require('tape'); + +test('is array', function(t){ + t.ok(isArray([])); + t.notOk(isArray({})); + t.notOk(isArray(null)); + t.notOk(isArray(false)); + + var obj = {}; + obj[0] = true; + t.notOk(isArray(obj)); + + var arr = []; + arr.foo = 'bar'; + t.ok(isArray(arr)); + + t.end(); +}); + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..62c2003168f588b4d470470278a2319c5950edc2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/HISTORY.md" @@ -0,0 +1,22 @@ +0.3.0 / 2014-09-07 +================== + + * Support Node.js 0.6 + * Throw error when parameter format invalid on parse + +0.2.0 / 2014-06-18 +================== + + * Add `typer.format()` to format media types + +0.1.0 / 2014-06-17 +================== + + * Accept `req` as argument to `parse` + * Accept `res` as argument to `parse` + * Parse media type with extra LWS between type and first parameter + +0.0.0 / 2014-06-13 +================== + + * Initial implementation diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..b7dce6cf9a0edc74d1d1624b04cb7b2182b856a6 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..d8df62347a6fff095c753754b0a3dd30b6591b33 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/README.md" @@ -0,0 +1,81 @@ +# media-typer + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Simple RFC 6838 media type parser + +## Installation + +```sh +$ npm install media-typer +``` + +## API + +```js +var typer = require('media-typer') +``` + +### typer.parse(string) + +```js +var obj = typer.parse('image/svg+xml; charset=utf-8') +``` + +Parse a media type string. This will return an object with the following +properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The type of the media type (always lower case). Example: `'image'` + + - `subtype`: The subtype of the media type (always lower case). Example: `'svg'` + + - `suffix`: The suffix of the media type (always lower case). Example: `'xml'` + + - `parameters`: An object of the parameters in the media type (name of parameter always lower case). Example: `{charset: 'utf-8'}` + +### typer.parse(req) + +```js +var obj = typer.parse(req) +``` + +Parse the `content-type` header from the given `req`. Short-cut for +`typer.parse(req.headers['content-type'])`. + +### typer.parse(res) + +```js +var obj = typer.parse(res) +``` + +Parse the `content-type` header set on the given `res`. Short-cut for +`typer.parse(res.getHeader('content-type'))`. + +### typer.format(obj) + +```js +var obj = typer.format({type: 'image', subtype: 'svg', suffix: 'xml'}) +``` + +Format an object into a media type string. This will return a string of the +mime type for the given object. For the properties of the object, see the +documentation for `typer.parse(string)`. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/media-typer.svg?style=flat +[npm-url]: https://npmjs.org/package/media-typer +[node-version-image]: https://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat +[node-version-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/jshttp/media-typer.svg?style=flat +[travis-url]: https://travis-ci.org/jshttp/media-typer +[coveralls-image]: https://img.shields.io/coveralls/jshttp/media-typer.svg?style=flat +[coveralls-url]: https://coveralls.io/r/jshttp/media-typer +[downloads-image]: https://img.shields.io/npm/dm/media-typer.svg?style=flat +[downloads-url]: https://npmjs.org/package/media-typer diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..07f7295ee780fbfb881b953e92f79e49fe00f08c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/index.js" @@ -0,0 +1,270 @@ +/*! + * media-typer + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * RegExp to match *( ";" parameter ) in RFC 2616 sec 3.7 + * + * parameter = token "=" ( token | quoted-string ) + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) + * qdtext = > + * quoted-pair = "\" CHAR + * CHAR = + * TEXT = + * LWS = [CRLF] 1*( SP | HT ) + * CRLF = CR LF + * CR = + * LF = + * SP = + * SHT = + * CTL = + * OCTET = + */ +var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g; +var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/ +var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/ + +/** + * RegExp to match quoted-pair in RFC 2616 + * + * quoted-pair = "\" CHAR + * CHAR = + */ +var qescRegExp = /\\([\u0000-\u007f])/g; + +/** + * RegExp to match chars that must be quoted-pair in RFC 2616 + */ +var quoteRegExp = /([\\"])/g; + +/** + * RegExp to match type in RFC 6838 + * + * type-name = restricted-name + * subtype-name = restricted-name + * restricted-name = restricted-name-first *126restricted-name-chars + * restricted-name-first = ALPHA / DIGIT + * restricted-name-chars = ALPHA / DIGIT / "!" / "#" / + * "$" / "&" / "-" / "^" / "_" + * restricted-name-chars =/ "." ; Characters before first dot always + * ; specify a facet name + * restricted-name-chars =/ "+" ; Characters after last plus always + * ; specify a structured syntax suffix + * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z + * DIGIT = %x30-39 ; 0-9 + */ +var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/ +var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/ +var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; + +/** + * Module exports. + */ + +exports.format = format +exports.parse = parse + +/** + * Format object to media type. + * + * @param {object} obj + * @return {string} + * @api public + */ + +function format(obj) { + if (!obj || typeof obj !== 'object') { + throw new TypeError('argument obj is required') + } + + var parameters = obj.parameters + var subtype = obj.subtype + var suffix = obj.suffix + var type = obj.type + + if (!type || !typeNameRegExp.test(type)) { + throw new TypeError('invalid type') + } + + if (!subtype || !subtypeNameRegExp.test(subtype)) { + throw new TypeError('invalid subtype') + } + + // format as type/subtype + var string = type + '/' + subtype + + // append +suffix + if (suffix) { + if (!typeNameRegExp.test(suffix)) { + throw new TypeError('invalid suffix') + } + + string += '+' + suffix + } + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + if (!tokenRegExp.test(param)) { + throw new TypeError('invalid parameter name') + } + + string += '; ' + param + '=' + qstring(parameters[param]) + } + } + + return string +} + +/** + * Parse media type to object. + * + * @param {string|object} string + * @return {Object} + * @api public + */ + +function parse(string) { + if (!string) { + throw new TypeError('argument string is required') + } + + // support req/res-like objects as argument + if (typeof string === 'object') { + string = getcontenttype(string) + } + + if (typeof string !== 'string') { + throw new TypeError('argument string is required to be a string') + } + + var index = string.indexOf(';') + var type = index !== -1 + ? string.substr(0, index) + : string + + var key + var match + var obj = splitType(type) + var params = {} + var value + + paramRegExp.lastIndex = index + + while (match = paramRegExp.exec(string)) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .substr(1, value.length - 2) + .replace(qescRegExp, '$1') + } + + params[key] = value + } + + if (index !== -1 && index !== string.length) { + throw new TypeError('invalid parameter format') + } + + obj.parameters = params + + return obj +} + +/** + * Get content-type from req/res objects. + * + * @param {object} + * @return {Object} + * @api private + */ + +function getcontenttype(obj) { + if (typeof obj.getHeader === 'function') { + // res-like + return obj.getHeader('content-type') + } + + if (typeof obj.headers === 'object') { + // req-like + return obj.headers && obj.headers['content-type'] + } +} + +/** + * Quote a string if necessary. + * + * @param {string} val + * @return {string} + * @api private + */ + +function qstring(val) { + var str = String(val) + + // no need to quote tokens + if (tokenRegExp.test(str)) { + return str + } + + if (str.length > 0 && !textRegExp.test(str)) { + throw new TypeError('invalid parameter value') + } + + return '"' + str.replace(quoteRegExp, '\\$1') + '"' +} + +/** + * Simply "type/subtype+siffx" into parts. + * + * @param {string} string + * @return {Object} + * @api private + */ + +function splitType(string) { + var match = typeRegExp.exec(string.toLowerCase()) + + if (!match) { + throw new TypeError('invalid media type') + } + + var type = match[1] + var subtype = match[2] + var suffix + + // suffix after last + + var index = subtype.lastIndexOf('+') + if (index !== -1) { + suffix = subtype.substr(index + 1) + subtype = subtype.substr(0, index) + } + + var obj = { + type: type, + subtype: subtype, + suffix: suffix + } + + return obj +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..46522978fba2a5618b91004f1471d5abccdec2c3 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/media-typer/package.json" @@ -0,0 +1,61 @@ +{ + "_from": "media-typer@0.3.0", + "_id": "media-typer@0.3.0", + "_inBundle": false, + "_integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "_location": "/media-typer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "media-typer@0.3.0", + "name": "media-typer", + "escapedName": "media-typer", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/type-is" + ], + "_resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "_shasum": "8710d7af0aa626f8fffa1ce00168545263255748", + "_spec": "media-typer@0.3.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\type-is", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/media-typer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Simple RFC 6838 media type parser and formatter", + "devDependencies": { + "istanbul": "0.3.2", + "mocha": "~1.21.4", + "should": "~4.0.4" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/media-typer#readme", + "license": "MIT", + "name": "media-typer", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/media-typer.git" + }, + "scripts": { + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "0.3.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..486771f08bcb1c31a5f6cf0125ad8c422a2b2fcc --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/HISTORY.md" @@ -0,0 +1,21 @@ +1.0.1 / 2016-01-17 +================== + + * perf: enable strict mode + +1.0.0 / 2015-03-01 +================== + + * Add option to only add new descriptors + * Add simple argument validation + * Add jsdoc to source file + +0.0.2 / 2013-12-14 +================== + + * Move repository to `component` organization + +0.0.1 / 2013-10-29 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..274bfd82b2e075c7a264f01c10324d91d636403f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..d593c0ebd7c15b5749e913412ab3b729d114b81e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/README.md" @@ -0,0 +1,48 @@ +# Merge Descriptors + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Merge objects using descriptors. + +```js +var thing = { + get name() { + return 'jon' + } +} + +var animal = { + +} + +merge(animal, thing) + +animal.name === 'jon' +``` + +## API + +### merge(destination, source) + +Redefines `destination`'s descriptors with `source`'s. + +### merge(destination, source, false) + +Defines `source`'s descriptors on `destination` if `destination` does not have +a descriptor by the same name. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/merge-descriptors.svg +[npm-url]: https://npmjs.org/package/merge-descriptors +[travis-image]: https://img.shields.io/travis/component/merge-descriptors/master.svg +[travis-url]: https://travis-ci.org/component/merge-descriptors +[coveralls-image]: https://img.shields.io/coveralls/component/merge-descriptors/master.svg +[coveralls-url]: https://coveralls.io/r/component/merge-descriptors?branch=master +[downloads-image]: https://img.shields.io/npm/dm/merge-descriptors.svg +[downloads-url]: https://npmjs.org/package/merge-descriptors diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..573b132eb2ba40bd26ffc8360e814d5beb4bc50f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/index.js" @@ -0,0 +1,60 @@ +/*! + * merge-descriptors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = merge + +/** + * Module variables. + * @private + */ + +var hasOwnProperty = Object.prototype.hasOwnProperty + +/** + * Merge the property descriptors of `src` into `dest` + * + * @param {object} dest Object to add descriptors to + * @param {object} src Object to clone descriptors from + * @param {boolean} [redefine=true] Redefine `dest` properties with `src` properties + * @returns {object} Reference to dest + * @public + */ + +function merge(dest, src, redefine) { + if (!dest) { + throw new TypeError('argument dest is required') + } + + if (!src) { + throw new TypeError('argument src is required') + } + + if (redefine === undefined) { + // Default to true + redefine = true + } + + Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) { + if (!redefine && hasOwnProperty.call(dest, name)) { + // Skip desriptor + return + } + + // Copy descriptor + var descriptor = Object.getOwnPropertyDescriptor(src, name) + Object.defineProperty(dest, name, descriptor) + }) + + return dest +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..596e778809f7a0eb05c29b0e207b22c1964c5d38 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/merge-descriptors/package.json" @@ -0,0 +1,69 @@ +{ + "_from": "merge-descriptors@1.0.1", + "_id": "merge-descriptors@1.0.1", + "_inBundle": false, + "_integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "_location": "/merge-descriptors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "merge-descriptors@1.0.1", + "name": "merge-descriptors", + "escapedName": "merge-descriptors", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "_shasum": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61", + "_spec": "merge-descriptors@1.0.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/component/merge-descriptors/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Mike Grabowski", + "email": "grabbou@gmail.com" + } + ], + "deprecated": false, + "description": "Merge objects using descriptors", + "devDependencies": { + "istanbul": "0.4.1", + "mocha": "1.21.5" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/component/merge-descriptors#readme", + "license": "MIT", + "name": "merge-descriptors", + "repository": { + "type": "git", + "url": "git+https://github.com/component/merge-descriptors.git" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" + }, + "version": "1.0.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0ecf072db3f9809c46c83f5641b5df99c686bbf --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/HISTORY.md" @@ -0,0 +1,29 @@ +1.1.2 / 2016-01-17 +================== + + * perf: enable strict mode + +1.1.1 / 2014-12-30 +================== + + * Improve `browserify` support + +1.1.0 / 2014-07-05 +================== + + * Add `CONNECT` method + +1.0.1 / 2014-06-02 +================== + + * Fix module to work with harmony transform + +1.0.0 / 2014-05-08 +================== + + * Add `PURGE` method + +0.1.0 / 2013-10-28 +================== + + * Add `http.METHODS` support diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..220dc1a247943ef3837b65754455dfb179260070 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/LICENSE" @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2013-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +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. + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..672a32bfe5d685306f18b7a81a15af9fbbd00a0f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/README.md" @@ -0,0 +1,51 @@ +# Methods + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +HTTP verbs that Node.js core's HTTP parser supports. + +This module provides an export that is just like `http.METHODS` from Node.js core, +with the following differences: + + * All method names are lower-cased. + * Contains a fallback list of methods for Node.js versions that do not have a + `http.METHODS` export (0.10 and lower). + * Provides the fallback list when using tools like `browserify` without pulling + in the `http` shim module. + +## Install + +```bash +$ npm install methods +``` + +## API + +```js +var methods = require('methods') +``` + +### methods + +This is an array of lower-cased method names that Node.js supports. If Node.js +provides the `http.METHODS` export, then this is the same array lower-cased, +otherwise it is a snapshot of the verbs from Node.js 0.10. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/methods.svg?style=flat +[npm-url]: https://npmjs.org/package/methods +[node-version-image]: https://img.shields.io/node/v/methods.svg?style=flat +[node-version-url]: https://nodejs.org/en/download/ +[travis-image]: https://img.shields.io/travis/jshttp/methods.svg?style=flat +[travis-url]: https://travis-ci.org/jshttp/methods +[coveralls-image]: https://img.shields.io/coveralls/jshttp/methods.svg?style=flat +[coveralls-url]: https://coveralls.io/r/jshttp/methods?branch=master +[downloads-image]: https://img.shields.io/npm/dm/methods.svg?style=flat +[downloads-url]: https://npmjs.org/package/methods diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..667a50bde7d852359b1ebd9fa8ea8b8582bc64ac --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/index.js" @@ -0,0 +1,69 @@ +/*! + * methods + * Copyright(c) 2013-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module dependencies. + * @private + */ + +var http = require('http'); + +/** + * Module exports. + * @public + */ + +module.exports = getCurrentNodeMethods() || getBasicNodeMethods(); + +/** + * Get the current Node.js methods. + * @private + */ + +function getCurrentNodeMethods() { + return http.METHODS && http.METHODS.map(function lowerCaseMethod(method) { + return method.toLowerCase(); + }); +} + +/** + * Get the "basic" Node.js methods, a snapshot from Node.js 0.10. + * @private + */ + +function getBasicNodeMethods() { + return [ + 'get', + 'post', + 'put', + 'head', + 'delete', + 'options', + 'trace', + 'copy', + 'lock', + 'mkcol', + 'move', + 'purge', + 'propfind', + 'proppatch', + 'unlock', + 'report', + 'mkactivity', + 'checkout', + 'merge', + 'm-search', + 'notify', + 'subscribe', + 'unsubscribe', + 'patch', + 'search', + 'connect' + ]; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..3839372c9ab5dd44a445eac057e60bea47a6e96d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/methods/package.json" @@ -0,0 +1,79 @@ +{ + "_from": "methods@~1.1.2", + "_id": "methods@1.1.2", + "_inBundle": false, + "_integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "_location": "/methods", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "methods@~1.1.2", + "name": "methods", + "escapedName": "methods", + "rawSpec": "~1.1.2", + "saveSpec": null, + "fetchSpec": "~1.1.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "_shasum": "5529a4d67654134edcc5266656835b0f851afcee", + "_spec": "methods@~1.1.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "browser": { + "http": false + }, + "bugs": { + "url": "https://github.com/jshttp/methods/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + } + ], + "deprecated": false, + "description": "HTTP methods that node supports", + "devDependencies": { + "istanbul": "0.4.1", + "mocha": "1.21.5" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "index.js", + "HISTORY.md", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/methods#readme", + "keywords": [ + "http", + "methods" + ], + "license": "MIT", + "name": "methods", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/methods.git" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..7436f64146e87d2ebe6cacac33af0aeedcc798fb --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/HISTORY.md" @@ -0,0 +1,507 @@ +1.52.0 / 2022-02-21 +=================== + + * Add extensions from IANA for more `image/*` types + * Add extension `.asc` to `application/pgp-keys` + * Add extensions to various XML types + * Add new upstream MIME types + +1.51.0 / 2021-11-08 +=================== + + * Add new upstream MIME types + * Mark `image/vnd.microsoft.icon` as compressible + * Mark `image/vnd.ms-dds` as compressible + +1.50.0 / 2021-09-15 +=================== + + * Add deprecated iWorks mime types and extensions + * Add new upstream MIME types + +1.49.0 / 2021-07-26 +=================== + + * Add extension `.trig` to `application/trig` + * Add new upstream MIME types + +1.48.0 / 2021-05-30 +=================== + + * Add extension `.mvt` to `application/vnd.mapbox-vector-tile` + * Add new upstream MIME types + * Mark `text/yaml` as compressible + +1.47.0 / 2021-04-01 +=================== + + * Add new upstream MIME types + * Remove ambigious extensions from IANA for `application/*+xml` types + * Update primary extension to `.es` for `application/ecmascript` + +1.46.0 / 2021-02-13 +=================== + + * Add extension `.amr` to `audio/amr` + * Add extension `.m4s` to `video/iso.segment` + * Add extension `.opus` to `audio/ogg` + * Add new upstream MIME types + +1.45.0 / 2020-09-22 +=================== + + * Add `application/ubjson` with extension `.ubj` + * Add `image/avif` with extension `.avif` + * Add `image/ktx2` with extension `.ktx2` + * Add extension `.dbf` to `application/vnd.dbf` + * Add extension `.rar` to `application/vnd.rar` + * Add extension `.td` to `application/urc-targetdesc+xml` + * Add new upstream MIME types + * Fix extension of `application/vnd.apple.keynote` to be `.key` + +1.44.0 / 2020-04-22 +=================== + + * Add charsets from IANA + * Add extension `.cjs` to `application/node` + * Add new upstream MIME types + +1.43.0 / 2020-01-05 +=================== + + * Add `application/x-keepass2` with extension `.kdbx` + * Add extension `.mxmf` to `audio/mobile-xmf` + * Add extensions from IANA for `application/*+xml` types + * Add new upstream MIME types + +1.42.0 / 2019-09-25 +=================== + + * Add `image/vnd.ms-dds` with extension `.dds` + * Add new upstream MIME types + * Remove compressible from `multipart/mixed` + +1.41.0 / 2019-08-30 +=================== + + * Add new upstream MIME types + * Add `application/toml` with extension `.toml` + * Mark `font/ttf` as compressible + +1.40.0 / 2019-04-20 +=================== + + * Add extensions from IANA for `model/*` types + * Add `text/mdx` with extension `.mdx` + +1.39.0 / 2019-04-04 +=================== + + * Add extensions `.siv` and `.sieve` to `application/sieve` + * Add new upstream MIME types + +1.38.0 / 2019-02-04 +=================== + + * Add extension `.nq` to `application/n-quads` + * Add extension `.nt` to `application/n-triples` + * Add new upstream MIME types + * Mark `text/less` as compressible + +1.37.0 / 2018-10-19 +=================== + + * Add extensions to HEIC image types + * Add new upstream MIME types + +1.36.0 / 2018-08-20 +=================== + + * Add Apple file extensions from IANA + * Add extensions from IANA for `image/*` types + * Add new upstream MIME types + +1.35.0 / 2018-07-15 +=================== + + * Add extension `.owl` to `application/rdf+xml` + * Add new upstream MIME types + - Removes extension `.woff` from `application/font-woff` + +1.34.0 / 2018-06-03 +=================== + + * Add extension `.csl` to `application/vnd.citationstyles.style+xml` + * Add extension `.es` to `application/ecmascript` + * Add new upstream MIME types + * Add `UTF-8` as default charset for `text/turtle` + * Mark all XML-derived types as compressible + +1.33.0 / 2018-02-15 +=================== + + * Add extensions from IANA for `message/*` types + * Add new upstream MIME types + * Fix some incorrect OOXML types + * Remove `application/font-woff2` + +1.32.0 / 2017-11-29 +=================== + + * Add new upstream MIME types + * Update `text/hjson` to registered `application/hjson` + * Add `text/shex` with extension `.shex` + +1.31.0 / 2017-10-25 +=================== + + * Add `application/raml+yaml` with extension `.raml` + * Add `application/wasm` with extension `.wasm` + * Add new `font` type from IANA + * Add new upstream font extensions + * Add new upstream MIME types + * Add extensions for JPEG-2000 images + +1.30.0 / 2017-08-27 +=================== + + * Add `application/vnd.ms-outlook` + * Add `application/x-arj` + * Add extension `.mjs` to `application/javascript` + * Add glTF types and extensions + * Add new upstream MIME types + * Add `text/x-org` + * Add VirtualBox MIME types + * Fix `source` records for `video/*` types that are IANA + * Update `font/opentype` to registered `font/otf` + +1.29.0 / 2017-07-10 +=================== + + * Add `application/fido.trusted-apps+json` + * Add extension `.wadl` to `application/vnd.sun.wadl+xml` + * Add new upstream MIME types + * Add `UTF-8` as default charset for `text/css` + +1.28.0 / 2017-05-14 +=================== + + * Add new upstream MIME types + * Add extension `.gz` to `application/gzip` + * Update extensions `.md` and `.markdown` to be `text/markdown` + +1.27.0 / 2017-03-16 +=================== + + * Add new upstream MIME types + * Add `image/apng` with extension `.apng` + +1.26.0 / 2017-01-14 +=================== + + * Add new upstream MIME types + * Add extension `.geojson` to `application/geo+json` + +1.25.0 / 2016-11-11 +=================== + + * Add new upstream MIME types + +1.24.0 / 2016-09-18 +=================== + + * Add `audio/mp3` + * Add new upstream MIME types + +1.23.0 / 2016-05-01 +=================== + + * Add new upstream MIME types + * Add extension `.3gpp` to `audio/3gpp` + +1.22.0 / 2016-02-15 +=================== + + * Add `text/slim` + * Add extension `.rng` to `application/xml` + * Add new upstream MIME types + * Fix extension of `application/dash+xml` to be `.mpd` + * Update primary extension to `.m4a` for `audio/mp4` + +1.21.0 / 2016-01-06 +=================== + + * Add Google document types + * Add new upstream MIME types + +1.20.0 / 2015-11-10 +=================== + + * Add `text/x-suse-ymp` + * Add new upstream MIME types + +1.19.0 / 2015-09-17 +=================== + + * Add `application/vnd.apple.pkpass` + * Add new upstream MIME types + +1.18.0 / 2015-09-03 +=================== + + * Add new upstream MIME types + +1.17.0 / 2015-08-13 +=================== + + * Add `application/x-msdos-program` + * Add `audio/g711-0` + * Add `image/vnd.mozilla.apng` + * Add extension `.exe` to `application/x-msdos-program` + +1.16.0 / 2015-07-29 +=================== + + * Add `application/vnd.uri-map` + +1.15.0 / 2015-07-13 +=================== + + * Add `application/x-httpd-php` + +1.14.0 / 2015-06-25 +=================== + + * Add `application/scim+json` + * Add `application/vnd.3gpp.ussd+xml` + * Add `application/vnd.biopax.rdf+xml` + * Add `text/x-processing` + +1.13.0 / 2015-06-07 +=================== + + * Add nginx as a source + * Add `application/x-cocoa` + * Add `application/x-java-archive-diff` + * Add `application/x-makeself` + * Add `application/x-perl` + * Add `application/x-pilot` + * Add `application/x-redhat-package-manager` + * Add `application/x-sea` + * Add `audio/x-m4a` + * Add `audio/x-realaudio` + * Add `image/x-jng` + * Add `text/mathml` + +1.12.0 / 2015-06-05 +=================== + + * Add `application/bdoc` + * Add `application/vnd.hyperdrive+json` + * Add `application/x-bdoc` + * Add extension `.rtf` to `text/rtf` + +1.11.0 / 2015-05-31 +=================== + + * Add `audio/wav` + * Add `audio/wave` + * Add extension `.litcoffee` to `text/coffeescript` + * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data` + * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install` + +1.10.0 / 2015-05-19 +=================== + + * Add `application/vnd.balsamiq.bmpr` + * Add `application/vnd.microsoft.portable-executable` + * Add `application/x-ns-proxy-autoconfig` + +1.9.1 / 2015-04-19 +================== + + * Remove `.json` extension from `application/manifest+json` + - This is causing bugs downstream + +1.9.0 / 2015-04-19 +================== + + * Add `application/manifest+json` + * Add `application/vnd.micro+json` + * Add `image/vnd.zbrush.pcx` + * Add `image/x-ms-bmp` + +1.8.0 / 2015-03-13 +================== + + * Add `application/vnd.citationstyles.style+xml` + * Add `application/vnd.fastcopy-disk-image` + * Add `application/vnd.gov.sk.xmldatacontainer+xml` + * Add extension `.jsonld` to `application/ld+json` + +1.7.0 / 2015-02-08 +================== + + * Add `application/vnd.gerber` + * Add `application/vnd.msa-disk-image` + +1.6.1 / 2015-02-05 +================== + + * Community extensions ownership transferred from `node-mime` + +1.6.0 / 2015-01-29 +================== + + * Add `application/jose` + * Add `application/jose+json` + * Add `application/json-seq` + * Add `application/jwk+json` + * Add `application/jwk-set+json` + * Add `application/jwt` + * Add `application/rdap+json` + * Add `application/vnd.gov.sk.e-form+xml` + * Add `application/vnd.ims.imsccv1p3` + +1.5.0 / 2014-12-30 +================== + + * Add `application/vnd.oracle.resource+json` + * Fix various invalid MIME type entries + - `application/mbox+xml` + - `application/oscp-response` + - `application/vwg-multiplexed` + - `audio/g721` + +1.4.0 / 2014-12-21 +================== + + * Add `application/vnd.ims.imsccv1p2` + * Fix various invalid MIME type entries + - `application/vnd-acucobol` + - `application/vnd-curl` + - `application/vnd-dart` + - `application/vnd-dxr` + - `application/vnd-fdf` + - `application/vnd-mif` + - `application/vnd-sema` + - `application/vnd-wap-wmlc` + - `application/vnd.adobe.flash-movie` + - `application/vnd.dece-zip` + - `application/vnd.dvb_service` + - `application/vnd.micrografx-igx` + - `application/vnd.sealed-doc` + - `application/vnd.sealed-eml` + - `application/vnd.sealed-mht` + - `application/vnd.sealed-ppt` + - `application/vnd.sealed-tiff` + - `application/vnd.sealed-xls` + - `application/vnd.sealedmedia.softseal-html` + - `application/vnd.sealedmedia.softseal-pdf` + - `application/vnd.wap-slc` + - `application/vnd.wap-wbxml` + - `audio/vnd.sealedmedia.softseal-mpeg` + - `image/vnd-djvu` + - `image/vnd-svf` + - `image/vnd-wap-wbmp` + - `image/vnd.sealed-png` + - `image/vnd.sealedmedia.softseal-gif` + - `image/vnd.sealedmedia.softseal-jpg` + - `model/vnd-dwf` + - `model/vnd.parasolid.transmit-binary` + - `model/vnd.parasolid.transmit-text` + - `text/vnd-a` + - `text/vnd-curl` + - `text/vnd.wap-wml` + * Remove example template MIME types + - `application/example` + - `audio/example` + - `image/example` + - `message/example` + - `model/example` + - `multipart/example` + - `text/example` + - `video/example` + +1.3.1 / 2014-12-16 +================== + + * Fix missing extensions + - `application/json5` + - `text/hjson` + +1.3.0 / 2014-12-07 +================== + + * Add `application/a2l` + * Add `application/aml` + * Add `application/atfx` + * Add `application/atxml` + * Add `application/cdfx+xml` + * Add `application/dii` + * Add `application/json5` + * Add `application/lxf` + * Add `application/mf4` + * Add `application/vnd.apache.thrift.compact` + * Add `application/vnd.apache.thrift.json` + * Add `application/vnd.coffeescript` + * Add `application/vnd.enphase.envoy` + * Add `application/vnd.ims.imsccv1p1` + * Add `text/csv-schema` + * Add `text/hjson` + * Add `text/markdown` + * Add `text/yaml` + +1.2.0 / 2014-11-09 +================== + + * Add `application/cea` + * Add `application/dit` + * Add `application/vnd.gov.sk.e-form+zip` + * Add `application/vnd.tmd.mediaflex.api+xml` + * Type `application/epub+zip` is now IANA-registered + +1.1.2 / 2014-10-23 +================== + + * Rebuild database for `application/x-www-form-urlencoded` change + +1.1.1 / 2014-10-20 +================== + + * Mark `application/x-www-form-urlencoded` as compressible. + +1.1.0 / 2014-09-28 +================== + + * Add `application/font-woff2` + +1.0.3 / 2014-09-25 +================== + + * Fix engine requirement in package + +1.0.2 / 2014-09-25 +================== + + * Add `application/coap-group+json` + * Add `application/dcd` + * Add `application/vnd.apache.thrift.binary` + * Add `image/vnd.tencent.tap` + * Mark all JSON-derived types as compressible + * Update `text/vtt` data + +1.0.1 / 2014-08-30 +================== + + * Fix extension ordering + +1.0.0 / 2014-08-30 +================== + + * Add `application/atf` + * Add `application/merge-patch+json` + * Add `multipart/x-mixed-replace` + * Add `source: 'apache'` metadata + * Add `source: 'iana'` metadata + * Remove badly-assumed charset data diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..0751cb10e94972be9a07b44cc261447bac726a7f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015-2022 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..5a8fcfe4d0d813c4608765b31342fe5297e5867f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/README.md" @@ -0,0 +1,100 @@ +# mime-db + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +This is a large database of mime types and information about them. +It consists of a single, public JSON file and does not include any logic, +allowing it to remain as un-opinionated as possible with an API. +It aggregates data from the following sources: + +- http://www.iana.org/assignments/media-types/media-types.xhtml +- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types + +## Installation + +```bash +npm install mime-db +``` + +### Database Download + +If you're crazy enough to use this in the browser, you can just grab the +JSON file using [jsDelivr](https://www.jsdelivr.com/). It is recommended to +replace `master` with [a release tag](https://github.com/jshttp/mime-db/tags) +as the JSON format may change in the future. + +``` +https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json +``` + +## Usage + +```js +var db = require('mime-db') + +// grab data on .js files +var data = db['application/javascript'] +``` + +## Data Structure + +The JSON file is a map lookup for lowercased mime types. +Each mime type has the following properties: + +- `.source` - where the mime type is defined. + If not set, it's probably a custom media type. + - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types) + - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml) + - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types) +- `.extensions[]` - known extensions associated with this mime type. +- `.compressible` - whether a file of this type can be gzipped. +- `.charset` - the default charset associated with this type, if any. + +If unknown, every property could be `undefined`. + +## Contributing + +To edit the database, only make PRs against `src/custom-types.json` or +`src/custom-suffix.json`. + +The `src/custom-types.json` file is a JSON object with the MIME type as the +keys and the values being an object with the following keys: + +- `compressible` - leave out if you don't know, otherwise `true`/`false` to + indicate whether the data represented by the type is typically compressible. +- `extensions` - include an array of file extensions that are associated with + the type. +- `notes` - human-readable notes about the type, typically what the type is. +- `sources` - include an array of URLs of where the MIME type and the associated + extensions are sourced from. This needs to be a [primary source](https://en.wikipedia.org/wiki/Primary_source); + links to type aggregating sites and Wikipedia are _not acceptable_. + +To update the build, run `npm run build`. + +### Adding Custom Media Types + +The best way to get new media types included in this library is to register +them with the IANA. The community registration procedure is outlined in +[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types +registered with the IANA are automatically pulled into this library. + +If that is not possible / feasible, they can be added directly here as a +"custom" type. To do this, it is required to have a primary source that +definitively lists the media type. If an extension is going to be listed as +associateed with this media type, the source must definitively link the +media type and extension as well. + +[ci-image]: https://badgen.net/github/checks/jshttp/mime-db/master?label=ci +[ci-url]: https://github.com/jshttp/mime-db/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-db/master +[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master +[node-image]: https://badgen.net/npm/node/mime-db +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/mime-db +[npm-url]: https://npmjs.org/package/mime-db +[npm-version-image]: https://badgen.net/npm/v/mime-db diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/db.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/db.json" new file mode 100644 index 0000000000000000000000000000000000000000..eb9c42c457a3b42f3af43e37ed62de4d704c413a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/db.json" @@ -0,0 +1,8519 @@ +{ + "application/1d-interleaved-parityfec": { + "source": "iana" + }, + "application/3gpdash-qoe-report+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/3gpp-ims+xml": { + "source": "iana", + "compressible": true + }, + "application/3gpphal+json": { + "source": "iana", + "compressible": true + }, + "application/3gpphalforms+json": { + "source": "iana", + "compressible": true + }, + "application/a2l": { + "source": "iana" + }, + "application/ace+cbor": { + "source": "iana" + }, + "application/activemessage": { + "source": "iana" + }, + "application/activity+json": { + "source": "iana", + "compressible": true + }, + "application/alto-costmap+json": { + "source": "iana", + "compressible": true + }, + "application/alto-costmapfilter+json": { + "source": "iana", + "compressible": true + }, + "application/alto-directory+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointcost+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointcostparams+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointprop+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointpropparams+json": { + "source": "iana", + "compressible": true + }, + "application/alto-error+json": { + "source": "iana", + "compressible": true + }, + "application/alto-networkmap+json": { + "source": "iana", + "compressible": true + }, + "application/alto-networkmapfilter+json": { + "source": "iana", + "compressible": true + }, + "application/alto-updatestreamcontrol+json": { + "source": "iana", + "compressible": true + }, + "application/alto-updatestreamparams+json": { + "source": "iana", + "compressible": true + }, + "application/aml": { + "source": "iana" + }, + "application/andrew-inset": { + "source": "iana", + "extensions": ["ez"] + }, + "application/applefile": { + "source": "iana" + }, + "application/applixware": { + "source": "apache", + "extensions": ["aw"] + }, + "application/at+jwt": { + "source": "iana" + }, + "application/atf": { + "source": "iana" + }, + "application/atfx": { + "source": "iana" + }, + "application/atom+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atom"] + }, + "application/atomcat+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomcat"] + }, + "application/atomdeleted+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomdeleted"] + }, + "application/atomicmail": { + "source": "iana" + }, + "application/atomsvc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomsvc"] + }, + "application/atsc-dwd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dwd"] + }, + "application/atsc-dynamic-event-message": { + "source": "iana" + }, + "application/atsc-held+xml": { + "source": "iana", + "compressible": true, + "extensions": ["held"] + }, + "application/atsc-rdt+json": { + "source": "iana", + "compressible": true + }, + "application/atsc-rsat+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rsat"] + }, + "application/atxml": { + "source": "iana" + }, + "application/auth-policy+xml": { + "source": "iana", + "compressible": true + }, + "application/bacnet-xdd+zip": { + "source": "iana", + "compressible": false + }, + "application/batch-smtp": { + "source": "iana" + }, + "application/bdoc": { + "compressible": false, + "extensions": ["bdoc"] + }, + "application/beep+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/calendar+json": { + "source": "iana", + "compressible": true + }, + "application/calendar+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xcs"] + }, + "application/call-completion": { + "source": "iana" + }, + "application/cals-1840": { + "source": "iana" + }, + "application/captive+json": { + "source": "iana", + "compressible": true + }, + "application/cbor": { + "source": "iana" + }, + "application/cbor-seq": { + "source": "iana" + }, + "application/cccex": { + "source": "iana" + }, + "application/ccmp+xml": { + "source": "iana", + "compressible": true + }, + "application/ccxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ccxml"] + }, + "application/cdfx+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cdfx"] + }, + "application/cdmi-capability": { + "source": "iana", + "extensions": ["cdmia"] + }, + "application/cdmi-container": { + "source": "iana", + "extensions": ["cdmic"] + }, + "application/cdmi-domain": { + "source": "iana", + "extensions": ["cdmid"] + }, + "application/cdmi-object": { + "source": "iana", + "extensions": ["cdmio"] + }, + "application/cdmi-queue": { + "source": "iana", + "extensions": ["cdmiq"] + }, + "application/cdni": { + "source": "iana" + }, + "application/cea": { + "source": "iana" + }, + "application/cea-2018+xml": { + "source": "iana", + "compressible": true + }, + "application/cellml+xml": { + "source": "iana", + "compressible": true + }, + "application/cfw": { + "source": "iana" + }, + "application/city+json": { + "source": "iana", + "compressible": true + }, + "application/clr": { + "source": "iana" + }, + "application/clue+xml": { + "source": "iana", + "compressible": true + }, + "application/clue_info+xml": { + "source": "iana", + "compressible": true + }, + "application/cms": { + "source": "iana" + }, + "application/cnrp+xml": { + "source": "iana", + "compressible": true + }, + "application/coap-group+json": { + "source": "iana", + "compressible": true + }, + "application/coap-payload": { + "source": "iana" + }, + "application/commonground": { + "source": "iana" + }, + "application/conference-info+xml": { + "source": "iana", + "compressible": true + }, + "application/cose": { + "source": "iana" + }, + "application/cose-key": { + "source": "iana" + }, + "application/cose-key-set": { + "source": "iana" + }, + "application/cpl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cpl"] + }, + "application/csrattrs": { + "source": "iana" + }, + "application/csta+xml": { + "source": "iana", + "compressible": true + }, + "application/cstadata+xml": { + "source": "iana", + "compressible": true + }, + "application/csvm+json": { + "source": "iana", + "compressible": true + }, + "application/cu-seeme": { + "source": "apache", + "extensions": ["cu"] + }, + "application/cwt": { + "source": "iana" + }, + "application/cybercash": { + "source": "iana" + }, + "application/dart": { + "compressible": true + }, + "application/dash+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpd"] + }, + "application/dash-patch+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpp"] + }, + "application/dashdelta": { + "source": "iana" + }, + "application/davmount+xml": { + "source": "iana", + "compressible": true, + "extensions": ["davmount"] + }, + "application/dca-rft": { + "source": "iana" + }, + "application/dcd": { + "source": "iana" + }, + "application/dec-dx": { + "source": "iana" + }, + "application/dialog-info+xml": { + "source": "iana", + "compressible": true + }, + "application/dicom": { + "source": "iana" + }, + "application/dicom+json": { + "source": "iana", + "compressible": true + }, + "application/dicom+xml": { + "source": "iana", + "compressible": true + }, + "application/dii": { + "source": "iana" + }, + "application/dit": { + "source": "iana" + }, + "application/dns": { + "source": "iana" + }, + "application/dns+json": { + "source": "iana", + "compressible": true + }, + "application/dns-message": { + "source": "iana" + }, + "application/docbook+xml": { + "source": "apache", + "compressible": true, + "extensions": ["dbk"] + }, + "application/dots+cbor": { + "source": "iana" + }, + "application/dskpp+xml": { + "source": "iana", + "compressible": true + }, + "application/dssc+der": { + "source": "iana", + "extensions": ["dssc"] + }, + "application/dssc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdssc"] + }, + "application/dvcs": { + "source": "iana" + }, + "application/ecmascript": { + "source": "iana", + "compressible": true, + "extensions": ["es","ecma"] + }, + "application/edi-consent": { + "source": "iana" + }, + "application/edi-x12": { + "source": "iana", + "compressible": false + }, + "application/edifact": { + "source": "iana", + "compressible": false + }, + "application/efi": { + "source": "iana" + }, + "application/elm+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/elm+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.cap+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/emergencycalldata.comment+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.control+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.deviceinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.ecall.msd": { + "source": "iana" + }, + "application/emergencycalldata.providerinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.serviceinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.subscriberinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.veds+xml": { + "source": "iana", + "compressible": true + }, + "application/emma+xml": { + "source": "iana", + "compressible": true, + "extensions": ["emma"] + }, + "application/emotionml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["emotionml"] + }, + "application/encaprtp": { + "source": "iana" + }, + "application/epp+xml": { + "source": "iana", + "compressible": true + }, + "application/epub+zip": { + "source": "iana", + "compressible": false, + "extensions": ["epub"] + }, + "application/eshop": { + "source": "iana" + }, + "application/exi": { + "source": "iana", + "extensions": ["exi"] + }, + "application/expect-ct-report+json": { + "source": "iana", + "compressible": true + }, + "application/express": { + "source": "iana", + "extensions": ["exp"] + }, + "application/fastinfoset": { + "source": "iana" + }, + "application/fastsoap": { + "source": "iana" + }, + "application/fdt+xml": { + "source": "iana", + "compressible": true, + "extensions": ["fdt"] + }, + "application/fhir+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/fhir+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/fido.trusted-apps+json": { + "compressible": true + }, + "application/fits": { + "source": "iana" + }, + "application/flexfec": { + "source": "iana" + }, + "application/font-sfnt": { + "source": "iana" + }, + "application/font-tdpfr": { + "source": "iana", + "extensions": ["pfr"] + }, + "application/font-woff": { + "source": "iana", + "compressible": false + }, + "application/framework-attributes+xml": { + "source": "iana", + "compressible": true + }, + "application/geo+json": { + "source": "iana", + "compressible": true, + "extensions": ["geojson"] + }, + "application/geo+json-seq": { + "source": "iana" + }, + "application/geopackage+sqlite3": { + "source": "iana" + }, + "application/geoxacml+xml": { + "source": "iana", + "compressible": true + }, + "application/gltf-buffer": { + "source": "iana" + }, + "application/gml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["gml"] + }, + "application/gpx+xml": { + "source": "apache", + "compressible": true, + "extensions": ["gpx"] + }, + "application/gxf": { + "source": "apache", + "extensions": ["gxf"] + }, + "application/gzip": { + "source": "iana", + "compressible": false, + "extensions": ["gz"] + }, + "application/h224": { + "source": "iana" + }, + "application/held+xml": { + "source": "iana", + "compressible": true + }, + "application/hjson": { + "extensions": ["hjson"] + }, + "application/http": { + "source": "iana" + }, + "application/hyperstudio": { + "source": "iana", + "extensions": ["stk"] + }, + "application/ibe-key-request+xml": { + "source": "iana", + "compressible": true + }, + "application/ibe-pkg-reply+xml": { + "source": "iana", + "compressible": true + }, + "application/ibe-pp-data": { + "source": "iana" + }, + "application/iges": { + "source": "iana" + }, + "application/im-iscomposing+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/index": { + "source": "iana" + }, + "application/index.cmd": { + "source": "iana" + }, + "application/index.obj": { + "source": "iana" + }, + "application/index.response": { + "source": "iana" + }, + "application/index.vnd": { + "source": "iana" + }, + "application/inkml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ink","inkml"] + }, + "application/iotp": { + "source": "iana" + }, + "application/ipfix": { + "source": "iana", + "extensions": ["ipfix"] + }, + "application/ipp": { + "source": "iana" + }, + "application/isup": { + "source": "iana" + }, + "application/its+xml": { + "source": "iana", + "compressible": true, + "extensions": ["its"] + }, + "application/java-archive": { + "source": "apache", + "compressible": false, + "extensions": ["jar","war","ear"] + }, + "application/java-serialized-object": { + "source": "apache", + "compressible": false, + "extensions": ["ser"] + }, + "application/java-vm": { + "source": "apache", + "compressible": false, + "extensions": ["class"] + }, + "application/javascript": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["js","mjs"] + }, + "application/jf2feed+json": { + "source": "iana", + "compressible": true + }, + "application/jose": { + "source": "iana" + }, + "application/jose+json": { + "source": "iana", + "compressible": true + }, + "application/jrd+json": { + "source": "iana", + "compressible": true + }, + "application/jscalendar+json": { + "source": "iana", + "compressible": true + }, + "application/json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["json","map"] + }, + "application/json-patch+json": { + "source": "iana", + "compressible": true + }, + "application/json-seq": { + "source": "iana" + }, + "application/json5": { + "extensions": ["json5"] + }, + "application/jsonml+json": { + "source": "apache", + "compressible": true, + "extensions": ["jsonml"] + }, + "application/jwk+json": { + "source": "iana", + "compressible": true + }, + "application/jwk-set+json": { + "source": "iana", + "compressible": true + }, + "application/jwt": { + "source": "iana" + }, + "application/kpml-request+xml": { + "source": "iana", + "compressible": true + }, + "application/kpml-response+xml": { + "source": "iana", + "compressible": true + }, + "application/ld+json": { + "source": "iana", + "compressible": true, + "extensions": ["jsonld"] + }, + "application/lgr+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lgr"] + }, + "application/link-format": { + "source": "iana" + }, + "application/load-control+xml": { + "source": "iana", + "compressible": true + }, + "application/lost+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lostxml"] + }, + "application/lostsync+xml": { + "source": "iana", + "compressible": true + }, + "application/lpf+zip": { + "source": "iana", + "compressible": false + }, + "application/lxf": { + "source": "iana" + }, + "application/mac-binhex40": { + "source": "iana", + "extensions": ["hqx"] + }, + "application/mac-compactpro": { + "source": "apache", + "extensions": ["cpt"] + }, + "application/macwriteii": { + "source": "iana" + }, + "application/mads+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mads"] + }, + "application/manifest+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["webmanifest"] + }, + "application/marc": { + "source": "iana", + "extensions": ["mrc"] + }, + "application/marcxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mrcx"] + }, + "application/mathematica": { + "source": "iana", + "extensions": ["ma","nb","mb"] + }, + "application/mathml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mathml"] + }, + "application/mathml-content+xml": { + "source": "iana", + "compressible": true + }, + "application/mathml-presentation+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-associated-procedure-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-deregister+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-envelope+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-msk+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-msk-response+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-protection-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-reception-report+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-register+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-register-response+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-schedule+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-user-service-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbox": { + "source": "iana", + "extensions": ["mbox"] + }, + "application/media-policy-dataset+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpf"] + }, + "application/media_control+xml": { + "source": "iana", + "compressible": true + }, + "application/mediaservercontrol+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mscml"] + }, + "application/merge-patch+json": { + "source": "iana", + "compressible": true + }, + "application/metalink+xml": { + "source": "apache", + "compressible": true, + "extensions": ["metalink"] + }, + "application/metalink4+xml": { + "source": "iana", + "compressible": true, + "extensions": ["meta4"] + }, + "application/mets+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mets"] + }, + "application/mf4": { + "source": "iana" + }, + "application/mikey": { + "source": "iana" + }, + "application/mipc": { + "source": "iana" + }, + "application/missing-blocks+cbor-seq": { + "source": "iana" + }, + "application/mmt-aei+xml": { + "source": "iana", + "compressible": true, + "extensions": ["maei"] + }, + "application/mmt-usd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["musd"] + }, + "application/mods+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mods"] + }, + "application/moss-keys": { + "source": "iana" + }, + "application/moss-signature": { + "source": "iana" + }, + "application/mosskey-data": { + "source": "iana" + }, + "application/mosskey-request": { + "source": "iana" + }, + "application/mp21": { + "source": "iana", + "extensions": ["m21","mp21"] + }, + "application/mp4": { + "source": "iana", + "extensions": ["mp4s","m4p"] + }, + "application/mpeg4-generic": { + "source": "iana" + }, + "application/mpeg4-iod": { + "source": "iana" + }, + "application/mpeg4-iod-xmt": { + "source": "iana" + }, + "application/mrb-consumer+xml": { + "source": "iana", + "compressible": true + }, + "application/mrb-publish+xml": { + "source": "iana", + "compressible": true + }, + "application/msc-ivr+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/msc-mixer+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/msword": { + "source": "iana", + "compressible": false, + "extensions": ["doc","dot"] + }, + "application/mud+json": { + "source": "iana", + "compressible": true + }, + "application/multipart-core": { + "source": "iana" + }, + "application/mxf": { + "source": "iana", + "extensions": ["mxf"] + }, + "application/n-quads": { + "source": "iana", + "extensions": ["nq"] + }, + "application/n-triples": { + "source": "iana", + "extensions": ["nt"] + }, + "application/nasdata": { + "source": "iana" + }, + "application/news-checkgroups": { + "source": "iana", + "charset": "US-ASCII" + }, + "application/news-groupinfo": { + "source": "iana", + "charset": "US-ASCII" + }, + "application/news-transmission": { + "source": "iana" + }, + "application/nlsml+xml": { + "source": "iana", + "compressible": true + }, + "application/node": { + "source": "iana", + "extensions": ["cjs"] + }, + "application/nss": { + "source": "iana" + }, + "application/oauth-authz-req+jwt": { + "source": "iana" + }, + "application/oblivious-dns-message": { + "source": "iana" + }, + "application/ocsp-request": { + "source": "iana" + }, + "application/ocsp-response": { + "source": "iana" + }, + "application/octet-stream": { + "source": "iana", + "compressible": false, + "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] + }, + "application/oda": { + "source": "iana", + "extensions": ["oda"] + }, + "application/odm+xml": { + "source": "iana", + "compressible": true + }, + "application/odx": { + "source": "iana" + }, + "application/oebps-package+xml": { + "source": "iana", + "compressible": true, + "extensions": ["opf"] + }, + "application/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["ogx"] + }, + "application/omdoc+xml": { + "source": "apache", + "compressible": true, + "extensions": ["omdoc"] + }, + "application/onenote": { + "source": "apache", + "extensions": ["onetoc","onetoc2","onetmp","onepkg"] + }, + "application/opc-nodeset+xml": { + "source": "iana", + "compressible": true + }, + "application/oscore": { + "source": "iana" + }, + "application/oxps": { + "source": "iana", + "extensions": ["oxps"] + }, + "application/p21": { + "source": "iana" + }, + "application/p21+zip": { + "source": "iana", + "compressible": false + }, + "application/p2p-overlay+xml": { + "source": "iana", + "compressible": true, + "extensions": ["relo"] + }, + "application/parityfec": { + "source": "iana" + }, + "application/passport": { + "source": "iana" + }, + "application/patch-ops-error+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xer"] + }, + "application/pdf": { + "source": "iana", + "compressible": false, + "extensions": ["pdf"] + }, + "application/pdx": { + "source": "iana" + }, + "application/pem-certificate-chain": { + "source": "iana" + }, + "application/pgp-encrypted": { + "source": "iana", + "compressible": false, + "extensions": ["pgp"] + }, + "application/pgp-keys": { + "source": "iana", + "extensions": ["asc"] + }, + "application/pgp-signature": { + "source": "iana", + "extensions": ["asc","sig"] + }, + "application/pics-rules": { + "source": "apache", + "extensions": ["prf"] + }, + "application/pidf+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/pidf-diff+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/pkcs10": { + "source": "iana", + "extensions": ["p10"] + }, + "application/pkcs12": { + "source": "iana" + }, + "application/pkcs7-mime": { + "source": "iana", + "extensions": ["p7m","p7c"] + }, + "application/pkcs7-signature": { + "source": "iana", + "extensions": ["p7s"] + }, + "application/pkcs8": { + "source": "iana", + "extensions": ["p8"] + }, + "application/pkcs8-encrypted": { + "source": "iana" + }, + "application/pkix-attr-cert": { + "source": "iana", + "extensions": ["ac"] + }, + "application/pkix-cert": { + "source": "iana", + "extensions": ["cer"] + }, + "application/pkix-crl": { + "source": "iana", + "extensions": ["crl"] + }, + "application/pkix-pkipath": { + "source": "iana", + "extensions": ["pkipath"] + }, + "application/pkixcmp": { + "source": "iana", + "extensions": ["pki"] + }, + "application/pls+xml": { + "source": "iana", + "compressible": true, + "extensions": ["pls"] + }, + "application/poc-settings+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/postscript": { + "source": "iana", + "compressible": true, + "extensions": ["ai","eps","ps"] + }, + "application/ppsp-tracker+json": { + "source": "iana", + "compressible": true + }, + "application/problem+json": { + "source": "iana", + "compressible": true + }, + "application/problem+xml": { + "source": "iana", + "compressible": true + }, + "application/provenance+xml": { + "source": "iana", + "compressible": true, + "extensions": ["provx"] + }, + "application/prs.alvestrand.titrax-sheet": { + "source": "iana" + }, + "application/prs.cww": { + "source": "iana", + "extensions": ["cww"] + }, + "application/prs.cyn": { + "source": "iana", + "charset": "7-BIT" + }, + "application/prs.hpub+zip": { + "source": "iana", + "compressible": false + }, + "application/prs.nprend": { + "source": "iana" + }, + "application/prs.plucker": { + "source": "iana" + }, + "application/prs.rdf-xml-crypt": { + "source": "iana" + }, + "application/prs.xsf+xml": { + "source": "iana", + "compressible": true + }, + "application/pskc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["pskcxml"] + }, + "application/pvd+json": { + "source": "iana", + "compressible": true + }, + "application/qsig": { + "source": "iana" + }, + "application/raml+yaml": { + "compressible": true, + "extensions": ["raml"] + }, + "application/raptorfec": { + "source": "iana" + }, + "application/rdap+json": { + "source": "iana", + "compressible": true + }, + "application/rdf+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rdf","owl"] + }, + "application/reginfo+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rif"] + }, + "application/relax-ng-compact-syntax": { + "source": "iana", + "extensions": ["rnc"] + }, + "application/remote-printing": { + "source": "iana" + }, + "application/reputon+json": { + "source": "iana", + "compressible": true + }, + "application/resource-lists+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rl"] + }, + "application/resource-lists-diff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rld"] + }, + "application/rfc+xml": { + "source": "iana", + "compressible": true + }, + "application/riscos": { + "source": "iana" + }, + "application/rlmi+xml": { + "source": "iana", + "compressible": true + }, + "application/rls-services+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rs"] + }, + "application/route-apd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rapd"] + }, + "application/route-s-tsid+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sls"] + }, + "application/route-usd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rusd"] + }, + "application/rpki-ghostbusters": { + "source": "iana", + "extensions": ["gbr"] + }, + "application/rpki-manifest": { + "source": "iana", + "extensions": ["mft"] + }, + "application/rpki-publication": { + "source": "iana" + }, + "application/rpki-roa": { + "source": "iana", + "extensions": ["roa"] + }, + "application/rpki-updown": { + "source": "iana" + }, + "application/rsd+xml": { + "source": "apache", + "compressible": true, + "extensions": ["rsd"] + }, + "application/rss+xml": { + "source": "apache", + "compressible": true, + "extensions": ["rss"] + }, + "application/rtf": { + "source": "iana", + "compressible": true, + "extensions": ["rtf"] + }, + "application/rtploopback": { + "source": "iana" + }, + "application/rtx": { + "source": "iana" + }, + "application/samlassertion+xml": { + "source": "iana", + "compressible": true + }, + "application/samlmetadata+xml": { + "source": "iana", + "compressible": true + }, + "application/sarif+json": { + "source": "iana", + "compressible": true + }, + "application/sarif-external-properties+json": { + "source": "iana", + "compressible": true + }, + "application/sbe": { + "source": "iana" + }, + "application/sbml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sbml"] + }, + "application/scaip+xml": { + "source": "iana", + "compressible": true + }, + "application/scim+json": { + "source": "iana", + "compressible": true + }, + "application/scvp-cv-request": { + "source": "iana", + "extensions": ["scq"] + }, + "application/scvp-cv-response": { + "source": "iana", + "extensions": ["scs"] + }, + "application/scvp-vp-request": { + "source": "iana", + "extensions": ["spq"] + }, + "application/scvp-vp-response": { + "source": "iana", + "extensions": ["spp"] + }, + "application/sdp": { + "source": "iana", + "extensions": ["sdp"] + }, + "application/secevent+jwt": { + "source": "iana" + }, + "application/senml+cbor": { + "source": "iana" + }, + "application/senml+json": { + "source": "iana", + "compressible": true + }, + "application/senml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["senmlx"] + }, + "application/senml-etch+cbor": { + "source": "iana" + }, + "application/senml-etch+json": { + "source": "iana", + "compressible": true + }, + "application/senml-exi": { + "source": "iana" + }, + "application/sensml+cbor": { + "source": "iana" + }, + "application/sensml+json": { + "source": "iana", + "compressible": true + }, + "application/sensml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sensmlx"] + }, + "application/sensml-exi": { + "source": "iana" + }, + "application/sep+xml": { + "source": "iana", + "compressible": true + }, + "application/sep-exi": { + "source": "iana" + }, + "application/session-info": { + "source": "iana" + }, + "application/set-payment": { + "source": "iana" + }, + "application/set-payment-initiation": { + "source": "iana", + "extensions": ["setpay"] + }, + "application/set-registration": { + "source": "iana" + }, + "application/set-registration-initiation": { + "source": "iana", + "extensions": ["setreg"] + }, + "application/sgml": { + "source": "iana" + }, + "application/sgml-open-catalog": { + "source": "iana" + }, + "application/shf+xml": { + "source": "iana", + "compressible": true, + "extensions": ["shf"] + }, + "application/sieve": { + "source": "iana", + "extensions": ["siv","sieve"] + }, + "application/simple-filter+xml": { + "source": "iana", + "compressible": true + }, + "application/simple-message-summary": { + "source": "iana" + }, + "application/simplesymbolcontainer": { + "source": "iana" + }, + "application/sipc": { + "source": "iana" + }, + "application/slate": { + "source": "iana" + }, + "application/smil": { + "source": "iana" + }, + "application/smil+xml": { + "source": "iana", + "compressible": true, + "extensions": ["smi","smil"] + }, + "application/smpte336m": { + "source": "iana" + }, + "application/soap+fastinfoset": { + "source": "iana" + }, + "application/soap+xml": { + "source": "iana", + "compressible": true + }, + "application/sparql-query": { + "source": "iana", + "extensions": ["rq"] + }, + "application/sparql-results+xml": { + "source": "iana", + "compressible": true, + "extensions": ["srx"] + }, + "application/spdx+json": { + "source": "iana", + "compressible": true + }, + "application/spirits-event+xml": { + "source": "iana", + "compressible": true + }, + "application/sql": { + "source": "iana" + }, + "application/srgs": { + "source": "iana", + "extensions": ["gram"] + }, + "application/srgs+xml": { + "source": "iana", + "compressible": true, + "extensions": ["grxml"] + }, + "application/sru+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sru"] + }, + "application/ssdl+xml": { + "source": "apache", + "compressible": true, + "extensions": ["ssdl"] + }, + "application/ssml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ssml"] + }, + "application/stix+json": { + "source": "iana", + "compressible": true + }, + "application/swid+xml": { + "source": "iana", + "compressible": true, + "extensions": ["swidtag"] + }, + "application/tamp-apex-update": { + "source": "iana" + }, + "application/tamp-apex-update-confirm": { + "source": "iana" + }, + "application/tamp-community-update": { + "source": "iana" + }, + "application/tamp-community-update-confirm": { + "source": "iana" + }, + "application/tamp-error": { + "source": "iana" + }, + "application/tamp-sequence-adjust": { + "source": "iana" + }, + "application/tamp-sequence-adjust-confirm": { + "source": "iana" + }, + "application/tamp-status-query": { + "source": "iana" + }, + "application/tamp-status-response": { + "source": "iana" + }, + "application/tamp-update": { + "source": "iana" + }, + "application/tamp-update-confirm": { + "source": "iana" + }, + "application/tar": { + "compressible": true + }, + "application/taxii+json": { + "source": "iana", + "compressible": true + }, + "application/td+json": { + "source": "iana", + "compressible": true + }, + "application/tei+xml": { + "source": "iana", + "compressible": true, + "extensions": ["tei","teicorpus"] + }, + "application/tetra_isi": { + "source": "iana" + }, + "application/thraud+xml": { + "source": "iana", + "compressible": true, + "extensions": ["tfi"] + }, + "application/timestamp-query": { + "source": "iana" + }, + "application/timestamp-reply": { + "source": "iana" + }, + "application/timestamped-data": { + "source": "iana", + "extensions": ["tsd"] + }, + "application/tlsrpt+gzip": { + "source": "iana" + }, + "application/tlsrpt+json": { + "source": "iana", + "compressible": true + }, + "application/tnauthlist": { + "source": "iana" + }, + "application/token-introspection+jwt": { + "source": "iana" + }, + "application/toml": { + "compressible": true, + "extensions": ["toml"] + }, + "application/trickle-ice-sdpfrag": { + "source": "iana" + }, + "application/trig": { + "source": "iana", + "extensions": ["trig"] + }, + "application/ttml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ttml"] + }, + "application/tve-trigger": { + "source": "iana" + }, + "application/tzif": { + "source": "iana" + }, + "application/tzif-leap": { + "source": "iana" + }, + "application/ubjson": { + "compressible": false, + "extensions": ["ubj"] + }, + "application/ulpfec": { + "source": "iana" + }, + "application/urc-grpsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/urc-ressheet+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rsheet"] + }, + "application/urc-targetdesc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["td"] + }, + "application/urc-uisocketdesc+xml": { + "source": "iana", + "compressible": true + }, + "application/vcard+json": { + "source": "iana", + "compressible": true + }, + "application/vcard+xml": { + "source": "iana", + "compressible": true + }, + "application/vemmi": { + "source": "iana" + }, + "application/vividence.scriptfile": { + "source": "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + "source": "iana", + "compressible": true, + "extensions": ["1km"] + }, + "application/vnd.3gpp-prose+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp-v2x-local-service-information": { + "source": "iana" + }, + "application/vnd.3gpp.5gnas": { + "source": "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.bsf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.gmop+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.gtpc": { + "source": "iana" + }, + "application/vnd.3gpp.interworking-data": { + "source": "iana" + }, + "application/vnd.3gpp.lpp": { + "source": "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-payload": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-signalling": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-affiliation-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mid-call+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.ngap": { + "source": "iana" + }, + "application/vnd.3gpp.pfcp": { + "source": "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + "source": "iana", + "extensions": ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + "source": "iana", + "extensions": ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + "source": "iana", + "extensions": ["pvb"] + }, + "application/vnd.3gpp.s1ap": { + "source": "iana" + }, + "application/vnd.3gpp.sms": { + "source": "iana" + }, + "application/vnd.3gpp.sms+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.srvcc-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.ussd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp2.sms": { + "source": "iana" + }, + "application/vnd.3gpp2.tcap": { + "source": "iana", + "extensions": ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + "source": "iana" + }, + "application/vnd.3m.post-it-notes": { + "source": "iana", + "extensions": ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + "source": "iana", + "extensions": ["aso"] + }, + "application/vnd.accpac.simply.imp": { + "source": "iana", + "extensions": ["imp"] + }, + "application/vnd.acucobol": { + "source": "iana", + "extensions": ["acu"] + }, + "application/vnd.acucorp": { + "source": "iana", + "extensions": ["atc","acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + "source": "apache", + "compressible": false, + "extensions": ["air"] + }, + "application/vnd.adobe.flash.movie": { + "source": "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + "source": "iana", + "extensions": ["fcdt"] + }, + "application/vnd.adobe.fxp": { + "source": "iana", + "extensions": ["fxp","fxpl"] + }, + "application/vnd.adobe.partial-upload": { + "source": "iana" + }, + "application/vnd.adobe.xdp+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdp"] + }, + "application/vnd.adobe.xfdf": { + "source": "iana", + "extensions": ["xfdf"] + }, + "application/vnd.aether.imp": { + "source": "iana" + }, + "application/vnd.afpc.afplinedata": { + "source": "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + "source": "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + "source": "iana" + }, + "application/vnd.afpc.foca-charset": { + "source": "iana" + }, + "application/vnd.afpc.foca-codedfont": { + "source": "iana" + }, + "application/vnd.afpc.foca-codepage": { + "source": "iana" + }, + "application/vnd.afpc.modca": { + "source": "iana" + }, + "application/vnd.afpc.modca-cmtable": { + "source": "iana" + }, + "application/vnd.afpc.modca-formdef": { + "source": "iana" + }, + "application/vnd.afpc.modca-mediummap": { + "source": "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + "source": "iana" + }, + "application/vnd.afpc.modca-overlay": { + "source": "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + "source": "iana" + }, + "application/vnd.age": { + "source": "iana", + "extensions": ["age"] + }, + "application/vnd.ah-barcode": { + "source": "iana" + }, + "application/vnd.ahead.space": { + "source": "iana", + "extensions": ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + "source": "iana", + "extensions": ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + "source": "iana", + "extensions": ["azs"] + }, + "application/vnd.amadeus+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.amazon.ebook": { + "source": "apache", + "extensions": ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + "source": "iana" + }, + "application/vnd.americandynamics.acc": { + "source": "iana", + "extensions": ["acc"] + }, + "application/vnd.amiga.ami": { + "source": "iana", + "extensions": ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.android.ota": { + "source": "iana" + }, + "application/vnd.android.package-archive": { + "source": "apache", + "compressible": false, + "extensions": ["apk"] + }, + "application/vnd.anki": { + "source": "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + "source": "iana", + "extensions": ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + "source": "apache", + "extensions": ["fti"] + }, + "application/vnd.antix.game-component": { + "source": "iana", + "extensions": ["atx"] + }, + "application/vnd.apache.arrow.file": { + "source": "iana" + }, + "application/vnd.apache.arrow.stream": { + "source": "iana" + }, + "application/vnd.apache.thrift.binary": { + "source": "iana" + }, + "application/vnd.apache.thrift.compact": { + "source": "iana" + }, + "application/vnd.apache.thrift.json": { + "source": "iana" + }, + "application/vnd.api+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.aplextor.warrp+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.apothekende.reservation+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.apple.installer+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpkg"] + }, + "application/vnd.apple.keynote": { + "source": "iana", + "extensions": ["key"] + }, + "application/vnd.apple.mpegurl": { + "source": "iana", + "extensions": ["m3u8"] + }, + "application/vnd.apple.numbers": { + "source": "iana", + "extensions": ["numbers"] + }, + "application/vnd.apple.pages": { + "source": "iana", + "extensions": ["pages"] + }, + "application/vnd.apple.pkpass": { + "compressible": false, + "extensions": ["pkpass"] + }, + "application/vnd.arastra.swi": { + "source": "iana" + }, + "application/vnd.aristanetworks.swi": { + "source": "iana", + "extensions": ["swi"] + }, + "application/vnd.artisan+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.artsquare": { + "source": "iana" + }, + "application/vnd.astraea-software.iota": { + "source": "iana", + "extensions": ["iota"] + }, + "application/vnd.audiograph": { + "source": "iana", + "extensions": ["aep"] + }, + "application/vnd.autopackage": { + "source": "iana" + }, + "application/vnd.avalon+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.avistar+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.balsamiq.bmml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + "source": "iana" + }, + "application/vnd.banana-accounting": { + "source": "iana" + }, + "application/vnd.bbf.usp.error": { + "source": "iana" + }, + "application/vnd.bbf.usp.msg": { + "source": "iana" + }, + "application/vnd.bbf.usp.msg+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.bekitzur-stech+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.bint.med-content": { + "source": "iana" + }, + "application/vnd.biopax.rdf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.blink-idb-value-wrapper": { + "source": "iana" + }, + "application/vnd.blueice.multipass": { + "source": "iana", + "extensions": ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + "source": "iana" + }, + "application/vnd.bluetooth.le.oob": { + "source": "iana" + }, + "application/vnd.bmi": { + "source": "iana", + "extensions": ["bmi"] + }, + "application/vnd.bpf": { + "source": "iana" + }, + "application/vnd.bpf3": { + "source": "iana" + }, + "application/vnd.businessobjects": { + "source": "iana", + "extensions": ["rep"] + }, + "application/vnd.byu.uapi+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cab-jscript": { + "source": "iana" + }, + "application/vnd.canon-cpdl": { + "source": "iana" + }, + "application/vnd.canon-lips": { + "source": "iana" + }, + "application/vnd.capasystems-pg+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cendio.thinlinc.clientconf": { + "source": "iana" + }, + "application/vnd.century-systems.tcp_stream": { + "source": "iana" + }, + "application/vnd.chemdraw+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cdxml"] + }, + "application/vnd.chess-pgn": { + "source": "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + "source": "iana", + "extensions": ["mmd"] + }, + "application/vnd.ciedi": { + "source": "iana" + }, + "application/vnd.cinderella": { + "source": "iana", + "extensions": ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + "source": "iana" + }, + "application/vnd.citationstyles.style+xml": { + "source": "iana", + "compressible": true, + "extensions": ["csl"] + }, + "application/vnd.claymore": { + "source": "iana", + "extensions": ["cla"] + }, + "application/vnd.cloanto.rp9": { + "source": "iana", + "extensions": ["rp9"] + }, + "application/vnd.clonk.c4group": { + "source": "iana", + "extensions": ["c4g","c4d","c4f","c4p","c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + "source": "iana", + "extensions": ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + "source": "iana", + "extensions": ["c11amz"] + }, + "application/vnd.coffeescript": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.document": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + "source": "iana" + }, + "application/vnd.collection+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.collection.doc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.collection.next+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.comicbook+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.comicbook-rar": { + "source": "iana" + }, + "application/vnd.commerce-battelle": { + "source": "iana" + }, + "application/vnd.commonspace": { + "source": "iana", + "extensions": ["csp"] + }, + "application/vnd.contact.cmsg": { + "source": "iana", + "extensions": ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cosmocaller": { + "source": "iana", + "extensions": ["cmc"] + }, + "application/vnd.crick.clicker": { + "source": "iana", + "extensions": ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + "source": "iana", + "extensions": ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + "source": "iana", + "extensions": ["clkp"] + }, + "application/vnd.crick.clicker.template": { + "source": "iana", + "extensions": ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + "source": "iana", + "extensions": ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.crypto-shade-file": { + "source": "iana" + }, + "application/vnd.cryptomator.encrypted": { + "source": "iana" + }, + "application/vnd.cryptomator.vault": { + "source": "iana" + }, + "application/vnd.ctc-posml": { + "source": "iana", + "extensions": ["pml"] + }, + "application/vnd.ctct.ws+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.cups-pdf": { + "source": "iana" + }, + "application/vnd.cups-postscript": { + "source": "iana" + }, + "application/vnd.cups-ppd": { + "source": "iana", + "extensions": ["ppd"] + }, + "application/vnd.cups-raster": { + "source": "iana" + }, + "application/vnd.cups-raw": { + "source": "iana" + }, + "application/vnd.curl": { + "source": "iana" + }, + "application/vnd.curl.car": { + "source": "apache", + "extensions": ["car"] + }, + "application/vnd.curl.pcurl": { + "source": "apache", + "extensions": ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.cybank": { + "source": "iana" + }, + "application/vnd.cyclonedx+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cyclonedx+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.d3m-dataset": { + "source": "iana" + }, + "application/vnd.d3m-problem": { + "source": "iana" + }, + "application/vnd.dart": { + "source": "iana", + "compressible": true, + "extensions": ["dart"] + }, + "application/vnd.data-vision.rdz": { + "source": "iana", + "extensions": ["rdz"] + }, + "application/vnd.datapackage+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dataresource+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dbf": { + "source": "iana", + "extensions": ["dbf"] + }, + "application/vnd.debian.binary-package": { + "source": "iana" + }, + "application/vnd.dece.data": { + "source": "iana", + "extensions": ["uvf","uvvf","uvd","uvvd"] + }, + "application/vnd.dece.ttml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["uvt","uvvt"] + }, + "application/vnd.dece.unspecified": { + "source": "iana", + "extensions": ["uvx","uvvx"] + }, + "application/vnd.dece.zip": { + "source": "iana", + "extensions": ["uvz","uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + "source": "iana", + "extensions": ["fe_launch"] + }, + "application/vnd.desmume.movie": { + "source": "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + "source": "iana" + }, + "application/vnd.dm.delegation+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dna": { + "source": "iana", + "extensions": ["dna"] + }, + "application/vnd.document+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dolby.mlp": { + "source": "apache", + "extensions": ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + "source": "iana" + }, + "application/vnd.dolby.mobile.2": { + "source": "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + "source": "iana" + }, + "application/vnd.dpgraph": { + "source": "iana", + "extensions": ["dpg"] + }, + "application/vnd.dreamfactory": { + "source": "iana", + "extensions": ["dfac"] + }, + "application/vnd.drive+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ds-keypoint": { + "source": "apache", + "extensions": ["kpxx"] + }, + "application/vnd.dtg.local": { + "source": "iana" + }, + "application/vnd.dtg.local.flash": { + "source": "iana" + }, + "application/vnd.dtg.local.html": { + "source": "iana" + }, + "application/vnd.dvb.ait": { + "source": "iana", + "extensions": ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.dvbj": { + "source": "iana" + }, + "application/vnd.dvb.esgcontainer": { + "source": "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + "source": "iana" + }, + "application/vnd.dvb.ipdcroaming": { + "source": "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + "source": "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + "source": "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-container+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-generic+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-init+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.pfr": { + "source": "iana" + }, + "application/vnd.dvb.service": { + "source": "iana", + "extensions": ["svc"] + }, + "application/vnd.dxr": { + "source": "iana" + }, + "application/vnd.dynageo": { + "source": "iana", + "extensions": ["geo"] + }, + "application/vnd.dzr": { + "source": "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + "source": "iana" + }, + "application/vnd.ecdis-update": { + "source": "iana" + }, + "application/vnd.ecip.rlp": { + "source": "iana" + }, + "application/vnd.eclipse.ditto+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ecowin.chart": { + "source": "iana", + "extensions": ["mag"] + }, + "application/vnd.ecowin.filerequest": { + "source": "iana" + }, + "application/vnd.ecowin.fileupdate": { + "source": "iana" + }, + "application/vnd.ecowin.series": { + "source": "iana" + }, + "application/vnd.ecowin.seriesrequest": { + "source": "iana" + }, + "application/vnd.ecowin.seriesupdate": { + "source": "iana" + }, + "application/vnd.efi.img": { + "source": "iana" + }, + "application/vnd.efi.iso": { + "source": "iana" + }, + "application/vnd.emclient.accessrequest+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.enliven": { + "source": "iana", + "extensions": ["nml"] + }, + "application/vnd.enphase.envoy": { + "source": "iana" + }, + "application/vnd.eprints.data+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.epson.esf": { + "source": "iana", + "extensions": ["esf"] + }, + "application/vnd.epson.msf": { + "source": "iana", + "extensions": ["msf"] + }, + "application/vnd.epson.quickanime": { + "source": "iana", + "extensions": ["qam"] + }, + "application/vnd.epson.salt": { + "source": "iana", + "extensions": ["slt"] + }, + "application/vnd.epson.ssf": { + "source": "iana", + "extensions": ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + "source": "iana" + }, + "application/vnd.espass-espass+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.eszigno3+xml": { + "source": "iana", + "compressible": true, + "extensions": ["es3","et3"] + }, + "application/vnd.etsi.aoc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.asic-e+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.etsi.asic-s+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.etsi.cug+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvcommand+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvservice+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsync+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvueprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.mcid+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.mheg5": { + "source": "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.pstn+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.sci+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.simservs+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.timestamp-token": { + "source": "iana" + }, + "application/vnd.etsi.tsl+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.tsl.der": { + "source": "iana" + }, + "application/vnd.eu.kasparian.car+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.eudora.data": { + "source": "iana" + }, + "application/vnd.evolv.ecig.profile": { + "source": "iana" + }, + "application/vnd.evolv.ecig.settings": { + "source": "iana" + }, + "application/vnd.evolv.ecig.theme": { + "source": "iana" + }, + "application/vnd.exstream-empower+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.exstream-package": { + "source": "iana" + }, + "application/vnd.ezpix-album": { + "source": "iana", + "extensions": ["ez2"] + }, + "application/vnd.ezpix-package": { + "source": "iana", + "extensions": ["ez3"] + }, + "application/vnd.f-secure.mobile": { + "source": "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.fastcopy-disk-image": { + "source": "iana" + }, + "application/vnd.fdf": { + "source": "iana", + "extensions": ["fdf"] + }, + "application/vnd.fdsn.mseed": { + "source": "iana", + "extensions": ["mseed"] + }, + "application/vnd.fdsn.seed": { + "source": "iana", + "extensions": ["seed","dataless"] + }, + "application/vnd.ffsns": { + "source": "iana" + }, + "application/vnd.ficlab.flb+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.filmit.zfc": { + "source": "iana" + }, + "application/vnd.fints": { + "source": "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + "source": "iana" + }, + "application/vnd.flographit": { + "source": "iana", + "extensions": ["gph"] + }, + "application/vnd.fluxtime.clip": { + "source": "iana", + "extensions": ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + "source": "iana" + }, + "application/vnd.framemaker": { + "source": "iana", + "extensions": ["fm","frame","maker","book"] + }, + "application/vnd.frogans.fnc": { + "source": "iana", + "extensions": ["fnc"] + }, + "application/vnd.frogans.ltf": { + "source": "iana", + "extensions": ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + "source": "iana", + "extensions": ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.fujitsu.oasys": { + "source": "iana", + "extensions": ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + "source": "iana", + "extensions": ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + "source": "iana", + "extensions": ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + "source": "iana", + "extensions": ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + "source": "iana", + "extensions": ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + "source": "iana" + }, + "application/vnd.fujixerox.art4": { + "source": "iana" + }, + "application/vnd.fujixerox.ddd": { + "source": "iana", + "extensions": ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + "source": "iana", + "extensions": ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + "source": "iana", + "extensions": ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + "source": "iana" + }, + "application/vnd.fujixerox.hbpl": { + "source": "iana" + }, + "application/vnd.fut-misnet": { + "source": "iana" + }, + "application/vnd.futoin+cbor": { + "source": "iana" + }, + "application/vnd.futoin+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.fuzzysheet": { + "source": "iana", + "extensions": ["fzs"] + }, + "application/vnd.genomatix.tuxedo": { + "source": "iana", + "extensions": ["txd"] + }, + "application/vnd.gentics.grd+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.geo+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.geocube+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.geogebra.file": { + "source": "iana", + "extensions": ["ggb"] + }, + "application/vnd.geogebra.slides": { + "source": "iana" + }, + "application/vnd.geogebra.tool": { + "source": "iana", + "extensions": ["ggt"] + }, + "application/vnd.geometry-explorer": { + "source": "iana", + "extensions": ["gex","gre"] + }, + "application/vnd.geonext": { + "source": "iana", + "extensions": ["gxt"] + }, + "application/vnd.geoplan": { + "source": "iana", + "extensions": ["g2w"] + }, + "application/vnd.geospace": { + "source": "iana", + "extensions": ["g3w"] + }, + "application/vnd.gerber": { + "source": "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + "source": "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + "source": "iana" + }, + "application/vnd.gmx": { + "source": "iana", + "extensions": ["gmx"] + }, + "application/vnd.google-apps.document": { + "compressible": false, + "extensions": ["gdoc"] + }, + "application/vnd.google-apps.presentation": { + "compressible": false, + "extensions": ["gslides"] + }, + "application/vnd.google-apps.spreadsheet": { + "compressible": false, + "extensions": ["gsheet"] + }, + "application/vnd.google-earth.kml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["kml"] + }, + "application/vnd.google-earth.kmz": { + "source": "iana", + "compressible": false, + "extensions": ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.gov.sk.e-form+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.grafeq": { + "source": "iana", + "extensions": ["gqf","gqs"] + }, + "application/vnd.gridmp": { + "source": "iana" + }, + "application/vnd.groove-account": { + "source": "iana", + "extensions": ["gac"] + }, + "application/vnd.groove-help": { + "source": "iana", + "extensions": ["ghf"] + }, + "application/vnd.groove-identity-message": { + "source": "iana", + "extensions": ["gim"] + }, + "application/vnd.groove-injector": { + "source": "iana", + "extensions": ["grv"] + }, + "application/vnd.groove-tool-message": { + "source": "iana", + "extensions": ["gtm"] + }, + "application/vnd.groove-tool-template": { + "source": "iana", + "extensions": ["tpl"] + }, + "application/vnd.groove-vcard": { + "source": "iana", + "extensions": ["vcg"] + }, + "application/vnd.hal+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hal+xml": { + "source": "iana", + "compressible": true, + "extensions": ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + "source": "iana", + "compressible": true, + "extensions": ["zmm"] + }, + "application/vnd.hbci": { + "source": "iana", + "extensions": ["hbci"] + }, + "application/vnd.hc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hcl-bireports": { + "source": "iana" + }, + "application/vnd.hdt": { + "source": "iana" + }, + "application/vnd.heroku+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hhe.lesson-player": { + "source": "iana", + "extensions": ["les"] + }, + "application/vnd.hl7cda+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.hl7v2+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.hp-hpgl": { + "source": "iana", + "extensions": ["hpgl"] + }, + "application/vnd.hp-hpid": { + "source": "iana", + "extensions": ["hpid"] + }, + "application/vnd.hp-hps": { + "source": "iana", + "extensions": ["hps"] + }, + "application/vnd.hp-jlyt": { + "source": "iana", + "extensions": ["jlt"] + }, + "application/vnd.hp-pcl": { + "source": "iana", + "extensions": ["pcl"] + }, + "application/vnd.hp-pclxl": { + "source": "iana", + "extensions": ["pclxl"] + }, + "application/vnd.httphone": { + "source": "iana" + }, + "application/vnd.hydrostatix.sof-data": { + "source": "iana", + "extensions": ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hyper-item+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hyperdrive+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hzn-3d-crossword": { + "source": "iana" + }, + "application/vnd.ibm.afplinedata": { + "source": "iana" + }, + "application/vnd.ibm.electronic-media": { + "source": "iana" + }, + "application/vnd.ibm.minipay": { + "source": "iana", + "extensions": ["mpy"] + }, + "application/vnd.ibm.modcap": { + "source": "iana", + "extensions": ["afp","listafp","list3820"] + }, + "application/vnd.ibm.rights-management": { + "source": "iana", + "extensions": ["irm"] + }, + "application/vnd.ibm.secure-container": { + "source": "iana", + "extensions": ["sc"] + }, + "application/vnd.iccprofile": { + "source": "iana", + "extensions": ["icc","icm"] + }, + "application/vnd.ieee.1905": { + "source": "iana" + }, + "application/vnd.igloader": { + "source": "iana", + "extensions": ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.imagemeter.image+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.immervision-ivp": { + "source": "iana", + "extensions": ["ivp"] + }, + "application/vnd.immervision-ivu": { + "source": "iana", + "extensions": ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + "source": "iana" + }, + "application/vnd.ims.imsccv1p2": { + "source": "iana" + }, + "application/vnd.ims.imsccv1p3": { + "source": "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.informedcontrol.rms+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.informix-visionary": { + "source": "iana" + }, + "application/vnd.infotech.project": { + "source": "iana" + }, + "application/vnd.infotech.project+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.innopath.wamp.notification": { + "source": "iana" + }, + "application/vnd.insors.igm": { + "source": "iana", + "extensions": ["igm"] + }, + "application/vnd.intercon.formnet": { + "source": "iana", + "extensions": ["xpw","xpx"] + }, + "application/vnd.intergeo": { + "source": "iana", + "extensions": ["i2g"] + }, + "application/vnd.intertrust.digibox": { + "source": "iana" + }, + "application/vnd.intertrust.nncp": { + "source": "iana" + }, + "application/vnd.intu.qbo": { + "source": "iana", + "extensions": ["qbo"] + }, + "application/vnd.intu.qfx": { + "source": "iana", + "extensions": ["qfx"] + }, + "application/vnd.iptc.g2.catalogitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.newsitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.packageitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.planningitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ipunplugged.rcprofile": { + "source": "iana", + "extensions": ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + "source": "iana", + "compressible": true, + "extensions": ["irp"] + }, + "application/vnd.is-xpr": { + "source": "iana", + "extensions": ["xpr"] + }, + "application/vnd.isac.fcs": { + "source": "iana", + "extensions": ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.jam": { + "source": "iana", + "extensions": ["jam"] + }, + "application/vnd.japannet-directory-service": { + "source": "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-payment-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-registration": { + "source": "iana" + }, + "application/vnd.japannet-registration-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-verification": { + "source": "iana" + }, + "application/vnd.japannet-verification-wakeup": { + "source": "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + "source": "iana", + "extensions": ["rms"] + }, + "application/vnd.jisp": { + "source": "iana", + "extensions": ["jisp"] + }, + "application/vnd.joost.joda-archive": { + "source": "iana", + "extensions": ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + "source": "iana" + }, + "application/vnd.kahootz": { + "source": "iana", + "extensions": ["ktz","ktr"] + }, + "application/vnd.kde.karbon": { + "source": "iana", + "extensions": ["karbon"] + }, + "application/vnd.kde.kchart": { + "source": "iana", + "extensions": ["chrt"] + }, + "application/vnd.kde.kformula": { + "source": "iana", + "extensions": ["kfo"] + }, + "application/vnd.kde.kivio": { + "source": "iana", + "extensions": ["flw"] + }, + "application/vnd.kde.kontour": { + "source": "iana", + "extensions": ["kon"] + }, + "application/vnd.kde.kpresenter": { + "source": "iana", + "extensions": ["kpr","kpt"] + }, + "application/vnd.kde.kspread": { + "source": "iana", + "extensions": ["ksp"] + }, + "application/vnd.kde.kword": { + "source": "iana", + "extensions": ["kwd","kwt"] + }, + "application/vnd.kenameaapp": { + "source": "iana", + "extensions": ["htke"] + }, + "application/vnd.kidspiration": { + "source": "iana", + "extensions": ["kia"] + }, + "application/vnd.kinar": { + "source": "iana", + "extensions": ["kne","knp"] + }, + "application/vnd.koan": { + "source": "iana", + "extensions": ["skp","skd","skt","skm"] + }, + "application/vnd.kodak-descriptor": { + "source": "iana", + "extensions": ["sse"] + }, + "application/vnd.las": { + "source": "iana" + }, + "application/vnd.las.las+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.las.las+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lasxml"] + }, + "application/vnd.laszip": { + "source": "iana" + }, + "application/vnd.leap+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.liberty-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + "source": "iana", + "extensions": ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.loom": { + "source": "iana" + }, + "application/vnd.lotus-1-2-3": { + "source": "iana", + "extensions": ["123"] + }, + "application/vnd.lotus-approach": { + "source": "iana", + "extensions": ["apr"] + }, + "application/vnd.lotus-freelance": { + "source": "iana", + "extensions": ["pre"] + }, + "application/vnd.lotus-notes": { + "source": "iana", + "extensions": ["nsf"] + }, + "application/vnd.lotus-organizer": { + "source": "iana", + "extensions": ["org"] + }, + "application/vnd.lotus-screencam": { + "source": "iana", + "extensions": ["scm"] + }, + "application/vnd.lotus-wordpro": { + "source": "iana", + "extensions": ["lwp"] + }, + "application/vnd.macports.portpkg": { + "source": "iana", + "extensions": ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + "source": "iana", + "extensions": ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.conftoken+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.license+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.mdcf": { + "source": "iana" + }, + "application/vnd.mason+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.maxar.archive.3tz+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.maxmind.maxmind-db": { + "source": "iana" + }, + "application/vnd.mcd": { + "source": "iana", + "extensions": ["mcd"] + }, + "application/vnd.medcalcdata": { + "source": "iana", + "extensions": ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + "source": "iana", + "extensions": ["cdkey"] + }, + "application/vnd.meridian-slingshot": { + "source": "iana" + }, + "application/vnd.mfer": { + "source": "iana", + "extensions": ["mwf"] + }, + "application/vnd.mfmp": { + "source": "iana", + "extensions": ["mfm"] + }, + "application/vnd.micro+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.micrografx.flo": { + "source": "iana", + "extensions": ["flo"] + }, + "application/vnd.micrografx.igx": { + "source": "iana", + "extensions": ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + "source": "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + "source": "iana" + }, + "application/vnd.miele+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.mif": { + "source": "iana", + "extensions": ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + "source": "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + "source": "iana" + }, + "application/vnd.mobius.daf": { + "source": "iana", + "extensions": ["daf"] + }, + "application/vnd.mobius.dis": { + "source": "iana", + "extensions": ["dis"] + }, + "application/vnd.mobius.mbk": { + "source": "iana", + "extensions": ["mbk"] + }, + "application/vnd.mobius.mqy": { + "source": "iana", + "extensions": ["mqy"] + }, + "application/vnd.mobius.msl": { + "source": "iana", + "extensions": ["msl"] + }, + "application/vnd.mobius.plc": { + "source": "iana", + "extensions": ["plc"] + }, + "application/vnd.mobius.txf": { + "source": "iana", + "extensions": ["txf"] + }, + "application/vnd.mophun.application": { + "source": "iana", + "extensions": ["mpn"] + }, + "application/vnd.mophun.certificate": { + "source": "iana", + "extensions": ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + "source": "iana" + }, + "application/vnd.motorola.iprm": { + "source": "iana" + }, + "application/vnd.mozilla.xul+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xul"] + }, + "application/vnd.ms-3mfdocument": { + "source": "iana" + }, + "application/vnd.ms-artgalry": { + "source": "iana", + "extensions": ["cil"] + }, + "application/vnd.ms-asf": { + "source": "iana" + }, + "application/vnd.ms-cab-compressed": { + "source": "iana", + "extensions": ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + "source": "apache" + }, + "application/vnd.ms-excel": { + "source": "iana", + "compressible": false, + "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + "source": "iana", + "extensions": ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + "source": "iana", + "extensions": ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + "source": "iana", + "extensions": ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + "source": "iana", + "extensions": ["xltm"] + }, + "application/vnd.ms-fontobject": { + "source": "iana", + "compressible": true, + "extensions": ["eot"] + }, + "application/vnd.ms-htmlhelp": { + "source": "iana", + "extensions": ["chm"] + }, + "application/vnd.ms-ims": { + "source": "iana", + "extensions": ["ims"] + }, + "application/vnd.ms-lrm": { + "source": "iana", + "extensions": ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-officetheme": { + "source": "iana", + "extensions": ["thmx"] + }, + "application/vnd.ms-opentype": { + "source": "apache", + "compressible": true + }, + "application/vnd.ms-outlook": { + "compressible": false, + "extensions": ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + "source": "apache" + }, + "application/vnd.ms-pki.seccat": { + "source": "apache", + "extensions": ["cat"] + }, + "application/vnd.ms-pki.stl": { + "source": "apache", + "extensions": ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-powerpoint": { + "source": "iana", + "compressible": false, + "extensions": ["ppt","pps","pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + "source": "iana", + "extensions": ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + "source": "iana", + "extensions": ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + "source": "iana", + "extensions": ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + "source": "iana", + "extensions": ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + "source": "iana", + "extensions": ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-printing.printticket+xml": { + "source": "apache", + "compressible": true + }, + "application/vnd.ms-printschematicket+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-project": { + "source": "iana", + "extensions": ["mpp","mpt"] + }, + "application/vnd.ms-tnef": { + "source": "iana" + }, + "application/vnd.ms-windows.devicepairing": { + "source": "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + "source": "iana" + }, + "application/vnd.ms-windows.printerpairing": { + "source": "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + "source": "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + "source": "iana", + "extensions": ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + "source": "iana", + "extensions": ["dotm"] + }, + "application/vnd.ms-works": { + "source": "iana", + "extensions": ["wps","wks","wcm","wdb"] + }, + "application/vnd.ms-wpl": { + "source": "iana", + "extensions": ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + "source": "iana", + "compressible": false, + "extensions": ["xps"] + }, + "application/vnd.msa-disk-image": { + "source": "iana" + }, + "application/vnd.mseq": { + "source": "iana", + "extensions": ["mseq"] + }, + "application/vnd.msign": { + "source": "iana" + }, + "application/vnd.multiad.creator": { + "source": "iana" + }, + "application/vnd.multiad.creator.cif": { + "source": "iana" + }, + "application/vnd.music-niff": { + "source": "iana" + }, + "application/vnd.musician": { + "source": "iana", + "extensions": ["mus"] + }, + "application/vnd.muvee.style": { + "source": "iana", + "extensions": ["msty"] + }, + "application/vnd.mynfc": { + "source": "iana", + "extensions": ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ncd.control": { + "source": "iana" + }, + "application/vnd.ncd.reference": { + "source": "iana" + }, + "application/vnd.nearst.inv+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.nebumind.line": { + "source": "iana" + }, + "application/vnd.nervana": { + "source": "iana" + }, + "application/vnd.netfpx": { + "source": "iana" + }, + "application/vnd.neurolanguage.nlu": { + "source": "iana", + "extensions": ["nlu"] + }, + "application/vnd.nimn": { + "source": "iana" + }, + "application/vnd.nintendo.nitro.rom": { + "source": "iana" + }, + "application/vnd.nintendo.snes.rom": { + "source": "iana" + }, + "application/vnd.nitf": { + "source": "iana", + "extensions": ["ntf","nitf"] + }, + "application/vnd.noblenet-directory": { + "source": "iana", + "extensions": ["nnd"] + }, + "application/vnd.noblenet-sealer": { + "source": "iana", + "extensions": ["nns"] + }, + "application/vnd.noblenet-web": { + "source": "iana", + "extensions": ["nnw"] + }, + "application/vnd.nokia.catalogs": { + "source": "iana" + }, + "application/vnd.nokia.conml+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.conml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.iptv.config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.isds-radio-presets": { + "source": "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.landmark+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.landmarkcollection+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.n-gage.ac+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + "source": "iana", + "extensions": ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + "source": "iana", + "extensions": ["n-gage"] + }, + "application/vnd.nokia.ncd": { + "source": "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.pcd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.radio-preset": { + "source": "iana", + "extensions": ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + "source": "iana", + "extensions": ["rpss"] + }, + "application/vnd.novadigm.edm": { + "source": "iana", + "extensions": ["edm"] + }, + "application/vnd.novadigm.edx": { + "source": "iana", + "extensions": ["edx"] + }, + "application/vnd.novadigm.ext": { + "source": "iana", + "extensions": ["ext"] + }, + "application/vnd.ntt-local.content-share": { + "source": "iana" + }, + "application/vnd.ntt-local.file-transfer": { + "source": "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + "source": "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + "source": "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + "source": "iana" + }, + "application/vnd.oasis.opendocument.chart": { + "source": "iana", + "extensions": ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + "source": "iana", + "extensions": ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + "source": "iana", + "extensions": ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + "source": "iana", + "extensions": ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + "source": "iana", + "extensions": ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + "source": "iana", + "compressible": false, + "extensions": ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + "source": "iana", + "extensions": ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + "source": "iana", + "extensions": ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + "source": "iana", + "extensions": ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + "source": "iana", + "compressible": false, + "extensions": ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + "source": "iana", + "extensions": ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + "source": "iana", + "compressible": false, + "extensions": ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + "source": "iana", + "extensions": ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + "source": "iana", + "compressible": false, + "extensions": ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + "source": "iana", + "extensions": ["odm"] + }, + "application/vnd.oasis.opendocument.text-template": { + "source": "iana", + "extensions": ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + "source": "iana", + "extensions": ["oth"] + }, + "application/vnd.obn": { + "source": "iana" + }, + "application/vnd.ocf+cbor": { + "source": "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oftn.l10n+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.cspg-hexbinary": { + "source": "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.dae.xhtml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.pae.gem": { + "source": "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.spdlist+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.ueprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.userprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.olpc-sugar": { + "source": "iana", + "extensions": ["xo"] + }, + "application/vnd.oma-scws-config": { + "source": "iana" + }, + "application/vnd.oma-scws-http-request": { + "source": "iana" + }, + "application/vnd.oma-scws-http-response": { + "source": "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.imd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.ltkm": { + "source": "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + "source": "iana" + }, + "application/vnd.oma.bcast.sgboot": { + "source": "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.sgdu": { + "source": "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + "source": "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.sprov+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.stkm": { + "source": "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-feature-handler+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-pcc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-subs-invite+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-user-prefs+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.dcd": { + "source": "iana" + }, + "application/vnd.oma.dcdc": { + "source": "iana" + }, + "application/vnd.oma.dd2+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.group-usage-list+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.lwm2m+cbor": { + "source": "iana" + }, + "application/vnd.oma.lwm2m+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.lwm2m+tlv": { + "source": "iana" + }, + "application/vnd.oma.pal+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.final-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.groups+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.push": { + "source": "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.xcap-directory+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.omads-email+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omads-file+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omads-folder+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omaloc-supl-init": { + "source": "iana" + }, + "application/vnd.onepager": { + "source": "iana" + }, + "application/vnd.onepagertamp": { + "source": "iana" + }, + "application/vnd.onepagertamx": { + "source": "iana" + }, + "application/vnd.onepagertat": { + "source": "iana" + }, + "application/vnd.onepagertatp": { + "source": "iana" + }, + "application/vnd.onepagertatx": { + "source": "iana" + }, + "application/vnd.openblox.game+xml": { + "source": "iana", + "compressible": true, + "extensions": ["obgx"] + }, + "application/vnd.openblox.game-binary": { + "source": "iana" + }, + "application/vnd.openeye.oeb": { + "source": "iana" + }, + "application/vnd.openofficeorg.extension": { + "source": "apache", + "extensions": ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + "source": "iana", + "compressible": true, + "extensions": ["osm"] + }, + "application/vnd.opentimestamps.ots": { + "source": "iana" + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + "source": "iana", + "compressible": false, + "extensions": ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + "source": "iana", + "extensions": ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + "source": "iana", + "extensions": ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + "source": "iana", + "extensions": ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + "source": "iana", + "compressible": false, + "extensions": ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + "source": "iana", + "extensions": ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + "source": "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + "source": "iana", + "compressible": false, + "extensions": ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + "source": "iana", + "extensions": ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oracle.resource+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.orange.indata": { + "source": "iana" + }, + "application/vnd.osa.netdeploy": { + "source": "iana" + }, + "application/vnd.osgeo.mapguide.package": { + "source": "iana", + "extensions": ["mgp"] + }, + "application/vnd.osgi.bundle": { + "source": "iana" + }, + "application/vnd.osgi.dp": { + "source": "iana", + "extensions": ["dp"] + }, + "application/vnd.osgi.subsystem": { + "source": "iana", + "extensions": ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oxli.countgraph": { + "source": "iana" + }, + "application/vnd.pagerduty+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.palm": { + "source": "iana", + "extensions": ["pdb","pqa","oprc"] + }, + "application/vnd.panoply": { + "source": "iana" + }, + "application/vnd.paos.xml": { + "source": "iana" + }, + "application/vnd.patentdive": { + "source": "iana" + }, + "application/vnd.patientecommsdoc": { + "source": "iana" + }, + "application/vnd.pawaafile": { + "source": "iana", + "extensions": ["paw"] + }, + "application/vnd.pcos": { + "source": "iana" + }, + "application/vnd.pg.format": { + "source": "iana", + "extensions": ["str"] + }, + "application/vnd.pg.osasli": { + "source": "iana", + "extensions": ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + "source": "iana" + }, + "application/vnd.picsel": { + "source": "iana", + "extensions": ["efif"] + }, + "application/vnd.pmi.widget": { + "source": "iana", + "extensions": ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.pocketlearn": { + "source": "iana", + "extensions": ["plf"] + }, + "application/vnd.powerbuilder6": { + "source": "iana", + "extensions": ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + "source": "iana" + }, + "application/vnd.powerbuilder7": { + "source": "iana" + }, + "application/vnd.powerbuilder7-s": { + "source": "iana" + }, + "application/vnd.powerbuilder75": { + "source": "iana" + }, + "application/vnd.powerbuilder75-s": { + "source": "iana" + }, + "application/vnd.preminet": { + "source": "iana" + }, + "application/vnd.previewsystems.box": { + "source": "iana", + "extensions": ["box"] + }, + "application/vnd.proteus.magazine": { + "source": "iana", + "extensions": ["mgz"] + }, + "application/vnd.psfs": { + "source": "iana" + }, + "application/vnd.publishare-delta-tree": { + "source": "iana", + "extensions": ["qps"] + }, + "application/vnd.pvi.ptid1": { + "source": "iana", + "extensions": ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + "source": "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.qualcomm.brew-app-res": { + "source": "iana" + }, + "application/vnd.quarantainenet": { + "source": "iana" + }, + "application/vnd.quark.quarkxpress": { + "source": "iana", + "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] + }, + "application/vnd.quobject-quoxdocument": { + "source": "iana" + }, + "application/vnd.radisys.moml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-conf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.rainstor.data": { + "source": "iana" + }, + "application/vnd.rapid": { + "source": "iana" + }, + "application/vnd.rar": { + "source": "iana", + "extensions": ["rar"] + }, + "application/vnd.realvnc.bed": { + "source": "iana", + "extensions": ["bed"] + }, + "application/vnd.recordare.musicxml": { + "source": "iana", + "extensions": ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["musicxml"] + }, + "application/vnd.renlearn.rlprint": { + "source": "iana" + }, + "application/vnd.resilient.logic": { + "source": "iana" + }, + "application/vnd.restful+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.rig.cryptonote": { + "source": "iana", + "extensions": ["cryptonote"] + }, + "application/vnd.rim.cod": { + "source": "apache", + "extensions": ["cod"] + }, + "application/vnd.rn-realmedia": { + "source": "apache", + "extensions": ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + "source": "apache", + "extensions": ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + "source": "iana", + "compressible": true, + "extensions": ["link66"] + }, + "application/vnd.rs-274x": { + "source": "iana" + }, + "application/vnd.ruckus.download": { + "source": "iana" + }, + "application/vnd.s3sms": { + "source": "iana" + }, + "application/vnd.sailingtracker.track": { + "source": "iana", + "extensions": ["st"] + }, + "application/vnd.sar": { + "source": "iana" + }, + "application/vnd.sbm.cid": { + "source": "iana" + }, + "application/vnd.sbm.mid2": { + "source": "iana" + }, + "application/vnd.scribus": { + "source": "iana" + }, + "application/vnd.sealed.3df": { + "source": "iana" + }, + "application/vnd.sealed.csf": { + "source": "iana" + }, + "application/vnd.sealed.doc": { + "source": "iana" + }, + "application/vnd.sealed.eml": { + "source": "iana" + }, + "application/vnd.sealed.mht": { + "source": "iana" + }, + "application/vnd.sealed.net": { + "source": "iana" + }, + "application/vnd.sealed.ppt": { + "source": "iana" + }, + "application/vnd.sealed.tiff": { + "source": "iana" + }, + "application/vnd.sealed.xls": { + "source": "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + "source": "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + "source": "iana" + }, + "application/vnd.seemail": { + "source": "iana", + "extensions": ["see"] + }, + "application/vnd.seis+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.sema": { + "source": "iana", + "extensions": ["sema"] + }, + "application/vnd.semd": { + "source": "iana", + "extensions": ["semd"] + }, + "application/vnd.semf": { + "source": "iana", + "extensions": ["semf"] + }, + "application/vnd.shade-save-file": { + "source": "iana" + }, + "application/vnd.shana.informed.formdata": { + "source": "iana", + "extensions": ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + "source": "iana", + "extensions": ["itp"] + }, + "application/vnd.shana.informed.interchange": { + "source": "iana", + "extensions": ["iif"] + }, + "application/vnd.shana.informed.package": { + "source": "iana", + "extensions": ["ipk"] + }, + "application/vnd.shootproof+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.shopkick+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.shp": { + "source": "iana" + }, + "application/vnd.shx": { + "source": "iana" + }, + "application/vnd.sigrok.session": { + "source": "iana" + }, + "application/vnd.simtech-mindmapper": { + "source": "iana", + "extensions": ["twd","twds"] + }, + "application/vnd.siren+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.smaf": { + "source": "iana", + "extensions": ["mmf"] + }, + "application/vnd.smart.notebook": { + "source": "iana" + }, + "application/vnd.smart.teacher": { + "source": "iana", + "extensions": ["teacher"] + }, + "application/vnd.snesdev-page-table": { + "source": "iana" + }, + "application/vnd.software602.filler.form+xml": { + "source": "iana", + "compressible": true, + "extensions": ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + "source": "iana" + }, + "application/vnd.solent.sdkm+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sdkm","sdkd"] + }, + "application/vnd.spotfire.dxp": { + "source": "iana", + "extensions": ["dxp"] + }, + "application/vnd.spotfire.sfs": { + "source": "iana", + "extensions": ["sfs"] + }, + "application/vnd.sqlite3": { + "source": "iana" + }, + "application/vnd.sss-cod": { + "source": "iana" + }, + "application/vnd.sss-dtf": { + "source": "iana" + }, + "application/vnd.sss-ntf": { + "source": "iana" + }, + "application/vnd.stardivision.calc": { + "source": "apache", + "extensions": ["sdc"] + }, + "application/vnd.stardivision.draw": { + "source": "apache", + "extensions": ["sda"] + }, + "application/vnd.stardivision.impress": { + "source": "apache", + "extensions": ["sdd"] + }, + "application/vnd.stardivision.math": { + "source": "apache", + "extensions": ["smf"] + }, + "application/vnd.stardivision.writer": { + "source": "apache", + "extensions": ["sdw","vor"] + }, + "application/vnd.stardivision.writer-global": { + "source": "apache", + "extensions": ["sgl"] + }, + "application/vnd.stepmania.package": { + "source": "iana", + "extensions": ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + "source": "iana", + "extensions": ["sm"] + }, + "application/vnd.street-stream": { + "source": "iana" + }, + "application/vnd.sun.wadl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wadl"] + }, + "application/vnd.sun.xml.calc": { + "source": "apache", + "extensions": ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + "source": "apache", + "extensions": ["stc"] + }, + "application/vnd.sun.xml.draw": { + "source": "apache", + "extensions": ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + "source": "apache", + "extensions": ["std"] + }, + "application/vnd.sun.xml.impress": { + "source": "apache", + "extensions": ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + "source": "apache", + "extensions": ["sti"] + }, + "application/vnd.sun.xml.math": { + "source": "apache", + "extensions": ["sxm"] + }, + "application/vnd.sun.xml.writer": { + "source": "apache", + "extensions": ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + "source": "apache", + "extensions": ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + "source": "apache", + "extensions": ["stw"] + }, + "application/vnd.sus-calendar": { + "source": "iana", + "extensions": ["sus","susp"] + }, + "application/vnd.svd": { + "source": "iana", + "extensions": ["svd"] + }, + "application/vnd.swiftview-ics": { + "source": "iana" + }, + "application/vnd.sycle+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.syft+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.symbian.install": { + "source": "apache", + "extensions": ["sis","sisx"] + }, + "application/vnd.syncml+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + "source": "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + "source": "iana" + }, + "application/vnd.syncml.dmddf+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + "source": "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.syncml.ds.notification": { + "source": "iana" + }, + "application/vnd.tableschema+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.tao.intent-module-archive": { + "source": "iana", + "extensions": ["tao"] + }, + "application/vnd.tcpdump.pcap": { + "source": "iana", + "extensions": ["pcap","cap","dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.tmd.mediaflex.api+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.tml": { + "source": "iana" + }, + "application/vnd.tmobile-livetv": { + "source": "iana", + "extensions": ["tmo"] + }, + "application/vnd.tri.onesource": { + "source": "iana" + }, + "application/vnd.trid.tpt": { + "source": "iana", + "extensions": ["tpt"] + }, + "application/vnd.triscape.mxs": { + "source": "iana", + "extensions": ["mxs"] + }, + "application/vnd.trueapp": { + "source": "iana", + "extensions": ["tra"] + }, + "application/vnd.truedoc": { + "source": "iana" + }, + "application/vnd.ubisoft.webplayer": { + "source": "iana" + }, + "application/vnd.ufdl": { + "source": "iana", + "extensions": ["ufd","ufdl"] + }, + "application/vnd.uiq.theme": { + "source": "iana", + "extensions": ["utz"] + }, + "application/vnd.umajin": { + "source": "iana", + "extensions": ["umj"] + }, + "application/vnd.unity": { + "source": "iana", + "extensions": ["unityweb"] + }, + "application/vnd.uoml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["uoml"] + }, + "application/vnd.uplanet.alert": { + "source": "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.bearer-choice": { + "source": "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.cacheop": { + "source": "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.channel": { + "source": "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.list": { + "source": "iana" + }, + "application/vnd.uplanet.list-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.listcmd": { + "source": "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.signal": { + "source": "iana" + }, + "application/vnd.uri-map": { + "source": "iana" + }, + "application/vnd.valve.source.material": { + "source": "iana" + }, + "application/vnd.vcx": { + "source": "iana", + "extensions": ["vcx"] + }, + "application/vnd.vd-study": { + "source": "iana" + }, + "application/vnd.vectorworks": { + "source": "iana" + }, + "application/vnd.vel+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.verimatrix.vcas": { + "source": "iana" + }, + "application/vnd.veritone.aion+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.veryant.thin": { + "source": "iana" + }, + "application/vnd.ves.encrypted": { + "source": "iana" + }, + "application/vnd.vidsoft.vidconference": { + "source": "iana" + }, + "application/vnd.visio": { + "source": "iana", + "extensions": ["vsd","vst","vss","vsw"] + }, + "application/vnd.visionary": { + "source": "iana", + "extensions": ["vis"] + }, + "application/vnd.vividence.scriptfile": { + "source": "iana" + }, + "application/vnd.vsf": { + "source": "iana", + "extensions": ["vsf"] + }, + "application/vnd.wap.sic": { + "source": "iana" + }, + "application/vnd.wap.slc": { + "source": "iana" + }, + "application/vnd.wap.wbxml": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["wbxml"] + }, + "application/vnd.wap.wmlc": { + "source": "iana", + "extensions": ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + "source": "iana", + "extensions": ["wmlsc"] + }, + "application/vnd.webturbo": { + "source": "iana", + "extensions": ["wtb"] + }, + "application/vnd.wfa.dpp": { + "source": "iana" + }, + "application/vnd.wfa.p2p": { + "source": "iana" + }, + "application/vnd.wfa.wsc": { + "source": "iana" + }, + "application/vnd.windows.devicepairing": { + "source": "iana" + }, + "application/vnd.wmc": { + "source": "iana" + }, + "application/vnd.wmf.bootstrap": { + "source": "iana" + }, + "application/vnd.wolfram.mathematica": { + "source": "iana" + }, + "application/vnd.wolfram.mathematica.package": { + "source": "iana" + }, + "application/vnd.wolfram.player": { + "source": "iana", + "extensions": ["nbp"] + }, + "application/vnd.wordperfect": { + "source": "iana", + "extensions": ["wpd"] + }, + "application/vnd.wqd": { + "source": "iana", + "extensions": ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + "source": "iana" + }, + "application/vnd.wt.stf": { + "source": "iana", + "extensions": ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + "source": "iana" + }, + "application/vnd.wv.csp+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.wv.ssp+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.xacml+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.xara": { + "source": "iana", + "extensions": ["xar"] + }, + "application/vnd.xfdl": { + "source": "iana", + "extensions": ["xfdl"] + }, + "application/vnd.xfdl.webform": { + "source": "iana" + }, + "application/vnd.xmi+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.xmpie.cpkg": { + "source": "iana" + }, + "application/vnd.xmpie.dpkg": { + "source": "iana" + }, + "application/vnd.xmpie.plan": { + "source": "iana" + }, + "application/vnd.xmpie.ppkg": { + "source": "iana" + }, + "application/vnd.xmpie.xlim": { + "source": "iana" + }, + "application/vnd.yamaha.hv-dic": { + "source": "iana", + "extensions": ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + "source": "iana", + "extensions": ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + "source": "iana", + "extensions": ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + "source": "iana", + "extensions": ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + "source": "iana", + "compressible": true, + "extensions": ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + "source": "iana" + }, + "application/vnd.yamaha.smaf-audio": { + "source": "iana", + "extensions": ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + "source": "iana", + "extensions": ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + "source": "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + "source": "iana" + }, + "application/vnd.yaoweme": { + "source": "iana" + }, + "application/vnd.yellowriver-custom-menu": { + "source": "iana", + "extensions": ["cmp"] + }, + "application/vnd.youtube.yt": { + "source": "iana" + }, + "application/vnd.zul": { + "source": "iana", + "extensions": ["zir","zirz"] + }, + "application/vnd.zzazz.deck+xml": { + "source": "iana", + "compressible": true, + "extensions": ["zaz"] + }, + "application/voicexml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["vxml"] + }, + "application/voucher-cms+json": { + "source": "iana", + "compressible": true + }, + "application/vq-rtcpxr": { + "source": "iana" + }, + "application/wasm": { + "source": "iana", + "compressible": true, + "extensions": ["wasm"] + }, + "application/watcherinfo+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wif"] + }, + "application/webpush-options+json": { + "source": "iana", + "compressible": true + }, + "application/whoispp-query": { + "source": "iana" + }, + "application/whoispp-response": { + "source": "iana" + }, + "application/widget": { + "source": "iana", + "extensions": ["wgt"] + }, + "application/winhlp": { + "source": "apache", + "extensions": ["hlp"] + }, + "application/wita": { + "source": "iana" + }, + "application/wordperfect5.1": { + "source": "iana" + }, + "application/wsdl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wsdl"] + }, + "application/wspolicy+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wspolicy"] + }, + "application/x-7z-compressed": { + "source": "apache", + "compressible": false, + "extensions": ["7z"] + }, + "application/x-abiword": { + "source": "apache", + "extensions": ["abw"] + }, + "application/x-ace-compressed": { + "source": "apache", + "extensions": ["ace"] + }, + "application/x-amf": { + "source": "apache" + }, + "application/x-apple-diskimage": { + "source": "apache", + "extensions": ["dmg"] + }, + "application/x-arj": { + "compressible": false, + "extensions": ["arj"] + }, + "application/x-authorware-bin": { + "source": "apache", + "extensions": ["aab","x32","u32","vox"] + }, + "application/x-authorware-map": { + "source": "apache", + "extensions": ["aam"] + }, + "application/x-authorware-seg": { + "source": "apache", + "extensions": ["aas"] + }, + "application/x-bcpio": { + "source": "apache", + "extensions": ["bcpio"] + }, + "application/x-bdoc": { + "compressible": false, + "extensions": ["bdoc"] + }, + "application/x-bittorrent": { + "source": "apache", + "extensions": ["torrent"] + }, + "application/x-blorb": { + "source": "apache", + "extensions": ["blb","blorb"] + }, + "application/x-bzip": { + "source": "apache", + "compressible": false, + "extensions": ["bz"] + }, + "application/x-bzip2": { + "source": "apache", + "compressible": false, + "extensions": ["bz2","boz"] + }, + "application/x-cbr": { + "source": "apache", + "extensions": ["cbr","cba","cbt","cbz","cb7"] + }, + "application/x-cdlink": { + "source": "apache", + "extensions": ["vcd"] + }, + "application/x-cfs-compressed": { + "source": "apache", + "extensions": ["cfs"] + }, + "application/x-chat": { + "source": "apache", + "extensions": ["chat"] + }, + "application/x-chess-pgn": { + "source": "apache", + "extensions": ["pgn"] + }, + "application/x-chrome-extension": { + "extensions": ["crx"] + }, + "application/x-cocoa": { + "source": "nginx", + "extensions": ["cco"] + }, + "application/x-compress": { + "source": "apache" + }, + "application/x-conference": { + "source": "apache", + "extensions": ["nsc"] + }, + "application/x-cpio": { + "source": "apache", + "extensions": ["cpio"] + }, + "application/x-csh": { + "source": "apache", + "extensions": ["csh"] + }, + "application/x-deb": { + "compressible": false + }, + "application/x-debian-package": { + "source": "apache", + "extensions": ["deb","udeb"] + }, + "application/x-dgc-compressed": { + "source": "apache", + "extensions": ["dgc"] + }, + "application/x-director": { + "source": "apache", + "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] + }, + "application/x-doom": { + "source": "apache", + "extensions": ["wad"] + }, + "application/x-dtbncx+xml": { + "source": "apache", + "compressible": true, + "extensions": ["ncx"] + }, + "application/x-dtbook+xml": { + "source": "apache", + "compressible": true, + "extensions": ["dtb"] + }, + "application/x-dtbresource+xml": { + "source": "apache", + "compressible": true, + "extensions": ["res"] + }, + "application/x-dvi": { + "source": "apache", + "compressible": false, + "extensions": ["dvi"] + }, + "application/x-envoy": { + "source": "apache", + "extensions": ["evy"] + }, + "application/x-eva": { + "source": "apache", + "extensions": ["eva"] + }, + "application/x-font-bdf": { + "source": "apache", + "extensions": ["bdf"] + }, + "application/x-font-dos": { + "source": "apache" + }, + "application/x-font-framemaker": { + "source": "apache" + }, + "application/x-font-ghostscript": { + "source": "apache", + "extensions": ["gsf"] + }, + "application/x-font-libgrx": { + "source": "apache" + }, + "application/x-font-linux-psf": { + "source": "apache", + "extensions": ["psf"] + }, + "application/x-font-pcf": { + "source": "apache", + "extensions": ["pcf"] + }, + "application/x-font-snf": { + "source": "apache", + "extensions": ["snf"] + }, + "application/x-font-speedo": { + "source": "apache" + }, + "application/x-font-sunos-news": { + "source": "apache" + }, + "application/x-font-type1": { + "source": "apache", + "extensions": ["pfa","pfb","pfm","afm"] + }, + "application/x-font-vfont": { + "source": "apache" + }, + "application/x-freearc": { + "source": "apache", + "extensions": ["arc"] + }, + "application/x-futuresplash": { + "source": "apache", + "extensions": ["spl"] + }, + "application/x-gca-compressed": { + "source": "apache", + "extensions": ["gca"] + }, + "application/x-glulx": { + "source": "apache", + "extensions": ["ulx"] + }, + "application/x-gnumeric": { + "source": "apache", + "extensions": ["gnumeric"] + }, + "application/x-gramps-xml": { + "source": "apache", + "extensions": ["gramps"] + }, + "application/x-gtar": { + "source": "apache", + "extensions": ["gtar"] + }, + "application/x-gzip": { + "source": "apache" + }, + "application/x-hdf": { + "source": "apache", + "extensions": ["hdf"] + }, + "application/x-httpd-php": { + "compressible": true, + "extensions": ["php"] + }, + "application/x-install-instructions": { + "source": "apache", + "extensions": ["install"] + }, + "application/x-iso9660-image": { + "source": "apache", + "extensions": ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + "extensions": ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + "extensions": ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + "extensions": ["pages"] + }, + "application/x-java-archive-diff": { + "source": "nginx", + "extensions": ["jardiff"] + }, + "application/x-java-jnlp-file": { + "source": "apache", + "compressible": false, + "extensions": ["jnlp"] + }, + "application/x-javascript": { + "compressible": true + }, + "application/x-keepass2": { + "extensions": ["kdbx"] + }, + "application/x-latex": { + "source": "apache", + "compressible": false, + "extensions": ["latex"] + }, + "application/x-lua-bytecode": { + "extensions": ["luac"] + }, + "application/x-lzh-compressed": { + "source": "apache", + "extensions": ["lzh","lha"] + }, + "application/x-makeself": { + "source": "nginx", + "extensions": ["run"] + }, + "application/x-mie": { + "source": "apache", + "extensions": ["mie"] + }, + "application/x-mobipocket-ebook": { + "source": "apache", + "extensions": ["prc","mobi"] + }, + "application/x-mpegurl": { + "compressible": false + }, + "application/x-ms-application": { + "source": "apache", + "extensions": ["application"] + }, + "application/x-ms-shortcut": { + "source": "apache", + "extensions": ["lnk"] + }, + "application/x-ms-wmd": { + "source": "apache", + "extensions": ["wmd"] + }, + "application/x-ms-wmz": { + "source": "apache", + "extensions": ["wmz"] + }, + "application/x-ms-xbap": { + "source": "apache", + "extensions": ["xbap"] + }, + "application/x-msaccess": { + "source": "apache", + "extensions": ["mdb"] + }, + "application/x-msbinder": { + "source": "apache", + "extensions": ["obd"] + }, + "application/x-mscardfile": { + "source": "apache", + "extensions": ["crd"] + }, + "application/x-msclip": { + "source": "apache", + "extensions": ["clp"] + }, + "application/x-msdos-program": { + "extensions": ["exe"] + }, + "application/x-msdownload": { + "source": "apache", + "extensions": ["exe","dll","com","bat","msi"] + }, + "application/x-msmediaview": { + "source": "apache", + "extensions": ["mvb","m13","m14"] + }, + "application/x-msmetafile": { + "source": "apache", + "extensions": ["wmf","wmz","emf","emz"] + }, + "application/x-msmoney": { + "source": "apache", + "extensions": ["mny"] + }, + "application/x-mspublisher": { + "source": "apache", + "extensions": ["pub"] + }, + "application/x-msschedule": { + "source": "apache", + "extensions": ["scd"] + }, + "application/x-msterminal": { + "source": "apache", + "extensions": ["trm"] + }, + "application/x-mswrite": { + "source": "apache", + "extensions": ["wri"] + }, + "application/x-netcdf": { + "source": "apache", + "extensions": ["nc","cdf"] + }, + "application/x-ns-proxy-autoconfig": { + "compressible": true, + "extensions": ["pac"] + }, + "application/x-nzb": { + "source": "apache", + "extensions": ["nzb"] + }, + "application/x-perl": { + "source": "nginx", + "extensions": ["pl","pm"] + }, + "application/x-pilot": { + "source": "nginx", + "extensions": ["prc","pdb"] + }, + "application/x-pkcs12": { + "source": "apache", + "compressible": false, + "extensions": ["p12","pfx"] + }, + "application/x-pkcs7-certificates": { + "source": "apache", + "extensions": ["p7b","spc"] + }, + "application/x-pkcs7-certreqresp": { + "source": "apache", + "extensions": ["p7r"] + }, + "application/x-pki-message": { + "source": "iana" + }, + "application/x-rar-compressed": { + "source": "apache", + "compressible": false, + "extensions": ["rar"] + }, + "application/x-redhat-package-manager": { + "source": "nginx", + "extensions": ["rpm"] + }, + "application/x-research-info-systems": { + "source": "apache", + "extensions": ["ris"] + }, + "application/x-sea": { + "source": "nginx", + "extensions": ["sea"] + }, + "application/x-sh": { + "source": "apache", + "compressible": true, + "extensions": ["sh"] + }, + "application/x-shar": { + "source": "apache", + "extensions": ["shar"] + }, + "application/x-shockwave-flash": { + "source": "apache", + "compressible": false, + "extensions": ["swf"] + }, + "application/x-silverlight-app": { + "source": "apache", + "extensions": ["xap"] + }, + "application/x-sql": { + "source": "apache", + "extensions": ["sql"] + }, + "application/x-stuffit": { + "source": "apache", + "compressible": false, + "extensions": ["sit"] + }, + "application/x-stuffitx": { + "source": "apache", + "extensions": ["sitx"] + }, + "application/x-subrip": { + "source": "apache", + "extensions": ["srt"] + }, + "application/x-sv4cpio": { + "source": "apache", + "extensions": ["sv4cpio"] + }, + "application/x-sv4crc": { + "source": "apache", + "extensions": ["sv4crc"] + }, + "application/x-t3vm-image": { + "source": "apache", + "extensions": ["t3"] + }, + "application/x-tads": { + "source": "apache", + "extensions": ["gam"] + }, + "application/x-tar": { + "source": "apache", + "compressible": true, + "extensions": ["tar"] + }, + "application/x-tcl": { + "source": "apache", + "extensions": ["tcl","tk"] + }, + "application/x-tex": { + "source": "apache", + "extensions": ["tex"] + }, + "application/x-tex-tfm": { + "source": "apache", + "extensions": ["tfm"] + }, + "application/x-texinfo": { + "source": "apache", + "extensions": ["texinfo","texi"] + }, + "application/x-tgif": { + "source": "apache", + "extensions": ["obj"] + }, + "application/x-ustar": { + "source": "apache", + "extensions": ["ustar"] + }, + "application/x-virtualbox-hdd": { + "compressible": true, + "extensions": ["hdd"] + }, + "application/x-virtualbox-ova": { + "compressible": true, + "extensions": ["ova"] + }, + "application/x-virtualbox-ovf": { + "compressible": true, + "extensions": ["ovf"] + }, + "application/x-virtualbox-vbox": { + "compressible": true, + "extensions": ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + "compressible": false, + "extensions": ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + "compressible": true, + "extensions": ["vdi"] + }, + "application/x-virtualbox-vhd": { + "compressible": true, + "extensions": ["vhd"] + }, + "application/x-virtualbox-vmdk": { + "compressible": true, + "extensions": ["vmdk"] + }, + "application/x-wais-source": { + "source": "apache", + "extensions": ["src"] + }, + "application/x-web-app-manifest+json": { + "compressible": true, + "extensions": ["webapp"] + }, + "application/x-www-form-urlencoded": { + "source": "iana", + "compressible": true + }, + "application/x-x509-ca-cert": { + "source": "iana", + "extensions": ["der","crt","pem"] + }, + "application/x-x509-ca-ra-cert": { + "source": "iana" + }, + "application/x-x509-next-ca-cert": { + "source": "iana" + }, + "application/x-xfig": { + "source": "apache", + "extensions": ["fig"] + }, + "application/x-xliff+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xlf"] + }, + "application/x-xpinstall": { + "source": "apache", + "compressible": false, + "extensions": ["xpi"] + }, + "application/x-xz": { + "source": "apache", + "extensions": ["xz"] + }, + "application/x-zmachine": { + "source": "apache", + "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] + }, + "application/x400-bp": { + "source": "iana" + }, + "application/xacml+xml": { + "source": "iana", + "compressible": true + }, + "application/xaml+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xaml"] + }, + "application/xcap-att+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xav"] + }, + "application/xcap-caps+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xca"] + }, + "application/xcap-diff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdf"] + }, + "application/xcap-el+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xel"] + }, + "application/xcap-error+xml": { + "source": "iana", + "compressible": true + }, + "application/xcap-ns+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xns"] + }, + "application/xcon-conference-info+xml": { + "source": "iana", + "compressible": true + }, + "application/xcon-conference-info-diff+xml": { + "source": "iana", + "compressible": true + }, + "application/xenc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xenc"] + }, + "application/xhtml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xhtml","xht"] + }, + "application/xhtml-voice+xml": { + "source": "apache", + "compressible": true + }, + "application/xliff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xlf"] + }, + "application/xml": { + "source": "iana", + "compressible": true, + "extensions": ["xml","xsl","xsd","rng"] + }, + "application/xml-dtd": { + "source": "iana", + "compressible": true, + "extensions": ["dtd"] + }, + "application/xml-external-parsed-entity": { + "source": "iana" + }, + "application/xml-patch+xml": { + "source": "iana", + "compressible": true + }, + "application/xmpp+xml": { + "source": "iana", + "compressible": true + }, + "application/xop+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xop"] + }, + "application/xproc+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xpl"] + }, + "application/xslt+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xsl","xslt"] + }, + "application/xspf+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xspf"] + }, + "application/xv+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mxml","xhvml","xvml","xvm"] + }, + "application/yang": { + "source": "iana", + "extensions": ["yang"] + }, + "application/yang-data+json": { + "source": "iana", + "compressible": true + }, + "application/yang-data+xml": { + "source": "iana", + "compressible": true + }, + "application/yang-patch+json": { + "source": "iana", + "compressible": true + }, + "application/yang-patch+xml": { + "source": "iana", + "compressible": true + }, + "application/yin+xml": { + "source": "iana", + "compressible": true, + "extensions": ["yin"] + }, + "application/zip": { + "source": "iana", + "compressible": false, + "extensions": ["zip"] + }, + "application/zlib": { + "source": "iana" + }, + "application/zstd": { + "source": "iana" + }, + "audio/1d-interleaved-parityfec": { + "source": "iana" + }, + "audio/32kadpcm": { + "source": "iana" + }, + "audio/3gpp": { + "source": "iana", + "compressible": false, + "extensions": ["3gpp"] + }, + "audio/3gpp2": { + "source": "iana" + }, + "audio/aac": { + "source": "iana" + }, + "audio/ac3": { + "source": "iana" + }, + "audio/adpcm": { + "source": "apache", + "extensions": ["adp"] + }, + "audio/amr": { + "source": "iana", + "extensions": ["amr"] + }, + "audio/amr-wb": { + "source": "iana" + }, + "audio/amr-wb+": { + "source": "iana" + }, + "audio/aptx": { + "source": "iana" + }, + "audio/asc": { + "source": "iana" + }, + "audio/atrac-advanced-lossless": { + "source": "iana" + }, + "audio/atrac-x": { + "source": "iana" + }, + "audio/atrac3": { + "source": "iana" + }, + "audio/basic": { + "source": "iana", + "compressible": false, + "extensions": ["au","snd"] + }, + "audio/bv16": { + "source": "iana" + }, + "audio/bv32": { + "source": "iana" + }, + "audio/clearmode": { + "source": "iana" + }, + "audio/cn": { + "source": "iana" + }, + "audio/dat12": { + "source": "iana" + }, + "audio/dls": { + "source": "iana" + }, + "audio/dsr-es201108": { + "source": "iana" + }, + "audio/dsr-es202050": { + "source": "iana" + }, + "audio/dsr-es202211": { + "source": "iana" + }, + "audio/dsr-es202212": { + "source": "iana" + }, + "audio/dv": { + "source": "iana" + }, + "audio/dvi4": { + "source": "iana" + }, + "audio/eac3": { + "source": "iana" + }, + "audio/encaprtp": { + "source": "iana" + }, + "audio/evrc": { + "source": "iana" + }, + "audio/evrc-qcp": { + "source": "iana" + }, + "audio/evrc0": { + "source": "iana" + }, + "audio/evrc1": { + "source": "iana" + }, + "audio/evrcb": { + "source": "iana" + }, + "audio/evrcb0": { + "source": "iana" + }, + "audio/evrcb1": { + "source": "iana" + }, + "audio/evrcnw": { + "source": "iana" + }, + "audio/evrcnw0": { + "source": "iana" + }, + "audio/evrcnw1": { + "source": "iana" + }, + "audio/evrcwb": { + "source": "iana" + }, + "audio/evrcwb0": { + "source": "iana" + }, + "audio/evrcwb1": { + "source": "iana" + }, + "audio/evs": { + "source": "iana" + }, + "audio/flexfec": { + "source": "iana" + }, + "audio/fwdred": { + "source": "iana" + }, + "audio/g711-0": { + "source": "iana" + }, + "audio/g719": { + "source": "iana" + }, + "audio/g722": { + "source": "iana" + }, + "audio/g7221": { + "source": "iana" + }, + "audio/g723": { + "source": "iana" + }, + "audio/g726-16": { + "source": "iana" + }, + "audio/g726-24": { + "source": "iana" + }, + "audio/g726-32": { + "source": "iana" + }, + "audio/g726-40": { + "source": "iana" + }, + "audio/g728": { + "source": "iana" + }, + "audio/g729": { + "source": "iana" + }, + "audio/g7291": { + "source": "iana" + }, + "audio/g729d": { + "source": "iana" + }, + "audio/g729e": { + "source": "iana" + }, + "audio/gsm": { + "source": "iana" + }, + "audio/gsm-efr": { + "source": "iana" + }, + "audio/gsm-hr-08": { + "source": "iana" + }, + "audio/ilbc": { + "source": "iana" + }, + "audio/ip-mr_v2.5": { + "source": "iana" + }, + "audio/isac": { + "source": "apache" + }, + "audio/l16": { + "source": "iana" + }, + "audio/l20": { + "source": "iana" + }, + "audio/l24": { + "source": "iana", + "compressible": false + }, + "audio/l8": { + "source": "iana" + }, + "audio/lpc": { + "source": "iana" + }, + "audio/melp": { + "source": "iana" + }, + "audio/melp1200": { + "source": "iana" + }, + "audio/melp2400": { + "source": "iana" + }, + "audio/melp600": { + "source": "iana" + }, + "audio/mhas": { + "source": "iana" + }, + "audio/midi": { + "source": "apache", + "extensions": ["mid","midi","kar","rmi"] + }, + "audio/mobile-xmf": { + "source": "iana", + "extensions": ["mxmf"] + }, + "audio/mp3": { + "compressible": false, + "extensions": ["mp3"] + }, + "audio/mp4": { + "source": "iana", + "compressible": false, + "extensions": ["m4a","mp4a"] + }, + "audio/mp4a-latm": { + "source": "iana" + }, + "audio/mpa": { + "source": "iana" + }, + "audio/mpa-robust": { + "source": "iana" + }, + "audio/mpeg": { + "source": "iana", + "compressible": false, + "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] + }, + "audio/mpeg4-generic": { + "source": "iana" + }, + "audio/musepack": { + "source": "apache" + }, + "audio/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["oga","ogg","spx","opus"] + }, + "audio/opus": { + "source": "iana" + }, + "audio/parityfec": { + "source": "iana" + }, + "audio/pcma": { + "source": "iana" + }, + "audio/pcma-wb": { + "source": "iana" + }, + "audio/pcmu": { + "source": "iana" + }, + "audio/pcmu-wb": { + "source": "iana" + }, + "audio/prs.sid": { + "source": "iana" + }, + "audio/qcelp": { + "source": "iana" + }, + "audio/raptorfec": { + "source": "iana" + }, + "audio/red": { + "source": "iana" + }, + "audio/rtp-enc-aescm128": { + "source": "iana" + }, + "audio/rtp-midi": { + "source": "iana" + }, + "audio/rtploopback": { + "source": "iana" + }, + "audio/rtx": { + "source": "iana" + }, + "audio/s3m": { + "source": "apache", + "extensions": ["s3m"] + }, + "audio/scip": { + "source": "iana" + }, + "audio/silk": { + "source": "apache", + "extensions": ["sil"] + }, + "audio/smv": { + "source": "iana" + }, + "audio/smv-qcp": { + "source": "iana" + }, + "audio/smv0": { + "source": "iana" + }, + "audio/sofa": { + "source": "iana" + }, + "audio/sp-midi": { + "source": "iana" + }, + "audio/speex": { + "source": "iana" + }, + "audio/t140c": { + "source": "iana" + }, + "audio/t38": { + "source": "iana" + }, + "audio/telephone-event": { + "source": "iana" + }, + "audio/tetra_acelp": { + "source": "iana" + }, + "audio/tetra_acelp_bb": { + "source": "iana" + }, + "audio/tone": { + "source": "iana" + }, + "audio/tsvcis": { + "source": "iana" + }, + "audio/uemclip": { + "source": "iana" + }, + "audio/ulpfec": { + "source": "iana" + }, + "audio/usac": { + "source": "iana" + }, + "audio/vdvi": { + "source": "iana" + }, + "audio/vmr-wb": { + "source": "iana" + }, + "audio/vnd.3gpp.iufp": { + "source": "iana" + }, + "audio/vnd.4sb": { + "source": "iana" + }, + "audio/vnd.audiokoz": { + "source": "iana" + }, + "audio/vnd.celp": { + "source": "iana" + }, + "audio/vnd.cisco.nse": { + "source": "iana" + }, + "audio/vnd.cmles.radio-events": { + "source": "iana" + }, + "audio/vnd.cns.anp1": { + "source": "iana" + }, + "audio/vnd.cns.inf1": { + "source": "iana" + }, + "audio/vnd.dece.audio": { + "source": "iana", + "extensions": ["uva","uvva"] + }, + "audio/vnd.digital-winds": { + "source": "iana", + "extensions": ["eol"] + }, + "audio/vnd.dlna.adts": { + "source": "iana" + }, + "audio/vnd.dolby.heaac.1": { + "source": "iana" + }, + "audio/vnd.dolby.heaac.2": { + "source": "iana" + }, + "audio/vnd.dolby.mlp": { + "source": "iana" + }, + "audio/vnd.dolby.mps": { + "source": "iana" + }, + "audio/vnd.dolby.pl2": { + "source": "iana" + }, + "audio/vnd.dolby.pl2x": { + "source": "iana" + }, + "audio/vnd.dolby.pl2z": { + "source": "iana" + }, + "audio/vnd.dolby.pulse.1": { + "source": "iana" + }, + "audio/vnd.dra": { + "source": "iana", + "extensions": ["dra"] + }, + "audio/vnd.dts": { + "source": "iana", + "extensions": ["dts"] + }, + "audio/vnd.dts.hd": { + "source": "iana", + "extensions": ["dtshd"] + }, + "audio/vnd.dts.uhd": { + "source": "iana" + }, + "audio/vnd.dvb.file": { + "source": "iana" + }, + "audio/vnd.everad.plj": { + "source": "iana" + }, + "audio/vnd.hns.audio": { + "source": "iana" + }, + "audio/vnd.lucent.voice": { + "source": "iana", + "extensions": ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + "source": "iana", + "extensions": ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + "source": "iana" + }, + "audio/vnd.nortel.vbk": { + "source": "iana" + }, + "audio/vnd.nuera.ecelp4800": { + "source": "iana", + "extensions": ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + "source": "iana", + "extensions": ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + "source": "iana", + "extensions": ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + "source": "iana" + }, + "audio/vnd.presonus.multitrack": { + "source": "iana" + }, + "audio/vnd.qcelp": { + "source": "iana" + }, + "audio/vnd.rhetorex.32kadpcm": { + "source": "iana" + }, + "audio/vnd.rip": { + "source": "iana", + "extensions": ["rip"] + }, + "audio/vnd.rn-realaudio": { + "compressible": false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + "source": "iana" + }, + "audio/vnd.vmx.cvsd": { + "source": "iana" + }, + "audio/vnd.wave": { + "compressible": false + }, + "audio/vorbis": { + "source": "iana", + "compressible": false + }, + "audio/vorbis-config": { + "source": "iana" + }, + "audio/wav": { + "compressible": false, + "extensions": ["wav"] + }, + "audio/wave": { + "compressible": false, + "extensions": ["wav"] + }, + "audio/webm": { + "source": "apache", + "compressible": false, + "extensions": ["weba"] + }, + "audio/x-aac": { + "source": "apache", + "compressible": false, + "extensions": ["aac"] + }, + "audio/x-aiff": { + "source": "apache", + "extensions": ["aif","aiff","aifc"] + }, + "audio/x-caf": { + "source": "apache", + "compressible": false, + "extensions": ["caf"] + }, + "audio/x-flac": { + "source": "apache", + "extensions": ["flac"] + }, + "audio/x-m4a": { + "source": "nginx", + "extensions": ["m4a"] + }, + "audio/x-matroska": { + "source": "apache", + "extensions": ["mka"] + }, + "audio/x-mpegurl": { + "source": "apache", + "extensions": ["m3u"] + }, + "audio/x-ms-wax": { + "source": "apache", + "extensions": ["wax"] + }, + "audio/x-ms-wma": { + "source": "apache", + "extensions": ["wma"] + }, + "audio/x-pn-realaudio": { + "source": "apache", + "extensions": ["ram","ra"] + }, + "audio/x-pn-realaudio-plugin": { + "source": "apache", + "extensions": ["rmp"] + }, + "audio/x-realaudio": { + "source": "nginx", + "extensions": ["ra"] + }, + "audio/x-tta": { + "source": "apache" + }, + "audio/x-wav": { + "source": "apache", + "extensions": ["wav"] + }, + "audio/xm": { + "source": "apache", + "extensions": ["xm"] + }, + "chemical/x-cdx": { + "source": "apache", + "extensions": ["cdx"] + }, + "chemical/x-cif": { + "source": "apache", + "extensions": ["cif"] + }, + "chemical/x-cmdf": { + "source": "apache", + "extensions": ["cmdf"] + }, + "chemical/x-cml": { + "source": "apache", + "extensions": ["cml"] + }, + "chemical/x-csml": { + "source": "apache", + "extensions": ["csml"] + }, + "chemical/x-pdb": { + "source": "apache" + }, + "chemical/x-xyz": { + "source": "apache", + "extensions": ["xyz"] + }, + "font/collection": { + "source": "iana", + "extensions": ["ttc"] + }, + "font/otf": { + "source": "iana", + "compressible": true, + "extensions": ["otf"] + }, + "font/sfnt": { + "source": "iana" + }, + "font/ttf": { + "source": "iana", + "compressible": true, + "extensions": ["ttf"] + }, + "font/woff": { + "source": "iana", + "extensions": ["woff"] + }, + "font/woff2": { + "source": "iana", + "extensions": ["woff2"] + }, + "image/aces": { + "source": "iana", + "extensions": ["exr"] + }, + "image/apng": { + "compressible": false, + "extensions": ["apng"] + }, + "image/avci": { + "source": "iana", + "extensions": ["avci"] + }, + "image/avcs": { + "source": "iana", + "extensions": ["avcs"] + }, + "image/avif": { + "source": "iana", + "compressible": false, + "extensions": ["avif"] + }, + "image/bmp": { + "source": "iana", + "compressible": true, + "extensions": ["bmp"] + }, + "image/cgm": { + "source": "iana", + "extensions": ["cgm"] + }, + "image/dicom-rle": { + "source": "iana", + "extensions": ["drle"] + }, + "image/emf": { + "source": "iana", + "extensions": ["emf"] + }, + "image/fits": { + "source": "iana", + "extensions": ["fits"] + }, + "image/g3fax": { + "source": "iana", + "extensions": ["g3"] + }, + "image/gif": { + "source": "iana", + "compressible": false, + "extensions": ["gif"] + }, + "image/heic": { + "source": "iana", + "extensions": ["heic"] + }, + "image/heic-sequence": { + "source": "iana", + "extensions": ["heics"] + }, + "image/heif": { + "source": "iana", + "extensions": ["heif"] + }, + "image/heif-sequence": { + "source": "iana", + "extensions": ["heifs"] + }, + "image/hej2k": { + "source": "iana", + "extensions": ["hej2"] + }, + "image/hsj2": { + "source": "iana", + "extensions": ["hsj2"] + }, + "image/ief": { + "source": "iana", + "extensions": ["ief"] + }, + "image/jls": { + "source": "iana", + "extensions": ["jls"] + }, + "image/jp2": { + "source": "iana", + "compressible": false, + "extensions": ["jp2","jpg2"] + }, + "image/jpeg": { + "source": "iana", + "compressible": false, + "extensions": ["jpeg","jpg","jpe"] + }, + "image/jph": { + "source": "iana", + "extensions": ["jph"] + }, + "image/jphc": { + "source": "iana", + "extensions": ["jhc"] + }, + "image/jpm": { + "source": "iana", + "compressible": false, + "extensions": ["jpm"] + }, + "image/jpx": { + "source": "iana", + "compressible": false, + "extensions": ["jpx","jpf"] + }, + "image/jxr": { + "source": "iana", + "extensions": ["jxr"] + }, + "image/jxra": { + "source": "iana", + "extensions": ["jxra"] + }, + "image/jxrs": { + "source": "iana", + "extensions": ["jxrs"] + }, + "image/jxs": { + "source": "iana", + "extensions": ["jxs"] + }, + "image/jxsc": { + "source": "iana", + "extensions": ["jxsc"] + }, + "image/jxsi": { + "source": "iana", + "extensions": ["jxsi"] + }, + "image/jxss": { + "source": "iana", + "extensions": ["jxss"] + }, + "image/ktx": { + "source": "iana", + "extensions": ["ktx"] + }, + "image/ktx2": { + "source": "iana", + "extensions": ["ktx2"] + }, + "image/naplps": { + "source": "iana" + }, + "image/pjpeg": { + "compressible": false + }, + "image/png": { + "source": "iana", + "compressible": false, + "extensions": ["png"] + }, + "image/prs.btif": { + "source": "iana", + "extensions": ["btif"] + }, + "image/prs.pti": { + "source": "iana", + "extensions": ["pti"] + }, + "image/pwg-raster": { + "source": "iana" + }, + "image/sgi": { + "source": "apache", + "extensions": ["sgi"] + }, + "image/svg+xml": { + "source": "iana", + "compressible": true, + "extensions": ["svg","svgz"] + }, + "image/t38": { + "source": "iana", + "extensions": ["t38"] + }, + "image/tiff": { + "source": "iana", + "compressible": false, + "extensions": ["tif","tiff"] + }, + "image/tiff-fx": { + "source": "iana", + "extensions": ["tfx"] + }, + "image/vnd.adobe.photoshop": { + "source": "iana", + "compressible": true, + "extensions": ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + "source": "iana", + "extensions": ["azv"] + }, + "image/vnd.cns.inf2": { + "source": "iana" + }, + "image/vnd.dece.graphic": { + "source": "iana", + "extensions": ["uvi","uvvi","uvg","uvvg"] + }, + "image/vnd.djvu": { + "source": "iana", + "extensions": ["djvu","djv"] + }, + "image/vnd.dvb.subtitle": { + "source": "iana", + "extensions": ["sub"] + }, + "image/vnd.dwg": { + "source": "iana", + "extensions": ["dwg"] + }, + "image/vnd.dxf": { + "source": "iana", + "extensions": ["dxf"] + }, + "image/vnd.fastbidsheet": { + "source": "iana", + "extensions": ["fbs"] + }, + "image/vnd.fpx": { + "source": "iana", + "extensions": ["fpx"] + }, + "image/vnd.fst": { + "source": "iana", + "extensions": ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + "source": "iana", + "extensions": ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + "source": "iana", + "extensions": ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + "source": "iana" + }, + "image/vnd.microsoft.icon": { + "source": "iana", + "compressible": true, + "extensions": ["ico"] + }, + "image/vnd.mix": { + "source": "iana" + }, + "image/vnd.mozilla.apng": { + "source": "iana" + }, + "image/vnd.ms-dds": { + "compressible": true, + "extensions": ["dds"] + }, + "image/vnd.ms-modi": { + "source": "iana", + "extensions": ["mdi"] + }, + "image/vnd.ms-photo": { + "source": "apache", + "extensions": ["wdp"] + }, + "image/vnd.net-fpx": { + "source": "iana", + "extensions": ["npx"] + }, + "image/vnd.pco.b16": { + "source": "iana", + "extensions": ["b16"] + }, + "image/vnd.radiance": { + "source": "iana" + }, + "image/vnd.sealed.png": { + "source": "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + "source": "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + "source": "iana" + }, + "image/vnd.svf": { + "source": "iana" + }, + "image/vnd.tencent.tap": { + "source": "iana", + "extensions": ["tap"] + }, + "image/vnd.valve.source.texture": { + "source": "iana", + "extensions": ["vtf"] + }, + "image/vnd.wap.wbmp": { + "source": "iana", + "extensions": ["wbmp"] + }, + "image/vnd.xiff": { + "source": "iana", + "extensions": ["xif"] + }, + "image/vnd.zbrush.pcx": { + "source": "iana", + "extensions": ["pcx"] + }, + "image/webp": { + "source": "apache", + "extensions": ["webp"] + }, + "image/wmf": { + "source": "iana", + "extensions": ["wmf"] + }, + "image/x-3ds": { + "source": "apache", + "extensions": ["3ds"] + }, + "image/x-cmu-raster": { + "source": "apache", + "extensions": ["ras"] + }, + "image/x-cmx": { + "source": "apache", + "extensions": ["cmx"] + }, + "image/x-freehand": { + "source": "apache", + "extensions": ["fh","fhc","fh4","fh5","fh7"] + }, + "image/x-icon": { + "source": "apache", + "compressible": true, + "extensions": ["ico"] + }, + "image/x-jng": { + "source": "nginx", + "extensions": ["jng"] + }, + "image/x-mrsid-image": { + "source": "apache", + "extensions": ["sid"] + }, + "image/x-ms-bmp": { + "source": "nginx", + "compressible": true, + "extensions": ["bmp"] + }, + "image/x-pcx": { + "source": "apache", + "extensions": ["pcx"] + }, + "image/x-pict": { + "source": "apache", + "extensions": ["pic","pct"] + }, + "image/x-portable-anymap": { + "source": "apache", + "extensions": ["pnm"] + }, + "image/x-portable-bitmap": { + "source": "apache", + "extensions": ["pbm"] + }, + "image/x-portable-graymap": { + "source": "apache", + "extensions": ["pgm"] + }, + "image/x-portable-pixmap": { + "source": "apache", + "extensions": ["ppm"] + }, + "image/x-rgb": { + "source": "apache", + "extensions": ["rgb"] + }, + "image/x-tga": { + "source": "apache", + "extensions": ["tga"] + }, + "image/x-xbitmap": { + "source": "apache", + "extensions": ["xbm"] + }, + "image/x-xcf": { + "compressible": false + }, + "image/x-xpixmap": { + "source": "apache", + "extensions": ["xpm"] + }, + "image/x-xwindowdump": { + "source": "apache", + "extensions": ["xwd"] + }, + "message/cpim": { + "source": "iana" + }, + "message/delivery-status": { + "source": "iana" + }, + "message/disposition-notification": { + "source": "iana", + "extensions": [ + "disposition-notification" + ] + }, + "message/external-body": { + "source": "iana" + }, + "message/feedback-report": { + "source": "iana" + }, + "message/global": { + "source": "iana", + "extensions": ["u8msg"] + }, + "message/global-delivery-status": { + "source": "iana", + "extensions": ["u8dsn"] + }, + "message/global-disposition-notification": { + "source": "iana", + "extensions": ["u8mdn"] + }, + "message/global-headers": { + "source": "iana", + "extensions": ["u8hdr"] + }, + "message/http": { + "source": "iana", + "compressible": false + }, + "message/imdn+xml": { + "source": "iana", + "compressible": true + }, + "message/news": { + "source": "iana" + }, + "message/partial": { + "source": "iana", + "compressible": false + }, + "message/rfc822": { + "source": "iana", + "compressible": true, + "extensions": ["eml","mime"] + }, + "message/s-http": { + "source": "iana" + }, + "message/sip": { + "source": "iana" + }, + "message/sipfrag": { + "source": "iana" + }, + "message/tracking-status": { + "source": "iana" + }, + "message/vnd.si.simp": { + "source": "iana" + }, + "message/vnd.wfa.wsc": { + "source": "iana", + "extensions": ["wsc"] + }, + "model/3mf": { + "source": "iana", + "extensions": ["3mf"] + }, + "model/e57": { + "source": "iana" + }, + "model/gltf+json": { + "source": "iana", + "compressible": true, + "extensions": ["gltf"] + }, + "model/gltf-binary": { + "source": "iana", + "compressible": true, + "extensions": ["glb"] + }, + "model/iges": { + "source": "iana", + "compressible": false, + "extensions": ["igs","iges"] + }, + "model/mesh": { + "source": "iana", + "compressible": false, + "extensions": ["msh","mesh","silo"] + }, + "model/mtl": { + "source": "iana", + "extensions": ["mtl"] + }, + "model/obj": { + "source": "iana", + "extensions": ["obj"] + }, + "model/step": { + "source": "iana" + }, + "model/step+xml": { + "source": "iana", + "compressible": true, + "extensions": ["stpx"] + }, + "model/step+zip": { + "source": "iana", + "compressible": false, + "extensions": ["stpz"] + }, + "model/step-xml+zip": { + "source": "iana", + "compressible": false, + "extensions": ["stpxz"] + }, + "model/stl": { + "source": "iana", + "extensions": ["stl"] + }, + "model/vnd.collada+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dae"] + }, + "model/vnd.dwf": { + "source": "iana", + "extensions": ["dwf"] + }, + "model/vnd.flatland.3dml": { + "source": "iana" + }, + "model/vnd.gdl": { + "source": "iana", + "extensions": ["gdl"] + }, + "model/vnd.gs-gdl": { + "source": "apache" + }, + "model/vnd.gs.gdl": { + "source": "iana" + }, + "model/vnd.gtw": { + "source": "iana", + "extensions": ["gtw"] + }, + "model/vnd.moml+xml": { + "source": "iana", + "compressible": true + }, + "model/vnd.mts": { + "source": "iana", + "extensions": ["mts"] + }, + "model/vnd.opengex": { + "source": "iana", + "extensions": ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + "source": "iana", + "extensions": ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + "source": "iana", + "extensions": ["x_t"] + }, + "model/vnd.pytha.pyox": { + "source": "iana" + }, + "model/vnd.rosette.annotated-data-model": { + "source": "iana" + }, + "model/vnd.sap.vds": { + "source": "iana", + "extensions": ["vds"] + }, + "model/vnd.usdz+zip": { + "source": "iana", + "compressible": false, + "extensions": ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + "source": "iana", + "extensions": ["bsp"] + }, + "model/vnd.vtu": { + "source": "iana", + "extensions": ["vtu"] + }, + "model/vrml": { + "source": "iana", + "compressible": false, + "extensions": ["wrl","vrml"] + }, + "model/x3d+binary": { + "source": "apache", + "compressible": false, + "extensions": ["x3db","x3dbz"] + }, + "model/x3d+fastinfoset": { + "source": "iana", + "extensions": ["x3db"] + }, + "model/x3d+vrml": { + "source": "apache", + "compressible": false, + "extensions": ["x3dv","x3dvz"] + }, + "model/x3d+xml": { + "source": "iana", + "compressible": true, + "extensions": ["x3d","x3dz"] + }, + "model/x3d-vrml": { + "source": "iana", + "extensions": ["x3dv"] + }, + "multipart/alternative": { + "source": "iana", + "compressible": false + }, + "multipart/appledouble": { + "source": "iana" + }, + "multipart/byteranges": { + "source": "iana" + }, + "multipart/digest": { + "source": "iana" + }, + "multipart/encrypted": { + "source": "iana", + "compressible": false + }, + "multipart/form-data": { + "source": "iana", + "compressible": false + }, + "multipart/header-set": { + "source": "iana" + }, + "multipart/mixed": { + "source": "iana" + }, + "multipart/multilingual": { + "source": "iana" + }, + "multipart/parallel": { + "source": "iana" + }, + "multipart/related": { + "source": "iana", + "compressible": false + }, + "multipart/report": { + "source": "iana" + }, + "multipart/signed": { + "source": "iana", + "compressible": false + }, + "multipart/vnd.bint.med-plus": { + "source": "iana" + }, + "multipart/voice-message": { + "source": "iana" + }, + "multipart/x-mixed-replace": { + "source": "iana" + }, + "text/1d-interleaved-parityfec": { + "source": "iana" + }, + "text/cache-manifest": { + "source": "iana", + "compressible": true, + "extensions": ["appcache","manifest"] + }, + "text/calendar": { + "source": "iana", + "extensions": ["ics","ifb"] + }, + "text/calender": { + "compressible": true + }, + "text/cmd": { + "compressible": true + }, + "text/coffeescript": { + "extensions": ["coffee","litcoffee"] + }, + "text/cql": { + "source": "iana" + }, + "text/cql-expression": { + "source": "iana" + }, + "text/cql-identifier": { + "source": "iana" + }, + "text/css": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["css"] + }, + "text/csv": { + "source": "iana", + "compressible": true, + "extensions": ["csv"] + }, + "text/csv-schema": { + "source": "iana" + }, + "text/directory": { + "source": "iana" + }, + "text/dns": { + "source": "iana" + }, + "text/ecmascript": { + "source": "iana" + }, + "text/encaprtp": { + "source": "iana" + }, + "text/enriched": { + "source": "iana" + }, + "text/fhirpath": { + "source": "iana" + }, + "text/flexfec": { + "source": "iana" + }, + "text/fwdred": { + "source": "iana" + }, + "text/gff3": { + "source": "iana" + }, + "text/grammar-ref-list": { + "source": "iana" + }, + "text/html": { + "source": "iana", + "compressible": true, + "extensions": ["html","htm","shtml"] + }, + "text/jade": { + "extensions": ["jade"] + }, + "text/javascript": { + "source": "iana", + "compressible": true + }, + "text/jcr-cnd": { + "source": "iana" + }, + "text/jsx": { + "compressible": true, + "extensions": ["jsx"] + }, + "text/less": { + "compressible": true, + "extensions": ["less"] + }, + "text/markdown": { + "source": "iana", + "compressible": true, + "extensions": ["markdown","md"] + }, + "text/mathml": { + "source": "nginx", + "extensions": ["mml"] + }, + "text/mdx": { + "compressible": true, + "extensions": ["mdx"] + }, + "text/mizar": { + "source": "iana" + }, + "text/n3": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["n3"] + }, + "text/parameters": { + "source": "iana", + "charset": "UTF-8" + }, + "text/parityfec": { + "source": "iana" + }, + "text/plain": { + "source": "iana", + "compressible": true, + "extensions": ["txt","text","conf","def","list","log","in","ini"] + }, + "text/provenance-notation": { + "source": "iana", + "charset": "UTF-8" + }, + "text/prs.fallenstein.rst": { + "source": "iana" + }, + "text/prs.lines.tag": { + "source": "iana", + "extensions": ["dsc"] + }, + "text/prs.prop.logic": { + "source": "iana" + }, + "text/raptorfec": { + "source": "iana" + }, + "text/red": { + "source": "iana" + }, + "text/rfc822-headers": { + "source": "iana" + }, + "text/richtext": { + "source": "iana", + "compressible": true, + "extensions": ["rtx"] + }, + "text/rtf": { + "source": "iana", + "compressible": true, + "extensions": ["rtf"] + }, + "text/rtp-enc-aescm128": { + "source": "iana" + }, + "text/rtploopback": { + "source": "iana" + }, + "text/rtx": { + "source": "iana" + }, + "text/sgml": { + "source": "iana", + "extensions": ["sgml","sgm"] + }, + "text/shaclc": { + "source": "iana" + }, + "text/shex": { + "source": "iana", + "extensions": ["shex"] + }, + "text/slim": { + "extensions": ["slim","slm"] + }, + "text/spdx": { + "source": "iana", + "extensions": ["spdx"] + }, + "text/strings": { + "source": "iana" + }, + "text/stylus": { + "extensions": ["stylus","styl"] + }, + "text/t140": { + "source": "iana" + }, + "text/tab-separated-values": { + "source": "iana", + "compressible": true, + "extensions": ["tsv"] + }, + "text/troff": { + "source": "iana", + "extensions": ["t","tr","roff","man","me","ms"] + }, + "text/turtle": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["ttl"] + }, + "text/ulpfec": { + "source": "iana" + }, + "text/uri-list": { + "source": "iana", + "compressible": true, + "extensions": ["uri","uris","urls"] + }, + "text/vcard": { + "source": "iana", + "compressible": true, + "extensions": ["vcard"] + }, + "text/vnd.a": { + "source": "iana" + }, + "text/vnd.abc": { + "source": "iana" + }, + "text/vnd.ascii-art": { + "source": "iana" + }, + "text/vnd.curl": { + "source": "iana", + "extensions": ["curl"] + }, + "text/vnd.curl.dcurl": { + "source": "apache", + "extensions": ["dcurl"] + }, + "text/vnd.curl.mcurl": { + "source": "apache", + "extensions": ["mcurl"] + }, + "text/vnd.curl.scurl": { + "source": "apache", + "extensions": ["scurl"] + }, + "text/vnd.debian.copyright": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.dmclientscript": { + "source": "iana" + }, + "text/vnd.dvb.subtitle": { + "source": "iana", + "extensions": ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.familysearch.gedcom": { + "source": "iana", + "extensions": ["ged"] + }, + "text/vnd.ficlab.flt": { + "source": "iana" + }, + "text/vnd.fly": { + "source": "iana", + "extensions": ["fly"] + }, + "text/vnd.fmi.flexstor": { + "source": "iana", + "extensions": ["flx"] + }, + "text/vnd.gml": { + "source": "iana" + }, + "text/vnd.graphviz": { + "source": "iana", + "extensions": ["gv"] + }, + "text/vnd.hans": { + "source": "iana" + }, + "text/vnd.hgl": { + "source": "iana" + }, + "text/vnd.in3d.3dml": { + "source": "iana", + "extensions": ["3dml"] + }, + "text/vnd.in3d.spot": { + "source": "iana", + "extensions": ["spot"] + }, + "text/vnd.iptc.newsml": { + "source": "iana" + }, + "text/vnd.iptc.nitf": { + "source": "iana" + }, + "text/vnd.latex-z": { + "source": "iana" + }, + "text/vnd.motorola.reflex": { + "source": "iana" + }, + "text/vnd.ms-mediapackage": { + "source": "iana" + }, + "text/vnd.net2phone.commcenter.command": { + "source": "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + "source": "iana" + }, + "text/vnd.senx.warpscript": { + "source": "iana" + }, + "text/vnd.si.uricatalogue": { + "source": "iana" + }, + "text/vnd.sosi": { + "source": "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["jad"] + }, + "text/vnd.trolltech.linguist": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.wap.si": { + "source": "iana" + }, + "text/vnd.wap.sl": { + "source": "iana" + }, + "text/vnd.wap.wml": { + "source": "iana", + "extensions": ["wml"] + }, + "text/vnd.wap.wmlscript": { + "source": "iana", + "extensions": ["wmls"] + }, + "text/vtt": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["vtt"] + }, + "text/x-asm": { + "source": "apache", + "extensions": ["s","asm"] + }, + "text/x-c": { + "source": "apache", + "extensions": ["c","cc","cxx","cpp","h","hh","dic"] + }, + "text/x-component": { + "source": "nginx", + "extensions": ["htc"] + }, + "text/x-fortran": { + "source": "apache", + "extensions": ["f","for","f77","f90"] + }, + "text/x-gwt-rpc": { + "compressible": true + }, + "text/x-handlebars-template": { + "extensions": ["hbs"] + }, + "text/x-java-source": { + "source": "apache", + "extensions": ["java"] + }, + "text/x-jquery-tmpl": { + "compressible": true + }, + "text/x-lua": { + "extensions": ["lua"] + }, + "text/x-markdown": { + "compressible": true, + "extensions": ["mkd"] + }, + "text/x-nfo": { + "source": "apache", + "extensions": ["nfo"] + }, + "text/x-opml": { + "source": "apache", + "extensions": ["opml"] + }, + "text/x-org": { + "compressible": true, + "extensions": ["org"] + }, + "text/x-pascal": { + "source": "apache", + "extensions": ["p","pas"] + }, + "text/x-processing": { + "compressible": true, + "extensions": ["pde"] + }, + "text/x-sass": { + "extensions": ["sass"] + }, + "text/x-scss": { + "extensions": ["scss"] + }, + "text/x-setext": { + "source": "apache", + "extensions": ["etx"] + }, + "text/x-sfv": { + "source": "apache", + "extensions": ["sfv"] + }, + "text/x-suse-ymp": { + "compressible": true, + "extensions": ["ymp"] + }, + "text/x-uuencode": { + "source": "apache", + "extensions": ["uu"] + }, + "text/x-vcalendar": { + "source": "apache", + "extensions": ["vcs"] + }, + "text/x-vcard": { + "source": "apache", + "extensions": ["vcf"] + }, + "text/xml": { + "source": "iana", + "compressible": true, + "extensions": ["xml"] + }, + "text/xml-external-parsed-entity": { + "source": "iana" + }, + "text/yaml": { + "compressible": true, + "extensions": ["yaml","yml"] + }, + "video/1d-interleaved-parityfec": { + "source": "iana" + }, + "video/3gpp": { + "source": "iana", + "extensions": ["3gp","3gpp"] + }, + "video/3gpp-tt": { + "source": "iana" + }, + "video/3gpp2": { + "source": "iana", + "extensions": ["3g2"] + }, + "video/av1": { + "source": "iana" + }, + "video/bmpeg": { + "source": "iana" + }, + "video/bt656": { + "source": "iana" + }, + "video/celb": { + "source": "iana" + }, + "video/dv": { + "source": "iana" + }, + "video/encaprtp": { + "source": "iana" + }, + "video/ffv1": { + "source": "iana" + }, + "video/flexfec": { + "source": "iana" + }, + "video/h261": { + "source": "iana", + "extensions": ["h261"] + }, + "video/h263": { + "source": "iana", + "extensions": ["h263"] + }, + "video/h263-1998": { + "source": "iana" + }, + "video/h263-2000": { + "source": "iana" + }, + "video/h264": { + "source": "iana", + "extensions": ["h264"] + }, + "video/h264-rcdo": { + "source": "iana" + }, + "video/h264-svc": { + "source": "iana" + }, + "video/h265": { + "source": "iana" + }, + "video/iso.segment": { + "source": "iana", + "extensions": ["m4s"] + }, + "video/jpeg": { + "source": "iana", + "extensions": ["jpgv"] + }, + "video/jpeg2000": { + "source": "iana" + }, + "video/jpm": { + "source": "apache", + "extensions": ["jpm","jpgm"] + }, + "video/jxsv": { + "source": "iana" + }, + "video/mj2": { + "source": "iana", + "extensions": ["mj2","mjp2"] + }, + "video/mp1s": { + "source": "iana" + }, + "video/mp2p": { + "source": "iana" + }, + "video/mp2t": { + "source": "iana", + "extensions": ["ts"] + }, + "video/mp4": { + "source": "iana", + "compressible": false, + "extensions": ["mp4","mp4v","mpg4"] + }, + "video/mp4v-es": { + "source": "iana" + }, + "video/mpeg": { + "source": "iana", + "compressible": false, + "extensions": ["mpeg","mpg","mpe","m1v","m2v"] + }, + "video/mpeg4-generic": { + "source": "iana" + }, + "video/mpv": { + "source": "iana" + }, + "video/nv": { + "source": "iana" + }, + "video/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["ogv"] + }, + "video/parityfec": { + "source": "iana" + }, + "video/pointer": { + "source": "iana" + }, + "video/quicktime": { + "source": "iana", + "compressible": false, + "extensions": ["qt","mov"] + }, + "video/raptorfec": { + "source": "iana" + }, + "video/raw": { + "source": "iana" + }, + "video/rtp-enc-aescm128": { + "source": "iana" + }, + "video/rtploopback": { + "source": "iana" + }, + "video/rtx": { + "source": "iana" + }, + "video/scip": { + "source": "iana" + }, + "video/smpte291": { + "source": "iana" + }, + "video/smpte292m": { + "source": "iana" + }, + "video/ulpfec": { + "source": "iana" + }, + "video/vc1": { + "source": "iana" + }, + "video/vc2": { + "source": "iana" + }, + "video/vnd.cctv": { + "source": "iana" + }, + "video/vnd.dece.hd": { + "source": "iana", + "extensions": ["uvh","uvvh"] + }, + "video/vnd.dece.mobile": { + "source": "iana", + "extensions": ["uvm","uvvm"] + }, + "video/vnd.dece.mp4": { + "source": "iana" + }, + "video/vnd.dece.pd": { + "source": "iana", + "extensions": ["uvp","uvvp"] + }, + "video/vnd.dece.sd": { + "source": "iana", + "extensions": ["uvs","uvvs"] + }, + "video/vnd.dece.video": { + "source": "iana", + "extensions": ["uvv","uvvv"] + }, + "video/vnd.directv.mpeg": { + "source": "iana" + }, + "video/vnd.directv.mpeg-tts": { + "source": "iana" + }, + "video/vnd.dlna.mpeg-tts": { + "source": "iana" + }, + "video/vnd.dvb.file": { + "source": "iana", + "extensions": ["dvb"] + }, + "video/vnd.fvt": { + "source": "iana", + "extensions": ["fvt"] + }, + "video/vnd.hns.video": { + "source": "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + "source": "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + "source": "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + "source": "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + "source": "iana" + }, + "video/vnd.iptvforum.ttsavc": { + "source": "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + "source": "iana" + }, + "video/vnd.motorola.video": { + "source": "iana" + }, + "video/vnd.motorola.videop": { + "source": "iana" + }, + "video/vnd.mpegurl": { + "source": "iana", + "extensions": ["mxu","m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + "source": "iana", + "extensions": ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + "source": "iana" + }, + "video/vnd.nokia.mp4vr": { + "source": "iana" + }, + "video/vnd.nokia.videovoip": { + "source": "iana" + }, + "video/vnd.objectvideo": { + "source": "iana" + }, + "video/vnd.radgamettools.bink": { + "source": "iana" + }, + "video/vnd.radgamettools.smacker": { + "source": "iana" + }, + "video/vnd.sealed.mpeg1": { + "source": "iana" + }, + "video/vnd.sealed.mpeg4": { + "source": "iana" + }, + "video/vnd.sealed.swf": { + "source": "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + "source": "iana" + }, + "video/vnd.uvvu.mp4": { + "source": "iana", + "extensions": ["uvu","uvvu"] + }, + "video/vnd.vivo": { + "source": "iana", + "extensions": ["viv"] + }, + "video/vnd.youtube.yt": { + "source": "iana" + }, + "video/vp8": { + "source": "iana" + }, + "video/vp9": { + "source": "iana" + }, + "video/webm": { + "source": "apache", + "compressible": false, + "extensions": ["webm"] + }, + "video/x-f4v": { + "source": "apache", + "extensions": ["f4v"] + }, + "video/x-fli": { + "source": "apache", + "extensions": ["fli"] + }, + "video/x-flv": { + "source": "apache", + "compressible": false, + "extensions": ["flv"] + }, + "video/x-m4v": { + "source": "apache", + "extensions": ["m4v"] + }, + "video/x-matroska": { + "source": "apache", + "compressible": false, + "extensions": ["mkv","mk3d","mks"] + }, + "video/x-mng": { + "source": "apache", + "extensions": ["mng"] + }, + "video/x-ms-asf": { + "source": "apache", + "extensions": ["asf","asx"] + }, + "video/x-ms-vob": { + "source": "apache", + "extensions": ["vob"] + }, + "video/x-ms-wm": { + "source": "apache", + "extensions": ["wm"] + }, + "video/x-ms-wmv": { + "source": "apache", + "compressible": false, + "extensions": ["wmv"] + }, + "video/x-ms-wmx": { + "source": "apache", + "extensions": ["wmx"] + }, + "video/x-ms-wvx": { + "source": "apache", + "extensions": ["wvx"] + }, + "video/x-msvideo": { + "source": "apache", + "extensions": ["avi"] + }, + "video/x-sgi-movie": { + "source": "apache", + "extensions": ["movie"] + }, + "video/x-smv": { + "source": "apache", + "extensions": ["smv"] + }, + "x-conference/x-cooltalk": { + "source": "apache", + "extensions": ["ice"] + }, + "x-shader/x-fragment": { + "compressible": true + }, + "x-shader/x-vertex": { + "compressible": true + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..ec2be30de1663c20ea2166f33a583c9c0b84d029 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/index.js" @@ -0,0 +1,12 @@ +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module exports. + */ + +module.exports = require('./db.json') diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..a1b2aacc48b3b8bac1e23e6141cc7fe7e77edf00 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-db/package.json" @@ -0,0 +1,103 @@ +{ + "_from": "mime-db@1.52.0", + "_id": "mime-db@1.52.0", + "_inBundle": false, + "_integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "_location": "/mime-db", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime-db@1.52.0", + "name": "mime-db", + "escapedName": "mime-db", + "rawSpec": "1.52.0", + "saveSpec": null, + "fetchSpec": "1.52.0" + }, + "_requiredBy": [ + "/mime-types" + ], + "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "_shasum": "bbabcdc02859f4987301c856e3387ce5ec43bf70", + "_spec": "mime-db@1.52.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\mime-types", + "bugs": { + "url": "https://github.com/jshttp/mime-db/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + { + "name": "Robert Kieffer", + "email": "robert@broofa.com", + "url": "http://github.com/broofa" + } + ], + "deprecated": false, + "description": "Media Type Database", + "devDependencies": { + "bluebird": "3.7.2", + "co": "4.6.0", + "cogent": "1.0.1", + "csv-parse": "4.16.3", + "eslint": "7.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.1.1", + "eslint-plugin-standard": "4.1.0", + "gnode": "0.1.2", + "media-typer": "1.1.0", + "mocha": "9.2.1", + "nyc": "15.1.0", + "raw-body": "2.5.0", + "stream-to-array": "2.3.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "db.json", + "index.js" + ], + "homepage": "https://github.com/jshttp/mime-db#readme", + "keywords": [ + "mime", + "db", + "type", + "types", + "database", + "charset", + "charsets" + ], + "license": "MIT", + "name": "mime-db", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/mime-db.git" + }, + "scripts": { + "build": "node scripts/build", + "fetch": "node scripts/fetch-apache && gnode scripts/fetch-iana && node scripts/fetch-nginx", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "update": "npm run fetch && npm run build", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "1.52.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..c5043b75b958766a3880805dc4f19d70a4f167dd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/HISTORY.md" @@ -0,0 +1,397 @@ +2.1.35 / 2022-03-12 +=================== + + * deps: mime-db@1.52.0 + - Add extensions from IANA for more `image/*` types + - Add extension `.asc` to `application/pgp-keys` + - Add extensions to various XML types + - Add new upstream MIME types + +2.1.34 / 2021-11-08 +=================== + + * deps: mime-db@1.51.0 + - Add new upstream MIME types + +2.1.33 / 2021-10-01 +=================== + + * deps: mime-db@1.50.0 + - Add deprecated iWorks mime types and extensions + - Add new upstream MIME types + +2.1.32 / 2021-07-27 +=================== + + * deps: mime-db@1.49.0 + - Add extension `.trig` to `application/trig` + - Add new upstream MIME types + +2.1.31 / 2021-06-01 +=================== + + * deps: mime-db@1.48.0 + - Add extension `.mvt` to `application/vnd.mapbox-vector-tile` + - Add new upstream MIME types + +2.1.30 / 2021-04-02 +=================== + + * deps: mime-db@1.47.0 + - Add extension `.amr` to `audio/amr` + - Remove ambigious extensions from IANA for `application/*+xml` types + - Update primary extension to `.es` for `application/ecmascript` + +2.1.29 / 2021-02-17 +=================== + + * deps: mime-db@1.46.0 + - Add extension `.amr` to `audio/amr` + - Add extension `.m4s` to `video/iso.segment` + - Add extension `.opus` to `audio/ogg` + - Add new upstream MIME types + +2.1.28 / 2021-01-01 +=================== + + * deps: mime-db@1.45.0 + - Add `application/ubjson` with extension `.ubj` + - Add `image/avif` with extension `.avif` + - Add `image/ktx2` with extension `.ktx2` + - Add extension `.dbf` to `application/vnd.dbf` + - Add extension `.rar` to `application/vnd.rar` + - Add extension `.td` to `application/urc-targetdesc+xml` + - Add new upstream MIME types + - Fix extension of `application/vnd.apple.keynote` to be `.key` + +2.1.27 / 2020-04-23 +=================== + + * deps: mime-db@1.44.0 + - Add charsets from IANA + - Add extension `.cjs` to `application/node` + - Add new upstream MIME types + +2.1.26 / 2020-01-05 +=================== + + * deps: mime-db@1.43.0 + - Add `application/x-keepass2` with extension `.kdbx` + - Add extension `.mxmf` to `audio/mobile-xmf` + - Add extensions from IANA for `application/*+xml` types + - Add new upstream MIME types + +2.1.25 / 2019-11-12 +=================== + + * deps: mime-db@1.42.0 + - Add new upstream MIME types + - Add `application/toml` with extension `.toml` + - Add `image/vnd.ms-dds` with extension `.dds` + +2.1.24 / 2019-04-20 +=================== + + * deps: mime-db@1.40.0 + - Add extensions from IANA for `model/*` types + - Add `text/mdx` with extension `.mdx` + +2.1.23 / 2019-04-17 +=================== + + * deps: mime-db@~1.39.0 + - Add extensions `.siv` and `.sieve` to `application/sieve` + - Add new upstream MIME types + +2.1.22 / 2019-02-14 +=================== + + * deps: mime-db@~1.38.0 + - Add extension `.nq` to `application/n-quads` + - Add extension `.nt` to `application/n-triples` + - Add new upstream MIME types + +2.1.21 / 2018-10-19 +=================== + + * deps: mime-db@~1.37.0 + - Add extensions to HEIC image types + - Add new upstream MIME types + +2.1.20 / 2018-08-26 +=================== + + * deps: mime-db@~1.36.0 + - Add Apple file extensions from IANA + - Add extensions from IANA for `image/*` types + - Add new upstream MIME types + +2.1.19 / 2018-07-17 +=================== + + * deps: mime-db@~1.35.0 + - Add extension `.csl` to `application/vnd.citationstyles.style+xml` + - Add extension `.es` to `application/ecmascript` + - Add extension `.owl` to `application/rdf+xml` + - Add new upstream MIME types + - Add UTF-8 as default charset for `text/turtle` + +2.1.18 / 2018-02-16 +=================== + + * deps: mime-db@~1.33.0 + - Add `application/raml+yaml` with extension `.raml` + - Add `application/wasm` with extension `.wasm` + - Add `text/shex` with extension `.shex` + - Add extensions for JPEG-2000 images + - Add extensions from IANA for `message/*` types + - Add new upstream MIME types + - Update font MIME types + - Update `text/hjson` to registered `application/hjson` + +2.1.17 / 2017-09-01 +=================== + + * deps: mime-db@~1.30.0 + - Add `application/vnd.ms-outlook` + - Add `application/x-arj` + - Add extension `.mjs` to `application/javascript` + - Add glTF types and extensions + - Add new upstream MIME types + - Add `text/x-org` + - Add VirtualBox MIME types + - Fix `source` records for `video/*` types that are IANA + - Update `font/opentype` to registered `font/otf` + +2.1.16 / 2017-07-24 +=================== + + * deps: mime-db@~1.29.0 + - Add `application/fido.trusted-apps+json` + - Add extension `.wadl` to `application/vnd.sun.wadl+xml` + - Add extension `.gz` to `application/gzip` + - Add new upstream MIME types + - Update extensions `.md` and `.markdown` to be `text/markdown` + +2.1.15 / 2017-03-23 +=================== + + * deps: mime-db@~1.27.0 + - Add new mime types + - Add `image/apng` + +2.1.14 / 2017-01-14 +=================== + + * deps: mime-db@~1.26.0 + - Add new mime types + +2.1.13 / 2016-11-18 +=================== + + * deps: mime-db@~1.25.0 + - Add new mime types + +2.1.12 / 2016-09-18 +=================== + + * deps: mime-db@~1.24.0 + - Add new mime types + - Add `audio/mp3` + +2.1.11 / 2016-05-01 +=================== + + * deps: mime-db@~1.23.0 + - Add new mime types + +2.1.10 / 2016-02-15 +=================== + + * deps: mime-db@~1.22.0 + - Add new mime types + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + +2.1.9 / 2016-01-06 +================== + + * deps: mime-db@~1.21.0 + - Add new mime types + +2.1.8 / 2015-11-30 +================== + + * deps: mime-db@~1.20.0 + - Add new mime types + +2.1.7 / 2015-09-20 +================== + + * deps: mime-db@~1.19.0 + - Add new mime types + +2.1.6 / 2015-09-03 +================== + + * deps: mime-db@~1.18.0 + - Add new mime types + +2.1.5 / 2015-08-20 +================== + + * deps: mime-db@~1.17.0 + - Add new mime types + +2.1.4 / 2015-07-30 +================== + + * deps: mime-db@~1.16.0 + - Add new mime types + +2.1.3 / 2015-07-13 +================== + + * deps: mime-db@~1.15.0 + - Add new mime types + +2.1.2 / 2015-06-25 +================== + + * deps: mime-db@~1.14.0 + - Add new mime types + +2.1.1 / 2015-06-08 +================== + + * perf: fix deopt during mapping + +2.1.0 / 2015-06-07 +================== + + * Fix incorrectly treating extension-less file name as extension + - i.e. `'path/to/json'` will no longer return `application/json` + * Fix `.charset(type)` to accept parameters + * Fix `.charset(type)` to match case-insensitive + * Improve generation of extension to MIME mapping + * Refactor internals for readability and no argument reassignment + * Prefer `application/*` MIME types from the same source + * Prefer any type over `application/octet-stream` + * deps: mime-db@~1.13.0 + - Add nginx as a source + - Add new mime types + +2.0.14 / 2015-06-06 +=================== + + * deps: mime-db@~1.12.0 + - Add new mime types + +2.0.13 / 2015-05-31 +=================== + + * deps: mime-db@~1.11.0 + - Add new mime types + +2.0.12 / 2015-05-19 +=================== + + * deps: mime-db@~1.10.0 + - Add new mime types + +2.0.11 / 2015-05-05 +=================== + + * deps: mime-db@~1.9.1 + - Add new mime types + +2.0.10 / 2015-03-13 +=================== + + * deps: mime-db@~1.8.0 + - Add new mime types + +2.0.9 / 2015-02-09 +================== + + * deps: mime-db@~1.7.0 + - Add new mime types + - Community extensions ownership transferred from `node-mime` + +2.0.8 / 2015-01-29 +================== + + * deps: mime-db@~1.6.0 + - Add new mime types + +2.0.7 / 2014-12-30 +================== + + * deps: mime-db@~1.5.0 + - Add new mime types + - Fix various invalid MIME type entries + +2.0.6 / 2014-12-30 +================== + + * deps: mime-db@~1.4.0 + - Add new mime types + - Fix various invalid MIME type entries + - Remove example template MIME types + +2.0.5 / 2014-12-29 +================== + + * deps: mime-db@~1.3.1 + - Fix missing extensions + +2.0.4 / 2014-12-10 +================== + + * deps: mime-db@~1.3.0 + - Add new mime types + +2.0.3 / 2014-11-09 +================== + + * deps: mime-db@~1.2.0 + - Add new mime types + +2.0.2 / 2014-09-28 +================== + + * deps: mime-db@~1.1.0 + - Add new mime types + - Update charsets + +2.0.1 / 2014-09-07 +================== + + * Support Node.js 0.6 + +2.0.0 / 2014-09-02 +================== + + * Use `mime-db` + * Remove `.define()` + +1.0.2 / 2014-08-04 +================== + + * Set charset=utf-8 for `text/javascript` + +1.0.1 / 2014-06-24 +================== + + * Add `text/jsx` type + +1.0.0 / 2014-05-12 +================== + + * Return `false` for unknown types + * Set charset=utf-8 for `application/json` + +0.1.0 / 2014-05-02 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..06166077be4d1f620d89b9eb33c76d89e75857da --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..48d2fb477241e837c6e8d349777aac312746029b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/README.md" @@ -0,0 +1,113 @@ +# mime-types + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +The ultimate javascript content-type utility. + +Similar to [the `mime@1.x` module](https://www.npmjs.com/package/mime), except: + +- __No fallbacks.__ Instead of naively returning the first available type, + `mime-types` simply returns `false`, so do + `var type = mime.lookup('unrecognized') || 'application/octet-stream'`. +- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`. +- No `.define()` functionality +- Bug fixes for `.lookup(path)` + +Otherwise, the API is compatible with `mime` 1.x. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install mime-types +``` + +## Adding Types + +All mime types are based on [mime-db](https://www.npmjs.com/package/mime-db), +so open a PR there if you'd like to add mime types. + +## API + +```js +var mime = require('mime-types') +``` + +All functions return `false` if input is invalid or not found. + +### mime.lookup(path) + +Lookup the content-type associated with a file. + +```js +mime.lookup('json') // 'application/json' +mime.lookup('.md') // 'text/markdown' +mime.lookup('file.html') // 'text/html' +mime.lookup('folder/file.js') // 'application/javascript' +mime.lookup('folder/.htaccess') // false + +mime.lookup('cats') // false +``` + +### mime.contentType(type) + +Create a full content-type header given a content-type or extension. +When given an extension, `mime.lookup` is used to get the matching +content-type, otherwise the given content-type is used. Then if the +content-type does not already have a `charset` parameter, `mime.charset` +is used to get the default charset and add to the returned content-type. + +```js +mime.contentType('markdown') // 'text/x-markdown; charset=utf-8' +mime.contentType('file.json') // 'application/json; charset=utf-8' +mime.contentType('text/html') // 'text/html; charset=utf-8' +mime.contentType('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1' + +// from a full path +mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' +``` + +### mime.extension(type) + +Get the default extension for a content-type. + +```js +mime.extension('application/octet-stream') // 'bin' +``` + +### mime.charset(type) + +Lookup the implied default charset of a content-type. + +```js +mime.charset('text/markdown') // 'UTF-8' +``` + +### var type = mime.types[extension] + +A map of content-types by extension. + +### [extensions...] = mime.extensions[type] + +A map of extensions by content-type. + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/mime-types/master?label=ci +[ci-url]: https://github.com/jshttp/mime-types/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-types/master +[coveralls-url]: https://coveralls.io/r/jshttp/mime-types?branch=master +[node-version-image]: https://badgen.net/npm/node/mime-types +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/mime-types +[npm-url]: https://npmjs.org/package/mime-types +[npm-version-image]: https://badgen.net/npm/v/mime-types diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..b9f34d5991077fe9fadc7d9187a7225db7e58fca --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/index.js" @@ -0,0 +1,188 @@ +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var db = require('mime-db') +var extname = require('path').extname + +/** + * Module variables. + * @private + */ + +var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/ +var TEXT_TYPE_REGEXP = /^text\//i + +/** + * Module exports. + * @public + */ + +exports.charset = charset +exports.charsets = { lookup: charset } +exports.contentType = contentType +exports.extension = extension +exports.extensions = Object.create(null) +exports.lookup = lookup +exports.types = Object.create(null) + +// Populate the extensions/types maps +populateMaps(exports.extensions, exports.types) + +/** + * Get the default charset for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function charset (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + var mime = match && db[match[1].toLowerCase()] + + if (mime && mime.charset) { + return mime.charset + } + + // default text/* to utf-8 + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return 'UTF-8' + } + + return false +} + +/** + * Create a full Content-Type header given a MIME type or extension. + * + * @param {string} str + * @return {boolean|string} + */ + +function contentType (str) { + // TODO: should this even be in this module? + if (!str || typeof str !== 'string') { + return false + } + + var mime = str.indexOf('/') === -1 + ? exports.lookup(str) + : str + + if (!mime) { + return false + } + + // TODO: use content-type or other module + if (mime.indexOf('charset') === -1) { + var charset = exports.charset(mime) + if (charset) mime += '; charset=' + charset.toLowerCase() + } + + return mime +} + +/** + * Get the default extension for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function extension (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + + // get extensions + var exts = match && exports.extensions[match[1].toLowerCase()] + + if (!exts || !exts.length) { + return false + } + + return exts[0] +} + +/** + * Lookup the MIME type for a file path/extension. + * + * @param {string} path + * @return {boolean|string} + */ + +function lookup (path) { + if (!path || typeof path !== 'string') { + return false + } + + // get the extension ("ext" or ".ext" or full path) + var extension = extname('x.' + path) + .toLowerCase() + .substr(1) + + if (!extension) { + return false + } + + return exports.types[extension] || false +} + +/** + * Populate the extensions and types maps. + * @private + */ + +function populateMaps (extensions, types) { + // source preference (least -> most) + var preference = ['nginx', 'apache', undefined, 'iana'] + + Object.keys(db).forEach(function forEachMimeType (type) { + var mime = db[type] + var exts = mime.extensions + + if (!exts || !exts.length) { + return + } + + // mime -> extensions + extensions[type] = exts + + // extension -> mime + for (var i = 0; i < exts.length; i++) { + var extension = exts[i] + + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source) + var to = preference.indexOf(mime.source) + + if (types[extension] !== 'application/octet-stream' && + (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { + // skip the remapping + continue + } + } + + // set the extension -> mime + types[extension] = type + } + }) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..d550aba61c359bc6b1942d78f4b437f955e7aa97 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime-types/package.json" @@ -0,0 +1,88 @@ +{ + "_from": "mime-types@~2.1.34", + "_id": "mime-types@2.1.35", + "_inBundle": false, + "_integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "_location": "/mime-types", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "mime-types@~2.1.34", + "name": "mime-types", + "escapedName": "mime-types", + "rawSpec": "~2.1.34", + "saveSpec": null, + "fetchSpec": "~2.1.34" + }, + "_requiredBy": [ + "/accepts", + "/type-is" + ], + "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "_shasum": "381a871b62a734450660ae3deee44813f70d959a", + "_spec": "mime-types@~2.1.34", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\accepts", + "bugs": { + "url": "https://github.com/jshttp/mime-types/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jeremiah Senkpiel", + "email": "fishrock123@rocketmail.com", + "url": "https://searchbeam.jit.su" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "mime-db": "1.52.0" + }, + "deprecated": false, + "description": "The ultimate javascript content-type utility.", + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.2", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/jshttp/mime-types#readme", + "keywords": [ + "mime", + "types" + ], + "license": "MIT", + "name": "mime-types", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/mime-types.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec test/test.js", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "2.1.35" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/.npmignore" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/.npmignore" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/CHANGELOG.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/CHANGELOG.md" new file mode 100644 index 0000000000000000000000000000000000000000..f1275350531d30ca6dd665cbb5fe78fc5e702948 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/CHANGELOG.md" @@ -0,0 +1,164 @@ +# Changelog + +## v1.6.0 (24/11/2017) +*No changelog for this release.* + +--- + +## v2.0.4 (24/11/2017) +- [**closed**] Switch to mime-score module for resolving extension contention issues. [#182](https://github.com/broofa/node-mime/issues/182) +- [**closed**] Update mime-db to 1.31.0 in v1.x branch [#181](https://github.com/broofa/node-mime/issues/181) + +--- + +## v1.5.0 (22/11/2017) +- [**closed**] need ES5 version ready in npm package [#179](https://github.com/broofa/node-mime/issues/179) +- [**closed**] mime-db no trace of iWork - pages / numbers / etc. [#178](https://github.com/broofa/node-mime/issues/178) +- [**closed**] How it works in brownser ? [#176](https://github.com/broofa/node-mime/issues/176) +- [**closed**] Missing `./Mime` [#175](https://github.com/broofa/node-mime/issues/175) +- [**closed**] Vulnerable Regular Expression [#167](https://github.com/broofa/node-mime/issues/167) + +--- + +## v2.0.3 (25/09/2017) +*No changelog for this release.* + +--- + +## v1.4.1 (25/09/2017) +- [**closed**] Issue when bundling with webpack [#172](https://github.com/broofa/node-mime/issues/172) + +--- + +## v2.0.2 (15/09/2017) +- [**V2**] fs.readFileSync is not a function [#165](https://github.com/broofa/node-mime/issues/165) +- [**closed**] The extension for video/quicktime should map to .mov, not .qt [#164](https://github.com/broofa/node-mime/issues/164) +- [**V2**] [v2 Feedback request] Mime class API [#163](https://github.com/broofa/node-mime/issues/163) +- [**V2**] [v2 Feedback request] Resolving conflicts over extensions [#162](https://github.com/broofa/node-mime/issues/162) +- [**V2**] Allow callers to load module with official, full, or no defined types. [#161](https://github.com/broofa/node-mime/issues/161) +- [**V2**] Use "facets" to resolve extension conflicts [#160](https://github.com/broofa/node-mime/issues/160) +- [**V2**] Remove fs and path dependencies [#152](https://github.com/broofa/node-mime/issues/152) +- [**V2**] Default content-type should not be application/octet-stream [#139](https://github.com/broofa/node-mime/issues/139) +- [**V2**] reset mime-types [#124](https://github.com/broofa/node-mime/issues/124) +- [**V2**] Extensionless paths should return null or false [#113](https://github.com/broofa/node-mime/issues/113) + +--- + +## v2.0.1 (14/09/2017) +- [**closed**] Changelog for v2.0 does not mention breaking changes [#171](https://github.com/broofa/node-mime/issues/171) +- [**closed**] MIME breaking with 'class' declaration as it is without 'use strict mode' [#170](https://github.com/broofa/node-mime/issues/170) + +--- + +## v2.0.0 (12/09/2017) +- [**closed**] woff and woff2 [#168](https://github.com/broofa/node-mime/issues/168) + +--- + +## v1.4.0 (28/08/2017) +- [**closed**] support for ac3 voc files [#159](https://github.com/broofa/node-mime/issues/159) +- [**closed**] Help understanding change from application/xml to text/xml [#158](https://github.com/broofa/node-mime/issues/158) +- [**closed**] no longer able to override mimetype [#157](https://github.com/broofa/node-mime/issues/157) +- [**closed**] application/vnd.adobe.photoshop [#147](https://github.com/broofa/node-mime/issues/147) +- [**closed**] Directories should appear as something other than application/octet-stream [#135](https://github.com/broofa/node-mime/issues/135) +- [**closed**] requested features [#131](https://github.com/broofa/node-mime/issues/131) +- [**closed**] Make types.json loading optional? [#129](https://github.com/broofa/node-mime/issues/129) +- [**closed**] Cannot find module './types.json' [#120](https://github.com/broofa/node-mime/issues/120) +- [**V2**] .wav files show up as "audio/x-wav" instead of "audio/x-wave" [#118](https://github.com/broofa/node-mime/issues/118) +- [**closed**] Don't be a pain in the ass for node community [#108](https://github.com/broofa/node-mime/issues/108) +- [**closed**] don't make default_type global [#78](https://github.com/broofa/node-mime/issues/78) +- [**closed**] mime.extension() fails if the content-type is parameterized [#74](https://github.com/broofa/node-mime/issues/74) + +--- + +## v1.3.6 (11/05/2017) +- [**closed**] .md should be text/markdown as of March 2016 [#154](https://github.com/broofa/node-mime/issues/154) +- [**closed**] Error while installing mime [#153](https://github.com/broofa/node-mime/issues/153) +- [**closed**] application/manifest+json [#149](https://github.com/broofa/node-mime/issues/149) +- [**closed**] Dynamic adaptive streaming over HTTP (DASH) file extension typo [#141](https://github.com/broofa/node-mime/issues/141) +- [**closed**] charsets image/png undefined [#140](https://github.com/broofa/node-mime/issues/140) +- [**closed**] Mime-db dependency out of date [#130](https://github.com/broofa/node-mime/issues/130) +- [**closed**] how to support plist锛 [#126](https://github.com/broofa/node-mime/issues/126) +- [**closed**] how does .types file format look like? [#123](https://github.com/broofa/node-mime/issues/123) +- [**closed**] Feature: support for expanding MIME patterns [#121](https://github.com/broofa/node-mime/issues/121) +- [**closed**] DEBUG_MIME doesn't work [#117](https://github.com/broofa/node-mime/issues/117) + +--- + +## v1.3.4 (06/02/2015) +*No changelog for this release.* + +--- + +## v1.3.3 (06/02/2015) +*No changelog for this release.* + +--- + +## v1.3.1 (05/02/2015) +- [**closed**] Consider adding support for Handlebars .hbs file ending [#111](https://github.com/broofa/node-mime/issues/111) +- [**closed**] Consider adding support for hjson. [#110](https://github.com/broofa/node-mime/issues/110) +- [**closed**] Add mime type for Opus audio files [#94](https://github.com/broofa/node-mime/issues/94) +- [**closed**] Consider making the `Requesting New Types` information more visible [#77](https://github.com/broofa/node-mime/issues/77) + +--- + +## v1.3.0 (05/02/2015) +- [**closed**] Add common name? [#114](https://github.com/broofa/node-mime/issues/114) +- [**closed**] application/x-yaml [#104](https://github.com/broofa/node-mime/issues/104) +- [**closed**] Add mime type for WOFF file format 2.0 [#102](https://github.com/broofa/node-mime/issues/102) +- [**closed**] application/x-msi for .msi [#99](https://github.com/broofa/node-mime/issues/99) +- [**closed**] Add mimetype for gettext translation files [#98](https://github.com/broofa/node-mime/issues/98) +- [**closed**] collaborators [#88](https://github.com/broofa/node-mime/issues/88) +- [**closed**] getting errot in installation of mime module...any1 can help? [#87](https://github.com/broofa/node-mime/issues/87) +- [**closed**] should application/json's charset be utf8? [#86](https://github.com/broofa/node-mime/issues/86) +- [**closed**] Add "license" and "licenses" to package.json [#81](https://github.com/broofa/node-mime/issues/81) +- [**closed**] lookup with extension-less file on Windows returns wrong type [#68](https://github.com/broofa/node-mime/issues/68) + +--- + +## v1.2.11 (15/08/2013) +- [**closed**] Update mime.types [#65](https://github.com/broofa/node-mime/issues/65) +- [**closed**] Publish a new version [#63](https://github.com/broofa/node-mime/issues/63) +- [**closed**] README should state upfront that "application/octet-stream" is default for unknown extension [#55](https://github.com/broofa/node-mime/issues/55) +- [**closed**] Suggested improvement to the charset API [#52](https://github.com/broofa/node-mime/issues/52) + +--- + +## v1.2.10 (25/07/2013) +- [**closed**] Mime type for woff files should be application/font-woff and not application/x-font-woff [#62](https://github.com/broofa/node-mime/issues/62) +- [**closed**] node.types in conflict with mime.types [#51](https://github.com/broofa/node-mime/issues/51) + +--- + +## v1.2.9 (17/01/2013) +- [**closed**] Please update "mime" NPM [#49](https://github.com/broofa/node-mime/issues/49) +- [**closed**] Please add semicolon [#46](https://github.com/broofa/node-mime/issues/46) +- [**closed**] parse full mime types [#43](https://github.com/broofa/node-mime/issues/43) + +--- + +## v1.2.8 (10/01/2013) +- [**closed**] /js directory mime is application/javascript. Is it correct? [#47](https://github.com/broofa/node-mime/issues/47) +- [**closed**] Add mime types for lua code. [#45](https://github.com/broofa/node-mime/issues/45) + +--- + +## v1.2.7 (19/10/2012) +- [**closed**] cannot install 1.2.7 via npm [#41](https://github.com/broofa/node-mime/issues/41) +- [**closed**] Transfer ownership to @broofa [#36](https://github.com/broofa/node-mime/issues/36) +- [**closed**] it's wrong to set charset to UTF-8 for text [#30](https://github.com/broofa/node-mime/issues/30) +- [**closed**] Allow multiple instances of MIME types container [#27](https://github.com/broofa/node-mime/issues/27) + +--- + +## v1.2.5 (16/02/2012) +- [**closed**] When looking up a types, check hasOwnProperty [#23](https://github.com/broofa/node-mime/issues/23) +- [**closed**] Bump version to 1.2.2 [#18](https://github.com/broofa/node-mime/issues/18) +- [**closed**] No license [#16](https://github.com/broofa/node-mime/issues/16) +- [**closed**] Some types missing that are used by html5/css3 [#13](https://github.com/broofa/node-mime/issues/13) +- [**closed**] npm install fails for 1.2.1 [#12](https://github.com/broofa/node-mime/issues/12) +- [**closed**] image/pjpeg + image/x-png [#10](https://github.com/broofa/node-mime/issues/10) +- [**closed**] symlink [#8](https://github.com/broofa/node-mime/issues/8) +- [**closed**] gzip [#2](https://github.com/broofa/node-mime/issues/2) +- [**closed**] ALL CAPS filenames return incorrect mime type [#1](https://github.com/broofa/node-mime/issues/1) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..d3f46f7e145990dad5954d78c5da9a2c2bdcbe36 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/LICENSE" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2010 Benjamin Thomas, Robert Kieffer + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..506fbe550a8dee9f0bde702fda6a040dfed3aba8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/README.md" @@ -0,0 +1,90 @@ +# mime + +Comprehensive MIME type mapping API based on mime-db module. + +## Install + +Install with [npm](http://github.com/isaacs/npm): + + npm install mime + +## Contributing / Testing + + npm run test + +## Command Line + + mime [path_string] + +E.g. + + > mime scripts/jquery.js + application/javascript + +## API - Queries + +### mime.lookup(path) +Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g. + +```js +var mime = require('mime'); + +mime.lookup('/path/to/file.txt'); // => 'text/plain' +mime.lookup('file.txt'); // => 'text/plain' +mime.lookup('.TXT'); // => 'text/plain' +mime.lookup('htm'); // => 'text/html' +``` + +### mime.default_type +Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.) + +### mime.extension(type) +Get the default extension for `type` + +```js +mime.extension('text/html'); // => 'html' +mime.extension('application/octet-stream'); // => 'bin' +``` + +### mime.charsets.lookup() + +Map mime-type to charset + +```js +mime.charsets.lookup('text/plain'); // => 'UTF-8' +``` + +(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.) + +## API - Defining Custom Types + +Custom type mappings can be added on a per-project basis via the following APIs. + +### mime.define() + +Add custom mime/extension mappings + +```js +mime.define({ + 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'], + 'application/x-my-type': ['x-mt', 'x-mtt'], + // etc ... +}); + +mime.lookup('x-sft'); // => 'text/x-some-format' +``` + +The first entry in the extensions array is returned by `mime.extension()`. E.g. + +```js +mime.extension('text/x-some-format'); // => 'x-sf' +``` + +### mime.load(filepath) + +Load mappings from an Apache ".types" format file + +```js +mime.load('./my_project.types'); +``` +The .types file format is simple - See the `types` dir for examples. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/cli.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/cli.js" new file mode 100644 index 0000000000000000000000000000000000000000..20b1ffeb2f97648e0faa7e022c98ed9e6a8e9a0d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/cli.js" @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +var mime = require('./mime.js'); +var file = process.argv[2]; +var type = mime.lookup(file); + +process.stdout.write(type + '\n'); + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/mime.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/mime.js" new file mode 100644 index 0000000000000000000000000000000000000000..d7efbde70b8e95fb7f67da9c8cfed11ce8ce4133 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/mime.js" @@ -0,0 +1,108 @@ +var path = require('path'); +var fs = require('fs'); + +function Mime() { + // Map of extension -> mime type + this.types = Object.create(null); + + // Map of mime type -> extension + this.extensions = Object.create(null); +} + +/** + * Define mimetype -> extension mappings. Each key is a mime-type that maps + * to an array of extensions associated with the type. The first extension is + * used as the default extension for the type. + * + * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); + * + * @param map (Object) type definitions + */ +Mime.prototype.define = function (map) { + for (var type in map) { + var exts = map[type]; + for (var i = 0; i < exts.length; i++) { + if (process.env.DEBUG_MIME && this.types[exts[i]]) { + console.warn((this._loading || "define()").replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' + + this.types[exts[i]] + ' to ' + type); + } + + this.types[exts[i]] = type; + } + + // Default extension is the first one we encounter + if (!this.extensions[type]) { + this.extensions[type] = exts[0]; + } + } +}; + +/** + * Load an Apache2-style ".types" file + * + * This may be called multiple times (it's expected). Where files declare + * overlapping types/extensions, the last file wins. + * + * @param file (String) path of file to load. + */ +Mime.prototype.load = function(file) { + this._loading = file; + // Read file and split into lines + var map = {}, + content = fs.readFileSync(file, 'ascii'), + lines = content.split(/[\r\n]+/); + + lines.forEach(function(line) { + // Clean up whitespace/comments, and split into fields + var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/); + map[fields.shift()] = fields; + }); + + this.define(map); + + this._loading = null; +}; + +/** + * Lookup a mime type based on extension + */ +Mime.prototype.lookup = function(path, fallback) { + var ext = path.replace(/^.*[\.\/\\]/, '').toLowerCase(); + + return this.types[ext] || fallback || this.default_type; +}; + +/** + * Return file extension associated with a mime type + */ +Mime.prototype.extension = function(mimeType) { + var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); + return this.extensions[type]; +}; + +// Default instance +var mime = new Mime(); + +// Define built-in types +mime.define(require('./types.json')); + +// Default type +mime.default_type = mime.lookup('bin'); + +// +// Additional API specific to the default instance +// + +mime.Mime = Mime; + +/** + * Lookup a charset based on mime type. + */ +mime.charsets = { + lookup: function(mimeType, fallback) { + // Assume text types are utf8 + return (/^text\/|^application\/(javascript|json)/).test(mimeType) ? 'UTF-8' : fallback; + } +}; + +module.exports = mime; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..c5f2f3a47e2ef9e2a991ff12370717916f087881 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/package.json" @@ -0,0 +1,73 @@ +{ + "_from": "mime@1.6.0", + "_id": "mime@1.6.0", + "_inBundle": false, + "_integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "_location": "/mime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime@1.6.0", + "name": "mime", + "escapedName": "mime", + "rawSpec": "1.6.0", + "saveSpec": null, + "fetchSpec": "1.6.0" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "_shasum": "32cd9e5c64553bd58d19a568af452acff04981b1", + "_spec": "mime@1.6.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\send", + "author": { + "name": "Robert Kieffer", + "email": "robert@broofa.com", + "url": "http://github.com/broofa" + }, + "bin": { + "mime": "cli.js" + }, + "bugs": { + "url": "https://github.com/broofa/node-mime/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Benjamin Thomas", + "email": "benjamin@benjaminthomas.org", + "url": "http://github.com/bentomas" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "A comprehensive library for mime-type mapping", + "devDependencies": { + "github-release-notes": "0.13.1", + "mime-db": "1.31.0", + "mime-score": "1.1.0" + }, + "engines": { + "node": ">=4" + }, + "homepage": "https://github.com/broofa/node-mime#readme", + "keywords": [ + "util", + "mime" + ], + "license": "MIT", + "main": "mime.js", + "name": "mime", + "repository": { + "url": "git+https://github.com/broofa/node-mime.git", + "type": "git" + }, + "scripts": { + "changelog": "gren changelog --tags=all --generate --override", + "prepare": "node src/build.js", + "test": "node src/test.js" + }, + "version": "1.6.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/src/build.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/src/build.js" new file mode 100644 index 0000000000000000000000000000000000000000..4928e48bcd5db783074ca4d842ba24931645e1f6 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/src/build.js" @@ -0,0 +1,53 @@ +#!/usr/bin/env node + +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const mimeScore = require('mime-score'); + +let db = require('mime-db'); +let chalk = require('chalk'); + +const STANDARD_FACET_SCORE = 900; + +const byExtension = {}; + +// Clear out any conflict extensions in mime-db +for (let type in db) { + let entry = db[type]; + entry.type = type; + + if (!entry.extensions) continue; + + entry.extensions.forEach(ext => { + if (ext in byExtension) { + const e0 = entry; + const e1 = byExtension[ext]; + e0.pri = mimeScore(e0.type, e0.source); + e1.pri = mimeScore(e1.type, e1.source); + + let drop = e0.pri < e1.pri ? e0 : e1; + let keep = e0.pri >= e1.pri ? e0 : e1; + drop.extensions = drop.extensions.filter(e => e !== ext); + + console.log(`${ext}: Keeping ${chalk.green(keep.type)} (${keep.pri}), dropping ${chalk.red(drop.type)} (${drop.pri})`); + } + byExtension[ext] = entry; + }); +} + +function writeTypesFile(types, path) { + fs.writeFileSync(path, JSON.stringify(types)); +} + +// Segregate into standard and non-standard types based on facet per +// https://tools.ietf.org/html/rfc6838#section-3.1 +const types = {}; + +Object.keys(db).sort().forEach(k => { + const entry = db[k]; + types[entry.type] = entry.extensions; +}); + +writeTypesFile(types, path.join(__dirname, '..', 'types.json')); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/src/test.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/src/test.js" new file mode 100644 index 0000000000000000000000000000000000000000..42958a20d5bdbae6a4724c6a8cc99f292b00b265 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/src/test.js" @@ -0,0 +1,60 @@ +/** + * Usage: node test.js + */ + +var mime = require('../mime'); +var assert = require('assert'); +var path = require('path'); + +// +// Test mime lookups +// + +assert.equal('text/plain', mime.lookup('text.txt')); // normal file +assert.equal('text/plain', mime.lookup('TEXT.TXT')); // uppercase +assert.equal('text/plain', mime.lookup('dir/text.txt')); // dir + file +assert.equal('text/plain', mime.lookup('.text.txt')); // hidden file +assert.equal('text/plain', mime.lookup('.txt')); // nameless +assert.equal('text/plain', mime.lookup('txt')); // extension-only +assert.equal('text/plain', mime.lookup('/txt')); // extension-less () +assert.equal('text/plain', mime.lookup('\\txt')); // Windows, extension-less +assert.equal('application/octet-stream', mime.lookup('text.nope')); // unrecognized +assert.equal('fallback', mime.lookup('text.fallback', 'fallback')); // alternate default + +// +// Test extensions +// + +assert.equal('txt', mime.extension(mime.types.text)); +assert.equal('html', mime.extension(mime.types.htm)); +assert.equal('bin', mime.extension('application/octet-stream')); +assert.equal('bin', mime.extension('application/octet-stream ')); +assert.equal('html', mime.extension(' text/html; charset=UTF-8')); +assert.equal('html', mime.extension('text/html; charset=UTF-8 ')); +assert.equal('html', mime.extension('text/html; charset=UTF-8')); +assert.equal('html', mime.extension('text/html ; charset=UTF-8')); +assert.equal('html', mime.extension('text/html;charset=UTF-8')); +assert.equal('html', mime.extension('text/Html;charset=UTF-8')); +assert.equal(undefined, mime.extension('unrecognized')); + +// +// Test node.types lookups +// + +assert.equal('font/woff', mime.lookup('file.woff')); +assert.equal('application/octet-stream', mime.lookup('file.buffer')); +// TODO: Uncomment once #157 is resolved +// assert.equal('audio/mp4', mime.lookup('file.m4a')); +assert.equal('font/otf', mime.lookup('file.otf')); + +// +// Test charsets +// + +assert.equal('UTF-8', mime.charsets.lookup('text/plain')); +assert.equal('UTF-8', mime.charsets.lookup(mime.types.js)); +assert.equal('UTF-8', mime.charsets.lookup(mime.types.json)); +assert.equal(undefined, mime.charsets.lookup(mime.types.bin)); +assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback')); + +console.log('\nAll tests passed'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/types.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/types.json" new file mode 100644 index 0000000000000000000000000000000000000000..bec78abd491e093599b2615533687a6b3c360526 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mime/types.json" @@ -0,0 +1 @@ +{"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..6a522b16b3a3bf5e93aa5b8bf485f866ff71c5c2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/index.js" @@ -0,0 +1,152 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; + } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; + } + return Math.ceil(ms / n) + ' ' + name + 's'; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/license.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/license.md" new file mode 100644 index 0000000000000000000000000000000000000000..69b61253a38926757b7de1d4df4880fc2105c2c9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/license.md" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..0081527f32b9fe331e4499199b477f738db99f27 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/package.json" @@ -0,0 +1,69 @@ +{ + "_from": "ms@2.0.0", + "_id": "ms@2.0.0", + "_inBundle": false, + "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "_location": "/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.0.0", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/debug" + ], + "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", + "_spec": "ms@2.0.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\debug", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Tiny milisecond conversion utility", + "devDependencies": { + "eslint": "3.19.0", + "expect.js": "0.3.1", + "husky": "0.13.3", + "lint-staged": "3.4.1", + "mocha": "3.4.1" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.0.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..84a9974cccd81f9296b7d3c77f2b0d2765dfe181 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/ms/readme.md" @@ -0,0 +1,51 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +``` + +### Convert from milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(ms('10 hours')) // "10h" +``` + +### Time format written-out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [node](https://nodejs.org) and in the browser. +- If a number is supplied to `ms`, a string with a unit is returned. +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`). +- If you pass a string with a number and a valid unit, the number of equivalent ms is returned. + +## Caught a bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/Changes.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/Changes.md" new file mode 100644 index 0000000000000000000000000000000000000000..73e549c8dfb5487c3102b5574a3eb127662f99eb --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/Changes.md" @@ -0,0 +1,569 @@ +# Changes + +This file is a manually maintained list of changes for each release. Feel free +to add your changes here when sending pull requests. Also send corrections if +you spot any mistakes. + +## v2.18.1 (2020-01-23) + +* Fix Amazon RDS profile for yaSSL MySQL servers with 2019 CA #2292 + +## v2.18.0 (2020-01-21) + +* Add `localInfile` option to control `LOAD DATA LOCAL INFILE` +* Add new Amazon RDS Root 2019 CA to Amazon RDS SSL profile #2280 +* Add new error codes up to MySQL 5.7.29 +* Fix early detection of bad callback to `connection.query` +* Support Node.js 12.x #2211 +* Support Node.js 13.x +* Support non-enumerable properties in object argument to `connection.query` #2253 +* Update `bignumber.js` to 9.0.0 +* Update `readable-stream` to 2.3.7 + +## v2.17.1 (2019-04-18) + +* Update `bignumber.js` to 7.2.1 #2206 + - Fix npm deprecation warning + +## v2.17.0 (2019-04-17) + +* Add reverse type lookup for small performance gain #2170 +* Fix `connection.threadId` missing on handshake failure +* Fix duplicate packet name in debug output +* Fix no password support for old password protocol +* Remove special case for handshake in determine packet code +* Small performance improvement starting command sequence +* Support auth switch in change user flow #1776 +* Support Node.js 11.x +* Update `bignumber.js` to 6.0.0 + +## v2.16.0 (2018-07-17) + +* Add Amazon RDS GovCloud SSL certificates #1876 +* Add new error codes up to MySQL 5.7.21 +* Include connection ID in debug output +* Support Node.js 9.x +* Support Node.js 10.x #2003 #2024 #2026 #2034 +* Update Amazon RDS SSL certificates +* Update `bignumber.js` to 4.1.0 +* Update `readable-stream` to 2.3.6 +* Update `sqlstring` to 2.3.1 + - Fix incorrectly replacing non-placeholders in SQL + +## v2.15.0 (2017-10-05) + +* Add new Amazon RDS ca-central-1 certificate CA to Amazon RDS SSL profile #1809 +* Add new error codes up to MySQL 5.7.19 +* Add `mysql.raw()` to generate pre-escaped values #877 #1821 +* Fix "changedRows" to work on non-English servers #1819 +* Fix error when server sends RST on `QUIT` #1811 +* Fix typo in insecure auth error message +* Support `mysql_native_password` auth switch request for Azure #1396 #1729 #1730 +* Update `sqlstring` to 2.3.0 + - Add `.toSqlString()` escape overriding + - Small performance improvement on `escapeId` +* Update `bignumber.js` to 4.0.4 + +## v2.14.1 (2017-08-01) + +* Fix holding first closure for lifetime of connection #1785 + +## v2.14.0 (2017-07-25) + +* Add new Amazon RDS ap-south-1 certificate CA to Amazon RDS SSL profile #1780 +* Add new Amazon RDS eu-west-2 certificate CA to Amazon RDS SSL profile #1770 +* Add `sql` property to query `Error` objects #1462 #1628 #1629 +* Add `sqlMessage` property to `Error` objects #1714 +* Fix the MySQL 5.7.17 error codes +* Support Node.js 8.x +* Update `bignumber.js` to 4.0.2 +* Update `readable-stream` to 2.3.3 +* Use `safe-buffer` for improved Buffer API + +## v2.13.0 (2017-01-24) + +* Accept regular expression as pool cluster pattern #1572 +* Accept wildcard anywhere in pool cluster pattern #1570 +* Add `acquire` and `release` events to `Pool` for tracking #1366 #1449 #1528 #1625 +* Add new error codes up to MySQL 5.7.17 +* Fix edge cases when determing Query result packets #1547 +* Fix memory leak when using long-running domains #1619 #1620 +* Remove unnecessary buffer copies when receiving large packets +* Update `bignumber.js` to 3.1.2 +* Use a simple buffer list to improve performance #566 #1590 + +## v2.12.0 (2016-11-02) + +* Accept array of type names to `dateStrings` option #605 #1481 +* Add `query` method to `PoolNamespace` #1256 #1505 #1506 + - Used as `cluster.of(...).query(...)` +* Add new error codes up to MySQL 5.7.16 +* Fix edge cases writing certain length coded values +* Fix typo in `HANDSHAKE_NO_SSL_SUPPORT` error message #1534 +* Support Node.js 7.x +* Update `bignumber.js` to 2.4.0 +* Update `sqlstring` to 2.2.0 + - Accept numbers and other value types in `escapeId` + - Escape invalid `Date` objects as `NULL` + - Run `buffer.toString()` through escaping + +## v2.11.1 (2016-06-07) + +* Fix writing truncated packets starting with large string/buffer #1438 + +## v2.11.0 (2016-06-06) + +* Add `POOL_CLOSED` code to "Pool is closed." error +* Add `POOL_CONNLIMIT` code to "No connections available." error #1332 +* Bind underlying connections in pool to same domain as pool #1242 +* Bind underlying socket to same domain as connection #1243 +* Fix allocation errors receiving many result rows #918 #1265 #1324 #1415 +* Fix edge cases constructing long stack traces #1387 +* Fix handshake inactivity timeout on Node.js v4.2.0 #1223 #1236 #1239 #1240 #1241 #1252 +* Fix Query stream to emit close after ending #1349 #1350 +* Fix type cast for BIGINT columns when number is negative #1376 +* Performance improvements for array/object escaping in SqlString #1331 +* Performance improvements for formatting in SqlString #1431 +* Performance improvements for string escaping in SqlString #1390 +* Performance improvements for writing packets to network +* Support Node.js 6.x +* Update `bignumber.js` to 2.3.0 +* Update `readable-stream` to 1.1.14 +* Use the `sqlstring` module for SQL escaping and formatting + +## v2.10.2 (2016-01-12) + +* Fix exception/hang from certain SSL connection errors #1153 +* Update `bignumber.js` to 2.1.4 + +## v2.10.1 (2016-01-11) + +* Add new Amazon RDS ap-northeast-2 certificate CA to Amazon RDS SSL profile #1329 + +## v2.10.0 (2015-12-15) + +* Add new error codes up to MySQL 5.7.9 #1294 +* Add new JSON type constant #1295 +* Add types for fractional seconds support +* Fix `connection.destroy()` on pool connection creating sequences #1291 +* Fix error code 139 `HA_ERR_TO_BIG_ROW` to be `HA_ERR_TOO_BIG_ROW` +* Fix error when call site error is missing stack #1179 +* Fix reading password from MySQL URL that has bare colon #1278 +* Handle MySQL servers not closing TCP connection after QUIT -> OK exchange #1277 +* Minor SqlString Date to string performance improvement #1233 +* Support Node.js 4.x +* Support Node.js 5.x +* Update `bignumber.js` to 2.1.2 + +## v2.9.0 (2015-08-19) + +* Accept the `ciphers` property in connection `ssl` option #1185 +* Fix bad timezone conversion from `Date` to string for certain times #1045 #1155 + +## v2.8.0 (2015-07-13) + +* Add `connect` event to `Connection` #1129 +* Default `timeout` for `connection.end` to 30 seconds #1057 +* Fix a sync callback when sequence enqueue fails #1147 +* Provide static require analysis +* Re-use connection from pool after `conn.changeUser` is used #837 #1088 + +## v2.7.0 (2015-05-27) + +* Destroy/end connections removed from the pool on error +* Delay implied connect until after `.query` argument validation +* Do not remove connections with non-fatal errors from the pool +* Error early if `callback` argument to `.query` is not a function #1060 +* Lazy-load modules from many entry point; reduced memory use + +## v2.6.2 (2015-04-14) + +* Fix `Connection.createQuery` for no SQL #1058 +* Update `bignumber.js` to 2.0.7 + +## v2.6.1 (2015-03-26) + +* Update `bignumber.js` to 2.0.5 #1037 #1038 + +## v2.6.0 (2015-03-24) + +* Add `poolCluster.remove` to remove pools from the cluster #1006 #1007 +* Add optional callback to `poolCluster.end` +* Add `restoreNodeTimeout` option to `PoolCluster` #880 #906 +* Fix LOAD DATA INFILE handling in multiple statements #1036 +* Fix `poolCluster.add` to throw if `PoolCluster` has been closed +* Fix `poolCluster.add` to throw if `id` already defined +* Fix un-catchable error from `PoolCluster` when MySQL server offline #1033 +* Improve speed formatting SQL #1019 +* Support io.js + +## v2.5.5 (2015-02-23) + +* Store SSL presets in JS instead of JSON #959 +* Support Node.js 0.12 +* Update Amazon RDS SSL certificates #1001 + +## v2.5.4 (2014-12-16) + +* Fix error if falsy error thrown in callback handler #960 +* Fix various error code strings #954 + +## v2.5.3 (2014-11-06) + +* Fix `pool.query` streaming interface not emitting connection errors #941 + +## v2.5.2 (2014-10-10) + +* Fix receiving large text fields #922 + +## v2.5.1 (2014-09-22) + +* Fix `pool.end` race conditions #915 +* Fix `pool.getConnection` race conditions + +## v2.5.0 (2014-09-07) + +* Add code `POOL_ENQUEUELIMIT` to error reaching `queueLimit` +* Add `enqueue` event to pool #716 +* Add `enqueue` event to protocol and connection #381 +* Blacklist unsupported connection flags #881 +* Make only column names enumerable in `RowDataPacket` #549 #895 +* Support Node.js 0.6 #718 + +## v2.4.3 (2014-08-25) + +* Fix `pool.query` to use `typeCast` configuration + +## v2.4.2 (2014-08-03) + +* Fix incorrect sequence packet errors to be catchable #867 +* Fix stray protocol packet errors to be catchable #867 +* Fix timing of fatal protocol errors bubbling to user #879 + +## v2.4.1 (2014-07-17) + +* Fix `pool.query` not invoking callback on connection error #872 + +## v2.4.0 (2014-07-13) + +* Add code `POOL_NOEXIST` in PoolCluster error #846 +* Add `acquireTimeout` pool option to specify a timeout for acquiring a connection #821 #854 +* Add `connection.escapeId` +* Add `pool.escapeId` +* Add `timeout` option to all sequences #855 #863 +* Default `connectTimeout` to 10 seconds +* Fix domain binding with `conn.connect` +* Fix `packet.default` to actually be a string +* Fix `PARSER_*` errors to be catchable +* Fix `PROTOCOL_PACKETS_OUT_OF_ORDER` error to be catchable #844 +* Include packets that failed parsing under `debug` +* Return `Query` object from `pool.query` like `conn.query` #830 +* Use `EventEmitter.listenerCount` when possible for faster counting + +## v2.3.2 (2014-05-29) + +* Fix pool leaking connections after `conn.changeUser` #833 + +## v2.3.1 (2014-05-26) + +* Add database errors to error constants +* Add global errors to error constants +* Throw when calling `conn.release` multiple times #824 #827 +* Update known error codes + +## v2.3.0 (2014-05-16) + +* Accept MySQL charset (like `UTF8` or `UTF8MB4`) in `charset` option #808 +* Accept pool options in connection string to `mysql.createPool` #811 +* Clone connection config for new pool connections +* Default `connectTimeout` to 2 minutes +* Reject unauthorized SSL connections (use `ssl.rejectUnauthorized` to override) #816 +* Return last error when PoolCluster exhausts connection retries #818 +* Remove connection from pool after `conn.changeUser` is released #806 +* Throw on unknown SSL profile name #817 +* User newer TLS functions when available #809 + +## v2.2.0 (2014-04-27) + +* Use indexOf instead of for loops removing conn from pool #611 +* Make callback to `pool.query` optional like `conn.query` #585 +* Prevent enqueuing sequences after fatal error #400 +* Fix geometry parser for empty fields #742 +* Accept lower-case charset option +* Throw on unknown charset option #789 +* Update known charsets +* Remove console.warn from PoolCluster #744 +* Fix `pool.end` to handle queued connections #797 +* Fix `pool.releaseConnection` to keep connection queue flowing #797 +* Fix SSL handshake error to be catchable #800 +* Add `connection.threadId` to get MySQL connection ID #602 +* Ensure `pool.getConnection` retrieves good connections #434 #557 #778 +* Fix pool cluster wildcard matching #627 +* Pass query values through to `SqlString.format` #590 + +## v2.1.1 (2014-03-13) + +* fix authentication w/password failure for node.js 0.10.5 #746 #752 +* fix authentication w/password TypeError exception for node.js 0.10.0-0.10.4 #747 +* fix specifying `values` in `conn.query({...}).on(...)` pattern #755 +* fix long stack trace to include the `pool.query(...)` call #715 + +## v2.1.0 (2014-02-20) + +* crypto.createHash fix for node.js < 11 #735 +* Add `connectTimeout` option to specify a timeout for establishing a connection #726 +* SSL support #481 + +## v2.0.1 + +* internal parser speed improvement #702 +* domains support +* 'trace' connection option to control if long stack traces are generated #713 #710 #439 + +## v2.0.0 (2014-01-09) + +* stream improvements: + - node 0.8 support #692 + - Emit 'close' events from query streams #688 +* encoding fix in streaming LOAD DATA LOCAL INFILE #670 +* Doc improvements + +## v2.0.0-rc2 (2013-12-07) + +* Streaming LOAD DATA LOCAL INFILE #668 +* Doc improvements + +## v2.0.0-rc1 (2013-11-30) + +* Transaction support +* Expose SqlString.format as mysql.format() +* Many bug fixes +* Better support for dates in local time zone +* Doc improvements + +## v2.0.0-alpha9 (2013-08-27) + +* Add query to pool to execute queries directly using the pool +* Add `sqlState` property to `Error` objects #556 +* Pool option to set queue limit +* Pool sends 'connection' event when it opens a new connection +* Added stringifyObjects option to treat input as strings rather than objects (#501) +* Support for poolClusters +* Datetime improvements +* Bug fixes + +## v2.0.0-alpha8 (2013-04-30) + +* Switch to old mode for Streams 2 (Node.js v 0.10.x) +* Add stream method to Query Wraps events from the query object into a node v0.10.x Readable stream +* DECIMAL should also be treated as big number +* Removed slow unnecessary stack access +* Added charsets +* Added bigNumberStrings option for forcing BIGINT columns as strings +* Changes date parsing to return String if not a valid JS Date +* Adds support for ?? escape sequence to escape identifiers +* Changes Auth.token() to force password to be in binary, not utf8 (#378) +* Restrict debugging by packet types +* Add 'multipleStatements' option tracking to ConnectionConfig. Fixes GH-408 +* Changes Pool to handle 'error' events and dispose connection +* Allows db.query({ sql: "..." }, [ val1, ... ], cb); (#390) +* Improved documentation +* Bug fixes + +## v2.0.0-alpha7 (2013-02-03) + +* Add connection pooling (#351) + +## v2.0.0-alpha6 (2013-01-31) + +* Add supportBigNumbers option (#381, #382) +* Accept prebuilt Query object in connection.query +* Bug fixes + +## v2.0.0-alpha5 (2012-12-03) + +* Add mysql.escapeId to escape identifiers (closes #342) +* Allow custom escaping mode (config.queryFormat) +* Convert DATE columns to configured timezone instead of UTC (#332) +* Convert LONGLONG and NEWDECIMAL to numbers (#333) +* Fix Connection.escape() (fixes #330) +* Changed Readme ambiguity about custom type cast fallback +* Change typeCast to receive Connection instead of Connection.config.timezone +* Fix drain event having useless err parameter +* Add Connection.statistics() back from v0.9 +* Add Connection.ping() back from v0.9 + +## v2.0.0-alpha4 (2012-10-03) + +* Fix some OOB errors on resume() +* Fix quick pause() / resume() usage +* Properly parse host denied / similar errors +* Add Connection.ChangeUser functionality +* Make sure changeUser errors are fatal +* Enable formatting nested arrays for bulk inserts +* Add Connection.escape functionality +* Renamed 'close' to 'end' event +* Return parsed object instead of Buffer for GEOMETRY types +* Allow nestTables inline (using a string instead of a boolean) +* Check for ZEROFILL_FLAG and format number accordingly +* Add timezone support (default: local) +* Add custom typeCast functionality +* Export mysql column types +* Add connection flags functionality (#237) +* Exports drain event when queue finishes processing (#272, #271, #306) + +## v2.0.0-alpha3 (2012-06-12) + +* Implement support for `LOAD DATA LOCAL INFILE` queries (#182). +* Support OLD\_PASSWORD() accounts like 0.9.x did. You should still upgrade any + user accounts in your your MySQL user table that has short (16 byte) Password + values. Connecting to those accounts is not secure. (#204) +* Ignore function values when escaping objects, allows to use RowDataPacket + objects as query arguments. (Alex Gorbatchev, #213) +* Handle initial error packets from server such as `ER_HOST_NOT_PRIVILEGED`. +* Treat `utf8\_bin` as a String, not Buffer. (#214) +* Handle empty strings in first row column value. (#222) +* Honor Connection#nestTables setting for queries. (#221) +* Remove `CLIENT_INTERACTIVE` flag from config. Improves #225. +* Improve docs for connections settings. +* Implement url string support for Connection configs. + +## v2.0.0-alpha2 (2012-05-31) + +* Specify escaping before for NaN / Infinity (they are as unquoted constants). +* Support for unix domain socket connections (use: {socketPath: '...'}). +* Fix type casting for NULL values for Date/Number fields +* Add `fields` argument to `query()` as well as `'fields'` event. This is + similar to what was available in 0.9.x. +* Support connecting to the sphinx searchd daemon as well as MariaDB (#199). +* Implement long stack trace support, will be removed / disabled if the node + core ever supports it natively. +* Implement `nestTables` option for queries, allows fetching JOIN result sets + with overlapping column names. +* Fix ? placeholder mechanism for values containing '?' characters (#205). +* Detect when `connect()` is called more than once on a connection and provide + the user with a good error message for it (#204). +* Switch to `UTF8_GENERAL_CI` (previously `UTF8_UNICODE_CI`) as the default + charset for all connections to avoid strange MySQL performance issues (#200), + and also make the charset user configurable. +* Fix BLOB type casting for `TINY_BLOB`, `MEDIUM_BLOB` and `LONG_BLOB`. +* Add support for sending and receiving large (> 16 MB) packets. + +## v2.0.0-alpha (2012-05-15) + +This release is a rewrite. You should carefully test your application after +upgrading to avoid problems. This release features many improvements, most +importantly: + +* ~5x faster than v0.9.x for parsing query results +* Support for pause() / resume() (for streaming rows) +* Support for multiple statement queries +* Support for stored procedures +* Support for transactions +* Support for binary columns (as blobs) +* Consistent & well documented error handling +* A new Connection class that has well defined semantics (unlike the old Client class). +* Convenient escaping of objects / arrays that allows for simpler query construction +* A significantly simpler code base +* Many bug fixes & other small improvements (Closed 62 out of 66 GitHub issues) + +Below are a few notes on the upgrade process itself: + +The first thing you will run into is that the old `Client` class is gone and +has been replaced with a less ambitious `Connection` class. So instead of +`mysql.createClient()`, you now have to: + +```js +var mysql = require('mysql'); +var connection = mysql.createConnection({ + host : 'localhost', + user : 'me', + password : 'secret', +}); + +connection.query('SELECT 1', function(err, rows) { + if (err) throw err; + + console.log('Query result: ', rows); +}); + +connection.end(); +``` + +The new `Connection` class does not try to handle re-connects, please study the +`Server disconnects` section in the new Readme. + +Other than that, the interface has stayed very similar. Here are a few things +to check out so: + +* BIGINT's are now cast into strings +* Binary data is now cast to buffers +* The `'row'` event on the `Query` object is now called `'result'` and will + also be emitted for queries that produce an OK/Error response. +* Error handling is consistently defined now, check the Readme +* Escaping has become more powerful which may break your code if you are + currently using objects to fill query placeholders. +* Connections can now be established explicitly again, so you may wish to do so + if you want to handle connection errors specifically. + +That should be most of it, if you run into anything else, please send a patch +or open an issue to improve this document. + +## v0.9.6 (2012-03-12) + +* Escape array values so they produce sql arrays (Roger Castells, Colin Smith) +* docs: mention mysql transaction stop gap solution (Blake Miner) +* docs: Mention affectedRows in FAQ (Michael Baldwin) + +## v0.9.5 (2011-11-26) + +* Fix #142 Driver stalls upon reconnect attempt that's immediately closed +* Add travis build +* Switch to urun as a test runner +* Switch to utest for unit tests +* Remove fast-or-slow dependency for tests +* Split integration tests into individual files again + +## v0.9.4 (2011-08-31) + +* Expose package.json as `mysql.PACKAGE` (#104) + +## v0.9.3 (2011-08-22) + +* Set default `client.user` to root +* Fix #91: Client#format should not mutate params array +* Fix #94: TypeError in client.js +* Parse decimals as string (vadimg) + +## v0.9.2 (2011-08-07) + +* The underlaying socket connection is now managed implicitly rather than explicitly. +* Check the [upgrading guide][] for a full list of changes. + +## v0.9.1 (2011-02-20) + +* Fix issue #49 / `client.escape()` throwing exceptions on objects. (Nick Payne) +* Drop < v0.4.x compatibility. From now on you need node v0.4.x to use this module. + +## Older releases + +These releases were done before maintaining this file: + +* [v0.9.0](https://github.com/mysqljs/mysql/compare/v0.8.0...v0.9.0) + (2011-01-04) +* [v0.8.0](https://github.com/mysqljs/mysql/compare/v0.7.0...v0.8.0) + (2010-10-30) +* [v0.7.0](https://github.com/mysqljs/mysql/compare/v0.6.0...v0.7.0) + (2010-10-14) +* [v0.6.0](https://github.com/mysqljs/mysql/compare/v0.5.0...v0.6.0) + (2010-09-28) +* [v0.5.0](https://github.com/mysqljs/mysql/compare/v0.4.0...v0.5.0) + (2010-09-17) +* [v0.4.0](https://github.com/mysqljs/mysql/compare/v0.3.0...v0.4.0) + (2010-09-02) +* [v0.3.0](https://github.com/mysqljs/mysql/compare/v0.2.0...v0.3.0) + (2010-08-25) +* [v0.2.0](https://github.com/mysqljs/mysql/compare/v0.1.0...v0.2.0) + (2010-08-22) +* [v0.1.0](https://github.com/mysqljs/mysql/commits/v0.1.0) + (2010-08-22) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/License" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/License" new file mode 100644 index 0000000000000000000000000000000000000000..c7ff12a2f8af2e2c57f39da1754409c25b35f46a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/License" @@ -0,0 +1,19 @@ +Copyright (c) 2012 Felix Geisend枚rfer (felix@debuggable.com) and contributors + + 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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..d7c9aa20ce8725a10aecc86bd7b5221d5a042389 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/Readme.md" @@ -0,0 +1,1548 @@ +# mysql + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Linux Build][travis-image]][travis-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +## Table of Contents + +- [Install](#install) +- [Introduction](#introduction) +- [Contributors](#contributors) +- [Sponsors](#sponsors) +- [Community](#community) +- [Establishing connections](#establishing-connections) +- [Connection options](#connection-options) + - [SSL options](#ssl-options) + - [Connection flags](#connection-flags) +- [Terminating connections](#terminating-connections) +- [Pooling connections](#pooling-connections) +- [Pool options](#pool-options) +- [Pool events](#pool-events) + - [acquire](#acquire) + - [connection](#connection) + - [enqueue](#enqueue) + - [release](#release) +- [Closing all the connections in a pool](#closing-all-the-connections-in-a-pool) +- [PoolCluster](#poolcluster) + - [PoolCluster options](#poolcluster-options) +- [Switching users and altering connection state](#switching-users-and-altering-connection-state) +- [Server disconnects](#server-disconnects) +- [Performing queries](#performing-queries) +- [Escaping query values](#escaping-query-values) +- [Escaping query identifiers](#escaping-query-identifiers) + - [Preparing Queries](#preparing-queries) + - [Custom format](#custom-format) +- [Getting the id of an inserted row](#getting-the-id-of-an-inserted-row) +- [Getting the number of affected rows](#getting-the-number-of-affected-rows) +- [Getting the number of changed rows](#getting-the-number-of-changed-rows) +- [Getting the connection ID](#getting-the-connection-id) +- [Executing queries in parallel](#executing-queries-in-parallel) +- [Streaming query rows](#streaming-query-rows) + - [Piping results with Streams](#piping-results-with-streams) +- [Multiple statement queries](#multiple-statement-queries) +- [Stored procedures](#stored-procedures) +- [Joins with overlapping column names](#joins-with-overlapping-column-names) +- [Transactions](#transactions) +- [Ping](#ping) +- [Timeouts](#timeouts) +- [Error handling](#error-handling) +- [Exception Safety](#exception-safety) +- [Type casting](#type-casting) + - [Number](#number) + - [Date](#date) + - [Buffer](#buffer) + - [String](#string) + - [Custom type casting](#custom-type-casting) +- [Debugging and reporting problems](#debugging-and-reporting-problems) +- [Security issues](#security-issues) +- [Contributing](#contributing) +- [Running tests](#running-tests) + - [Running unit tests](#running-unit-tests) + - [Running integration tests](#running-integration-tests) +- [Todo](#todo) + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). + +Before installing, [download and install Node.js](https://nodejs.org/en/download/). +Node.js 0.6 or higher is required. + +Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install mysql +``` + +For information about the previous 0.9.x releases, visit the [v0.9 branch][]. + +Sometimes I may also ask you to install the latest version from Github to check +if a bugfix is working. In this case, please do: + +```sh +$ npm install mysqljs/mysql +``` + +[v0.9 branch]: https://github.com/mysqljs/mysql/tree/v0.9 + +## Introduction + +This is a node.js driver for mysql. It is written in JavaScript, does not +require compiling, and is 100% MIT licensed. + +Here is an example on how to use it: + +```js +var mysql = require('mysql'); +var connection = mysql.createConnection({ + host : 'localhost', + user : 'me', + password : 'secret', + database : 'my_db' +}); + +connection.connect(); + +connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { + if (error) throw error; + console.log('The solution is: ', results[0].solution); +}); + +connection.end(); +``` + +From this example, you can learn the following: + +* Every method you invoke on a connection is queued and executed in sequence. +* Closing the connection is done using `end()` which makes sure all remaining + queries are executed before sending a quit packet to the mysql server. + +## Contributors + +Thanks goes to the people who have contributed code to this module, see the +[GitHub Contributors page][]. + +[GitHub Contributors page]: https://github.com/mysqljs/mysql/graphs/contributors + +Additionally I'd like to thank the following people: + +* [Andrey Hristov][] (Oracle) - for helping me with protocol questions. +* [Ulf Wendel][] (Oracle) - for helping me with protocol questions. + +[Ulf Wendel]: http://blog.ulf-wendel.de/ +[Andrey Hristov]: http://andrey.hristov.com/ + +## Sponsors + +The following companies have supported this project financially, allowing me to +spend more time on it (ordered by time of contribution): + +* [Transloadit](http://transloadit.com) (my startup, we do file uploading & + video encoding as a service, check it out) +* [Joyent](http://www.joyent.com/) +* [pinkbike.com](http://pinkbike.com/) +* [Holiday Extras](http://www.holidayextras.co.uk/) (they are [hiring](http://join.holidayextras.co.uk/)) +* [Newscope](http://newscope.com/) (they are [hiring](https://newscope.com/unternehmen/jobs/)) + +## Community + +If you'd like to discuss this module, or ask questions about it, please use one +of the following: + +* **Mailing list**: https://groups.google.com/forum/#!forum/node-mysql +* **IRC Channel**: #node.js (on freenode.net, I pay attention to any message + including the term `mysql`) + +## Establishing connections + +The recommended way to establish a connection is this: + +```js +var mysql = require('mysql'); +var connection = mysql.createConnection({ + host : 'example.org', + user : 'bob', + password : 'secret' +}); + +connection.connect(function(err) { + if (err) { + console.error('error connecting: ' + err.stack); + return; + } + + console.log('connected as id ' + connection.threadId); +}); +``` + +However, a connection can also be implicitly established by invoking a query: + +```js +var mysql = require('mysql'); +var connection = mysql.createConnection(...); + +connection.query('SELECT 1', function (error, results, fields) { + if (error) throw error; + // connected! +}); +``` + +Depending on how you like to handle your errors, either method may be +appropriate. Any type of connection error (handshake or network) is considered +a fatal error, see the [Error Handling](#error-handling) section for more +information. + +## Connection options + +When establishing a connection, you can set the following options: + +* `host`: The hostname of the database you are connecting to. (Default: + `localhost`) +* `port`: The port number to connect to. (Default: `3306`) +* `localAddress`: The source IP address to use for TCP connection. (Optional) +* `socketPath`: The path to a unix domain socket to connect to. When used `host` + and `port` are ignored. +* `user`: The MySQL user to authenticate as. +* `password`: The password of that MySQL user. +* `database`: Name of the database to use for this connection (Optional). +* `charset`: The charset for the connection. This is called "collation" in the SQL-level + of MySQL (like `utf8_general_ci`). If a SQL-level charset is specified (like `utf8mb4`) + then the default collation for that charset is used. (Default: `'UTF8_GENERAL_CI'`) +* `timezone`: The timezone configured on the MySQL server. This is used to type cast server date/time values to JavaScript `Date` object and vice versa. This can be `'local'`, `'Z'`, or an offset in the form `+HH:MM` or `-HH:MM`. (Default: `'local'`) +* `connectTimeout`: The milliseconds before a timeout occurs during the initial connection + to the MySQL server. (Default: `10000`) +* `stringifyObjects`: Stringify objects instead of converting to values. See +issue [#501](https://github.com/mysqljs/mysql/issues/501). (Default: `false`) +* `insecureAuth`: Allow connecting to MySQL instances that ask for the old + (insecure) authentication method. (Default: `false`) +* `typeCast`: Determines if column values should be converted to native + JavaScript types. (Default: `true`) +* `queryFormat`: A custom query format function. See [Custom format](#custom-format). +* `supportBigNumbers`: When dealing with big numbers (BIGINT and DECIMAL columns) in the database, + you should enable this option (Default: `false`). +* `bigNumberStrings`: Enabling both `supportBigNumbers` and `bigNumberStrings` forces big numbers + (BIGINT and DECIMAL columns) to be always returned as JavaScript String objects (Default: `false`). + Enabling `supportBigNumbers` but leaving `bigNumberStrings` disabled will return big numbers as String + objects only when they cannot be accurately represented with [JavaScript Number objects] (http://ecma262-5.com/ELS5_HTML.htm#Section_8.5) + (which happens when they exceed the [-2^53, +2^53] range), otherwise they will be returned as + Number objects. This option is ignored if `supportBigNumbers` is disabled. +* `dateStrings`: Force date types (TIMESTAMP, DATETIME, DATE) to be returned as strings rather than + inflated into JavaScript Date objects. Can be `true`/`false` or an array of type names to keep as + strings. (Default: `false`) +* `debug`: Prints protocol details to stdout. Can be `true`/`false` or an array of packet type names + that should be printed. (Default: `false`) +* `trace`: Generates stack traces on `Error` to include call site of library + entrance ("long stack traces"). Slight performance penalty for most calls. + (Default: `true`) +* `localInfile`: Allow `LOAD DATA INFILE` to use the `LOCAL` modifier. (Default: `true`) +* `multipleStatements`: Allow multiple mysql statements per query. Be careful + with this, it could increase the scope of SQL injection attacks. (Default: `false`) +* `flags`: List of connection flags to use other than the default ones. It is + also possible to blacklist default ones. For more information, check + [Connection Flags](#connection-flags). +* `ssl`: object with ssl parameters or a string containing name of ssl profile. See [SSL options](#ssl-options). + + +In addition to passing these options as an object, you can also use a url +string. For example: + +```js +var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'); +``` + +Note: The query values are first attempted to be parsed as JSON, and if that +fails assumed to be plaintext strings. + +### SSL options + +The `ssl` option in the connection options takes a string or an object. When given a string, +it uses one of the predefined SSL profiles included. The following profiles are included: + +* `"Amazon RDS"`: this profile is for connecting to an Amazon RDS server and contains the + certificates from https://rds.amazonaws.com/doc/rds-ssl-ca-cert.pem and + https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem + +When connecting to other servers, you will need to provide an object of options, in the +same format as [tls.createSecureContext](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options). +Please note the arguments expect a string of the certificate, not a file name to the +certificate. Here is a simple example: + +```js +var connection = mysql.createConnection({ + host : 'localhost', + ssl : { + ca : fs.readFileSync(__dirname + '/mysql-ca.crt') + } +}); +``` + +You can also connect to a MySQL server without properly providing the appropriate +CA to trust. _You should not do this_. + +```js +var connection = mysql.createConnection({ + host : 'localhost', + ssl : { + // DO NOT DO THIS + // set up your ca correctly to trust the connection + rejectUnauthorized: false + } +}); +``` + +### Connection flags + +If, for any reason, you would like to change the default connection flags, you +can use the connection option `flags`. Pass a string with a comma separated list +of items to add to the default flags. If you don't want a default flag to be used +prepend the flag with a minus sign. To add a flag that is not in the default list, +just write the flag name, or prefix it with a plus (case insensitive). + +```js +var connection = mysql.createConnection({ + // disable FOUND_ROWS flag, enable IGNORE_SPACE flag + flags: '-FOUND_ROWS,IGNORE_SPACE' +}); +``` + +The following flags are available: + +- `COMPRESS` - Enable protocol compression. This feature is not currently supported + by the Node.js implementation so cannot be turned on. (Default off) +- `CONNECT_WITH_DB` - Ability to specify the database on connection. (Default on) +- `FOUND_ROWS` - Send the found rows instead of the affected rows as `affectedRows`. + (Default on) +- `IGNORE_SIGPIPE` - Don't issue SIGPIPE if network failures. This flag has no effect + on this Node.js implementation. (Default on) +- `IGNORE_SPACE` - Let the parser ignore spaces before the `(` in queries. (Default on) +- `INTERACTIVE` - Indicates to the MySQL server this is an "interactive" client. This + will use the interactive timeouts on the MySQL server and report as interactive in + the process list. (Default off) +- `LOCAL_FILES` - Can use `LOAD DATA LOCAL`. This flag is controlled by the connection + option `localInfile`. (Default on) +- `LONG_FLAG` - Longer flags in Protocol::ColumnDefinition320. (Default on) +- `LONG_PASSWORD` - Use the improved version of Old Password Authentication. + (Default on) +- `MULTI_RESULTS` - Can handle multiple resultsets for queries. (Default on) +- `MULTI_STATEMENTS` - The client may send multiple statement per query or + statement prepare (separated by `;`). This flag is controlled by the connection + option `multipleStatements`. (Default off) +- `NO_SCHEMA` +- `ODBC` Special handling of ODBC behaviour. This flag has no effect on this Node.js + implementation. (Default on) +- `PLUGIN_AUTH` - Uses the plugin authentication mechanism when connecting to the + MySQL server. This feature is not currently supported by the Node.js implementation + so cannot be turned on. (Default off) +- `PROTOCOL_41` - Uses the 4.1 protocol. (Default on) +- `PS_MULTI_RESULTS` - Can handle multiple resultsets for execute. (Default on) +- `REMEMBER_OPTIONS` - This is specific to the C client, and has no effect on this + Node.js implementation. (Default off) +- `RESERVED` - Old flag for the 4.1 protocol. (Default on) +- `SECURE_CONNECTION` - Support native 4.1 authentication. (Default on) +- `SSL` - Use SSL after handshake to encrypt data in transport. This feature is + controlled though the `ssl` connection option, so the flag has no effect. + (Default off) +- `SSL_VERIFY_SERVER_CERT` - Verify the server certificate during SSL set up. This + feature is controlled though the `ssl.rejectUnauthorized` connection option, so + the flag has no effect. (Default off) +- `TRANSACTIONS` - Asks for the transaction status flags. (Default on) + +## Terminating connections + +There are two ways to end a connection. Terminating a connection gracefully is +done by calling the `end()` method: + +```js +connection.end(function(err) { + // The connection is terminated now +}); +``` + +This will make sure all previously enqueued queries are still before sending a +`COM_QUIT` packet to the MySQL server. If a fatal error occurs before the +`COM_QUIT` packet can be sent, an `err` argument will be provided to the +callback, but the connection will be terminated regardless of that. + +An alternative way to end the connection is to call the `destroy()` method. +This will cause an immediate termination of the underlying socket. +Additionally `destroy()` guarantees that no more events or callbacks will be +triggered for the connection. + +```js +connection.destroy(); +``` + +Unlike `end()` the `destroy()` method does not take a callback argument. + +## Pooling connections + +Rather than creating and managing connections one-by-one, this module also +provides built-in connection pooling using `mysql.createPool(config)`. +[Read more about connection pooling](https://en.wikipedia.org/wiki/Connection_pool). + +Create a pool and use it directly: + +```js +var mysql = require('mysql'); +var pool = mysql.createPool({ + connectionLimit : 10, + host : 'example.org', + user : 'bob', + password : 'secret', + database : 'my_db' +}); + +pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) { + if (error) throw error; + console.log('The solution is: ', results[0].solution); +}); +``` + +This is a shortcut for the `pool.getConnection()` -> `connection.query()` -> +`connection.release()` code flow. Using `pool.getConnection()` is useful to +share connection state for subsequent queries. This is because two calls to +`pool.query()` may use two different connections and run in parallel. This is +the basic structure: + +```js +var mysql = require('mysql'); +var pool = mysql.createPool(...); + +pool.getConnection(function(err, connection) { + if (err) throw err; // not connected! + + // Use the connection + connection.query('SELECT something FROM sometable', function (error, results, fields) { + // When done with the connection, release it. + connection.release(); + + // Handle error after the release. + if (error) throw error; + + // Don't use the connection here, it has been returned to the pool. + }); +}); +``` + +If you would like to close the connection and remove it from the pool, use +`connection.destroy()` instead. The pool will create a new connection the next +time one is needed. + +Connections are lazily created by the pool. If you configure the pool to allow +up to 100 connections, but only ever use 5 simultaneously, only 5 connections +will be made. Connections are also cycled round-robin style, with connections +being taken from the top of the pool and returning to the bottom. + +When a previous connection is retrieved from the pool, a ping packet is sent +to the server to check if the connection is still good. + +## Pool options + +Pools accept all the same [options as a connection](#connection-options). +When creating a new connection, the options are simply passed to the connection +constructor. In addition to those options pools accept a few extras: + +* `acquireTimeout`: The milliseconds before a timeout occurs during the connection + acquisition. This is slightly different from `connectTimeout`, because acquiring + a pool connection does not always involve making a connection. If a connection + request is queued, the time the request spends in the queue does not count + towards this timeout. (Default: `10000`) +* `waitForConnections`: Determines the pool's action when no connections are + available and the limit has been reached. If `true`, the pool will queue the + connection request and call it when one becomes available. If `false`, the + pool will immediately call back with an error. (Default: `true`) +* `connectionLimit`: The maximum number of connections to create at once. + (Default: `10`) +* `queueLimit`: The maximum number of connection requests the pool will queue + before returning an error from `getConnection`. If set to `0`, there is no + limit to the number of queued connection requests. (Default: `0`) + +## Pool events + +### acquire + +The pool will emit an `acquire` event when a connection is acquired from the pool. +This is called after all acquiring activity has been performed on the connection, +right before the connection is handed to the callback of the acquiring code. + +```js +pool.on('acquire', function (connection) { + console.log('Connection %d acquired', connection.threadId); +}); +``` + +### connection + +The pool will emit a `connection` event when a new connection is made within the pool. +If you need to set session variables on the connection before it gets used, you can +listen to the `connection` event. + +```js +pool.on('connection', function (connection) { + connection.query('SET SESSION auto_increment_increment=1') +}); +``` + +### enqueue + +The pool will emit an `enqueue` event when a callback has been queued to wait for +an available connection. + +```js +pool.on('enqueue', function () { + console.log('Waiting for available connection slot'); +}); +``` + +### release + +The pool will emit a `release` event when a connection is released back to the +pool. This is called after all release activity has been performed on the connection, +so the connection will be listed as free at the time of the event. + +```js +pool.on('release', function (connection) { + console.log('Connection %d released', connection.threadId); +}); +``` + +## Closing all the connections in a pool + +When you are done using the pool, you have to end all the connections or the +Node.js event loop will stay active until the connections are closed by the +MySQL server. This is typically done if the pool is used in a script or when +trying to gracefully shutdown a server. To end all the connections in the +pool, use the `end` method on the pool: + +```js +pool.end(function (err) { + // all connections in the pool have ended +}); +``` + +The `end` method takes an _optional_ callback that you can use to know when +all the connections are ended. + +**Once `pool.end` is called, `pool.getConnection` and other operations +can no longer be performed.** Wait until all connections in the pool are +released before calling `pool.end`. If you use the shortcut method +`pool.query`, in place of `pool.getConnection` 鈫 `connection.query` 鈫 +`connection.release`, wait until it completes. + +`pool.end` calls `connection.end` on every active connection in the pool. +This queues a `QUIT` packet on the connection and sets a flag to prevent +`pool.getConnection` from creating new connections. All commands / queries +already in progress will complete, but new commands won't execute. + +## PoolCluster + +PoolCluster provides multiple hosts connection. (group & retry & selector) + +```js +// create +var poolCluster = mysql.createPoolCluster(); + +// add configurations (the config is a pool config object) +poolCluster.add(config); // add configuration with automatic name +poolCluster.add('MASTER', masterConfig); // add a named configuration +poolCluster.add('SLAVE1', slave1Config); +poolCluster.add('SLAVE2', slave2Config); + +// remove configurations +poolCluster.remove('SLAVE2'); // By nodeId +poolCluster.remove('SLAVE*'); // By target group : SLAVE1-2 + +// Target Group : ALL(anonymous, MASTER, SLAVE1-2), Selector : round-robin(default) +poolCluster.getConnection(function (err, connection) {}); + +// Target Group : MASTER, Selector : round-robin +poolCluster.getConnection('MASTER', function (err, connection) {}); + +// Target Group : SLAVE1-2, Selector : order +// If can't connect to SLAVE1, return SLAVE2. (remove SLAVE1 in the cluster) +poolCluster.on('remove', function (nodeId) { + console.log('REMOVED NODE : ' + nodeId); // nodeId = SLAVE1 +}); + +// A pattern can be passed with * as wildcard +poolCluster.getConnection('SLAVE*', 'ORDER', function (err, connection) {}); + +// The pattern can also be a regular expression +poolCluster.getConnection(/^SLAVE[12]$/, function (err, connection) {}); + +// of namespace : of(pattern, selector) +poolCluster.of('*').getConnection(function (err, connection) {}); + +var pool = poolCluster.of('SLAVE*', 'RANDOM'); +pool.getConnection(function (err, connection) {}); +pool.getConnection(function (err, connection) {}); +pool.query(function (error, results, fields) {}); + +// close all connections +poolCluster.end(function (err) { + // all connections in the pool cluster have ended +}); +``` + +### PoolCluster options + +* `canRetry`: If `true`, `PoolCluster` will attempt to reconnect when connection fails. (Default: `true`) +* `removeNodeErrorCount`: If connection fails, node's `errorCount` increases. + When `errorCount` is greater than `removeNodeErrorCount`, remove a node in the `PoolCluster`. (Default: `5`) +* `restoreNodeTimeout`: If connection fails, specifies the number of milliseconds + before another connection attempt will be made. If set to `0`, then node will be + removed instead and never re-used. (Default: `0`) +* `defaultSelector`: The default selector. (Default: `RR`) + * `RR`: Select one alternately. (Round-Robin) + * `RANDOM`: Select the node by random function. + * `ORDER`: Select the first node available unconditionally. + +```js +var clusterConfig = { + removeNodeErrorCount: 1, // Remove the node immediately when connection fails. + defaultSelector: 'ORDER' +}; + +var poolCluster = mysql.createPoolCluster(clusterConfig); +``` + +## Switching users and altering connection state + +MySQL offers a changeUser command that allows you to alter the current user and +other aspects of the connection without shutting down the underlying socket: + +```js +connection.changeUser({user : 'john'}, function(err) { + if (err) throw err; +}); +``` + +The available options for this feature are: + +* `user`: The name of the new user (defaults to the previous one). +* `password`: The password of the new user (defaults to the previous one). +* `charset`: The new charset (defaults to the previous one). +* `database`: The new database (defaults to the previous one). + +A sometimes useful side effect of this functionality is that this function also +resets any connection state (variables, transactions, etc.). + +Errors encountered during this operation are treated as fatal connection errors +by this module. + +## Server disconnects + +You may lose the connection to a MySQL server due to network problems, the +server timing you out, the server being restarted, or crashing. All of these +events are considered fatal errors, and will have the `err.code = +'PROTOCOL_CONNECTION_LOST'`. See the [Error Handling](#error-handling) section +for more information. + +Re-connecting a connection is done by establishing a new connection. Once +terminated, an existing connection object cannot be re-connected by design. + +With Pool, disconnected connections will be removed from the pool freeing up +space for a new connection to be created on the next getConnection call. + +With PoolCluster, disconnected connections will count as errors against the +related node, incrementing the error code for that node. Once there are more than +`removeNodeErrorCount` errors on a given node, it is removed from the cluster. +When this occurs, the PoolCluster may emit a `POOL_NONEONLINE` error if there are +no longer any matching nodes for the pattern. The `restoreNodeTimeout` config can +be set to restore offline nodes after a given timeout. + +## Performing queries + +The most basic way to perform a query is to call the `.query()` method on an object +(like a `Connection`, `Pool`, or `PoolNamespace` instance). + +The simplest form of .`query()` is `.query(sqlString, callback)`, where a SQL string +is the first argument and the second is a callback: + +```js +connection.query('SELECT * FROM `books` WHERE `author` = "David"', function (error, results, fields) { + // error will be an Error if one occurred during the query + // results will contain the results of the query + // fields will contain information about the returned results fields (if any) +}); +``` + +The second form `.query(sqlString, values, callback)` comes when using +placeholder values (see [escaping query values](#escaping-query-values)): + +```js +connection.query('SELECT * FROM `books` WHERE `author` = ?', ['David'], function (error, results, fields) { + // error will be an Error if one occurred during the query + // results will contain the results of the query + // fields will contain information about the returned results fields (if any) +}); +``` + +The third form `.query(options, callback)` comes when using various advanced +options on the query, like [escaping query values](#escaping-query-values), +[joins with overlapping column names](#joins-with-overlapping-column-names), +[timeouts](#timeout), and [type casting](#type-casting). + +```js +connection.query({ + sql: 'SELECT * FROM `books` WHERE `author` = ?', + timeout: 40000, // 40s + values: ['David'] +}, function (error, results, fields) { + // error will be an Error if one occurred during the query + // results will contain the results of the query + // fields will contain information about the returned results fields (if any) +}); +``` + +Note that a combination of the second and third forms can be used where the +placeholder values are passed as an argument and not in the options object. +The `values` argument will override the `values` in the option object. + +```js +connection.query({ + sql: 'SELECT * FROM `books` WHERE `author` = ?', + timeout: 40000, // 40s + }, + ['David'], + function (error, results, fields) { + // error will be an Error if one occurred during the query + // results will contain the results of the query + // fields will contain information about the returned results fields (if any) + } +); +``` + +If the query only has a single replacement character (`?`), and the value is +not `null`, `undefined`, or an array, it can be passed directly as the second +argument to `.query`: + +```js +connection.query( + 'SELECT * FROM `books` WHERE `author` = ?', + 'David', + function (error, results, fields) { + // error will be an Error if one occurred during the query + // results will contain the results of the query + // fields will contain information about the returned results fields (if any) + } +); +``` + +## Escaping query values + +**Caution** These methods of escaping values only works when the +[NO_BACKSLASH_ESCAPES](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_backslash_escapes) +SQL mode is disabled (which is the default state for MySQL servers). + +In order to avoid SQL Injection attacks, you should always escape any user +provided data before using it inside a SQL query. You can do so using the +`mysql.escape()`, `connection.escape()` or `pool.escape()` methods: + +```js +var userId = 'some user provided value'; +var sql = 'SELECT * FROM users WHERE id = ' + connection.escape(userId); +connection.query(sql, function (error, results, fields) { + if (error) throw error; + // ... +}); +``` + +Alternatively, you can use `?` characters as placeholders for values you would +like to have escaped like this: + +```js +connection.query('SELECT * FROM users WHERE id = ?', [userId], function (error, results, fields) { + if (error) throw error; + // ... +}); +``` + +Multiple placeholders are mapped to values in the same order as passed. For example, +in the following query `foo` equals `a`, `bar` equals `b`, `baz` equals `c`, and +`id` will be `userId`: + +```js +connection.query('UPDATE users SET foo = ?, bar = ?, baz = ? WHERE id = ?', ['a', 'b', 'c', userId], function (error, results, fields) { + if (error) throw error; + // ... +}); +``` + +This looks similar to prepared statements in MySQL, however it really just uses +the same `connection.escape()` method internally. + +**Caution** This also differs from prepared statements in that all `?` are +replaced, even those contained in comments and strings. + +Different value types are escaped differently, here is how: + +* Numbers are left untouched +* Booleans are converted to `true` / `false` +* Date objects are converted to `'YYYY-mm-dd HH:ii:ss'` strings +* Buffers are converted to hex strings, e.g. `X'0fa5'` +* Strings are safely escaped +* Arrays are turned into list, e.g. `['a', 'b']` turns into `'a', 'b'` +* Nested arrays are turned into grouped lists (for bulk inserts), e.g. `[['a', + 'b'], ['c', 'd']]` turns into `('a', 'b'), ('c', 'd')` +* Objects that have a `toSqlString` method will have `.toSqlString()` called + and the returned value is used as the raw SQL. +* Objects are turned into `key = 'val'` pairs for each enumerable property on + the object. If the property's value is a function, it is skipped; if the + property's value is an object, toString() is called on it and the returned + value is used. +* `undefined` / `null` are converted to `NULL` +* `NaN` / `Infinity` are left as-is. MySQL does not support these, and trying + to insert them as values will trigger MySQL errors until they implement + support. + +This escaping allows you to do neat things like this: + +```js +var post = {id: 1, title: 'Hello MySQL'}; +var query = connection.query('INSERT INTO posts SET ?', post, function (error, results, fields) { + if (error) throw error; + // Neat! +}); +console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL' +``` + +And the `toSqlString` method allows you to form complex queries with functions: + +```js +var CURRENT_TIMESTAMP = { toSqlString: function() { return 'CURRENT_TIMESTAMP()'; } }; +var sql = mysql.format('UPDATE posts SET modified = ? WHERE id = ?', [CURRENT_TIMESTAMP, 42]); +console.log(sql); // UPDATE posts SET modified = CURRENT_TIMESTAMP() WHERE id = 42 +``` + +To generate objects with a `toSqlString` method, the `mysql.raw()` method can +be used. This creates an object that will be left un-touched when using in a `?` +placeholder, useful for using functions as dynamic values: + +**Caution** The string provided to `mysql.raw()` will skip all escaping +functions when used, so be careful when passing in unvalidated input. + +```js +var CURRENT_TIMESTAMP = mysql.raw('CURRENT_TIMESTAMP()'); +var sql = mysql.format('UPDATE posts SET modified = ? WHERE id = ?', [CURRENT_TIMESTAMP, 42]); +console.log(sql); // UPDATE posts SET modified = CURRENT_TIMESTAMP() WHERE id = 42 +``` + +If you feel the need to escape queries by yourself, you can also use the escaping +function directly: + +```js +var query = "SELECT * FROM posts WHERE title=" + mysql.escape("Hello MySQL"); + +console.log(query); // SELECT * FROM posts WHERE title='Hello MySQL' +``` + +## Escaping query identifiers + +If you can't trust an SQL identifier (database / table / column name) because it is +provided by a user, you should escape it with `mysql.escapeId(identifier)`, +`connection.escapeId(identifier)` or `pool.escapeId(identifier)` like this: + +```js +var sorter = 'date'; +var sql = 'SELECT * FROM posts ORDER BY ' + connection.escapeId(sorter); +connection.query(sql, function (error, results, fields) { + if (error) throw error; + // ... +}); +``` + +It also supports adding qualified identifiers. It will escape both parts. + +```js +var sorter = 'date'; +var sql = 'SELECT * FROM posts ORDER BY ' + connection.escapeId('posts.' + sorter); +// -> SELECT * FROM posts ORDER BY `posts`.`date` +``` + +If you do not want to treat `.` as qualified identifiers, you can set the second +argument to `true` in order to keep the string as a literal identifier: + +```js +var sorter = 'date.2'; +var sql = 'SELECT * FROM posts ORDER BY ' + connection.escapeId(sorter, true); +// -> SELECT * FROM posts ORDER BY `date.2` +``` + +Alternatively, you can use `??` characters as placeholders for identifiers you would +like to have escaped like this: + +```js +var userId = 1; +var columns = ['username', 'email']; +var query = connection.query('SELECT ?? FROM ?? WHERE id = ?', [columns, 'users', userId], function (error, results, fields) { + if (error) throw error; + // ... +}); + +console.log(query.sql); // SELECT `username`, `email` FROM `users` WHERE id = 1 +``` +**Please note that this last character sequence is experimental and syntax might change** + +When you pass an Object to `.escape()` or `.query()`, `.escapeId()` is used to avoid SQL injection in object keys. + +### Preparing Queries + +You can use mysql.format to prepare a query with multiple insertion points, utilizing the proper escaping for ids and values. A simple example of this follows: + +```js +var sql = "SELECT * FROM ?? WHERE ?? = ?"; +var inserts = ['users', 'id', userId]; +sql = mysql.format(sql, inserts); +``` + +Following this you then have a valid, escaped query that you can then send to the database safely. This is useful if you are looking to prepare the query before actually sending it to the database. As mysql.format is exposed from SqlString.format you also have the option (but are not required) to pass in stringifyObject and timezone, allowing you provide a custom means of turning objects into strings, as well as a location-specific/timezone-aware Date. + +### Custom format + +If you prefer to have another type of query escape format, there's a connection configuration option you can use to define a custom format function. You can access the connection object if you want to use the built-in `.escape()` or any other connection function. + +Here's an example of how to implement another format: + +```js +connection.config.queryFormat = function (query, values) { + if (!values) return query; + return query.replace(/\:(\w+)/g, function (txt, key) { + if (values.hasOwnProperty(key)) { + return this.escape(values[key]); + } + return txt; + }.bind(this)); +}; + +connection.query("UPDATE posts SET title = :title", { title: "Hello MySQL" }); +``` + +## Getting the id of an inserted row + +If you are inserting a row into a table with an auto increment primary key, you +can retrieve the insert id like this: + +```js +connection.query('INSERT INTO posts SET ?', {title: 'test'}, function (error, results, fields) { + if (error) throw error; + console.log(results.insertId); +}); +``` + +When dealing with big numbers (above JavaScript Number precision limit), you should +consider enabling `supportBigNumbers` option to be able to read the insert id as a +string, otherwise it will throw an error. + +This option is also required when fetching big numbers from the database, otherwise +you will get values rounded to hundreds or thousands due to the precision limit. + +## Getting the number of affected rows + +You can get the number of affected rows from an insert, update or delete statement. + +```js +connection.query('DELETE FROM posts WHERE title = "wrong"', function (error, results, fields) { + if (error) throw error; + console.log('deleted ' + results.affectedRows + ' rows'); +}) +``` + +## Getting the number of changed rows + +You can get the number of changed rows from an update statement. + +"changedRows" differs from "affectedRows" in that it does not count updated rows +whose values were not changed. + +```js +connection.query('UPDATE posts SET ...', function (error, results, fields) { + if (error) throw error; + console.log('changed ' + results.changedRows + ' rows'); +}) +``` + +## Getting the connection ID + +You can get the MySQL connection ID ("thread ID") of a given connection using the `threadId` +property. + +```js +connection.connect(function(err) { + if (err) throw err; + console.log('connected as id ' + connection.threadId); +}); +``` + +## Executing queries in parallel + +The MySQL protocol is sequential, this means that you need multiple connections +to execute queries in parallel. You can use a Pool to manage connections, one +simple approach is to create one connection per incoming http request. + +## Streaming query rows + +Sometimes you may want to select large quantities of rows and process each of +them as they are received. This can be done like this: + +```js +var query = connection.query('SELECT * FROM posts'); +query + .on('error', function(err) { + // Handle error, an 'end' event will be emitted after this as well + }) + .on('fields', function(fields) { + // the field packets for the rows to follow + }) + .on('result', function(row) { + // Pausing the connnection is useful if your processing involves I/O + connection.pause(); + + processRow(row, function() { + connection.resume(); + }); + }) + .on('end', function() { + // all rows have been received + }); +``` + +Please note a few things about the example above: + +* Usually you will want to receive a certain amount of rows before starting to + throttle the connection using `pause()`. This number will depend on the + amount and size of your rows. +* `pause()` / `resume()` operate on the underlying socket and parser. You are + guaranteed that no more `'result'` events will fire after calling `pause()`. +* You MUST NOT provide a callback to the `query()` method when streaming rows. +* The `'result'` event will fire for both rows as well as OK packets + confirming the success of a INSERT/UPDATE query. +* It is very important not to leave the result paused too long, or you may + encounter `Error: Connection lost: The server closed the connection.` + The time limit for this is determined by the + [net_write_timeout setting](https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_net_write_timeout) + on your MySQL server. + +Additionally you may be interested to know that it is currently not possible to +stream individual row columns, they will always be buffered up entirely. If you +have a good use case for streaming large fields to and from MySQL, I'd love to +get your thoughts and contributions on this. + +### Piping results with Streams + +The query object provides a convenience method `.stream([options])` that wraps +query events into a [Readable Stream](http://nodejs.org/api/stream.html#stream_class_stream_readable) +object. This stream can easily be piped downstream and provides automatic +pause/resume, based on downstream congestion and the optional `highWaterMark`. +The `objectMode` parameter of the stream is set to `true` and cannot be changed +(if you need a byte stream, you will need to use a transform stream, like +[objstream](https://www.npmjs.com/package/objstream) for example). + +For example, piping query results into another stream (with a max buffer of 5 +objects) is simply: + +```js +connection.query('SELECT * FROM posts') + .stream({highWaterMark: 5}) + .pipe(...); +``` + +## Multiple statement queries + +Support for multiple statements is disabled for security reasons (it allows for +SQL injection attacks if values are not properly escaped). To use this feature +you have to enable it for your connection: + +```js +var connection = mysql.createConnection({multipleStatements: true}); +``` + +Once enabled, you can execute multiple statement queries like any other query: + +```js +connection.query('SELECT 1; SELECT 2', function (error, results, fields) { + if (error) throw error; + // `results` is an array with one element for every statement in the query: + console.log(results[0]); // [{1: 1}] + console.log(results[1]); // [{2: 2}] +}); +``` + +Additionally you can also stream the results of multiple statement queries: + +```js +var query = connection.query('SELECT 1; SELECT 2'); + +query + .on('fields', function(fields, index) { + // the fields for the result rows that follow + }) + .on('result', function(row, index) { + // index refers to the statement this result belongs to (starts at 0) + }); +``` + +If one of the statements in your query causes an error, the resulting Error +object contains a `err.index` property which tells you which statement caused +it. MySQL will also stop executing any remaining statements when an error +occurs. + +Please note that the interface for streaming multiple statement queries is +experimental and I am looking forward to feedback on it. + +## Stored procedures + +You can call stored procedures from your queries as with any other mysql driver. +If the stored procedure produces several result sets, they are exposed to you +the same way as the results for multiple statement queries. + +## Joins with overlapping column names + +When executing joins, you are likely to get result sets with overlapping column +names. + +By default, node-mysql will overwrite colliding column names in the +order the columns are received from MySQL, causing some of the received values +to be unavailable. + +However, you can also specify that you want your columns to be nested below +the table name like this: + +```js +var options = {sql: '...', nestTables: true}; +connection.query(options, function (error, results, fields) { + if (error) throw error; + /* results will be an array like this now: + [{ + table1: { + fieldA: '...', + fieldB: '...', + }, + table2: { + fieldA: '...', + fieldB: '...', + }, + }, ...] + */ +}); +``` + +Or use a string separator to have your results merged. + +```js +var options = {sql: '...', nestTables: '_'}; +connection.query(options, function (error, results, fields) { + if (error) throw error; + /* results will be an array like this now: + [{ + table1_fieldA: '...', + table1_fieldB: '...', + table2_fieldA: '...', + table2_fieldB: '...', + }, ...] + */ +}); +``` + +## Transactions + +Simple transaction support is available at the connection level: + +```js +connection.beginTransaction(function(err) { + if (err) { throw err; } + connection.query('INSERT INTO posts SET title=?', title, function (error, results, fields) { + if (error) { + return connection.rollback(function() { + throw error; + }); + } + + var log = 'Post ' + results.insertId + ' added'; + + connection.query('INSERT INTO log SET data=?', log, function (error, results, fields) { + if (error) { + return connection.rollback(function() { + throw error; + }); + } + connection.commit(function(err) { + if (err) { + return connection.rollback(function() { + throw err; + }); + } + console.log('success!'); + }); + }); + }); +}); +``` +Please note that beginTransaction(), commit() and rollback() are simply convenience +functions that execute the START TRANSACTION, COMMIT, and ROLLBACK commands respectively. +It is important to understand that many commands in MySQL can cause an implicit commit, +as described [in the MySQL documentation](http://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html) + +## Ping + +A ping packet can be sent over a connection using the `connection.ping` method. This +method will send a ping packet to the server and when the server responds, the callback +will fire. If an error occurred, the callback will fire with an error argument. + +```js +connection.ping(function (err) { + if (err) throw err; + console.log('Server responded to ping'); +}) +``` + +## Timeouts + +Every operation takes an optional inactivity timeout option. This allows you to +specify appropriate timeouts for operations. It is important to note that these +timeouts are not part of the MySQL protocol, and rather timeout operations through +the client. This means that when a timeout is reached, the connection it occurred +on will be destroyed and no further operations can be performed. + +```js +// Kill query after 60s +connection.query({sql: 'SELECT COUNT(*) AS count FROM big_table', timeout: 60000}, function (error, results, fields) { + if (error && error.code === 'PROTOCOL_SEQUENCE_TIMEOUT') { + throw new Error('too long to count table rows!'); + } + + if (error) { + throw error; + } + + console.log(results[0].count + ' rows'); +}); +``` + +## Error handling + +This module comes with a consistent approach to error handling that you should +review carefully in order to write solid applications. + +Most errors created by this module are instances of the JavaScript [Error][] +object. Additionally they typically come with two extra properties: + +* `err.code`: String, contains the MySQL server error symbol if the error is + a [MySQL server error][] (e.g. `'ER_ACCESS_DENIED_ERROR'`), a Node.js error + code if it is a Node.js error (e.g. `'ECONNREFUSED'`), or an internal error + code (e.g. `'PROTOCOL_CONNECTION_LOST'`). +* `err.errno`: Number, contains the MySQL server error number. Only populated + from [MySQL server error][]. +* `err.fatal`: Boolean, indicating if this error is terminal to the connection + object. If the error is not from a MySQL protocol operation, this property + will not be defined. +* `err.sql`: String, contains the full SQL of the failed query. This can be + useful when using a higher level interface like an ORM that is generating + the queries. +* `err.sqlState`: String, contains the five-character SQLSTATE value. Only populated from [MySQL server error][]. +* `err.sqlMessage`: String, contains the message string that provides a + textual description of the error. Only populated from [MySQL server error][]. + +[Error]: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error +[MySQL server error]: https://dev.mysql.com/doc/refman/5.5/en/server-error-reference.html + +Fatal errors are propagated to *all* pending callbacks. In the example below, a +fatal error is triggered by trying to connect to an invalid port. Therefore the +error object is propagated to both pending callbacks: + +```js +var connection = require('mysql').createConnection({ + port: 84943, // WRONG PORT +}); + +connection.connect(function(err) { + console.log(err.code); // 'ECONNREFUSED' + console.log(err.fatal); // true +}); + +connection.query('SELECT 1', function (error, results, fields) { + console.log(error.code); // 'ECONNREFUSED' + console.log(error.fatal); // true +}); +``` + +Normal errors however are only delegated to the callback they belong to. So in +the example below, only the first callback receives an error, the second query +works as expected: + +```js +connection.query('USE name_of_db_that_does_not_exist', function (error, results, fields) { + console.log(error.code); // 'ER_BAD_DB_ERROR' +}); + +connection.query('SELECT 1', function (error, results, fields) { + console.log(error); // null + console.log(results.length); // 1 +}); +``` + +Last but not least: If a fatal errors occurs and there are no pending +callbacks, or a normal error occurs which has no callback belonging to it, the +error is emitted as an `'error'` event on the connection object. This is +demonstrated in the example below: + +```js +connection.on('error', function(err) { + console.log(err.code); // 'ER_BAD_DB_ERROR' +}); + +connection.query('USE name_of_db_that_does_not_exist'); +``` + +Note: `'error'` events are special in node. If they occur without an attached +listener, a stack trace is printed and your process is killed. + +**tl;dr:** This module does not want you to deal with silent failures. You +should always provide callbacks to your method calls. If you want to ignore +this advice and suppress unhandled errors, you can do this: + +```js +// I am Chuck Norris: +connection.on('error', function() {}); +``` + +## Exception Safety + +This module is exception safe. That means you can continue to use it, even if +one of your callback functions throws an error which you're catching using +'uncaughtException' or a domain. + +## Type casting + +For your convenience, this driver will cast mysql types into native JavaScript +types by default. The following mappings exist: + +### Number + +* TINYINT +* SMALLINT +* INT +* MEDIUMINT +* YEAR +* FLOAT +* DOUBLE + +### Date + +* TIMESTAMP +* DATE +* DATETIME + +### Buffer + +* TINYBLOB +* MEDIUMBLOB +* LONGBLOB +* BLOB +* BINARY +* VARBINARY +* BIT (last byte will be filled with 0 bits as necessary) + +### String + +**Note** text in the binary character set is returned as `Buffer`, rather +than a string. + +* CHAR +* VARCHAR +* TINYTEXT +* MEDIUMTEXT +* LONGTEXT +* TEXT +* ENUM +* SET +* DECIMAL (may exceed float precision) +* BIGINT (may exceed float precision) +* TIME (could be mapped to Date, but what date would be set?) +* GEOMETRY (never used those, get in touch if you do) + +It is not recommended (and may go away / change in the future) to disable type +casting, but you can currently do so on either the connection: + +```js +var connection = require('mysql').createConnection({typeCast: false}); +``` + +Or on the query level: + +```js +var options = {sql: '...', typeCast: false}; +var query = connection.query(options, function (error, results, fields) { + if (error) throw error; + // ... +}); +``` + +### Custom type casting + +You can also pass a function and handle type casting yourself. You're given some +column information like database, table and name and also type and length. If you +just want to apply a custom type casting to a specific type you can do it and then +fallback to the default. + +The function is provided two arguments `field` and `next` and is expected to +return the value for the given field by invoking the parser functions through +the `field` object. + +The `field` argument is a `Field` object and contains data about the field that +need to be parsed. The following are some of the properties on a `Field` object: + + * `db` - a string of the database the field came from. + * `table` - a string of the table the field came from. + * `name` - a string of the field name. + * `type` - a string of the field type in all caps. + * `length` - a number of the field length, as given by the database. + +The `next` argument is a `function` that, when called, will return the default +type conversion for the given field. + +When getting the field data, the following helper methods are present on the +`field` object: + + * `.string()` - parse the field into a string. + * `.buffer()` - parse the field into a `Buffer`. + * `.geometry()` - parse the field as a geometry value. + +The MySQL protocol is a text-based protocol. This means that over the wire, all +field types are represented as a string, which is why only string-like functions +are available on the `field` object. Based on the type information (like `INT`), +the type cast should convert the string field into a different JavaScript type +(like a `number`). + +Here's an example of converting `TINYINT(1)` to boolean: + +```js +connection = mysql.createConnection({ + typeCast: function (field, next) { + if (field.type === 'TINY' && field.length === 1) { + return (field.string() === '1'); // 1 = true, 0 = false + } else { + return next(); + } + } +}); +``` + +__WARNING: YOU MUST INVOKE the parser using one of these three field functions +in your custom typeCast callback. They can only be called once.__ + +## Debugging and reporting problems + +If you are running into problems, one thing that may help is enabling the +`debug` mode for the connection: + +```js +var connection = mysql.createConnection({debug: true}); +``` + +This will print all incoming and outgoing packets on stdout. You can also restrict debugging to +packet types by passing an array of types to debug: + +```js +var connection = mysql.createConnection({debug: ['ComQueryPacket', 'RowDataPacket']}); +``` + +to restrict debugging to the query and data packets. + +If that does not help, feel free to open a GitHub issue. A good GitHub issue +will have: + +* The minimal amount of code required to reproduce the problem (if possible) +* As much debugging output and information about your environment (mysql + version, node version, os, etc.) as you can gather. + +## Security issues + +Security issues should not be first reported through GitHub or another public +forum, but kept private in order for the collaborators to assess the report +and either (a) devise a fix and plan a release date or (b) assert that it is +not a security issue (in which case it can be posted in a public forum, like +a GitHub issue). + +The primary private forum is email, either by emailing the module's author or +opening a GitHub issue simply asking to whom a security issues should be +addressed to without disclosing the issue or type of issue. + +An ideal report would include a clear indication of what the security issue is +and how it would be exploited, ideally with an accompanying proof of concept +("PoC") for collaborators to work against and validate potentional fixes against. + +## Contributing + +This project welcomes contributions from the community. Contributions are +accepted using GitHub pull requests. If you're not familiar with making +GitHub pull requests, please refer to the +[GitHub documentation "Creating a pull request"](https://help.github.com/articles/creating-a-pull-request/). + +For a good pull request, we ask you provide the following: + +1. Try to include a clear description of your pull request in the description. + It should include the basic "what" and "why"s for the request. +2. The tests should pass as best as you can. See the [Running tests](#running-tests) + section on how to run the different tests. GitHub will automatically run + the tests as well, to act as a safety net. +3. The pull request should include tests for the change. A new feature should + have tests for the new feature and bug fixes should include a test that fails + without the corresponding code change and passes after they are applied. + The command `npm run test-cov` will generate a `coverage/` folder that + contains HTML pages of the code coverage, to better understand if everything + you're adding is being tested. +4. If the pull request is a new feature, please be sure to include all + appropriate documentation additions in the `Readme.md` file as well. +5. To help ensure that your code is similar in style to the existing code, + run the command `npm run lint` and fix any displayed issues. + +## Running tests + +The test suite is split into two parts: unit tests and integration tests. +The unit tests run on any machine while the integration tests require a +MySQL server instance to be setup. + +### Running unit tests + +```sh +$ FILTER=unit npm test +``` + +### Running integration tests + +Set the environment variables `MYSQL_DATABASE`, `MYSQL_HOST`, `MYSQL_PORT`, +`MYSQL_USER` and `MYSQL_PASSWORD`. `MYSQL_SOCKET` can also be used in place +of `MYSQL_HOST` and `MYSQL_PORT` to connect over a UNIX socket. Then run +`npm test`. + +For example, if you have an installation of mysql running on localhost:3306 +and no password set for the `root` user, run: + +```sh +$ mysql -u root -e "CREATE DATABASE IF NOT EXISTS node_mysql_test" +$ MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_DATABASE=node_mysql_test MYSQL_USER=root MYSQL_PASSWORD= FILTER=integration npm test +``` + +## Todo + +* Prepared statements +* Support for encodings other than UTF-8 / ASCII + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/node-mysql/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/node-mysql +[coveralls-image]: https://badgen.net/coveralls/c/github/mysqljs/mysql/master +[coveralls-url]: https://coveralls.io/r/mysqljs/mysql?branch=master +[node-image]: https://badgen.net/npm/node/mysql +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/mysql +[npm-url]: https://npmjs.org/package/mysql +[npm-version-image]: https://badgen.net/npm/v/mysql +[travis-image]: https://badgen.net/travis/mysqljs/mysql/master +[travis-url]: https://travis-ci.org/mysqljs/mysql diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..72624076b92c4f181287e668be9e19d9c4c3192b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/index.js" @@ -0,0 +1,161 @@ +var Classes = Object.create(null); + +/** + * Create a new Connection instance. + * @param {object|string} config Configuration or connection string for new MySQL connection + * @return {Connection} A new MySQL connection + * @public + */ +exports.createConnection = function createConnection(config) { + var Connection = loadClass('Connection'); + var ConnectionConfig = loadClass('ConnectionConfig'); + + return new Connection({config: new ConnectionConfig(config)}); +}; + +/** + * Create a new Pool instance. + * @param {object|string} config Configuration or connection string for new MySQL connections + * @return {Pool} A new MySQL pool + * @public + */ +exports.createPool = function createPool(config) { + var Pool = loadClass('Pool'); + var PoolConfig = loadClass('PoolConfig'); + + return new Pool({config: new PoolConfig(config)}); +}; + +/** + * Create a new PoolCluster instance. + * @param {object} [config] Configuration for pool cluster + * @return {PoolCluster} New MySQL pool cluster + * @public + */ +exports.createPoolCluster = function createPoolCluster(config) { + var PoolCluster = loadClass('PoolCluster'); + + return new PoolCluster(config); +}; + +/** + * Create a new Query instance. + * @param {string} sql The SQL for the query + * @param {array} [values] Any values to insert into placeholders in sql + * @param {function} [callback] The callback to use when query is complete + * @return {Query} New query object + * @public + */ +exports.createQuery = function createQuery(sql, values, callback) { + var Connection = loadClass('Connection'); + + return Connection.createQuery(sql, values, callback); +}; + +/** + * Escape a value for SQL. + * @param {*} value The value to escape + * @param {boolean} [stringifyObjects=false] Setting if objects should be stringified + * @param {string} [timeZone=local] Setting for time zone to use for Date conversion + * @return {string} Escaped string value + * @public + */ +exports.escape = function escape(value, stringifyObjects, timeZone) { + var SqlString = loadClass('SqlString'); + + return SqlString.escape(value, stringifyObjects, timeZone); +}; + +/** + * Escape an identifier for SQL. + * @param {*} value The value to escape + * @param {boolean} [forbidQualified=false] Setting to treat '.' as part of identifier + * @return {string} Escaped string value + * @public + */ +exports.escapeId = function escapeId(value, forbidQualified) { + var SqlString = loadClass('SqlString'); + + return SqlString.escapeId(value, forbidQualified); +}; + +/** + * Format SQL and replacement values into a SQL string. + * @param {string} sql The SQL for the query + * @param {array} [values] Any values to insert into placeholders in sql + * @param {boolean} [stringifyObjects=false] Setting if objects should be stringified + * @param {string} [timeZone=local] Setting for time zone to use for Date conversion + * @return {string} Formatted SQL string + * @public + */ +exports.format = function format(sql, values, stringifyObjects, timeZone) { + var SqlString = loadClass('SqlString'); + + return SqlString.format(sql, values, stringifyObjects, timeZone); +}; + +/** + * Wrap raw SQL strings from escape overriding. + * @param {string} sql The raw SQL + * @return {object} Wrapped object + * @public + */ +exports.raw = function raw(sql) { + var SqlString = loadClass('SqlString'); + + return SqlString.raw(sql); +}; + +/** + * The type constants. + * @public + */ +Object.defineProperty(exports, 'Types', { + get: loadClass.bind(null, 'Types') +}); + +/** + * Load the given class. + * @param {string} className Name of class to default + * @return {function|object} Class constructor or exports + * @private + */ +function loadClass(className) { + var Class = Classes[className]; + + if (Class !== undefined) { + return Class; + } + + // This uses a switch for static require analysis + switch (className) { + case 'Connection': + Class = require('./lib/Connection'); + break; + case 'ConnectionConfig': + Class = require('./lib/ConnectionConfig'); + break; + case 'Pool': + Class = require('./lib/Pool'); + break; + case 'PoolCluster': + Class = require('./lib/PoolCluster'); + break; + case 'PoolConfig': + Class = require('./lib/PoolConfig'); + break; + case 'SqlString': + Class = require('./lib/protocol/SqlString'); + break; + case 'Types': + Class = require('./lib/protocol/constants/types'); + break; + default: + throw new Error('Cannot find class \'' + className + '\''); + } + + // Store to prevent invoking require() + Classes[className] = Class; + + return Class; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/Connection.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/Connection.js" new file mode 100644 index 0000000000000000000000000000000000000000..6802255dd439246b465f429eb90bd66f5fa19dde --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/Connection.js" @@ -0,0 +1,529 @@ +var Crypto = require('crypto'); +var Events = require('events'); +var Net = require('net'); +var tls = require('tls'); +var ConnectionConfig = require('./ConnectionConfig'); +var Protocol = require('./protocol/Protocol'); +var SqlString = require('./protocol/SqlString'); +var Query = require('./protocol/sequences/Query'); +var Util = require('util'); + +module.exports = Connection; +Util.inherits(Connection, Events.EventEmitter); +function Connection(options) { + Events.EventEmitter.call(this); + + this.config = options.config; + + this._socket = options.socket; + this._protocol = new Protocol({config: this.config, connection: this}); + this._connectCalled = false; + this.state = 'disconnected'; + this.threadId = null; +} + +Connection.createQuery = function createQuery(sql, values, callback) { + if (sql instanceof Query) { + return sql; + } + + var cb = callback; + var options = {}; + + if (typeof sql === 'function') { + cb = sql; + } else if (typeof sql === 'object') { + options = Object.create(sql); + + if (typeof values === 'function') { + cb = values; + } else if (values !== undefined) { + Object.defineProperty(options, 'values', { value: values }); + } + } else { + options.sql = sql; + + if (typeof values === 'function') { + cb = values; + } else if (values !== undefined) { + options.values = values; + } + } + + if (cb !== undefined) { + cb = wrapCallbackInDomain(null, cb); + + if (cb === undefined) { + throw new TypeError('argument callback must be a function when provided'); + } + } + + return new Query(options, cb); +}; + +Connection.prototype.connect = function connect(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + if (!this._connectCalled) { + this._connectCalled = true; + + // Connect either via a UNIX domain socket or a TCP socket. + this._socket = (this.config.socketPath) + ? Net.createConnection(this.config.socketPath) + : Net.createConnection(this.config.port, this.config.host); + + // Connect socket to connection domain + if (Events.usingDomains) { + this._socket.domain = this.domain; + } + + var connection = this; + this._protocol.on('data', function(data) { + connection._socket.write(data); + }); + this._socket.on('data', wrapToDomain(connection, function (data) { + connection._protocol.write(data); + })); + this._protocol.on('end', function() { + connection._socket.end(); + }); + this._socket.on('end', wrapToDomain(connection, function () { + connection._protocol.end(); + })); + + this._socket.on('error', this._handleNetworkError.bind(this)); + this._socket.on('connect', this._handleProtocolConnect.bind(this)); + this._protocol.on('handshake', this._handleProtocolHandshake.bind(this)); + this._protocol.on('initialize', this._handleProtocolInitialize.bind(this)); + this._protocol.on('unhandledError', this._handleProtocolError.bind(this)); + this._protocol.on('drain', this._handleProtocolDrain.bind(this)); + this._protocol.on('end', this._handleProtocolEnd.bind(this)); + this._protocol.on('enqueue', this._handleProtocolEnqueue.bind(this)); + + if (this.config.connectTimeout) { + var handleConnectTimeout = this._handleConnectTimeout.bind(this); + + this._socket.setTimeout(this.config.connectTimeout, handleConnectTimeout); + this._socket.once('connect', function() { + this.setTimeout(0, handleConnectTimeout); + }); + } + } + + this._protocol.handshake(options, wrapCallbackInDomain(this, callback)); +}; + +Connection.prototype.changeUser = function changeUser(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + this._implyConnect(); + + var charsetNumber = (options.charset) + ? ConnectionConfig.getCharsetNumber(options.charset) + : this.config.charsetNumber; + + return this._protocol.changeUser({ + user : options.user || this.config.user, + password : options.password || this.config.password, + database : options.database || this.config.database, + timeout : options.timeout, + charsetNumber : charsetNumber, + currentConfig : this.config + }, wrapCallbackInDomain(this, callback)); +}; + +Connection.prototype.beginTransaction = function beginTransaction(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + options = options || {}; + options.sql = 'START TRANSACTION'; + options.values = null; + + return this.query(options, callback); +}; + +Connection.prototype.commit = function commit(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + options = options || {}; + options.sql = 'COMMIT'; + options.values = null; + + return this.query(options, callback); +}; + +Connection.prototype.rollback = function rollback(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + options = options || {}; + options.sql = 'ROLLBACK'; + options.values = null; + + return this.query(options, callback); +}; + +Connection.prototype.query = function query(sql, values, cb) { + var query = Connection.createQuery(sql, values, cb); + query._connection = this; + + if (!(typeof sql === 'object' && 'typeCast' in sql)) { + query.typeCast = this.config.typeCast; + } + + if (query.sql) { + query.sql = this.format(query.sql, query.values); + } + + if (query._callback) { + query._callback = wrapCallbackInDomain(this, query._callback); + } + + this._implyConnect(); + + return this._protocol._enqueue(query); +}; + +Connection.prototype.ping = function ping(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + this._implyConnect(); + this._protocol.ping(options, wrapCallbackInDomain(this, callback)); +}; + +Connection.prototype.statistics = function statistics(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + this._implyConnect(); + this._protocol.stats(options, wrapCallbackInDomain(this, callback)); +}; + +Connection.prototype.end = function end(options, callback) { + var cb = callback; + var opts = options; + + if (!callback && typeof options === 'function') { + cb = options; + opts = null; + } + + // create custom options reference + opts = Object.create(opts || null); + + if (opts.timeout === undefined) { + // default timeout of 30 seconds + opts.timeout = 30000; + } + + this._implyConnect(); + this._protocol.quit(opts, wrapCallbackInDomain(this, cb)); +}; + +Connection.prototype.destroy = function() { + this.state = 'disconnected'; + this._implyConnect(); + this._socket.destroy(); + this._protocol.destroy(); +}; + +Connection.prototype.pause = function() { + this._socket.pause(); + this._protocol.pause(); +}; + +Connection.prototype.resume = function() { + this._socket.resume(); + this._protocol.resume(); +}; + +Connection.prototype.escape = function(value) { + return SqlString.escape(value, false, this.config.timezone); +}; + +Connection.prototype.escapeId = function escapeId(value) { + return SqlString.escapeId(value, false); +}; + +Connection.prototype.format = function(sql, values) { + if (typeof this.config.queryFormat === 'function') { + return this.config.queryFormat.call(this, sql, values, this.config.timezone); + } + return SqlString.format(sql, values, this.config.stringifyObjects, this.config.timezone); +}; + +if (tls.TLSSocket) { + // 0.11+ environment + Connection.prototype._startTLS = function _startTLS(onSecure) { + var connection = this; + + createSecureContext(this.config, function (err, secureContext) { + if (err) { + onSecure(err); + return; + } + + // "unpipe" + connection._socket.removeAllListeners('data'); + connection._protocol.removeAllListeners('data'); + + // socket <-> encrypted + var rejectUnauthorized = connection.config.ssl.rejectUnauthorized; + var secureEstablished = false; + var secureSocket = new tls.TLSSocket(connection._socket, { + rejectUnauthorized : rejectUnauthorized, + requestCert : true, + secureContext : secureContext, + isServer : false + }); + + // error handler for secure socket + secureSocket.on('_tlsError', function(err) { + if (secureEstablished) { + connection._handleNetworkError(err); + } else { + onSecure(err); + } + }); + + // cleartext <-> protocol + secureSocket.pipe(connection._protocol); + connection._protocol.on('data', function(data) { + secureSocket.write(data); + }); + + secureSocket.on('secure', function() { + secureEstablished = true; + + onSecure(rejectUnauthorized ? this.ssl.verifyError() : null); + }); + + // start TLS communications + secureSocket._start(); + }); + }; +} else { + // pre-0.11 environment + Connection.prototype._startTLS = function _startTLS(onSecure) { + // before TLS: + // _socket <-> _protocol + // after: + // _socket <-> securePair.encrypted <-> securePair.cleartext <-> _protocol + + var connection = this; + var credentials = Crypto.createCredentials({ + ca : this.config.ssl.ca, + cert : this.config.ssl.cert, + ciphers : this.config.ssl.ciphers, + key : this.config.ssl.key, + passphrase : this.config.ssl.passphrase + }); + + var rejectUnauthorized = this.config.ssl.rejectUnauthorized; + var secureEstablished = false; + var securePair = tls.createSecurePair(credentials, false, true, rejectUnauthorized); + + // error handler for secure pair + securePair.on('error', function(err) { + if (secureEstablished) { + connection._handleNetworkError(err); + } else { + onSecure(err); + } + }); + + // "unpipe" + this._socket.removeAllListeners('data'); + this._protocol.removeAllListeners('data'); + + // socket <-> encrypted + securePair.encrypted.pipe(this._socket); + this._socket.on('data', function(data) { + securePair.encrypted.write(data); + }); + + // cleartext <-> protocol + securePair.cleartext.pipe(this._protocol); + this._protocol.on('data', function(data) { + securePair.cleartext.write(data); + }); + + // secure established + securePair.on('secure', function() { + secureEstablished = true; + + if (!rejectUnauthorized) { + onSecure(); + return; + } + + var verifyError = this.ssl.verifyError(); + var err = verifyError; + + // node.js 0.6 support + if (typeof err === 'string') { + err = new Error(verifyError); + err.code = verifyError; + } + + onSecure(err); + }); + + // node.js 0.8 bug + securePair._cycle = securePair.cycle; + securePair.cycle = function cycle() { + if (this.ssl && this.ssl.error) { + this.error(); + } + + return this._cycle.apply(this, arguments); + }; + }; +} + +Connection.prototype._handleConnectTimeout = function() { + if (this._socket) { + this._socket.setTimeout(0); + this._socket.destroy(); + } + + var err = new Error('connect ETIMEDOUT'); + err.errorno = 'ETIMEDOUT'; + err.code = 'ETIMEDOUT'; + err.syscall = 'connect'; + + this._handleNetworkError(err); +}; + +Connection.prototype._handleNetworkError = function(err) { + this._protocol.handleNetworkError(err); +}; + +Connection.prototype._handleProtocolError = function(err) { + this.state = 'protocol_error'; + this.emit('error', err); +}; + +Connection.prototype._handleProtocolDrain = function() { + this.emit('drain'); +}; + +Connection.prototype._handleProtocolConnect = function() { + this.state = 'connected'; + this.emit('connect'); +}; + +Connection.prototype._handleProtocolHandshake = function _handleProtocolHandshake() { + this.state = 'authenticated'; +}; + +Connection.prototype._handleProtocolInitialize = function _handleProtocolInitialize(packet) { + this.threadId = packet.threadId; +}; + +Connection.prototype._handleProtocolEnd = function(err) { + this.state = 'disconnected'; + this.emit('end', err); +}; + +Connection.prototype._handleProtocolEnqueue = function _handleProtocolEnqueue(sequence) { + this.emit('enqueue', sequence); +}; + +Connection.prototype._implyConnect = function() { + if (!this._connectCalled) { + this.connect(); + } +}; + +function createSecureContext (config, cb) { + var context = null; + var error = null; + + try { + context = tls.createSecureContext({ + ca : config.ssl.ca, + cert : config.ssl.cert, + ciphers : config.ssl.ciphers, + key : config.ssl.key, + passphrase : config.ssl.passphrase + }); + } catch (err) { + error = err; + } + + cb(error, context); +} + +function unwrapFromDomain(fn) { + return function () { + var domains = []; + var ret; + + while (process.domain) { + domains.shift(process.domain); + process.domain.exit(); + } + + try { + ret = fn.apply(this, arguments); + } finally { + for (var i = 0; i < domains.length; i++) { + domains[i].enter(); + } + } + + return ret; + }; +} + +function wrapCallbackInDomain(ee, fn) { + if (typeof fn !== 'function') { + return undefined; + } + + if (fn.domain) { + return fn; + } + + var domain = process.domain; + + if (domain) { + return domain.bind(fn); + } else if (ee) { + return unwrapFromDomain(wrapToDomain(ee, fn)); + } else { + return fn; + } +} + +function wrapToDomain(ee, fn) { + return function () { + if (Events.usingDomains && ee.domain) { + ee.domain.enter(); + fn.apply(this, arguments); + ee.domain.exit(); + } else { + fn.apply(this, arguments); + } + }; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/ConnectionConfig.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/ConnectionConfig.js" new file mode 100644 index 0000000000000000000000000000000000000000..06f4399c57be1278b36b70b649ce563fa2908768 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/ConnectionConfig.js" @@ -0,0 +1,209 @@ +var urlParse = require('url').parse; +var ClientConstants = require('./protocol/constants/client'); +var Charsets = require('./protocol/constants/charsets'); +var SSLProfiles = null; + +module.exports = ConnectionConfig; +function ConnectionConfig(options) { + if (typeof options === 'string') { + options = ConnectionConfig.parseUrl(options); + } + + this.host = options.host || 'localhost'; + this.port = options.port || 3306; + this.localAddress = options.localAddress; + this.socketPath = options.socketPath; + this.user = options.user || undefined; + this.password = options.password || undefined; + this.database = options.database; + this.connectTimeout = (options.connectTimeout === undefined) + ? (10 * 1000) + : options.connectTimeout; + this.insecureAuth = options.insecureAuth || false; + this.supportBigNumbers = options.supportBigNumbers || false; + this.bigNumberStrings = options.bigNumberStrings || false; + this.dateStrings = options.dateStrings || false; + this.debug = options.debug; + this.trace = options.trace !== false; + this.stringifyObjects = options.stringifyObjects || false; + this.timezone = options.timezone || 'local'; + this.flags = options.flags || ''; + this.queryFormat = options.queryFormat; + this.pool = options.pool || undefined; + this.ssl = (typeof options.ssl === 'string') + ? ConnectionConfig.getSSLProfile(options.ssl) + : (options.ssl || false); + this.localInfile = (options.localInfile === undefined) + ? true + : options.localInfile; + this.multipleStatements = options.multipleStatements || false; + this.typeCast = (options.typeCast === undefined) + ? true + : options.typeCast; + + if (this.timezone[0] === ' ') { + // "+" is a url encoded char for space so it + // gets translated to space when giving a + // connection string.. + this.timezone = '+' + this.timezone.substr(1); + } + + if (this.ssl) { + // Default rejectUnauthorized to true + this.ssl.rejectUnauthorized = this.ssl.rejectUnauthorized !== false; + } + + this.maxPacketSize = 0; + this.charsetNumber = (options.charset) + ? ConnectionConfig.getCharsetNumber(options.charset) + : options.charsetNumber || Charsets.UTF8_GENERAL_CI; + + // Set the client flags + var defaultFlags = ConnectionConfig.getDefaultFlags(options); + this.clientFlags = ConnectionConfig.mergeFlags(defaultFlags, options.flags); +} + +ConnectionConfig.mergeFlags = function mergeFlags(defaultFlags, userFlags) { + var allFlags = ConnectionConfig.parseFlagList(defaultFlags); + var newFlags = ConnectionConfig.parseFlagList(userFlags); + + // Merge the new flags + for (var flag in newFlags) { + if (allFlags[flag] !== false) { + allFlags[flag] = newFlags[flag]; + } + } + + // Build flags + var flags = 0x0; + for (var flag in allFlags) { + if (allFlags[flag]) { + // TODO: Throw here on some future release + flags |= ClientConstants['CLIENT_' + flag] || 0x0; + } + } + + return flags; +}; + +ConnectionConfig.getCharsetNumber = function getCharsetNumber(charset) { + var num = Charsets[charset.toUpperCase()]; + + if (num === undefined) { + throw new TypeError('Unknown charset \'' + charset + '\''); + } + + return num; +}; + +ConnectionConfig.getDefaultFlags = function getDefaultFlags(options) { + var defaultFlags = [ + '-COMPRESS', // Compression protocol *NOT* supported + '-CONNECT_ATTRS', // Does *NOT* send connection attributes in Protocol::HandshakeResponse41 + '+CONNECT_WITH_DB', // One can specify db on connect in Handshake Response Packet + '+FOUND_ROWS', // Send found rows instead of affected rows + '+IGNORE_SIGPIPE', // Don't issue SIGPIPE if network failures + '+IGNORE_SPACE', // Let the parser ignore spaces before '(' + '+LOCAL_FILES', // Can use LOAD DATA LOCAL + '+LONG_FLAG', // Longer flags in Protocol::ColumnDefinition320 + '+LONG_PASSWORD', // Use the improved version of Old Password Authentication + '+MULTI_RESULTS', // Can handle multiple resultsets for COM_QUERY + '+ODBC', // Special handling of ODBC behaviour + '-PLUGIN_AUTH', // Does *NOT* support auth plugins + '+PROTOCOL_41', // Uses the 4.1 protocol + '+PS_MULTI_RESULTS', // Can handle multiple resultsets for COM_STMT_EXECUTE + '+RESERVED', // Unused + '+SECURE_CONNECTION', // Supports Authentication::Native41 + '+TRANSACTIONS' // Expects status flags + ]; + + if (options && options.localInfile !== undefined && !options.localInfile) { + // Disable LOCAL modifier for LOAD DATA INFILE + defaultFlags.push('-LOCAL_FILES'); + } + + if (options && options.multipleStatements) { + // May send multiple statements per COM_QUERY and COM_STMT_PREPARE + defaultFlags.push('+MULTI_STATEMENTS'); + } + + return defaultFlags; +}; + +ConnectionConfig.getSSLProfile = function getSSLProfile(name) { + if (!SSLProfiles) { + SSLProfiles = require('./protocol/constants/ssl_profiles'); + } + + var ssl = SSLProfiles[name]; + + if (ssl === undefined) { + throw new TypeError('Unknown SSL profile \'' + name + '\''); + } + + return ssl; +}; + +ConnectionConfig.parseFlagList = function parseFlagList(flagList) { + var allFlags = Object.create(null); + + if (!flagList) { + return allFlags; + } + + var flags = !Array.isArray(flagList) + ? String(flagList || '').toUpperCase().split(/\s*,+\s*/) + : flagList; + + for (var i = 0; i < flags.length; i++) { + var flag = flags[i]; + var offset = 1; + var state = flag[0]; + + if (state === undefined) { + // TODO: throw here on some future release + continue; + } + + if (state !== '-' && state !== '+') { + offset = 0; + state = '+'; + } + + allFlags[flag.substr(offset)] = state === '+'; + } + + return allFlags; +}; + +ConnectionConfig.parseUrl = function(url) { + url = urlParse(url, true); + + var options = { + host : url.hostname, + port : url.port, + database : url.pathname.substr(1) + }; + + if (url.auth) { + var auth = url.auth.split(':'); + options.user = auth.shift(); + options.password = auth.join(':'); + } + + if (url.query) { + for (var key in url.query) { + var value = url.query[key]; + + try { + // Try to parse this as a JSON expression first + options[key] = JSON.parse(value); + } catch (err) { + // Otherwise assume it is a plain string + options[key] = value; + } + } + } + + return options; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/Pool.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/Pool.js" new file mode 100644 index 0000000000000000000000000000000000000000..87a40114ac02977dd27be46206e7016af308d8e2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/Pool.js" @@ -0,0 +1,294 @@ +var mysql = require('../'); +var Connection = require('./Connection'); +var EventEmitter = require('events').EventEmitter; +var Util = require('util'); +var PoolConnection = require('./PoolConnection'); + +module.exports = Pool; + +Util.inherits(Pool, EventEmitter); +function Pool(options) { + EventEmitter.call(this); + this.config = options.config; + this.config.connectionConfig.pool = this; + + this._acquiringConnections = []; + this._allConnections = []; + this._freeConnections = []; + this._connectionQueue = []; + this._closed = false; +} + +Pool.prototype.getConnection = function (cb) { + + if (this._closed) { + var err = new Error('Pool is closed.'); + err.code = 'POOL_CLOSED'; + process.nextTick(function () { + cb(err); + }); + return; + } + + var connection; + var pool = this; + + if (this._freeConnections.length > 0) { + connection = this._freeConnections.shift(); + this.acquireConnection(connection, cb); + return; + } + + if (this.config.connectionLimit === 0 || this._allConnections.length < this.config.connectionLimit) { + connection = new PoolConnection(this, { config: this.config.newConnectionConfig() }); + + this._acquiringConnections.push(connection); + this._allConnections.push(connection); + + connection.connect({timeout: this.config.acquireTimeout}, function onConnect(err) { + spliceConnection(pool._acquiringConnections, connection); + + if (pool._closed) { + err = new Error('Pool is closed.'); + err.code = 'POOL_CLOSED'; + } + + if (err) { + pool._purgeConnection(connection); + cb(err); + return; + } + + pool.emit('connection', connection); + pool.emit('acquire', connection); + cb(null, connection); + }); + return; + } + + if (!this.config.waitForConnections) { + process.nextTick(function(){ + var err = new Error('No connections available.'); + err.code = 'POOL_CONNLIMIT'; + cb(err); + }); + return; + } + + this._enqueueCallback(cb); +}; + +Pool.prototype.acquireConnection = function acquireConnection(connection, cb) { + if (connection._pool !== this) { + throw new Error('Connection acquired from wrong pool.'); + } + + var changeUser = this._needsChangeUser(connection); + var pool = this; + + this._acquiringConnections.push(connection); + + function onOperationComplete(err) { + spliceConnection(pool._acquiringConnections, connection); + + if (pool._closed) { + err = new Error('Pool is closed.'); + err.code = 'POOL_CLOSED'; + } + + if (err) { + pool._connectionQueue.unshift(cb); + pool._purgeConnection(connection); + return; + } + + if (changeUser) { + pool.emit('connection', connection); + } + + pool.emit('acquire', connection); + cb(null, connection); + } + + if (changeUser) { + // restore user back to pool configuration + connection.config = this.config.newConnectionConfig(); + connection.changeUser({timeout: this.config.acquireTimeout}, onOperationComplete); + } else { + // ping connection + connection.ping({timeout: this.config.acquireTimeout}, onOperationComplete); + } +}; + +Pool.prototype.releaseConnection = function releaseConnection(connection) { + + if (this._acquiringConnections.indexOf(connection) !== -1) { + // connection is being acquired + return; + } + + if (connection._pool) { + if (connection._pool !== this) { + throw new Error('Connection released to wrong pool'); + } + + if (this._freeConnections.indexOf(connection) !== -1) { + // connection already in free connection pool + // this won't catch all double-release cases + throw new Error('Connection already released'); + } else { + // add connection to end of free queue + this._freeConnections.push(connection); + this.emit('release', connection); + } + } + + if (this._closed) { + // empty the connection queue + this._connectionQueue.splice(0).forEach(function (cb) { + var err = new Error('Pool is closed.'); + err.code = 'POOL_CLOSED'; + process.nextTick(function () { + cb(err); + }); + }); + } else if (this._connectionQueue.length) { + // get connection with next waiting callback + this.getConnection(this._connectionQueue.shift()); + } +}; + +Pool.prototype.end = function (cb) { + this._closed = true; + + if (typeof cb !== 'function') { + cb = function (err) { + if (err) throw err; + }; + } + + var calledBack = false; + var waitingClose = 0; + + function onEnd(err) { + if (!calledBack && (err || --waitingClose <= 0)) { + calledBack = true; + cb(err); + } + } + + while (this._allConnections.length !== 0) { + waitingClose++; + this._purgeConnection(this._allConnections[0], onEnd); + } + + if (waitingClose === 0) { + process.nextTick(onEnd); + } +}; + +Pool.prototype.query = function (sql, values, cb) { + var query = Connection.createQuery(sql, values, cb); + + if (!(typeof sql === 'object' && 'typeCast' in sql)) { + query.typeCast = this.config.connectionConfig.typeCast; + } + + if (this.config.connectionConfig.trace) { + // Long stack trace support + query._callSite = new Error(); + } + + this.getConnection(function (err, conn) { + if (err) { + query.on('error', function () {}); + query.end(err); + return; + } + + // Release connection based off event + query.once('end', function() { + conn.release(); + }); + + conn.query(query); + }); + + return query; +}; + +Pool.prototype._enqueueCallback = function _enqueueCallback(callback) { + + if (this.config.queueLimit && this._connectionQueue.length >= this.config.queueLimit) { + process.nextTick(function () { + var err = new Error('Queue limit reached.'); + err.code = 'POOL_ENQUEUELIMIT'; + callback(err); + }); + return; + } + + // Bind to domain, as dequeue will likely occur in a different domain + var cb = process.domain + ? process.domain.bind(callback) + : callback; + + this._connectionQueue.push(cb); + this.emit('enqueue'); +}; + +Pool.prototype._needsChangeUser = function _needsChangeUser(connection) { + var connConfig = connection.config; + var poolConfig = this.config.connectionConfig; + + // check if changeUser values are different + return connConfig.user !== poolConfig.user + || connConfig.database !== poolConfig.database + || connConfig.password !== poolConfig.password + || connConfig.charsetNumber !== poolConfig.charsetNumber; +}; + +Pool.prototype._purgeConnection = function _purgeConnection(connection, callback) { + var cb = callback || function () {}; + + if (connection.state === 'disconnected') { + connection.destroy(); + } + + this._removeConnection(connection); + + if (connection.state !== 'disconnected' && !connection._protocol._quitSequence) { + connection._realEnd(cb); + return; + } + + process.nextTick(cb); +}; + +Pool.prototype._removeConnection = function(connection) { + connection._pool = null; + + // Remove connection from all connections + spliceConnection(this._allConnections, connection); + + // Remove connection from free connections + spliceConnection(this._freeConnections, connection); + + this.releaseConnection(connection); +}; + +Pool.prototype.escape = function(value) { + return mysql.escape(value, this.config.connectionConfig.stringifyObjects, this.config.connectionConfig.timezone); +}; + +Pool.prototype.escapeId = function escapeId(value) { + return mysql.escapeId(value, false); +}; + +function spliceConnection(array, connection) { + var index; + if ((index = array.indexOf(connection)) !== -1) { + // Remove connection from all connections + array.splice(index, 1); + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolCluster.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolCluster.js" new file mode 100644 index 0000000000000000000000000000000000000000..d0aed2c75d3da46ff72423bb5e470dee0242d6bb --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolCluster.js" @@ -0,0 +1,288 @@ +var Pool = require('./Pool'); +var PoolConfig = require('./PoolConfig'); +var PoolNamespace = require('./PoolNamespace'); +var PoolSelector = require('./PoolSelector'); +var Util = require('util'); +var EventEmitter = require('events').EventEmitter; + +module.exports = PoolCluster; + +/** + * PoolCluster + * @constructor + * @param {object} [config] The pool cluster configuration + * @public + */ +function PoolCluster(config) { + EventEmitter.call(this); + + config = config || {}; + this._canRetry = typeof config.canRetry === 'undefined' ? true : config.canRetry; + this._defaultSelector = config.defaultSelector || 'RR'; + this._removeNodeErrorCount = config.removeNodeErrorCount || 5; + this._restoreNodeTimeout = config.restoreNodeTimeout || 0; + + this._closed = false; + this._findCaches = Object.create(null); + this._lastId = 0; + this._namespaces = Object.create(null); + this._nodes = Object.create(null); +} + +Util.inherits(PoolCluster, EventEmitter); + +PoolCluster.prototype.add = function add(id, config) { + if (this._closed) { + throw new Error('PoolCluster is closed.'); + } + + var nodeId = typeof id === 'object' + ? 'CLUSTER::' + (++this._lastId) + : String(id); + + if (this._nodes[nodeId] !== undefined) { + throw new Error('Node ID "' + nodeId + '" is already defined in PoolCluster.'); + } + + var poolConfig = typeof id !== 'object' + ? new PoolConfig(config) + : new PoolConfig(id); + + this._nodes[nodeId] = { + id : nodeId, + errorCount : 0, + pool : new Pool({config: poolConfig}), + _offlineUntil : 0 + }; + + this._clearFindCaches(); +}; + +PoolCluster.prototype.end = function end(callback) { + var cb = callback !== undefined + ? callback + : _cb; + + if (typeof cb !== 'function') { + throw TypeError('callback argument must be a function'); + } + + if (this._closed) { + process.nextTick(cb); + return; + } + + this._closed = true; + + var calledBack = false; + var nodeIds = Object.keys(this._nodes); + var waitingClose = 0; + + function onEnd(err) { + if (!calledBack && (err || --waitingClose <= 0)) { + calledBack = true; + cb(err); + } + } + + for (var i = 0; i < nodeIds.length; i++) { + var nodeId = nodeIds[i]; + var node = this._nodes[nodeId]; + + waitingClose++; + node.pool.end(onEnd); + } + + if (waitingClose === 0) { + process.nextTick(onEnd); + } +}; + +PoolCluster.prototype.of = function(pattern, selector) { + pattern = pattern || '*'; + + selector = selector || this._defaultSelector; + selector = selector.toUpperCase(); + if (typeof PoolSelector[selector] === 'undefined') { + selector = this._defaultSelector; + } + + var key = pattern + selector; + + if (typeof this._namespaces[key] === 'undefined') { + this._namespaces[key] = new PoolNamespace(this, pattern, selector); + } + + return this._namespaces[key]; +}; + +PoolCluster.prototype.remove = function remove(pattern) { + var foundNodeIds = this._findNodeIds(pattern, true); + + for (var i = 0; i < foundNodeIds.length; i++) { + var node = this._getNode(foundNodeIds[i]); + + if (node) { + this._removeNode(node); + } + } +}; + +PoolCluster.prototype.getConnection = function(pattern, selector, cb) { + var namespace; + if (typeof pattern === 'function') { + cb = pattern; + namespace = this.of(); + } else { + if (typeof selector === 'function') { + cb = selector; + selector = this._defaultSelector; + } + + namespace = this.of(pattern, selector); + } + + namespace.getConnection(cb); +}; + +PoolCluster.prototype._clearFindCaches = function _clearFindCaches() { + this._findCaches = Object.create(null); +}; + +PoolCluster.prototype._decreaseErrorCount = function _decreaseErrorCount(node) { + var errorCount = node.errorCount; + + if (errorCount > this._removeNodeErrorCount) { + errorCount = this._removeNodeErrorCount; + } + + if (errorCount < 1) { + errorCount = 1; + } + + node.errorCount = errorCount - 1; + + if (node._offlineUntil) { + node._offlineUntil = 0; + this.emit('online', node.id); + } +}; + +PoolCluster.prototype._findNodeIds = function _findNodeIds(pattern, includeOffline) { + var currentTime = 0; + var foundNodeIds = this._findCaches[pattern]; + + if (foundNodeIds === undefined) { + var expression = patternRegExp(pattern); + var nodeIds = Object.keys(this._nodes); + + foundNodeIds = nodeIds.filter(function (id) { + return id.match(expression); + }); + + this._findCaches[pattern] = foundNodeIds; + } + + if (includeOffline) { + return foundNodeIds; + } + + return foundNodeIds.filter(function (nodeId) { + var node = this._getNode(nodeId); + + if (!node._offlineUntil) { + return true; + } + + if (!currentTime) { + currentTime = getMonotonicMilliseconds(); + } + + return node._offlineUntil <= currentTime; + }, this); +}; + +PoolCluster.prototype._getNode = function _getNode(id) { + return this._nodes[id] || null; +}; + +PoolCluster.prototype._increaseErrorCount = function _increaseErrorCount(node) { + var errorCount = ++node.errorCount; + + if (this._removeNodeErrorCount > errorCount) { + return; + } + + if (this._restoreNodeTimeout > 0) { + node._offlineUntil = getMonotonicMilliseconds() + this._restoreNodeTimeout; + this.emit('offline', node.id); + return; + } + + this._removeNode(node); + this.emit('remove', node.id); +}; + +PoolCluster.prototype._getConnection = function(node, cb) { + var self = this; + + node.pool.getConnection(function (err, connection) { + if (err) { + self._increaseErrorCount(node); + cb(err); + return; + } else { + self._decreaseErrorCount(node); + } + + connection._clusterId = node.id; + + cb(null, connection); + }); +}; + +PoolCluster.prototype._removeNode = function _removeNode(node) { + delete this._nodes[node.id]; + + this._clearFindCaches(); + + node.pool.end(_noop); +}; + +function getMonotonicMilliseconds() { + var ms; + + if (typeof process.hrtime === 'function') { + ms = process.hrtime(); + ms = ms[0] * 1e3 + ms[1] * 1e-6; + } else { + ms = process.uptime() * 1000; + } + + return Math.floor(ms); +} + +function isRegExp(val) { + return typeof val === 'object' + && Object.prototype.toString.call(val) === '[object RegExp]'; +} + +function patternRegExp(pattern) { + if (isRegExp(pattern)) { + return pattern; + } + + var source = pattern + .replace(/([.+?^=!:${}()|\[\]\/\\])/g, '\\$1') + .replace(/\*/g, '.*'); + + return new RegExp('^' + source + '$'); +} + +function _cb(err) { + if (err) { + throw err; + } +} + +function _noop() {} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolConfig.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolConfig.js" new file mode 100644 index 0000000000000000000000000000000000000000..8c5017a27e66c55643e400d9eca5089b0be10f84 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolConfig.js" @@ -0,0 +1,32 @@ + +var ConnectionConfig = require('./ConnectionConfig'); + +module.exports = PoolConfig; +function PoolConfig(options) { + if (typeof options === 'string') { + options = ConnectionConfig.parseUrl(options); + } + + this.acquireTimeout = (options.acquireTimeout === undefined) + ? 10 * 1000 + : Number(options.acquireTimeout); + this.connectionConfig = new ConnectionConfig(options); + this.waitForConnections = (options.waitForConnections === undefined) + ? true + : Boolean(options.waitForConnections); + this.connectionLimit = (options.connectionLimit === undefined) + ? 10 + : Number(options.connectionLimit); + this.queueLimit = (options.queueLimit === undefined) + ? 0 + : Number(options.queueLimit); +} + +PoolConfig.prototype.newConnectionConfig = function newConnectionConfig() { + var connectionConfig = new ConnectionConfig(this.connectionConfig); + + connectionConfig.clientFlags = this.connectionConfig.clientFlags; + connectionConfig.maxPacketSize = this.connectionConfig.maxPacketSize; + + return connectionConfig; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolConnection.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolConnection.js" new file mode 100644 index 0000000000000000000000000000000000000000..064c99d32a72014cef8fb4ebc6abdefdae4b372e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolConnection.js" @@ -0,0 +1,65 @@ +var inherits = require('util').inherits; +var Connection = require('./Connection'); +var Events = require('events'); + +module.exports = PoolConnection; +inherits(PoolConnection, Connection); + +function PoolConnection(pool, options) { + Connection.call(this, options); + this._pool = pool; + + // Bind connection to pool domain + if (Events.usingDomains) { + this.domain = pool.domain; + } + + // When a fatal error occurs the connection's protocol ends, which will cause + // the connection to end as well, thus we only need to watch for the end event + // and we will be notified of disconnects. + this.on('end', this._removeFromPool); + this.on('error', function (err) { + if (err.fatal) { + this._removeFromPool(); + } + }); +} + +PoolConnection.prototype.release = function release() { + var pool = this._pool; + + if (!pool || pool._closed) { + return undefined; + } + + return pool.releaseConnection(this); +}; + +// TODO: Remove this when we are removing PoolConnection#end +PoolConnection.prototype._realEnd = Connection.prototype.end; + +PoolConnection.prototype.end = function () { + console.warn( + 'Calling conn.end() to release a pooled connection is ' + + 'deprecated. In next version calling conn.end() will be ' + + 'restored to default conn.end() behavior. Use ' + + 'conn.release() instead.' + ); + this.release(); +}; + +PoolConnection.prototype.destroy = function () { + Connection.prototype.destroy.apply(this, arguments); + this._removeFromPool(this); +}; + +PoolConnection.prototype._removeFromPool = function _removeFromPool() { + if (!this._pool || this._pool._closed) { + return; + } + + var pool = this._pool; + this._pool = null; + + pool._purgeConnection(this); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolNamespace.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolNamespace.js" new file mode 100644 index 0000000000000000000000000000000000000000..d3ea7860f6ba2e800550643e30863e065c2e668c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolNamespace.js" @@ -0,0 +1,136 @@ +var Connection = require('./Connection'); +var PoolSelector = require('./PoolSelector'); + +module.exports = PoolNamespace; + +/** + * PoolNamespace + * @constructor + * @param {PoolCluster} cluster The parent cluster for the namespace + * @param {string} pattern The selection pattern to use + * @param {string} selector The selector name to use + * @public + */ +function PoolNamespace(cluster, pattern, selector) { + this._cluster = cluster; + this._pattern = pattern; + this._selector = new PoolSelector[selector](); +} + +PoolNamespace.prototype.getConnection = function(cb) { + var clusterNode = this._getClusterNode(); + var cluster = this._cluster; + var namespace = this; + + if (clusterNode === null) { + var err = null; + + if (this._cluster._findNodeIds(this._pattern, true).length !== 0) { + err = new Error('Pool does not have online node.'); + err.code = 'POOL_NONEONLINE'; + } else { + err = new Error('Pool does not exist.'); + err.code = 'POOL_NOEXIST'; + } + + cb(err); + return; + } + + cluster._getConnection(clusterNode, function(err, connection) { + var retry = err && cluster._canRetry + && cluster._findNodeIds(namespace._pattern).length !== 0; + + if (retry) { + namespace.getConnection(cb); + return; + } + + if (err) { + cb(err); + return; + } + + cb(null, connection); + }); +}; + +PoolNamespace.prototype.query = function (sql, values, cb) { + var cluster = this._cluster; + var clusterNode = this._getClusterNode(); + var query = Connection.createQuery(sql, values, cb); + var namespace = this; + + if (clusterNode === null) { + var err = null; + + if (this._cluster._findNodeIds(this._pattern, true).length !== 0) { + err = new Error('Pool does not have online node.'); + err.code = 'POOL_NONEONLINE'; + } else { + err = new Error('Pool does not exist.'); + err.code = 'POOL_NOEXIST'; + } + + process.nextTick(function () { + query.on('error', function () {}); + query.end(err); + }); + return query; + } + + if (!(typeof sql === 'object' && 'typeCast' in sql)) { + query.typeCast = clusterNode.pool.config.connectionConfig.typeCast; + } + + if (clusterNode.pool.config.connectionConfig.trace) { + // Long stack trace support + query._callSite = new Error(); + } + + cluster._getConnection(clusterNode, function (err, conn) { + var retry = err && cluster._canRetry + && cluster._findNodeIds(namespace._pattern).length !== 0; + + if (retry) { + namespace.query(query); + return; + } + + if (err) { + query.on('error', function () {}); + query.end(err); + return; + } + + // Release connection based off event + query.once('end', function() { + conn.release(); + }); + + conn.query(query); + }); + + return query; +}; + +PoolNamespace.prototype._getClusterNode = function _getClusterNode() { + var foundNodeIds = this._cluster._findNodeIds(this._pattern); + var nodeId; + + switch (foundNodeIds.length) { + case 0: + nodeId = null; + break; + case 1: + nodeId = foundNodeIds[0]; + break; + default: + nodeId = this._selector(foundNodeIds); + break; + } + + return nodeId !== null + ? this._cluster._getNode(nodeId) + : null; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolSelector.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolSelector.js" new file mode 100644 index 0000000000000000000000000000000000000000..9a3c455f2007efb33d9e866226c13ef05b642e47 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/PoolSelector.js" @@ -0,0 +1,31 @@ + +/** + * PoolSelector + */ +var PoolSelector = module.exports = {}; + +PoolSelector.RR = function PoolSelectorRoundRobin() { + var index = 0; + + return function(clusterIds) { + if (index >= clusterIds.length) { + index = 0; + } + + var clusterId = clusterIds[index++]; + + return clusterId; + }; +}; + +PoolSelector.RANDOM = function PoolSelectorRandom() { + return function(clusterIds) { + return clusterIds[Math.floor(Math.random() * clusterIds.length)]; + }; +}; + +PoolSelector.ORDER = function PoolSelectorOrder() { + return function(clusterIds) { + return clusterIds[0]; + }; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Auth.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Auth.js" new file mode 100644 index 0000000000000000000000000000000000000000..a1033d1b929777b04baff9d8f972f495c6f31af7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Auth.js" @@ -0,0 +1,168 @@ +var Buffer = require('safe-buffer').Buffer; +var Crypto = require('crypto'); +var Auth = exports; + +function auth(name, data, options) { + options = options || {}; + + switch (name) { + case 'mysql_native_password': + return Auth.token(options.password, data.slice(0, 20)); + default: + return undefined; + } +} +Auth.auth = auth; + +function sha1(msg) { + var hash = Crypto.createHash('sha1'); + hash.update(msg, 'binary'); + return hash.digest('binary'); +} +Auth.sha1 = sha1; + +function xor(a, b) { + a = Buffer.from(a, 'binary'); + b = Buffer.from(b, 'binary'); + var result = Buffer.allocUnsafe(a.length); + for (var i = 0; i < a.length; i++) { + result[i] = (a[i] ^ b[i]); + } + return result; +} +Auth.xor = xor; + +Auth.token = function(password, scramble) { + if (!password) { + return Buffer.alloc(0); + } + + // password must be in binary format, not utf8 + var stage1 = sha1((Buffer.from(password, 'utf8')).toString('binary')); + var stage2 = sha1(stage1); + var stage3 = sha1(scramble.toString('binary') + stage2); + return xor(stage3, stage1); +}; + +// This is a port of sql/password.c:hash_password which needs to be used for +// pre-4.1 passwords. +Auth.hashPassword = function(password) { + var nr = [0x5030, 0x5735]; + var add = 7; + var nr2 = [0x1234, 0x5671]; + var result = Buffer.alloc(8); + + if (typeof password === 'string'){ + password = Buffer.from(password); + } + + for (var i = 0; i < password.length; i++) { + var c = password[i]; + if (c === 32 || c === 9) { + // skip space in password + continue; + } + + // nr^= (((nr & 63)+add)*c)+ (nr << 8); + // nr = xor(nr, add(mul(add(and(nr, 63), add), c), shl(nr, 8))) + nr = this.xor32(nr, this.add32(this.mul32(this.add32(this.and32(nr, [0, 63]), [0, add]), [0, c]), this.shl32(nr, 8))); + + // nr2+=(nr2 << 8) ^ nr; + // nr2 = add(nr2, xor(shl(nr2, 8), nr)) + nr2 = this.add32(nr2, this.xor32(this.shl32(nr2, 8), nr)); + + // add+=tmp; + add += c; + } + + this.int31Write(result, nr, 0); + this.int31Write(result, nr2, 4); + + return result; +}; + +Auth.randomInit = function(seed1, seed2) { + return { + max_value : 0x3FFFFFFF, + max_value_dbl : 0x3FFFFFFF, + seed1 : seed1 % 0x3FFFFFFF, + seed2 : seed2 % 0x3FFFFFFF + }; +}; + +Auth.myRnd = function(r){ + r.seed1 = (r.seed1 * 3 + r.seed2) % r.max_value; + r.seed2 = (r.seed1 + r.seed2 + 33) % r.max_value; + + return r.seed1 / r.max_value_dbl; +}; + +Auth.scramble323 = function(message, password) { + if (!password) { + return Buffer.alloc(0); + } + + var to = Buffer.allocUnsafe(8); + var hashPass = this.hashPassword(password); + var hashMessage = this.hashPassword(message.slice(0, 8)); + var seed1 = this.int32Read(hashPass, 0) ^ this.int32Read(hashMessage, 0); + var seed2 = this.int32Read(hashPass, 4) ^ this.int32Read(hashMessage, 4); + var r = this.randomInit(seed1, seed2); + + for (var i = 0; i < 8; i++){ + to[i] = Math.floor(this.myRnd(r) * 31) + 64; + } + var extra = (Math.floor(this.myRnd(r) * 31)); + + for (var i = 0; i < 8; i++){ + to[i] ^= extra; + } + + return to; +}; + +Auth.xor32 = function(a, b){ + return [a[0] ^ b[0], a[1] ^ b[1]]; +}; + +Auth.add32 = function(a, b){ + var w1 = a[1] + b[1]; + var w2 = a[0] + b[0] + ((w1 & 0xFFFF0000) >> 16); + + return [w2 & 0xFFFF, w1 & 0xFFFF]; +}; + +Auth.mul32 = function(a, b){ + // based on this example of multiplying 32b ints using 16b + // http://www.dsprelated.com/showmessage/89790/1.php + var w1 = a[1] * b[1]; + var w2 = (((a[1] * b[1]) >> 16) & 0xFFFF) + ((a[0] * b[1]) & 0xFFFF) + (a[1] * b[0] & 0xFFFF); + + return [w2 & 0xFFFF, w1 & 0xFFFF]; +}; + +Auth.and32 = function(a, b){ + return [a[0] & b[0], a[1] & b[1]]; +}; + +Auth.shl32 = function(a, b){ + // assume b is 16 or less + var w1 = a[1] << b; + var w2 = (a[0] << b) | ((w1 & 0xFFFF0000) >> 16); + + return [w2 & 0xFFFF, w1 & 0xFFFF]; +}; + +Auth.int31Write = function(buffer, number, offset) { + buffer[offset] = (number[0] >> 8) & 0x7F; + buffer[offset + 1] = (number[0]) & 0xFF; + buffer[offset + 2] = (number[1] >> 8) & 0xFF; + buffer[offset + 3] = (number[1]) & 0xFF; +}; + +Auth.int32Read = function(buffer, offset){ + return (buffer[offset] << 24) + + (buffer[offset + 1] << 16) + + (buffer[offset + 2] << 8) + + (buffer[offset + 3]); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/BufferList.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/BufferList.js" new file mode 100644 index 0000000000000000000000000000000000000000..3cd01926a01ff6979cfd5754fc9f6a6e8c5d7008 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/BufferList.js" @@ -0,0 +1,25 @@ + +module.exports = BufferList; +function BufferList() { + this.bufs = []; + this.size = 0; +} + +BufferList.prototype.shift = function shift() { + var buf = this.bufs.shift(); + + if (buf) { + this.size -= buf.length; + } + + return buf; +}; + +BufferList.prototype.push = function push(buf) { + if (!buf || !buf.length) { + return; + } + + this.bufs.push(buf); + this.size += buf.length; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/PacketHeader.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/PacketHeader.js" new file mode 100644 index 0000000000000000000000000000000000000000..1bb282e4bb79356edd4e16f65c08e44aaef14c6e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/PacketHeader.js" @@ -0,0 +1,5 @@ +module.exports = PacketHeader; +function PacketHeader(length, number) { + this.length = length; + this.number = number; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/PacketWriter.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/PacketWriter.js" new file mode 100644 index 0000000000000000000000000000000000000000..4d0afd2af34a5b099244ddeb8bb612f0c63e9235 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/PacketWriter.js" @@ -0,0 +1,211 @@ +var BIT_16 = Math.pow(2, 16); +var BIT_24 = Math.pow(2, 24); +var BUFFER_ALLOC_SIZE = Math.pow(2, 8); +// The maximum precision JS Numbers can hold precisely +// Don't panic: Good enough to represent byte values up to 8192 TB +var IEEE_754_BINARY_64_PRECISION = Math.pow(2, 53); +var MAX_PACKET_LENGTH = Math.pow(2, 24) - 1; +var Buffer = require('safe-buffer').Buffer; + +module.exports = PacketWriter; +function PacketWriter() { + this._buffer = null; + this._offset = 0; +} + +PacketWriter.prototype.toBuffer = function toBuffer(parser) { + if (!this._buffer) { + this._buffer = Buffer.alloc(0); + this._offset = 0; + } + + var buffer = this._buffer; + var length = this._offset; + var packets = Math.floor(length / MAX_PACKET_LENGTH) + 1; + + this._buffer = Buffer.allocUnsafe(length + packets * 4); + this._offset = 0; + + for (var packet = 0; packet < packets; packet++) { + var isLast = (packet + 1 === packets); + var packetLength = (isLast) + ? length % MAX_PACKET_LENGTH + : MAX_PACKET_LENGTH; + + var packetNumber = parser.incrementPacketNumber(); + + this.writeUnsignedNumber(3, packetLength); + this.writeUnsignedNumber(1, packetNumber); + + var start = packet * MAX_PACKET_LENGTH; + var end = start + packetLength; + + this.writeBuffer(buffer.slice(start, end)); + } + + return this._buffer; +}; + +PacketWriter.prototype.writeUnsignedNumber = function(bytes, value) { + this._allocate(bytes); + + for (var i = 0; i < bytes; i++) { + this._buffer[this._offset++] = (value >> (i * 8)) & 0xff; + } +}; + +PacketWriter.prototype.writeFiller = function(bytes) { + this._allocate(bytes); + + for (var i = 0; i < bytes; i++) { + this._buffer[this._offset++] = 0x00; + } +}; + +PacketWriter.prototype.writeNullTerminatedString = function(value, encoding) { + // Typecast undefined into '' and numbers into strings + value = value || ''; + value = value + ''; + + var bytes = Buffer.byteLength(value, encoding || 'utf-8') + 1; + this._allocate(bytes); + + this._buffer.write(value, this._offset, encoding); + this._buffer[this._offset + bytes - 1] = 0x00; + + this._offset += bytes; +}; + +PacketWriter.prototype.writeString = function(value) { + // Typecast undefined into '' and numbers into strings + value = value || ''; + value = value + ''; + + var bytes = Buffer.byteLength(value, 'utf-8'); + this._allocate(bytes); + + this._buffer.write(value, this._offset, 'utf-8'); + + this._offset += bytes; +}; + +PacketWriter.prototype.writeBuffer = function(value) { + var bytes = value.length; + + this._allocate(bytes); + value.copy(this._buffer, this._offset); + this._offset += bytes; +}; + +PacketWriter.prototype.writeLengthCodedNumber = function(value) { + if (value === null) { + this._allocate(1); + this._buffer[this._offset++] = 251; + return; + } + + if (value <= 250) { + this._allocate(1); + this._buffer[this._offset++] = value; + return; + } + + if (value > IEEE_754_BINARY_64_PRECISION) { + throw new Error( + 'writeLengthCodedNumber: JS precision range exceeded, your ' + + 'number is > 53 bit: "' + value + '"' + ); + } + + if (value < BIT_16) { + this._allocate(3); + this._buffer[this._offset++] = 252; + } else if (value < BIT_24) { + this._allocate(4); + this._buffer[this._offset++] = 253; + } else { + this._allocate(9); + this._buffer[this._offset++] = 254; + } + + // 16 Bit + this._buffer[this._offset++] = value & 0xff; + this._buffer[this._offset++] = (value >> 8) & 0xff; + + if (value < BIT_16) { + return; + } + + // 24 Bit + this._buffer[this._offset++] = (value >> 16) & 0xff; + + if (value < BIT_24) { + return; + } + + this._buffer[this._offset++] = (value >> 24) & 0xff; + + // Hack: Get the most significant 32 bit (JS bitwise operators are 32 bit) + value = value.toString(2); + value = value.substr(0, value.length - 32); + value = parseInt(value, 2); + + this._buffer[this._offset++] = value & 0xff; + this._buffer[this._offset++] = (value >> 8) & 0xff; + this._buffer[this._offset++] = (value >> 16) & 0xff; + + // Set last byte to 0, as we can only support 53 bits in JS (see above) + this._buffer[this._offset++] = 0; +}; + +PacketWriter.prototype.writeLengthCodedBuffer = function(value) { + var bytes = value.length; + this.writeLengthCodedNumber(bytes); + this.writeBuffer(value); +}; + +PacketWriter.prototype.writeNullTerminatedBuffer = function(value) { + this.writeBuffer(value); + this.writeFiller(1); // 0x00 terminator +}; + +PacketWriter.prototype.writeLengthCodedString = function(value) { + if (value === null) { + this.writeLengthCodedNumber(null); + return; + } + + value = (value === undefined) + ? '' + : String(value); + + var bytes = Buffer.byteLength(value, 'utf-8'); + this.writeLengthCodedNumber(bytes); + + if (!bytes) { + return; + } + + this._allocate(bytes); + this._buffer.write(value, this._offset, 'utf-8'); + this._offset += bytes; +}; + +PacketWriter.prototype._allocate = function _allocate(bytes) { + if (!this._buffer) { + this._buffer = Buffer.alloc(Math.max(BUFFER_ALLOC_SIZE, bytes)); + this._offset = 0; + return; + } + + var bytesRemaining = this._buffer.length - this._offset; + if (bytesRemaining >= bytes) { + return; + } + + var newSize = this._buffer.length + Math.max(BUFFER_ALLOC_SIZE, bytes); + var oldBuffer = this._buffer; + + this._buffer = Buffer.alloc(newSize); + oldBuffer.copy(this._buffer); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Parser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Parser.js" new file mode 100644 index 0000000000000000000000000000000000000000..e72555f2eff754f7f00e9b683def5f69d9ec776c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Parser.js" @@ -0,0 +1,491 @@ +var PacketHeader = require('./PacketHeader'); +var BigNumber = require('bignumber.js'); +var Buffer = require('safe-buffer').Buffer; +var BufferList = require('./BufferList'); + +var MAX_PACKET_LENGTH = Math.pow(2, 24) - 1; +var MUL_32BIT = Math.pow(2, 32); +var PACKET_HEADER_LENGTH = 4; + +module.exports = Parser; +function Parser(options) { + options = options || {}; + + this._supportBigNumbers = options.config && options.config.supportBigNumbers; + this._buffer = Buffer.alloc(0); + this._nextBuffers = new BufferList(); + this._longPacketBuffers = new BufferList(); + this._offset = 0; + this._packetEnd = null; + this._packetHeader = null; + this._packetOffset = null; + this._onError = options.onError || function(err) { throw err; }; + this._onPacket = options.onPacket || function() {}; + this._nextPacketNumber = 0; + this._encoding = 'utf-8'; + this._paused = false; +} + +Parser.prototype.write = function write(chunk) { + this._nextBuffers.push(chunk); + + while (!this._paused) { + var packetHeader = this._tryReadPacketHeader(); + + if (!packetHeader) { + break; + } + + if (!this._combineNextBuffers(packetHeader.length)) { + break; + } + + this._parsePacket(packetHeader); + } +}; + +Parser.prototype.append = function append(chunk) { + if (!chunk || chunk.length === 0) { + return; + } + + // Calculate slice ranges + var sliceEnd = this._buffer.length; + var sliceStart = this._packetOffset === null + ? this._offset + : this._packetOffset; + var sliceLength = sliceEnd - sliceStart; + + // Get chunk data + var buffer = null; + var chunks = !(chunk instanceof Array || Array.isArray(chunk)) ? [chunk] : chunk; + var length = 0; + var offset = 0; + + for (var i = 0; i < chunks.length; i++) { + length += chunks[i].length; + } + + if (sliceLength !== 0) { + // Create a new Buffer + buffer = Buffer.allocUnsafe(sliceLength + length); + offset = 0; + + // Copy data slice + offset += this._buffer.copy(buffer, 0, sliceStart, sliceEnd); + + // Copy chunks + for (var i = 0; i < chunks.length; i++) { + offset += chunks[i].copy(buffer, offset); + } + } else if (chunks.length > 1) { + // Create a new Buffer + buffer = Buffer.allocUnsafe(length); + offset = 0; + + // Copy chunks + for (var i = 0; i < chunks.length; i++) { + offset += chunks[i].copy(buffer, offset); + } + } else { + // Buffer is the only chunk + buffer = chunks[0]; + } + + // Adjust data-tracking pointers + this._buffer = buffer; + this._offset = this._offset - sliceStart; + this._packetEnd = this._packetEnd !== null + ? this._packetEnd - sliceStart + : null; + this._packetOffset = this._packetOffset !== null + ? this._packetOffset - sliceStart + : null; +}; + +Parser.prototype.pause = function() { + this._paused = true; +}; + +Parser.prototype.resume = function() { + this._paused = false; + + // nextTick() to avoid entering write() multiple times within the same stack + // which would cause problems as write manipulates the state of the object. + process.nextTick(this.write.bind(this)); +}; + +Parser.prototype.peak = function peak(offset) { + return this._buffer[this._offset + (offset >>> 0)]; +}; + +Parser.prototype.parseUnsignedNumber = function parseUnsignedNumber(bytes) { + if (bytes === 1) { + return this._buffer[this._offset++]; + } + + var buffer = this._buffer; + var offset = this._offset + bytes - 1; + var value = 0; + + if (bytes > 4) { + var err = new Error('parseUnsignedNumber: Supports only up to 4 bytes'); + err.offset = (this._offset - this._packetOffset - 1); + err.code = 'PARSER_UNSIGNED_TOO_LONG'; + throw err; + } + + while (offset >= this._offset) { + value = ((value << 8) | buffer[offset]) >>> 0; + offset--; + } + + this._offset += bytes; + + return value; +}; + +Parser.prototype.parseLengthCodedString = function() { + var length = this.parseLengthCodedNumber(); + + if (length === null) { + return null; + } + + return this.parseString(length); +}; + +Parser.prototype.parseLengthCodedBuffer = function() { + var length = this.parseLengthCodedNumber(); + + if (length === null) { + return null; + } + + return this.parseBuffer(length); +}; + +Parser.prototype.parseLengthCodedNumber = function parseLengthCodedNumber() { + if (this._offset >= this._buffer.length) { + var err = new Error('Parser: read past end'); + err.offset = (this._offset - this._packetOffset); + err.code = 'PARSER_READ_PAST_END'; + throw err; + } + + var bits = this._buffer[this._offset++]; + + if (bits <= 250) { + return bits; + } + + switch (bits) { + case 251: + return null; + case 252: + return this.parseUnsignedNumber(2); + case 253: + return this.parseUnsignedNumber(3); + case 254: + break; + default: + var err = new Error('Unexpected first byte' + (bits ? ': 0x' + bits.toString(16) : '')); + err.offset = (this._offset - this._packetOffset - 1); + err.code = 'PARSER_BAD_LENGTH_BYTE'; + throw err; + } + + var low = this.parseUnsignedNumber(4); + var high = this.parseUnsignedNumber(4); + var value; + + if (high >>> 21) { + value = BigNumber(MUL_32BIT).times(high).plus(low).toString(); + + if (this._supportBigNumbers) { + return value; + } + + var err = new Error( + 'parseLengthCodedNumber: JS precision range exceeded, ' + + 'number is >= 53 bit: "' + value + '"' + ); + err.offset = (this._offset - this._packetOffset - 8); + err.code = 'PARSER_JS_PRECISION_RANGE_EXCEEDED'; + throw err; + } + + value = low + (MUL_32BIT * high); + + return value; +}; + +Parser.prototype.parseFiller = function(length) { + return this.parseBuffer(length); +}; + +Parser.prototype.parseNullTerminatedBuffer = function() { + var end = this._nullByteOffset(); + var value = this._buffer.slice(this._offset, end); + this._offset = end + 1; + + return value; +}; + +Parser.prototype.parseNullTerminatedString = function() { + var end = this._nullByteOffset(); + var value = this._buffer.toString(this._encoding, this._offset, end); + this._offset = end + 1; + + return value; +}; + +Parser.prototype._nullByteOffset = function() { + var offset = this._offset; + + while (this._buffer[offset] !== 0x00) { + offset++; + + if (offset >= this._buffer.length) { + var err = new Error('Offset of null terminated string not found.'); + err.offset = (this._offset - this._packetOffset); + err.code = 'PARSER_MISSING_NULL_BYTE'; + throw err; + } + } + + return offset; +}; + +Parser.prototype.parsePacketTerminatedBuffer = function parsePacketTerminatedBuffer() { + var length = this._packetEnd - this._offset; + return this.parseBuffer(length); +}; + +Parser.prototype.parsePacketTerminatedString = function() { + var length = this._packetEnd - this._offset; + return this.parseString(length); +}; + +Parser.prototype.parseBuffer = function(length) { + var response = Buffer.alloc(length); + this._buffer.copy(response, 0, this._offset, this._offset + length); + + this._offset += length; + return response; +}; + +Parser.prototype.parseString = function(length) { + var offset = this._offset; + var end = offset + length; + var value = this._buffer.toString(this._encoding, offset, end); + + this._offset = end; + return value; +}; + +Parser.prototype.parseGeometryValue = function() { + var buffer = this.parseLengthCodedBuffer(); + var offset = 4; + + if (buffer === null || !buffer.length) { + return null; + } + + function parseGeometry() { + var result = null; + var byteOrder = buffer.readUInt8(offset); offset += 1; + var wkbType = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); offset += 4; + switch (wkbType) { + case 1: // WKBPoint + var x = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); offset += 8; + var y = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); offset += 8; + result = {x: x, y: y}; + break; + case 2: // WKBLineString + var numPoints = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); offset += 4; + result = []; + for (var i = numPoints; i > 0; i--) { + var x = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); offset += 8; + var y = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); offset += 8; + result.push({x: x, y: y}); + } + break; + case 3: // WKBPolygon + var numRings = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); offset += 4; + result = []; + for (var i = numRings; i > 0; i--) { + var numPoints = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); offset += 4; + var line = []; + for (var j = numPoints; j > 0; j--) { + var x = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); offset += 8; + var y = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); offset += 8; + line.push({x: x, y: y}); + } + result.push(line); + } + break; + case 4: // WKBMultiPoint + case 5: // WKBMultiLineString + case 6: // WKBMultiPolygon + case 7: // WKBGeometryCollection + var num = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); offset += 4; + var result = []; + for (var i = num; i > 0; i--) { + result.push(parseGeometry()); + } + break; + } + return result; + } + return parseGeometry(); +}; + +Parser.prototype.reachedPacketEnd = function() { + return this._offset === this._packetEnd; +}; + +Parser.prototype.incrementPacketNumber = function() { + var currentPacketNumber = this._nextPacketNumber; + this._nextPacketNumber = (this._nextPacketNumber + 1) % 256; + + return currentPacketNumber; +}; + +Parser.prototype.resetPacketNumber = function() { + this._nextPacketNumber = 0; +}; + +Parser.prototype.packetLength = function packetLength() { + if (!this._packetHeader) { + return null; + } + + return this._packetHeader.length + this._longPacketBuffers.size; +}; + +Parser.prototype._combineNextBuffers = function _combineNextBuffers(bytes) { + var length = this._buffer.length - this._offset; + + if (length >= bytes) { + return true; + } + + if ((length + this._nextBuffers.size) < bytes) { + return false; + } + + var buffers = []; + var bytesNeeded = bytes - length; + + while (bytesNeeded > 0) { + var buffer = this._nextBuffers.shift(); + buffers.push(buffer); + bytesNeeded -= buffer.length; + } + + this.append(buffers); + return true; +}; + +Parser.prototype._combineLongPacketBuffers = function _combineLongPacketBuffers() { + if (!this._longPacketBuffers.size) { + return; + } + + // Calculate bytes + var remainingBytes = this._buffer.length - this._offset; + var trailingPacketBytes = this._buffer.length - this._packetEnd; + + // Create buffer + var buf = null; + var buffer = Buffer.allocUnsafe(remainingBytes + this._longPacketBuffers.size); + var offset = 0; + + // Copy long buffers + while ((buf = this._longPacketBuffers.shift())) { + offset += buf.copy(buffer, offset); + } + + // Copy remaining bytes + this._buffer.copy(buffer, offset, this._offset); + + this._buffer = buffer; + this._offset = 0; + this._packetEnd = this._buffer.length - trailingPacketBytes; + this._packetOffset = 0; +}; + +Parser.prototype._parsePacket = function _parsePacket(packetHeader) { + this._packetEnd = this._offset + packetHeader.length; + this._packetOffset = this._offset; + + if (packetHeader.length === MAX_PACKET_LENGTH) { + this._longPacketBuffers.push(this._buffer.slice(this._packetOffset, this._packetEnd)); + this._advanceToNextPacket(); + return; + } + + this._combineLongPacketBuffers(); + + var hadException = true; + try { + this._onPacket(packetHeader); + hadException = false; + } catch (err) { + if (!err || typeof err.code !== 'string' || err.code.substr(0, 7) !== 'PARSER_') { + throw err; // Rethrow non-MySQL errors + } + + // Pass down parser errors + this._onError(err); + hadException = false; + } finally { + this._advanceToNextPacket(); + + // If there was an exception, the parser while loop will be broken out + // of after the finally block. So schedule a blank write to re-enter it + // to continue parsing any bytes that may already have been received. + if (hadException) { + process.nextTick(this.write.bind(this)); + } + } +}; + +Parser.prototype._tryReadPacketHeader = function _tryReadPacketHeader() { + if (this._packetHeader) { + return this._packetHeader; + } + + if (!this._combineNextBuffers(PACKET_HEADER_LENGTH)) { + return null; + } + + this._packetHeader = new PacketHeader( + this.parseUnsignedNumber(3), + this.parseUnsignedNumber(1) + ); + + if (this._packetHeader.number !== this._nextPacketNumber) { + var err = new Error( + 'Packets out of order. Got: ' + this._packetHeader.number + ' ' + + 'Expected: ' + this._nextPacketNumber + ); + + err.code = 'PROTOCOL_PACKETS_OUT_OF_ORDER'; + err.fatal = true; + + this._onError(err); + } + + this.incrementPacketNumber(); + + return this._packetHeader; +}; + +Parser.prototype._advanceToNextPacket = function() { + this._offset = this._packetEnd; + this._packetHeader = null; + this._packetEnd = null; + this._packetOffset = null; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Protocol.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Protocol.js" new file mode 100644 index 0000000000000000000000000000000000000000..ab371059bcb4bc7aec271d84f3c316caaefb77cf --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Protocol.js" @@ -0,0 +1,463 @@ +var Parser = require('./Parser'); +var Sequences = require('./sequences'); +var Packets = require('./packets'); +var Stream = require('stream').Stream; +var Util = require('util'); +var PacketWriter = require('./PacketWriter'); + +module.exports = Protocol; +Util.inherits(Protocol, Stream); +function Protocol(options) { + Stream.call(this); + + options = options || {}; + + this.readable = true; + this.writable = true; + + this._config = options.config || {}; + this._connection = options.connection; + this._callback = null; + this._fatalError = null; + this._quitSequence = null; + this._handshake = false; + this._handshaked = false; + this._ended = false; + this._destroyed = false; + this._queue = []; + this._handshakeInitializationPacket = null; + + this._parser = new Parser({ + onError : this.handleParserError.bind(this), + onPacket : this._parsePacket.bind(this), + config : this._config + }); +} + +Protocol.prototype.write = function(buffer) { + this._parser.write(buffer); + return true; +}; + +Protocol.prototype.handshake = function handshake(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + options = options || {}; + options.config = this._config; + + var sequence = this._enqueue(new Sequences.Handshake(options, callback)); + + this._handshake = true; + + return sequence; +}; + +Protocol.prototype.query = function query(options, callback) { + return this._enqueue(new Sequences.Query(options, callback)); +}; + +Protocol.prototype.changeUser = function changeUser(options, callback) { + return this._enqueue(new Sequences.ChangeUser(options, callback)); +}; + +Protocol.prototype.ping = function ping(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + return this._enqueue(new Sequences.Ping(options, callback)); +}; + +Protocol.prototype.stats = function stats(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + return this._enqueue(new Sequences.Statistics(options, callback)); +}; + +Protocol.prototype.quit = function quit(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + var self = this; + var sequence = this._enqueue(new Sequences.Quit(options, callback)); + + sequence.on('end', function () { + self.end(); + }); + + return this._quitSequence = sequence; +}; + +Protocol.prototype.end = function() { + if (this._ended) { + return; + } + this._ended = true; + + if (this._quitSequence && (this._quitSequence._ended || this._queue[0] === this._quitSequence)) { + this._quitSequence.end(); + this.emit('end'); + return; + } + + var err = new Error('Connection lost: The server closed the connection.'); + err.fatal = true; + err.code = 'PROTOCOL_CONNECTION_LOST'; + + this._delegateError(err); +}; + +Protocol.prototype.pause = function() { + this._parser.pause(); + // Since there is a file stream in query, we must transmit pause/resume event to current sequence. + var seq = this._queue[0]; + if (seq && seq.emit) { + seq.emit('pause'); + } +}; + +Protocol.prototype.resume = function() { + this._parser.resume(); + // Since there is a file stream in query, we must transmit pause/resume event to current sequence. + var seq = this._queue[0]; + if (seq && seq.emit) { + seq.emit('resume'); + } +}; + +Protocol.prototype._enqueue = function(sequence) { + if (!this._validateEnqueue(sequence)) { + return sequence; + } + + if (this._config.trace) { + // Long stack trace support + sequence._callSite = sequence._callSite || new Error(); + } + + this._queue.push(sequence); + this.emit('enqueue', sequence); + + var self = this; + sequence + .on('error', function(err) { + self._delegateError(err, sequence); + }) + .on('packet', function(packet) { + sequence._timer.active(); + self._emitPacket(packet); + }) + .on('timeout', function() { + var err = new Error(sequence.constructor.name + ' inactivity timeout'); + + err.code = 'PROTOCOL_SEQUENCE_TIMEOUT'; + err.fatal = true; + err.timeout = sequence._timeout; + + self._delegateError(err, sequence); + }); + + if (sequence.constructor === Sequences.Handshake) { + sequence.on('start-tls', function () { + sequence._timer.active(); + self._connection._startTLS(function(err) { + if (err) { + // SSL negotiation error are fatal + err.code = 'HANDSHAKE_SSL_ERROR'; + err.fatal = true; + sequence.end(err); + return; + } + + sequence._timer.active(); + sequence._tlsUpgradeCompleteHandler(); + }); + }); + + sequence.on('end', function () { + self._handshaked = true; + + if (!self._fatalError) { + self.emit('handshake', self._handshakeInitializationPacket); + } + }); + } + + sequence.on('end', function () { + self._dequeue(sequence); + }); + + if (this._queue.length === 1) { + this._parser.resetPacketNumber(); + this._startSequence(sequence); + } + + return sequence; +}; + +Protocol.prototype._validateEnqueue = function _validateEnqueue(sequence) { + var err; + var prefix = 'Cannot enqueue ' + sequence.constructor.name; + + if (this._fatalError) { + err = new Error(prefix + ' after fatal error.'); + err.code = 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR'; + } else if (this._quitSequence) { + err = new Error(prefix + ' after invoking quit.'); + err.code = 'PROTOCOL_ENQUEUE_AFTER_QUIT'; + } else if (this._destroyed) { + err = new Error(prefix + ' after being destroyed.'); + err.code = 'PROTOCOL_ENQUEUE_AFTER_DESTROY'; + } else if ((this._handshake || this._handshaked) && sequence.constructor === Sequences.Handshake) { + err = new Error(prefix + ' after already enqueuing a Handshake.'); + err.code = 'PROTOCOL_ENQUEUE_HANDSHAKE_TWICE'; + } else { + return true; + } + + var self = this; + err.fatal = false; + + // add error handler + sequence.on('error', function (err) { + self._delegateError(err, sequence); + }); + + process.nextTick(function () { + sequence.end(err); + }); + + return false; +}; + +Protocol.prototype._parsePacket = function() { + var sequence = this._queue[0]; + + if (!sequence) { + var err = new Error('Received packet with no active sequence.'); + err.code = 'PROTOCOL_STRAY_PACKET'; + err.fatal = true; + + this._delegateError(err); + return; + } + + var Packet = this._determinePacket(sequence); + var packet = new Packet({protocol41: this._config.protocol41}); + var packetName = Packet.name; + + // Special case: Faster dispatch, and parsing done inside sequence + if (Packet === Packets.RowDataPacket) { + sequence.RowDataPacket(packet, this._parser, this._connection); + + if (this._config.debug) { + this._debugPacket(true, packet); + } + + return; + } + + if (this._config.debug) { + this._parsePacketDebug(packet); + } else { + packet.parse(this._parser); + } + + if (Packet === Packets.HandshakeInitializationPacket) { + this._handshakeInitializationPacket = packet; + this.emit('initialize', packet); + } + + sequence._timer.active(); + + if (!sequence[packetName]) { + var err = new Error('Received packet in the wrong sequence.'); + err.code = 'PROTOCOL_INCORRECT_PACKET_SEQUENCE'; + err.fatal = true; + + this._delegateError(err); + return; + } + + sequence[packetName](packet); +}; + +Protocol.prototype._parsePacketDebug = function _parsePacketDebug(packet) { + try { + packet.parse(this._parser); + } finally { + this._debugPacket(true, packet); + } +}; + +Protocol.prototype._emitPacket = function(packet) { + var packetWriter = new PacketWriter(); + packet.write(packetWriter); + this.emit('data', packetWriter.toBuffer(this._parser)); + + if (this._config.debug) { + this._debugPacket(false, packet); + } +}; + +Protocol.prototype._determinePacket = function(sequence) { + var firstByte = this._parser.peak(); + + if (sequence.determinePacket) { + var Packet = sequence.determinePacket(firstByte, this._parser); + if (Packet) { + return Packet; + } + } + + switch (firstByte) { + case 0x00: return Packets.OkPacket; + case 0xfe: return Packets.EofPacket; + case 0xff: return Packets.ErrorPacket; + } + + throw new Error('Could not determine packet, firstByte = ' + firstByte); +}; + +Protocol.prototype._dequeue = function(sequence) { + sequence._timer.stop(); + + // No point in advancing the queue, we are dead + if (this._fatalError) { + return; + } + + this._queue.shift(); + + var sequence = this._queue[0]; + if (!sequence) { + this.emit('drain'); + return; + } + + this._parser.resetPacketNumber(); + + this._startSequence(sequence); +}; + +Protocol.prototype._startSequence = function(sequence) { + if (sequence._timeout > 0 && isFinite(sequence._timeout)) { + sequence._timer.start(sequence._timeout); + } + + if (sequence.constructor === Sequences.ChangeUser) { + sequence.start(this._handshakeInitializationPacket); + } else { + sequence.start(); + } +}; + +Protocol.prototype.handleNetworkError = function(err) { + err.fatal = true; + + var sequence = this._queue[0]; + if (sequence) { + sequence.end(err); + } else { + this._delegateError(err); + } +}; + +Protocol.prototype.handleParserError = function handleParserError(err) { + var sequence = this._queue[0]; + if (sequence) { + sequence.end(err); + } else { + this._delegateError(err); + } +}; + +Protocol.prototype._delegateError = function(err, sequence) { + // Stop delegating errors after the first fatal error + if (this._fatalError) { + return; + } + + if (err.fatal) { + this._fatalError = err; + } + + if (this._shouldErrorBubbleUp(err, sequence)) { + // Can't use regular 'error' event here as that always destroys the pipe + // between socket and protocol which is not what we want (unless the + // exception was fatal). + this.emit('unhandledError', err); + } else if (err.fatal) { + // Send fatal error to all sequences in the queue + var queue = this._queue; + process.nextTick(function () { + queue.forEach(function (sequence) { + sequence.end(err); + }); + queue.length = 0; + }); + } + + // Make sure the stream we are piping to is getting closed + if (err.fatal) { + this.emit('end', err); + } +}; + +Protocol.prototype._shouldErrorBubbleUp = function(err, sequence) { + if (sequence) { + if (sequence.hasErrorHandler()) { + return false; + } else if (!err.fatal) { + return true; + } + } + + return (err.fatal && !this._hasPendingErrorHandlers()); +}; + +Protocol.prototype._hasPendingErrorHandlers = function() { + return this._queue.some(function(sequence) { + return sequence.hasErrorHandler(); + }); +}; + +Protocol.prototype.destroy = function() { + this._destroyed = true; + this._parser.pause(); + + if (this._connection.state !== 'disconnected') { + if (!this._ended) { + this.end(); + } + } +}; + +Protocol.prototype._debugPacket = function(incoming, packet) { + var connection = this._connection; + var direction = incoming + ? '<--' + : '-->'; + var packetName = packet.constructor.name; + var threadId = connection && connection.threadId !== null + ? ' (' + connection.threadId + ')' + : ''; + + // check for debug packet restriction + if (Array.isArray(this._config.debug) && this._config.debug.indexOf(packetName) === -1) { + return; + } + + var packetPayload = Util.inspect(packet).replace(/^[^{]+/, ''); + + console.log('%s%s %s %s\n', direction, threadId, packetName, packetPayload); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/ResultSet.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/ResultSet.js" new file mode 100644 index 0000000000000000000000000000000000000000..f58d74fb21a00bba241ddd11a6e8c6fac80299a5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/ResultSet.js" @@ -0,0 +1,7 @@ +module.exports = ResultSet; +function ResultSet(resultSetHeaderPacket) { + this.resultSetHeaderPacket = resultSetHeaderPacket; + this.fieldPackets = []; + this.eofPackets = []; + this.rows = []; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/SqlString.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/SqlString.js" new file mode 100644 index 0000000000000000000000000000000000000000..30c63d82e310c27d2814363cfb56c37e6c6e8b72 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/SqlString.js" @@ -0,0 +1 @@ +module.exports = require('sqlstring'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Timer.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Timer.js" new file mode 100644 index 0000000000000000000000000000000000000000..45ed0292fa6b66c10fd4919b5413c0181bd70e27 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/Timer.js" @@ -0,0 +1,33 @@ +var Timers = require('timers'); + +module.exports = Timer; +function Timer(object) { + this._object = object; + this._timeout = null; +} + +Timer.prototype.active = function active() { + if (this._timeout) { + if (this._timeout.refresh) { + this._timeout.refresh(); + } else { + Timers.active(this._timeout); + } + } +}; + +Timer.prototype.start = function start(msecs) { + this.stop(); + this._timeout = Timers.setTimeout(this._onTimeout.bind(this), msecs); +}; + +Timer.prototype.stop = function stop() { + if (this._timeout) { + Timers.clearTimeout(this._timeout); + this._timeout = null; + } +}; + +Timer.prototype._onTimeout = function _onTimeout() { + return this._object._onTimeout(); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/charsets.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/charsets.js" new file mode 100644 index 0000000000000000000000000000000000000000..98b88eac11879a240fada41e913d2a7f73de61c4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/charsets.js" @@ -0,0 +1,262 @@ +exports.BIG5_CHINESE_CI = 1; +exports.LATIN2_CZECH_CS = 2; +exports.DEC8_SWEDISH_CI = 3; +exports.CP850_GENERAL_CI = 4; +exports.LATIN1_GERMAN1_CI = 5; +exports.HP8_ENGLISH_CI = 6; +exports.KOI8R_GENERAL_CI = 7; +exports.LATIN1_SWEDISH_CI = 8; +exports.LATIN2_GENERAL_CI = 9; +exports.SWE7_SWEDISH_CI = 10; +exports.ASCII_GENERAL_CI = 11; +exports.UJIS_JAPANESE_CI = 12; +exports.SJIS_JAPANESE_CI = 13; +exports.CP1251_BULGARIAN_CI = 14; +exports.LATIN1_DANISH_CI = 15; +exports.HEBREW_GENERAL_CI = 16; +exports.TIS620_THAI_CI = 18; +exports.EUCKR_KOREAN_CI = 19; +exports.LATIN7_ESTONIAN_CS = 20; +exports.LATIN2_HUNGARIAN_CI = 21; +exports.KOI8U_GENERAL_CI = 22; +exports.CP1251_UKRAINIAN_CI = 23; +exports.GB2312_CHINESE_CI = 24; +exports.GREEK_GENERAL_CI = 25; +exports.CP1250_GENERAL_CI = 26; +exports.LATIN2_CROATIAN_CI = 27; +exports.GBK_CHINESE_CI = 28; +exports.CP1257_LITHUANIAN_CI = 29; +exports.LATIN5_TURKISH_CI = 30; +exports.LATIN1_GERMAN2_CI = 31; +exports.ARMSCII8_GENERAL_CI = 32; +exports.UTF8_GENERAL_CI = 33; +exports.CP1250_CZECH_CS = 34; +exports.UCS2_GENERAL_CI = 35; +exports.CP866_GENERAL_CI = 36; +exports.KEYBCS2_GENERAL_CI = 37; +exports.MACCE_GENERAL_CI = 38; +exports.MACROMAN_GENERAL_CI = 39; +exports.CP852_GENERAL_CI = 40; +exports.LATIN7_GENERAL_CI = 41; +exports.LATIN7_GENERAL_CS = 42; +exports.MACCE_BIN = 43; +exports.CP1250_CROATIAN_CI = 44; +exports.UTF8MB4_GENERAL_CI = 45; +exports.UTF8MB4_BIN = 46; +exports.LATIN1_BIN = 47; +exports.LATIN1_GENERAL_CI = 48; +exports.LATIN1_GENERAL_CS = 49; +exports.CP1251_BIN = 50; +exports.CP1251_GENERAL_CI = 51; +exports.CP1251_GENERAL_CS = 52; +exports.MACROMAN_BIN = 53; +exports.UTF16_GENERAL_CI = 54; +exports.UTF16_BIN = 55; +exports.UTF16LE_GENERAL_CI = 56; +exports.CP1256_GENERAL_CI = 57; +exports.CP1257_BIN = 58; +exports.CP1257_GENERAL_CI = 59; +exports.UTF32_GENERAL_CI = 60; +exports.UTF32_BIN = 61; +exports.UTF16LE_BIN = 62; +exports.BINARY = 63; +exports.ARMSCII8_BIN = 64; +exports.ASCII_BIN = 65; +exports.CP1250_BIN = 66; +exports.CP1256_BIN = 67; +exports.CP866_BIN = 68; +exports.DEC8_BIN = 69; +exports.GREEK_BIN = 70; +exports.HEBREW_BIN = 71; +exports.HP8_BIN = 72; +exports.KEYBCS2_BIN = 73; +exports.KOI8R_BIN = 74; +exports.KOI8U_BIN = 75; +exports.LATIN2_BIN = 77; +exports.LATIN5_BIN = 78; +exports.LATIN7_BIN = 79; +exports.CP850_BIN = 80; +exports.CP852_BIN = 81; +exports.SWE7_BIN = 82; +exports.UTF8_BIN = 83; +exports.BIG5_BIN = 84; +exports.EUCKR_BIN = 85; +exports.GB2312_BIN = 86; +exports.GBK_BIN = 87; +exports.SJIS_BIN = 88; +exports.TIS620_BIN = 89; +exports.UCS2_BIN = 90; +exports.UJIS_BIN = 91; +exports.GEOSTD8_GENERAL_CI = 92; +exports.GEOSTD8_BIN = 93; +exports.LATIN1_SPANISH_CI = 94; +exports.CP932_JAPANESE_CI = 95; +exports.CP932_BIN = 96; +exports.EUCJPMS_JAPANESE_CI = 97; +exports.EUCJPMS_BIN = 98; +exports.CP1250_POLISH_CI = 99; +exports.UTF16_UNICODE_CI = 101; +exports.UTF16_ICELANDIC_CI = 102; +exports.UTF16_LATVIAN_CI = 103; +exports.UTF16_ROMANIAN_CI = 104; +exports.UTF16_SLOVENIAN_CI = 105; +exports.UTF16_POLISH_CI = 106; +exports.UTF16_ESTONIAN_CI = 107; +exports.UTF16_SPANISH_CI = 108; +exports.UTF16_SWEDISH_CI = 109; +exports.UTF16_TURKISH_CI = 110; +exports.UTF16_CZECH_CI = 111; +exports.UTF16_DANISH_CI = 112; +exports.UTF16_LITHUANIAN_CI = 113; +exports.UTF16_SLOVAK_CI = 114; +exports.UTF16_SPANISH2_CI = 115; +exports.UTF16_ROMAN_CI = 116; +exports.UTF16_PERSIAN_CI = 117; +exports.UTF16_ESPERANTO_CI = 118; +exports.UTF16_HUNGARIAN_CI = 119; +exports.UTF16_SINHALA_CI = 120; +exports.UTF16_GERMAN2_CI = 121; +exports.UTF16_CROATIAN_MYSQL561_CI = 122; +exports.UTF16_UNICODE_520_CI = 123; +exports.UTF16_VIETNAMESE_CI = 124; +exports.UCS2_UNICODE_CI = 128; +exports.UCS2_ICELANDIC_CI = 129; +exports.UCS2_LATVIAN_CI = 130; +exports.UCS2_ROMANIAN_CI = 131; +exports.UCS2_SLOVENIAN_CI = 132; +exports.UCS2_POLISH_CI = 133; +exports.UCS2_ESTONIAN_CI = 134; +exports.UCS2_SPANISH_CI = 135; +exports.UCS2_SWEDISH_CI = 136; +exports.UCS2_TURKISH_CI = 137; +exports.UCS2_CZECH_CI = 138; +exports.UCS2_DANISH_CI = 139; +exports.UCS2_LITHUANIAN_CI = 140; +exports.UCS2_SLOVAK_CI = 141; +exports.UCS2_SPANISH2_CI = 142; +exports.UCS2_ROMAN_CI = 143; +exports.UCS2_PERSIAN_CI = 144; +exports.UCS2_ESPERANTO_CI = 145; +exports.UCS2_HUNGARIAN_CI = 146; +exports.UCS2_SINHALA_CI = 147; +exports.UCS2_GERMAN2_CI = 148; +exports.UCS2_CROATIAN_MYSQL561_CI = 149; +exports.UCS2_UNICODE_520_CI = 150; +exports.UCS2_VIETNAMESE_CI = 151; +exports.UCS2_GENERAL_MYSQL500_CI = 159; +exports.UTF32_UNICODE_CI = 160; +exports.UTF32_ICELANDIC_CI = 161; +exports.UTF32_LATVIAN_CI = 162; +exports.UTF32_ROMANIAN_CI = 163; +exports.UTF32_SLOVENIAN_CI = 164; +exports.UTF32_POLISH_CI = 165; +exports.UTF32_ESTONIAN_CI = 166; +exports.UTF32_SPANISH_CI = 167; +exports.UTF32_SWEDISH_CI = 168; +exports.UTF32_TURKISH_CI = 169; +exports.UTF32_CZECH_CI = 170; +exports.UTF32_DANISH_CI = 171; +exports.UTF32_LITHUANIAN_CI = 172; +exports.UTF32_SLOVAK_CI = 173; +exports.UTF32_SPANISH2_CI = 174; +exports.UTF32_ROMAN_CI = 175; +exports.UTF32_PERSIAN_CI = 176; +exports.UTF32_ESPERANTO_CI = 177; +exports.UTF32_HUNGARIAN_CI = 178; +exports.UTF32_SINHALA_CI = 179; +exports.UTF32_GERMAN2_CI = 180; +exports.UTF32_CROATIAN_MYSQL561_CI = 181; +exports.UTF32_UNICODE_520_CI = 182; +exports.UTF32_VIETNAMESE_CI = 183; +exports.UTF8_UNICODE_CI = 192; +exports.UTF8_ICELANDIC_CI = 193; +exports.UTF8_LATVIAN_CI = 194; +exports.UTF8_ROMANIAN_CI = 195; +exports.UTF8_SLOVENIAN_CI = 196; +exports.UTF8_POLISH_CI = 197; +exports.UTF8_ESTONIAN_CI = 198; +exports.UTF8_SPANISH_CI = 199; +exports.UTF8_SWEDISH_CI = 200; +exports.UTF8_TURKISH_CI = 201; +exports.UTF8_CZECH_CI = 202; +exports.UTF8_DANISH_CI = 203; +exports.UTF8_LITHUANIAN_CI = 204; +exports.UTF8_SLOVAK_CI = 205; +exports.UTF8_SPANISH2_CI = 206; +exports.UTF8_ROMAN_CI = 207; +exports.UTF8_PERSIAN_CI = 208; +exports.UTF8_ESPERANTO_CI = 209; +exports.UTF8_HUNGARIAN_CI = 210; +exports.UTF8_SINHALA_CI = 211; +exports.UTF8_GERMAN2_CI = 212; +exports.UTF8_CROATIAN_MYSQL561_CI = 213; +exports.UTF8_UNICODE_520_CI = 214; +exports.UTF8_VIETNAMESE_CI = 215; +exports.UTF8_GENERAL_MYSQL500_CI = 223; +exports.UTF8MB4_UNICODE_CI = 224; +exports.UTF8MB4_ICELANDIC_CI = 225; +exports.UTF8MB4_LATVIAN_CI = 226; +exports.UTF8MB4_ROMANIAN_CI = 227; +exports.UTF8MB4_SLOVENIAN_CI = 228; +exports.UTF8MB4_POLISH_CI = 229; +exports.UTF8MB4_ESTONIAN_CI = 230; +exports.UTF8MB4_SPANISH_CI = 231; +exports.UTF8MB4_SWEDISH_CI = 232; +exports.UTF8MB4_TURKISH_CI = 233; +exports.UTF8MB4_CZECH_CI = 234; +exports.UTF8MB4_DANISH_CI = 235; +exports.UTF8MB4_LITHUANIAN_CI = 236; +exports.UTF8MB4_SLOVAK_CI = 237; +exports.UTF8MB4_SPANISH2_CI = 238; +exports.UTF8MB4_ROMAN_CI = 239; +exports.UTF8MB4_PERSIAN_CI = 240; +exports.UTF8MB4_ESPERANTO_CI = 241; +exports.UTF8MB4_HUNGARIAN_CI = 242; +exports.UTF8MB4_SINHALA_CI = 243; +exports.UTF8MB4_GERMAN2_CI = 244; +exports.UTF8MB4_CROATIAN_MYSQL561_CI = 245; +exports.UTF8MB4_UNICODE_520_CI = 246; +exports.UTF8MB4_VIETNAMESE_CI = 247; +exports.UTF8_GENERAL50_CI = 253; + +// short aliases +exports.ARMSCII8 = exports.ARMSCII8_GENERAL_CI; +exports.ASCII = exports.ASCII_GENERAL_CI; +exports.BIG5 = exports.BIG5_CHINESE_CI; +exports.BINARY = exports.BINARY; +exports.CP1250 = exports.CP1250_GENERAL_CI; +exports.CP1251 = exports.CP1251_GENERAL_CI; +exports.CP1256 = exports.CP1256_GENERAL_CI; +exports.CP1257 = exports.CP1257_GENERAL_CI; +exports.CP866 = exports.CP866_GENERAL_CI; +exports.CP850 = exports.CP850_GENERAL_CI; +exports.CP852 = exports.CP852_GENERAL_CI; +exports.CP932 = exports.CP932_JAPANESE_CI; +exports.DEC8 = exports.DEC8_SWEDISH_CI; +exports.EUCJPMS = exports.EUCJPMS_JAPANESE_CI; +exports.EUCKR = exports.EUCKR_KOREAN_CI; +exports.GB2312 = exports.GB2312_CHINESE_CI; +exports.GBK = exports.GBK_CHINESE_CI; +exports.GEOSTD8 = exports.GEOSTD8_GENERAL_CI; +exports.GREEK = exports.GREEK_GENERAL_CI; +exports.HEBREW = exports.HEBREW_GENERAL_CI; +exports.HP8 = exports.HP8_ENGLISH_CI; +exports.KEYBCS2 = exports.KEYBCS2_GENERAL_CI; +exports.KOI8R = exports.KOI8R_GENERAL_CI; +exports.KOI8U = exports.KOI8U_GENERAL_CI; +exports.LATIN1 = exports.LATIN1_SWEDISH_CI; +exports.LATIN2 = exports.LATIN2_GENERAL_CI; +exports.LATIN5 = exports.LATIN5_TURKISH_CI; +exports.LATIN7 = exports.LATIN7_GENERAL_CI; +exports.MACCE = exports.MACCE_GENERAL_CI; +exports.MACROMAN = exports.MACROMAN_GENERAL_CI; +exports.SJIS = exports.SJIS_JAPANESE_CI; +exports.SWE7 = exports.SWE7_SWEDISH_CI; +exports.TIS620 = exports.TIS620_THAI_CI; +exports.UCS2 = exports.UCS2_GENERAL_CI; +exports.UJIS = exports.UJIS_JAPANESE_CI; +exports.UTF16 = exports.UTF16_GENERAL_CI; +exports.UTF16LE = exports.UTF16LE_GENERAL_CI; +exports.UTF8 = exports.UTF8_GENERAL_CI; +exports.UTF8MB4 = exports.UTF8MB4_GENERAL_CI; +exports.UTF32 = exports.UTF32_GENERAL_CI; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/client.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/client.js" new file mode 100644 index 0000000000000000000000000000000000000000..59aadc609ee832dab6e71beeaae6145b16a4bc1a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/client.js" @@ -0,0 +1,26 @@ +// Manually extracted from mysql-5.5.23/include/mysql_com.h +exports.CLIENT_LONG_PASSWORD = 1; /* new more secure passwords */ +exports.CLIENT_FOUND_ROWS = 2; /* Found instead of affected rows */ +exports.CLIENT_LONG_FLAG = 4; /* Get all column flags */ +exports.CLIENT_CONNECT_WITH_DB = 8; /* One can specify db on connect */ +exports.CLIENT_NO_SCHEMA = 16; /* Don't allow database.table.column */ +exports.CLIENT_COMPRESS = 32; /* Can use compression protocol */ +exports.CLIENT_ODBC = 64; /* Odbc client */ +exports.CLIENT_LOCAL_FILES = 128; /* Can use LOAD DATA LOCAL */ +exports.CLIENT_IGNORE_SPACE = 256; /* Ignore spaces before '(' */ +exports.CLIENT_PROTOCOL_41 = 512; /* New 4.1 protocol */ +exports.CLIENT_INTERACTIVE = 1024; /* This is an interactive client */ +exports.CLIENT_SSL = 2048; /* Switch to SSL after handshake */ +exports.CLIENT_IGNORE_SIGPIPE = 4096; /* IGNORE sigpipes */ +exports.CLIENT_TRANSACTIONS = 8192; /* Client knows about transactions */ +exports.CLIENT_RESERVED = 16384; /* Old flag for 4.1 protocol */ +exports.CLIENT_SECURE_CONNECTION = 32768; /* New 4.1 authentication */ + +exports.CLIENT_MULTI_STATEMENTS = 65536; /* Enable/disable multi-stmt support */ +exports.CLIENT_MULTI_RESULTS = 131072; /* Enable/disable multi-results */ +exports.CLIENT_PS_MULTI_RESULTS = 262144; /* Multi-results in PS-protocol */ + +exports.CLIENT_PLUGIN_AUTH = 524288; /* Client supports plugin authentication */ + +exports.CLIENT_SSL_VERIFY_SERVER_CERT = 1073741824; +exports.CLIENT_REMEMBER_OPTIONS = 2147483648; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/errors.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/errors.js" new file mode 100644 index 0000000000000000000000000000000000000000..e75774183af1cc561974377721a056cf233707e4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/errors.js" @@ -0,0 +1,2476 @@ +/** + * MySQL error constants + * + * Extracted from version 5.7.29 + * + * !! Generated by generate-error-constants.js, do not modify by hand !! + */ + +exports.EE_CANTCREATEFILE = 1; +exports.EE_READ = 2; +exports.EE_WRITE = 3; +exports.EE_BADCLOSE = 4; +exports.EE_OUTOFMEMORY = 5; +exports.EE_DELETE = 6; +exports.EE_LINK = 7; +exports.EE_EOFERR = 9; +exports.EE_CANTLOCK = 10; +exports.EE_CANTUNLOCK = 11; +exports.EE_DIR = 12; +exports.EE_STAT = 13; +exports.EE_CANT_CHSIZE = 14; +exports.EE_CANT_OPEN_STREAM = 15; +exports.EE_GETWD = 16; +exports.EE_SETWD = 17; +exports.EE_LINK_WARNING = 18; +exports.EE_OPEN_WARNING = 19; +exports.EE_DISK_FULL = 20; +exports.EE_CANT_MKDIR = 21; +exports.EE_UNKNOWN_CHARSET = 22; +exports.EE_OUT_OF_FILERESOURCES = 23; +exports.EE_CANT_READLINK = 24; +exports.EE_CANT_SYMLINK = 25; +exports.EE_REALPATH = 26; +exports.EE_SYNC = 27; +exports.EE_UNKNOWN_COLLATION = 28; +exports.EE_FILENOTFOUND = 29; +exports.EE_FILE_NOT_CLOSED = 30; +exports.EE_CHANGE_OWNERSHIP = 31; +exports.EE_CHANGE_PERMISSIONS = 32; +exports.EE_CANT_SEEK = 33; +exports.EE_CAPACITY_EXCEEDED = 34; +exports.HA_ERR_KEY_NOT_FOUND = 120; +exports.HA_ERR_FOUND_DUPP_KEY = 121; +exports.HA_ERR_INTERNAL_ERROR = 122; +exports.HA_ERR_RECORD_CHANGED = 123; +exports.HA_ERR_WRONG_INDEX = 124; +exports.HA_ERR_CRASHED = 126; +exports.HA_ERR_WRONG_IN_RECORD = 127; +exports.HA_ERR_OUT_OF_MEM = 128; +exports.HA_ERR_NOT_A_TABLE = 130; +exports.HA_ERR_WRONG_COMMAND = 131; +exports.HA_ERR_OLD_FILE = 132; +exports.HA_ERR_NO_ACTIVE_RECORD = 133; +exports.HA_ERR_RECORD_DELETED = 134; +exports.HA_ERR_RECORD_FILE_FULL = 135; +exports.HA_ERR_INDEX_FILE_FULL = 136; +exports.HA_ERR_END_OF_FILE = 137; +exports.HA_ERR_UNSUPPORTED = 138; +exports.HA_ERR_TOO_BIG_ROW = 139; +exports.HA_WRONG_CREATE_OPTION = 140; +exports.HA_ERR_FOUND_DUPP_UNIQUE = 141; +exports.HA_ERR_UNKNOWN_CHARSET = 142; +exports.HA_ERR_WRONG_MRG_TABLE_DEF = 143; +exports.HA_ERR_CRASHED_ON_REPAIR = 144; +exports.HA_ERR_CRASHED_ON_USAGE = 145; +exports.HA_ERR_LOCK_WAIT_TIMEOUT = 146; +exports.HA_ERR_LOCK_TABLE_FULL = 147; +exports.HA_ERR_READ_ONLY_TRANSACTION = 148; +exports.HA_ERR_LOCK_DEADLOCK = 149; +exports.HA_ERR_CANNOT_ADD_FOREIGN = 150; +exports.HA_ERR_NO_REFERENCED_ROW = 151; +exports.HA_ERR_ROW_IS_REFERENCED = 152; +exports.HA_ERR_NO_SAVEPOINT = 153; +exports.HA_ERR_NON_UNIQUE_BLOCK_SIZE = 154; +exports.HA_ERR_NO_SUCH_TABLE = 155; +exports.HA_ERR_TABLE_EXIST = 156; +exports.HA_ERR_NO_CONNECTION = 157; +exports.HA_ERR_NULL_IN_SPATIAL = 158; +exports.HA_ERR_TABLE_DEF_CHANGED = 159; +exports.HA_ERR_NO_PARTITION_FOUND = 160; +exports.HA_ERR_RBR_LOGGING_FAILED = 161; +exports.HA_ERR_DROP_INDEX_FK = 162; +exports.HA_ERR_FOREIGN_DUPLICATE_KEY = 163; +exports.HA_ERR_TABLE_NEEDS_UPGRADE = 164; +exports.HA_ERR_TABLE_READONLY = 165; +exports.HA_ERR_AUTOINC_READ_FAILED = 166; +exports.HA_ERR_AUTOINC_ERANGE = 167; +exports.HA_ERR_GENERIC = 168; +exports.HA_ERR_RECORD_IS_THE_SAME = 169; +exports.HA_ERR_LOGGING_IMPOSSIBLE = 170; +exports.HA_ERR_CORRUPT_EVENT = 171; +exports.HA_ERR_NEW_FILE = 172; +exports.HA_ERR_ROWS_EVENT_APPLY = 173; +exports.HA_ERR_INITIALIZATION = 174; +exports.HA_ERR_FILE_TOO_SHORT = 175; +exports.HA_ERR_WRONG_CRC = 176; +exports.HA_ERR_TOO_MANY_CONCURRENT_TRXS = 177; +exports.HA_ERR_NOT_IN_LOCK_PARTITIONS = 178; +exports.HA_ERR_INDEX_COL_TOO_LONG = 179; +exports.HA_ERR_INDEX_CORRUPT = 180; +exports.HA_ERR_UNDO_REC_TOO_BIG = 181; +exports.HA_FTS_INVALID_DOCID = 182; +exports.HA_ERR_TABLE_IN_FK_CHECK = 183; +exports.HA_ERR_TABLESPACE_EXISTS = 184; +exports.HA_ERR_TOO_MANY_FIELDS = 185; +exports.HA_ERR_ROW_IN_WRONG_PARTITION = 186; +exports.HA_ERR_INNODB_READ_ONLY = 187; +exports.HA_ERR_FTS_EXCEED_RESULT_CACHE_LIMIT = 188; +exports.HA_ERR_TEMP_FILE_WRITE_FAILURE = 189; +exports.HA_ERR_INNODB_FORCED_RECOVERY = 190; +exports.HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE = 191; +exports.HA_ERR_FK_DEPTH_EXCEEDED = 192; +exports.HA_MISSING_CREATE_OPTION = 193; +exports.HA_ERR_SE_OUT_OF_MEMORY = 194; +exports.HA_ERR_TABLE_CORRUPT = 195; +exports.HA_ERR_QUERY_INTERRUPTED = 196; +exports.HA_ERR_TABLESPACE_MISSING = 197; +exports.HA_ERR_TABLESPACE_IS_NOT_EMPTY = 198; +exports.HA_ERR_WRONG_FILE_NAME = 199; +exports.HA_ERR_NOT_ALLOWED_COMMAND = 200; +exports.HA_ERR_COMPUTE_FAILED = 201; +exports.ER_HASHCHK = 1000; +exports.ER_NISAMCHK = 1001; +exports.ER_NO = 1002; +exports.ER_YES = 1003; +exports.ER_CANT_CREATE_FILE = 1004; +exports.ER_CANT_CREATE_TABLE = 1005; +exports.ER_CANT_CREATE_DB = 1006; +exports.ER_DB_CREATE_EXISTS = 1007; +exports.ER_DB_DROP_EXISTS = 1008; +exports.ER_DB_DROP_DELETE = 1009; +exports.ER_DB_DROP_RMDIR = 1010; +exports.ER_CANT_DELETE_FILE = 1011; +exports.ER_CANT_FIND_SYSTEM_REC = 1012; +exports.ER_CANT_GET_STAT = 1013; +exports.ER_CANT_GET_WD = 1014; +exports.ER_CANT_LOCK = 1015; +exports.ER_CANT_OPEN_FILE = 1016; +exports.ER_FILE_NOT_FOUND = 1017; +exports.ER_CANT_READ_DIR = 1018; +exports.ER_CANT_SET_WD = 1019; +exports.ER_CHECKREAD = 1020; +exports.ER_DISK_FULL = 1021; +exports.ER_DUP_KEY = 1022; +exports.ER_ERROR_ON_CLOSE = 1023; +exports.ER_ERROR_ON_READ = 1024; +exports.ER_ERROR_ON_RENAME = 1025; +exports.ER_ERROR_ON_WRITE = 1026; +exports.ER_FILE_USED = 1027; +exports.ER_FILSORT_ABORT = 1028; +exports.ER_FORM_NOT_FOUND = 1029; +exports.ER_GET_ERRNO = 1030; +exports.ER_ILLEGAL_HA = 1031; +exports.ER_KEY_NOT_FOUND = 1032; +exports.ER_NOT_FORM_FILE = 1033; +exports.ER_NOT_KEYFILE = 1034; +exports.ER_OLD_KEYFILE = 1035; +exports.ER_OPEN_AS_READONLY = 1036; +exports.ER_OUTOFMEMORY = 1037; +exports.ER_OUT_OF_SORTMEMORY = 1038; +exports.ER_UNEXPECTED_EOF = 1039; +exports.ER_CON_COUNT_ERROR = 1040; +exports.ER_OUT_OF_RESOURCES = 1041; +exports.ER_BAD_HOST_ERROR = 1042; +exports.ER_HANDSHAKE_ERROR = 1043; +exports.ER_DBACCESS_DENIED_ERROR = 1044; +exports.ER_ACCESS_DENIED_ERROR = 1045; +exports.ER_NO_DB_ERROR = 1046; +exports.ER_UNKNOWN_COM_ERROR = 1047; +exports.ER_BAD_NULL_ERROR = 1048; +exports.ER_BAD_DB_ERROR = 1049; +exports.ER_TABLE_EXISTS_ERROR = 1050; +exports.ER_BAD_TABLE_ERROR = 1051; +exports.ER_NON_UNIQ_ERROR = 1052; +exports.ER_SERVER_SHUTDOWN = 1053; +exports.ER_BAD_FIELD_ERROR = 1054; +exports.ER_WRONG_FIELD_WITH_GROUP = 1055; +exports.ER_WRONG_GROUP_FIELD = 1056; +exports.ER_WRONG_SUM_SELECT = 1057; +exports.ER_WRONG_VALUE_COUNT = 1058; +exports.ER_TOO_LONG_IDENT = 1059; +exports.ER_DUP_FIELDNAME = 1060; +exports.ER_DUP_KEYNAME = 1061; +exports.ER_DUP_ENTRY = 1062; +exports.ER_WRONG_FIELD_SPEC = 1063; +exports.ER_PARSE_ERROR = 1064; +exports.ER_EMPTY_QUERY = 1065; +exports.ER_NONUNIQ_TABLE = 1066; +exports.ER_INVALID_DEFAULT = 1067; +exports.ER_MULTIPLE_PRI_KEY = 1068; +exports.ER_TOO_MANY_KEYS = 1069; +exports.ER_TOO_MANY_KEY_PARTS = 1070; +exports.ER_TOO_LONG_KEY = 1071; +exports.ER_KEY_COLUMN_DOES_NOT_EXITS = 1072; +exports.ER_BLOB_USED_AS_KEY = 1073; +exports.ER_TOO_BIG_FIELDLENGTH = 1074; +exports.ER_WRONG_AUTO_KEY = 1075; +exports.ER_READY = 1076; +exports.ER_NORMAL_SHUTDOWN = 1077; +exports.ER_GOT_SIGNAL = 1078; +exports.ER_SHUTDOWN_COMPLETE = 1079; +exports.ER_FORCING_CLOSE = 1080; +exports.ER_IPSOCK_ERROR = 1081; +exports.ER_NO_SUCH_INDEX = 1082; +exports.ER_WRONG_FIELD_TERMINATORS = 1083; +exports.ER_BLOBS_AND_NO_TERMINATED = 1084; +exports.ER_TEXTFILE_NOT_READABLE = 1085; +exports.ER_FILE_EXISTS_ERROR = 1086; +exports.ER_LOAD_INFO = 1087; +exports.ER_ALTER_INFO = 1088; +exports.ER_WRONG_SUB_KEY = 1089; +exports.ER_CANT_REMOVE_ALL_FIELDS = 1090; +exports.ER_CANT_DROP_FIELD_OR_KEY = 1091; +exports.ER_INSERT_INFO = 1092; +exports.ER_UPDATE_TABLE_USED = 1093; +exports.ER_NO_SUCH_THREAD = 1094; +exports.ER_KILL_DENIED_ERROR = 1095; +exports.ER_NO_TABLES_USED = 1096; +exports.ER_TOO_BIG_SET = 1097; +exports.ER_NO_UNIQUE_LOGFILE = 1098; +exports.ER_TABLE_NOT_LOCKED_FOR_WRITE = 1099; +exports.ER_TABLE_NOT_LOCKED = 1100; +exports.ER_BLOB_CANT_HAVE_DEFAULT = 1101; +exports.ER_WRONG_DB_NAME = 1102; +exports.ER_WRONG_TABLE_NAME = 1103; +exports.ER_TOO_BIG_SELECT = 1104; +exports.ER_UNKNOWN_ERROR = 1105; +exports.ER_UNKNOWN_PROCEDURE = 1106; +exports.ER_WRONG_PARAMCOUNT_TO_PROCEDURE = 1107; +exports.ER_WRONG_PARAMETERS_TO_PROCEDURE = 1108; +exports.ER_UNKNOWN_TABLE = 1109; +exports.ER_FIELD_SPECIFIED_TWICE = 1110; +exports.ER_INVALID_GROUP_FUNC_USE = 1111; +exports.ER_UNSUPPORTED_EXTENSION = 1112; +exports.ER_TABLE_MUST_HAVE_COLUMNS = 1113; +exports.ER_RECORD_FILE_FULL = 1114; +exports.ER_UNKNOWN_CHARACTER_SET = 1115; +exports.ER_TOO_MANY_TABLES = 1116; +exports.ER_TOO_MANY_FIELDS = 1117; +exports.ER_TOO_BIG_ROWSIZE = 1118; +exports.ER_STACK_OVERRUN = 1119; +exports.ER_WRONG_OUTER_JOIN = 1120; +exports.ER_NULL_COLUMN_IN_INDEX = 1121; +exports.ER_CANT_FIND_UDF = 1122; +exports.ER_CANT_INITIALIZE_UDF = 1123; +exports.ER_UDF_NO_PATHS = 1124; +exports.ER_UDF_EXISTS = 1125; +exports.ER_CANT_OPEN_LIBRARY = 1126; +exports.ER_CANT_FIND_DL_ENTRY = 1127; +exports.ER_FUNCTION_NOT_DEFINED = 1128; +exports.ER_HOST_IS_BLOCKED = 1129; +exports.ER_HOST_NOT_PRIVILEGED = 1130; +exports.ER_PASSWORD_ANONYMOUS_USER = 1131; +exports.ER_PASSWORD_NOT_ALLOWED = 1132; +exports.ER_PASSWORD_NO_MATCH = 1133; +exports.ER_UPDATE_INFO = 1134; +exports.ER_CANT_CREATE_THREAD = 1135; +exports.ER_WRONG_VALUE_COUNT_ON_ROW = 1136; +exports.ER_CANT_REOPEN_TABLE = 1137; +exports.ER_INVALID_USE_OF_NULL = 1138; +exports.ER_REGEXP_ERROR = 1139; +exports.ER_MIX_OF_GROUP_FUNC_AND_FIELDS = 1140; +exports.ER_NONEXISTING_GRANT = 1141; +exports.ER_TABLEACCESS_DENIED_ERROR = 1142; +exports.ER_COLUMNACCESS_DENIED_ERROR = 1143; +exports.ER_ILLEGAL_GRANT_FOR_TABLE = 1144; +exports.ER_GRANT_WRONG_HOST_OR_USER = 1145; +exports.ER_NO_SUCH_TABLE = 1146; +exports.ER_NONEXISTING_TABLE_GRANT = 1147; +exports.ER_NOT_ALLOWED_COMMAND = 1148; +exports.ER_SYNTAX_ERROR = 1149; +exports.ER_DELAYED_CANT_CHANGE_LOCK = 1150; +exports.ER_TOO_MANY_DELAYED_THREADS = 1151; +exports.ER_ABORTING_CONNECTION = 1152; +exports.ER_NET_PACKET_TOO_LARGE = 1153; +exports.ER_NET_READ_ERROR_FROM_PIPE = 1154; +exports.ER_NET_FCNTL_ERROR = 1155; +exports.ER_NET_PACKETS_OUT_OF_ORDER = 1156; +exports.ER_NET_UNCOMPRESS_ERROR = 1157; +exports.ER_NET_READ_ERROR = 1158; +exports.ER_NET_READ_INTERRUPTED = 1159; +exports.ER_NET_ERROR_ON_WRITE = 1160; +exports.ER_NET_WRITE_INTERRUPTED = 1161; +exports.ER_TOO_LONG_STRING = 1162; +exports.ER_TABLE_CANT_HANDLE_BLOB = 1163; +exports.ER_TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164; +exports.ER_DELAYED_INSERT_TABLE_LOCKED = 1165; +exports.ER_WRONG_COLUMN_NAME = 1166; +exports.ER_WRONG_KEY_COLUMN = 1167; +exports.ER_WRONG_MRG_TABLE = 1168; +exports.ER_DUP_UNIQUE = 1169; +exports.ER_BLOB_KEY_WITHOUT_LENGTH = 1170; +exports.ER_PRIMARY_CANT_HAVE_NULL = 1171; +exports.ER_TOO_MANY_ROWS = 1172; +exports.ER_REQUIRES_PRIMARY_KEY = 1173; +exports.ER_NO_RAID_COMPILED = 1174; +exports.ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175; +exports.ER_KEY_DOES_NOT_EXITS = 1176; +exports.ER_CHECK_NO_SUCH_TABLE = 1177; +exports.ER_CHECK_NOT_IMPLEMENTED = 1178; +exports.ER_CANT_DO_THIS_DURING_AN_TRANSACTION = 1179; +exports.ER_ERROR_DURING_COMMIT = 1180; +exports.ER_ERROR_DURING_ROLLBACK = 1181; +exports.ER_ERROR_DURING_FLUSH_LOGS = 1182; +exports.ER_ERROR_DURING_CHECKPOINT = 1183; +exports.ER_NEW_ABORTING_CONNECTION = 1184; +exports.ER_DUMP_NOT_IMPLEMENTED = 1185; +exports.ER_FLUSH_MASTER_BINLOG_CLOSED = 1186; +exports.ER_INDEX_REBUILD = 1187; +exports.ER_MASTER = 1188; +exports.ER_MASTER_NET_READ = 1189; +exports.ER_MASTER_NET_WRITE = 1190; +exports.ER_FT_MATCHING_KEY_NOT_FOUND = 1191; +exports.ER_LOCK_OR_ACTIVE_TRANSACTION = 1192; +exports.ER_UNKNOWN_SYSTEM_VARIABLE = 1193; +exports.ER_CRASHED_ON_USAGE = 1194; +exports.ER_CRASHED_ON_REPAIR = 1195; +exports.ER_WARNING_NOT_COMPLETE_ROLLBACK = 1196; +exports.ER_TRANS_CACHE_FULL = 1197; +exports.ER_SLAVE_MUST_STOP = 1198; +exports.ER_SLAVE_NOT_RUNNING = 1199; +exports.ER_BAD_SLAVE = 1200; +exports.ER_MASTER_INFO = 1201; +exports.ER_SLAVE_THREAD = 1202; +exports.ER_TOO_MANY_USER_CONNECTIONS = 1203; +exports.ER_SET_CONSTANTS_ONLY = 1204; +exports.ER_LOCK_WAIT_TIMEOUT = 1205; +exports.ER_LOCK_TABLE_FULL = 1206; +exports.ER_READ_ONLY_TRANSACTION = 1207; +exports.ER_DROP_DB_WITH_READ_LOCK = 1208; +exports.ER_CREATE_DB_WITH_READ_LOCK = 1209; +exports.ER_WRONG_ARGUMENTS = 1210; +exports.ER_NO_PERMISSION_TO_CREATE_USER = 1211; +exports.ER_UNION_TABLES_IN_DIFFERENT_DIR = 1212; +exports.ER_LOCK_DEADLOCK = 1213; +exports.ER_TABLE_CANT_HANDLE_FT = 1214; +exports.ER_CANNOT_ADD_FOREIGN = 1215; +exports.ER_NO_REFERENCED_ROW = 1216; +exports.ER_ROW_IS_REFERENCED = 1217; +exports.ER_CONNECT_TO_MASTER = 1218; +exports.ER_QUERY_ON_MASTER = 1219; +exports.ER_ERROR_WHEN_EXECUTING_COMMAND = 1220; +exports.ER_WRONG_USAGE = 1221; +exports.ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT = 1222; +exports.ER_CANT_UPDATE_WITH_READLOCK = 1223; +exports.ER_MIXING_NOT_ALLOWED = 1224; +exports.ER_DUP_ARGUMENT = 1225; +exports.ER_USER_LIMIT_REACHED = 1226; +exports.ER_SPECIFIC_ACCESS_DENIED_ERROR = 1227; +exports.ER_LOCAL_VARIABLE = 1228; +exports.ER_GLOBAL_VARIABLE = 1229; +exports.ER_NO_DEFAULT = 1230; +exports.ER_WRONG_VALUE_FOR_VAR = 1231; +exports.ER_WRONG_TYPE_FOR_VAR = 1232; +exports.ER_VAR_CANT_BE_READ = 1233; +exports.ER_CANT_USE_OPTION_HERE = 1234; +exports.ER_NOT_SUPPORTED_YET = 1235; +exports.ER_MASTER_FATAL_ERROR_READING_BINLOG = 1236; +exports.ER_SLAVE_IGNORED_TABLE = 1237; +exports.ER_INCORRECT_GLOBAL_LOCAL_VAR = 1238; +exports.ER_WRONG_FK_DEF = 1239; +exports.ER_KEY_REF_DO_NOT_MATCH_TABLE_REF = 1240; +exports.ER_OPERAND_COLUMNS = 1241; +exports.ER_SUBQUERY_NO_1_ROW = 1242; +exports.ER_UNKNOWN_STMT_HANDLER = 1243; +exports.ER_CORRUPT_HELP_DB = 1244; +exports.ER_CYCLIC_REFERENCE = 1245; +exports.ER_AUTO_CONVERT = 1246; +exports.ER_ILLEGAL_REFERENCE = 1247; +exports.ER_DERIVED_MUST_HAVE_ALIAS = 1248; +exports.ER_SELECT_REDUCED = 1249; +exports.ER_TABLENAME_NOT_ALLOWED_HERE = 1250; +exports.ER_NOT_SUPPORTED_AUTH_MODE = 1251; +exports.ER_SPATIAL_CANT_HAVE_NULL = 1252; +exports.ER_COLLATION_CHARSET_MISMATCH = 1253; +exports.ER_SLAVE_WAS_RUNNING = 1254; +exports.ER_SLAVE_WAS_NOT_RUNNING = 1255; +exports.ER_TOO_BIG_FOR_UNCOMPRESS = 1256; +exports.ER_ZLIB_Z_MEM_ERROR = 1257; +exports.ER_ZLIB_Z_BUF_ERROR = 1258; +exports.ER_ZLIB_Z_DATA_ERROR = 1259; +exports.ER_CUT_VALUE_GROUP_CONCAT = 1260; +exports.ER_WARN_TOO_FEW_RECORDS = 1261; +exports.ER_WARN_TOO_MANY_RECORDS = 1262; +exports.ER_WARN_NULL_TO_NOTNULL = 1263; +exports.ER_WARN_DATA_OUT_OF_RANGE = 1264; +exports.WARN_DATA_TRUNCATED = 1265; +exports.ER_WARN_USING_OTHER_HANDLER = 1266; +exports.ER_CANT_AGGREGATE_2COLLATIONS = 1267; +exports.ER_DROP_USER = 1268; +exports.ER_REVOKE_GRANTS = 1269; +exports.ER_CANT_AGGREGATE_3COLLATIONS = 1270; +exports.ER_CANT_AGGREGATE_NCOLLATIONS = 1271; +exports.ER_VARIABLE_IS_NOT_STRUCT = 1272; +exports.ER_UNKNOWN_COLLATION = 1273; +exports.ER_SLAVE_IGNORED_SSL_PARAMS = 1274; +exports.ER_SERVER_IS_IN_SECURE_AUTH_MODE = 1275; +exports.ER_WARN_FIELD_RESOLVED = 1276; +exports.ER_BAD_SLAVE_UNTIL_COND = 1277; +exports.ER_MISSING_SKIP_SLAVE = 1278; +exports.ER_UNTIL_COND_IGNORED = 1279; +exports.ER_WRONG_NAME_FOR_INDEX = 1280; +exports.ER_WRONG_NAME_FOR_CATALOG = 1281; +exports.ER_WARN_QC_RESIZE = 1282; +exports.ER_BAD_FT_COLUMN = 1283; +exports.ER_UNKNOWN_KEY_CACHE = 1284; +exports.ER_WARN_HOSTNAME_WONT_WORK = 1285; +exports.ER_UNKNOWN_STORAGE_ENGINE = 1286; +exports.ER_WARN_DEPRECATED_SYNTAX = 1287; +exports.ER_NON_UPDATABLE_TABLE = 1288; +exports.ER_FEATURE_DISABLED = 1289; +exports.ER_OPTION_PREVENTS_STATEMENT = 1290; +exports.ER_DUPLICATED_VALUE_IN_TYPE = 1291; +exports.ER_TRUNCATED_WRONG_VALUE = 1292; +exports.ER_TOO_MUCH_AUTO_TIMESTAMP_COLS = 1293; +exports.ER_INVALID_ON_UPDATE = 1294; +exports.ER_UNSUPPORTED_PS = 1295; +exports.ER_GET_ERRMSG = 1296; +exports.ER_GET_TEMPORARY_ERRMSG = 1297; +exports.ER_UNKNOWN_TIME_ZONE = 1298; +exports.ER_WARN_INVALID_TIMESTAMP = 1299; +exports.ER_INVALID_CHARACTER_STRING = 1300; +exports.ER_WARN_ALLOWED_PACKET_OVERFLOWED = 1301; +exports.ER_CONFLICTING_DECLARATIONS = 1302; +exports.ER_SP_NO_RECURSIVE_CREATE = 1303; +exports.ER_SP_ALREADY_EXISTS = 1304; +exports.ER_SP_DOES_NOT_EXIST = 1305; +exports.ER_SP_DROP_FAILED = 1306; +exports.ER_SP_STORE_FAILED = 1307; +exports.ER_SP_LILABEL_MISMATCH = 1308; +exports.ER_SP_LABEL_REDEFINE = 1309; +exports.ER_SP_LABEL_MISMATCH = 1310; +exports.ER_SP_UNINIT_VAR = 1311; +exports.ER_SP_BADSELECT = 1312; +exports.ER_SP_BADRETURN = 1313; +exports.ER_SP_BADSTATEMENT = 1314; +exports.ER_UPDATE_LOG_DEPRECATED_IGNORED = 1315; +exports.ER_UPDATE_LOG_DEPRECATED_TRANSLATED = 1316; +exports.ER_QUERY_INTERRUPTED = 1317; +exports.ER_SP_WRONG_NO_OF_ARGS = 1318; +exports.ER_SP_COND_MISMATCH = 1319; +exports.ER_SP_NORETURN = 1320; +exports.ER_SP_NORETURNEND = 1321; +exports.ER_SP_BAD_CURSOR_QUERY = 1322; +exports.ER_SP_BAD_CURSOR_SELECT = 1323; +exports.ER_SP_CURSOR_MISMATCH = 1324; +exports.ER_SP_CURSOR_ALREADY_OPEN = 1325; +exports.ER_SP_CURSOR_NOT_OPEN = 1326; +exports.ER_SP_UNDECLARED_VAR = 1327; +exports.ER_SP_WRONG_NO_OF_FETCH_ARGS = 1328; +exports.ER_SP_FETCH_NO_DATA = 1329; +exports.ER_SP_DUP_PARAM = 1330; +exports.ER_SP_DUP_VAR = 1331; +exports.ER_SP_DUP_COND = 1332; +exports.ER_SP_DUP_CURS = 1333; +exports.ER_SP_CANT_ALTER = 1334; +exports.ER_SP_SUBSELECT_NYI = 1335; +exports.ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG = 1336; +exports.ER_SP_VARCOND_AFTER_CURSHNDLR = 1337; +exports.ER_SP_CURSOR_AFTER_HANDLER = 1338; +exports.ER_SP_CASE_NOT_FOUND = 1339; +exports.ER_FPARSER_TOO_BIG_FILE = 1340; +exports.ER_FPARSER_BAD_HEADER = 1341; +exports.ER_FPARSER_EOF_IN_COMMENT = 1342; +exports.ER_FPARSER_ERROR_IN_PARAMETER = 1343; +exports.ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER = 1344; +exports.ER_VIEW_NO_EXPLAIN = 1345; +exports.ER_FRM_UNKNOWN_TYPE = 1346; +exports.ER_WRONG_OBJECT = 1347; +exports.ER_NONUPDATEABLE_COLUMN = 1348; +exports.ER_VIEW_SELECT_DERIVED = 1349; +exports.ER_VIEW_SELECT_CLAUSE = 1350; +exports.ER_VIEW_SELECT_VARIABLE = 1351; +exports.ER_VIEW_SELECT_TMPTABLE = 1352; +exports.ER_VIEW_WRONG_LIST = 1353; +exports.ER_WARN_VIEW_MERGE = 1354; +exports.ER_WARN_VIEW_WITHOUT_KEY = 1355; +exports.ER_VIEW_INVALID = 1356; +exports.ER_SP_NO_DROP_SP = 1357; +exports.ER_SP_GOTO_IN_HNDLR = 1358; +exports.ER_TRG_ALREADY_EXISTS = 1359; +exports.ER_TRG_DOES_NOT_EXIST = 1360; +exports.ER_TRG_ON_VIEW_OR_TEMP_TABLE = 1361; +exports.ER_TRG_CANT_CHANGE_ROW = 1362; +exports.ER_TRG_NO_SUCH_ROW_IN_TRG = 1363; +exports.ER_NO_DEFAULT_FOR_FIELD = 1364; +exports.ER_DIVISION_BY_ZERO = 1365; +exports.ER_TRUNCATED_WRONG_VALUE_FOR_FIELD = 1366; +exports.ER_ILLEGAL_VALUE_FOR_TYPE = 1367; +exports.ER_VIEW_NONUPD_CHECK = 1368; +exports.ER_VIEW_CHECK_FAILED = 1369; +exports.ER_PROCACCESS_DENIED_ERROR = 1370; +exports.ER_RELAY_LOG_FAIL = 1371; +exports.ER_PASSWD_LENGTH = 1372; +exports.ER_UNKNOWN_TARGET_BINLOG = 1373; +exports.ER_IO_ERR_LOG_INDEX_READ = 1374; +exports.ER_BINLOG_PURGE_PROHIBITED = 1375; +exports.ER_FSEEK_FAIL = 1376; +exports.ER_BINLOG_PURGE_FATAL_ERR = 1377; +exports.ER_LOG_IN_USE = 1378; +exports.ER_LOG_PURGE_UNKNOWN_ERR = 1379; +exports.ER_RELAY_LOG_INIT = 1380; +exports.ER_NO_BINARY_LOGGING = 1381; +exports.ER_RESERVED_SYNTAX = 1382; +exports.ER_WSAS_FAILED = 1383; +exports.ER_DIFF_GROUPS_PROC = 1384; +exports.ER_NO_GROUP_FOR_PROC = 1385; +exports.ER_ORDER_WITH_PROC = 1386; +exports.ER_LOGGING_PROHIBIT_CHANGING_OF = 1387; +exports.ER_NO_FILE_MAPPING = 1388; +exports.ER_WRONG_MAGIC = 1389; +exports.ER_PS_MANY_PARAM = 1390; +exports.ER_KEY_PART_0 = 1391; +exports.ER_VIEW_CHECKSUM = 1392; +exports.ER_VIEW_MULTIUPDATE = 1393; +exports.ER_VIEW_NO_INSERT_FIELD_LIST = 1394; +exports.ER_VIEW_DELETE_MERGE_VIEW = 1395; +exports.ER_CANNOT_USER = 1396; +exports.ER_XAER_NOTA = 1397; +exports.ER_XAER_INVAL = 1398; +exports.ER_XAER_RMFAIL = 1399; +exports.ER_XAER_OUTSIDE = 1400; +exports.ER_XAER_RMERR = 1401; +exports.ER_XA_RBROLLBACK = 1402; +exports.ER_NONEXISTING_PROC_GRANT = 1403; +exports.ER_PROC_AUTO_GRANT_FAIL = 1404; +exports.ER_PROC_AUTO_REVOKE_FAIL = 1405; +exports.ER_DATA_TOO_LONG = 1406; +exports.ER_SP_BAD_SQLSTATE = 1407; +exports.ER_STARTUP = 1408; +exports.ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR = 1409; +exports.ER_CANT_CREATE_USER_WITH_GRANT = 1410; +exports.ER_WRONG_VALUE_FOR_TYPE = 1411; +exports.ER_TABLE_DEF_CHANGED = 1412; +exports.ER_SP_DUP_HANDLER = 1413; +exports.ER_SP_NOT_VAR_ARG = 1414; +exports.ER_SP_NO_RETSET = 1415; +exports.ER_CANT_CREATE_GEOMETRY_OBJECT = 1416; +exports.ER_FAILED_ROUTINE_BREAK_BINLOG = 1417; +exports.ER_BINLOG_UNSAFE_ROUTINE = 1418; +exports.ER_BINLOG_CREATE_ROUTINE_NEED_SUPER = 1419; +exports.ER_EXEC_STMT_WITH_OPEN_CURSOR = 1420; +exports.ER_STMT_HAS_NO_OPEN_CURSOR = 1421; +exports.ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = 1422; +exports.ER_NO_DEFAULT_FOR_VIEW_FIELD = 1423; +exports.ER_SP_NO_RECURSION = 1424; +exports.ER_TOO_BIG_SCALE = 1425; +exports.ER_TOO_BIG_PRECISION = 1426; +exports.ER_M_BIGGER_THAN_D = 1427; +exports.ER_WRONG_LOCK_OF_SYSTEM_TABLE = 1428; +exports.ER_CONNECT_TO_FOREIGN_DATA_SOURCE = 1429; +exports.ER_QUERY_ON_FOREIGN_DATA_SOURCE = 1430; +exports.ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST = 1431; +exports.ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432; +exports.ER_FOREIGN_DATA_STRING_INVALID = 1433; +exports.ER_CANT_CREATE_FEDERATED_TABLE = 1434; +exports.ER_TRG_IN_WRONG_SCHEMA = 1435; +exports.ER_STACK_OVERRUN_NEED_MORE = 1436; +exports.ER_TOO_LONG_BODY = 1437; +exports.ER_WARN_CANT_DROP_DEFAULT_KEYCACHE = 1438; +exports.ER_TOO_BIG_DISPLAYWIDTH = 1439; +exports.ER_XAER_DUPID = 1440; +exports.ER_DATETIME_FUNCTION_OVERFLOW = 1441; +exports.ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG = 1442; +exports.ER_VIEW_PREVENT_UPDATE = 1443; +exports.ER_PS_NO_RECURSION = 1444; +exports.ER_SP_CANT_SET_AUTOCOMMIT = 1445; +exports.ER_MALFORMED_DEFINER = 1446; +exports.ER_VIEW_FRM_NO_USER = 1447; +exports.ER_VIEW_OTHER_USER = 1448; +exports.ER_NO_SUCH_USER = 1449; +exports.ER_FORBID_SCHEMA_CHANGE = 1450; +exports.ER_ROW_IS_REFERENCED_2 = 1451; +exports.ER_NO_REFERENCED_ROW_2 = 1452; +exports.ER_SP_BAD_VAR_SHADOW = 1453; +exports.ER_TRG_NO_DEFINER = 1454; +exports.ER_OLD_FILE_FORMAT = 1455; +exports.ER_SP_RECURSION_LIMIT = 1456; +exports.ER_SP_PROC_TABLE_CORRUPT = 1457; +exports.ER_SP_WRONG_NAME = 1458; +exports.ER_TABLE_NEEDS_UPGRADE = 1459; +exports.ER_SP_NO_AGGREGATE = 1460; +exports.ER_MAX_PREPARED_STMT_COUNT_REACHED = 1461; +exports.ER_VIEW_RECURSIVE = 1462; +exports.ER_NON_GROUPING_FIELD_USED = 1463; +exports.ER_TABLE_CANT_HANDLE_SPKEYS = 1464; +exports.ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA = 1465; +exports.ER_REMOVED_SPACES = 1466; +exports.ER_AUTOINC_READ_FAILED = 1467; +exports.ER_USERNAME = 1468; +exports.ER_HOSTNAME = 1469; +exports.ER_WRONG_STRING_LENGTH = 1470; +exports.ER_NON_INSERTABLE_TABLE = 1471; +exports.ER_ADMIN_WRONG_MRG_TABLE = 1472; +exports.ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT = 1473; +exports.ER_NAME_BECOMES_EMPTY = 1474; +exports.ER_AMBIGUOUS_FIELD_TERM = 1475; +exports.ER_FOREIGN_SERVER_EXISTS = 1476; +exports.ER_FOREIGN_SERVER_DOESNT_EXIST = 1477; +exports.ER_ILLEGAL_HA_CREATE_OPTION = 1478; +exports.ER_PARTITION_REQUIRES_VALUES_ERROR = 1479; +exports.ER_PARTITION_WRONG_VALUES_ERROR = 1480; +exports.ER_PARTITION_MAXVALUE_ERROR = 1481; +exports.ER_PARTITION_SUBPARTITION_ERROR = 1482; +exports.ER_PARTITION_SUBPART_MIX_ERROR = 1483; +exports.ER_PARTITION_WRONG_NO_PART_ERROR = 1484; +exports.ER_PARTITION_WRONG_NO_SUBPART_ERROR = 1485; +exports.ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR = 1486; +exports.ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR = 1487; +exports.ER_FIELD_NOT_FOUND_PART_ERROR = 1488; +exports.ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR = 1489; +exports.ER_INCONSISTENT_PARTITION_INFO_ERROR = 1490; +exports.ER_PARTITION_FUNC_NOT_ALLOWED_ERROR = 1491; +exports.ER_PARTITIONS_MUST_BE_DEFINED_ERROR = 1492; +exports.ER_RANGE_NOT_INCREASING_ERROR = 1493; +exports.ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR = 1494; +exports.ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR = 1495; +exports.ER_PARTITION_ENTRY_ERROR = 1496; +exports.ER_MIX_HANDLER_ERROR = 1497; +exports.ER_PARTITION_NOT_DEFINED_ERROR = 1498; +exports.ER_TOO_MANY_PARTITIONS_ERROR = 1499; +exports.ER_SUBPARTITION_ERROR = 1500; +exports.ER_CANT_CREATE_HANDLER_FILE = 1501; +exports.ER_BLOB_FIELD_IN_PART_FUNC_ERROR = 1502; +exports.ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF = 1503; +exports.ER_NO_PARTS_ERROR = 1504; +exports.ER_PARTITION_MGMT_ON_NONPARTITIONED = 1505; +exports.ER_FOREIGN_KEY_ON_PARTITIONED = 1506; +exports.ER_DROP_PARTITION_NON_EXISTENT = 1507; +exports.ER_DROP_LAST_PARTITION = 1508; +exports.ER_COALESCE_ONLY_ON_HASH_PARTITION = 1509; +exports.ER_REORG_HASH_ONLY_ON_SAME_NO = 1510; +exports.ER_REORG_NO_PARAM_ERROR = 1511; +exports.ER_ONLY_ON_RANGE_LIST_PARTITION = 1512; +exports.ER_ADD_PARTITION_SUBPART_ERROR = 1513; +exports.ER_ADD_PARTITION_NO_NEW_PARTITION = 1514; +exports.ER_COALESCE_PARTITION_NO_PARTITION = 1515; +exports.ER_REORG_PARTITION_NOT_EXIST = 1516; +exports.ER_SAME_NAME_PARTITION = 1517; +exports.ER_NO_BINLOG_ERROR = 1518; +exports.ER_CONSECUTIVE_REORG_PARTITIONS = 1519; +exports.ER_REORG_OUTSIDE_RANGE = 1520; +exports.ER_PARTITION_FUNCTION_FAILURE = 1521; +exports.ER_PART_STATE_ERROR = 1522; +exports.ER_LIMITED_PART_RANGE = 1523; +exports.ER_PLUGIN_IS_NOT_LOADED = 1524; +exports.ER_WRONG_VALUE = 1525; +exports.ER_NO_PARTITION_FOR_GIVEN_VALUE = 1526; +exports.ER_FILEGROUP_OPTION_ONLY_ONCE = 1527; +exports.ER_CREATE_FILEGROUP_FAILED = 1528; +exports.ER_DROP_FILEGROUP_FAILED = 1529; +exports.ER_TABLESPACE_AUTO_EXTEND_ERROR = 1530; +exports.ER_WRONG_SIZE_NUMBER = 1531; +exports.ER_SIZE_OVERFLOW_ERROR = 1532; +exports.ER_ALTER_FILEGROUP_FAILED = 1533; +exports.ER_BINLOG_ROW_LOGGING_FAILED = 1534; +exports.ER_BINLOG_ROW_WRONG_TABLE_DEF = 1535; +exports.ER_BINLOG_ROW_RBR_TO_SBR = 1536; +exports.ER_EVENT_ALREADY_EXISTS = 1537; +exports.ER_EVENT_STORE_FAILED = 1538; +exports.ER_EVENT_DOES_NOT_EXIST = 1539; +exports.ER_EVENT_CANT_ALTER = 1540; +exports.ER_EVENT_DROP_FAILED = 1541; +exports.ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG = 1542; +exports.ER_EVENT_ENDS_BEFORE_STARTS = 1543; +exports.ER_EVENT_EXEC_TIME_IN_THE_PAST = 1544; +exports.ER_EVENT_OPEN_TABLE_FAILED = 1545; +exports.ER_EVENT_NEITHER_M_EXPR_NOR_M_AT = 1546; +exports.ER_COL_COUNT_DOESNT_MATCH_CORRUPTED = 1547; +exports.ER_CANNOT_LOAD_FROM_TABLE = 1548; +exports.ER_EVENT_CANNOT_DELETE = 1549; +exports.ER_EVENT_COMPILE_ERROR = 1550; +exports.ER_EVENT_SAME_NAME = 1551; +exports.ER_EVENT_DATA_TOO_LONG = 1552; +exports.ER_DROP_INDEX_FK = 1553; +exports.ER_WARN_DEPRECATED_SYNTAX_WITH_VER = 1554; +exports.ER_CANT_WRITE_LOCK_LOG_TABLE = 1555; +exports.ER_CANT_LOCK_LOG_TABLE = 1556; +exports.ER_FOREIGN_DUPLICATE_KEY = 1557; +exports.ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE = 1558; +exports.ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR = 1559; +exports.ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1560; +exports.ER_NDB_CANT_SWITCH_BINLOG_FORMAT = 1561; +exports.ER_PARTITION_NO_TEMPORARY = 1562; +exports.ER_PARTITION_CONST_DOMAIN_ERROR = 1563; +exports.ER_PARTITION_FUNCTION_IS_NOT_ALLOWED = 1564; +exports.ER_DDL_LOG_ERROR = 1565; +exports.ER_NULL_IN_VALUES_LESS_THAN = 1566; +exports.ER_WRONG_PARTITION_NAME = 1567; +exports.ER_CANT_CHANGE_TX_CHARACTERISTICS = 1568; +exports.ER_DUP_ENTRY_AUTOINCREMENT_CASE = 1569; +exports.ER_EVENT_MODIFY_QUEUE_ERROR = 1570; +exports.ER_EVENT_SET_VAR_ERROR = 1571; +exports.ER_PARTITION_MERGE_ERROR = 1572; +exports.ER_CANT_ACTIVATE_LOG = 1573; +exports.ER_RBR_NOT_AVAILABLE = 1574; +exports.ER_BASE64_DECODE_ERROR = 1575; +exports.ER_EVENT_RECURSION_FORBIDDEN = 1576; +exports.ER_EVENTS_DB_ERROR = 1577; +exports.ER_ONLY_INTEGERS_ALLOWED = 1578; +exports.ER_UNSUPORTED_LOG_ENGINE = 1579; +exports.ER_BAD_LOG_STATEMENT = 1580; +exports.ER_CANT_RENAME_LOG_TABLE = 1581; +exports.ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT = 1582; +exports.ER_WRONG_PARAMETERS_TO_NATIVE_FCT = 1583; +exports.ER_WRONG_PARAMETERS_TO_STORED_FCT = 1584; +exports.ER_NATIVE_FCT_NAME_COLLISION = 1585; +exports.ER_DUP_ENTRY_WITH_KEY_NAME = 1586; +exports.ER_BINLOG_PURGE_EMFILE = 1587; +exports.ER_EVENT_CANNOT_CREATE_IN_THE_PAST = 1588; +exports.ER_EVENT_CANNOT_ALTER_IN_THE_PAST = 1589; +exports.ER_SLAVE_INCIDENT = 1590; +exports.ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT = 1591; +exports.ER_BINLOG_UNSAFE_STATEMENT = 1592; +exports.ER_SLAVE_FATAL_ERROR = 1593; +exports.ER_SLAVE_RELAY_LOG_READ_FAILURE = 1594; +exports.ER_SLAVE_RELAY_LOG_WRITE_FAILURE = 1595; +exports.ER_SLAVE_CREATE_EVENT_FAILURE = 1596; +exports.ER_SLAVE_MASTER_COM_FAILURE = 1597; +exports.ER_BINLOG_LOGGING_IMPOSSIBLE = 1598; +exports.ER_VIEW_NO_CREATION_CTX = 1599; +exports.ER_VIEW_INVALID_CREATION_CTX = 1600; +exports.ER_SR_INVALID_CREATION_CTX = 1601; +exports.ER_TRG_CORRUPTED_FILE = 1602; +exports.ER_TRG_NO_CREATION_CTX = 1603; +exports.ER_TRG_INVALID_CREATION_CTX = 1604; +exports.ER_EVENT_INVALID_CREATION_CTX = 1605; +exports.ER_TRG_CANT_OPEN_TABLE = 1606; +exports.ER_CANT_CREATE_SROUTINE = 1607; +exports.ER_NEVER_USED = 1608; +exports.ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT = 1609; +exports.ER_SLAVE_CORRUPT_EVENT = 1610; +exports.ER_LOAD_DATA_INVALID_COLUMN = 1611; +exports.ER_LOG_PURGE_NO_FILE = 1612; +exports.ER_XA_RBTIMEOUT = 1613; +exports.ER_XA_RBDEADLOCK = 1614; +exports.ER_NEED_REPREPARE = 1615; +exports.ER_DELAYED_NOT_SUPPORTED = 1616; +exports.WARN_NO_MASTER_INFO = 1617; +exports.WARN_OPTION_IGNORED = 1618; +exports.ER_PLUGIN_DELETE_BUILTIN = 1619; +exports.WARN_PLUGIN_BUSY = 1620; +exports.ER_VARIABLE_IS_READONLY = 1621; +exports.ER_WARN_ENGINE_TRANSACTION_ROLLBACK = 1622; +exports.ER_SLAVE_HEARTBEAT_FAILURE = 1623; +exports.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE = 1624; +exports.ER_NDB_REPLICATION_SCHEMA_ERROR = 1625; +exports.ER_CONFLICT_FN_PARSE_ERROR = 1626; +exports.ER_EXCEPTIONS_WRITE_ERROR = 1627; +exports.ER_TOO_LONG_TABLE_COMMENT = 1628; +exports.ER_TOO_LONG_FIELD_COMMENT = 1629; +exports.ER_FUNC_INEXISTENT_NAME_COLLISION = 1630; +exports.ER_DATABASE_NAME = 1631; +exports.ER_TABLE_NAME = 1632; +exports.ER_PARTITION_NAME = 1633; +exports.ER_SUBPARTITION_NAME = 1634; +exports.ER_TEMPORARY_NAME = 1635; +exports.ER_RENAMED_NAME = 1636; +exports.ER_TOO_MANY_CONCURRENT_TRXS = 1637; +exports.WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED = 1638; +exports.ER_DEBUG_SYNC_TIMEOUT = 1639; +exports.ER_DEBUG_SYNC_HIT_LIMIT = 1640; +exports.ER_DUP_SIGNAL_SET = 1641; +exports.ER_SIGNAL_WARN = 1642; +exports.ER_SIGNAL_NOT_FOUND = 1643; +exports.ER_SIGNAL_EXCEPTION = 1644; +exports.ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER = 1645; +exports.ER_SIGNAL_BAD_CONDITION_TYPE = 1646; +exports.WARN_COND_ITEM_TRUNCATED = 1647; +exports.ER_COND_ITEM_TOO_LONG = 1648; +exports.ER_UNKNOWN_LOCALE = 1649; +exports.ER_SLAVE_IGNORE_SERVER_IDS = 1650; +exports.ER_QUERY_CACHE_DISABLED = 1651; +exports.ER_SAME_NAME_PARTITION_FIELD = 1652; +exports.ER_PARTITION_COLUMN_LIST_ERROR = 1653; +exports.ER_WRONG_TYPE_COLUMN_VALUE_ERROR = 1654; +exports.ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR = 1655; +exports.ER_MAXVALUE_IN_VALUES_IN = 1656; +exports.ER_TOO_MANY_VALUES_ERROR = 1657; +exports.ER_ROW_SINGLE_PARTITION_FIELD_ERROR = 1658; +exports.ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD = 1659; +exports.ER_PARTITION_FIELDS_TOO_LONG = 1660; +exports.ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE = 1661; +exports.ER_BINLOG_ROW_MODE_AND_STMT_ENGINE = 1662; +exports.ER_BINLOG_UNSAFE_AND_STMT_ENGINE = 1663; +exports.ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE = 1664; +exports.ER_BINLOG_STMT_MODE_AND_ROW_ENGINE = 1665; +exports.ER_BINLOG_ROW_INJECTION_AND_STMT_MODE = 1666; +exports.ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1667; +exports.ER_BINLOG_UNSAFE_LIMIT = 1668; +exports.ER_BINLOG_UNSAFE_INSERT_DELAYED = 1669; +exports.ER_BINLOG_UNSAFE_SYSTEM_TABLE = 1670; +exports.ER_BINLOG_UNSAFE_AUTOINC_COLUMNS = 1671; +exports.ER_BINLOG_UNSAFE_UDF = 1672; +exports.ER_BINLOG_UNSAFE_SYSTEM_VARIABLE = 1673; +exports.ER_BINLOG_UNSAFE_SYSTEM_FUNCTION = 1674; +exports.ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS = 1675; +exports.ER_MESSAGE_AND_STATEMENT = 1676; +exports.ER_SLAVE_CONVERSION_FAILED = 1677; +exports.ER_SLAVE_CANT_CREATE_CONVERSION = 1678; +exports.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1679; +exports.ER_PATH_LENGTH = 1680; +exports.ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT = 1681; +exports.ER_WRONG_NATIVE_TABLE_STRUCTURE = 1682; +exports.ER_WRONG_PERFSCHEMA_USAGE = 1683; +exports.ER_WARN_I_S_SKIPPED_TABLE = 1684; +exports.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1685; +exports.ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1686; +exports.ER_SPATIAL_MUST_HAVE_GEOM_COL = 1687; +exports.ER_TOO_LONG_INDEX_COMMENT = 1688; +exports.ER_LOCK_ABORTED = 1689; +exports.ER_DATA_OUT_OF_RANGE = 1690; +exports.ER_WRONG_SPVAR_TYPE_IN_LIMIT = 1691; +exports.ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1692; +exports.ER_BINLOG_UNSAFE_MIXED_STATEMENT = 1693; +exports.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1694; +exports.ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1695; +exports.ER_FAILED_READ_FROM_PAR_FILE = 1696; +exports.ER_VALUES_IS_NOT_INT_TYPE_ERROR = 1697; +exports.ER_ACCESS_DENIED_NO_PASSWORD_ERROR = 1698; +exports.ER_SET_PASSWORD_AUTH_PLUGIN = 1699; +exports.ER_GRANT_PLUGIN_USER_EXISTS = 1700; +exports.ER_TRUNCATE_ILLEGAL_FK = 1701; +exports.ER_PLUGIN_IS_PERMANENT = 1702; +exports.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN = 1703; +exports.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX = 1704; +exports.ER_STMT_CACHE_FULL = 1705; +exports.ER_MULTI_UPDATE_KEY_CONFLICT = 1706; +exports.ER_TABLE_NEEDS_REBUILD = 1707; +exports.WARN_OPTION_BELOW_LIMIT = 1708; +exports.ER_INDEX_COLUMN_TOO_LONG = 1709; +exports.ER_ERROR_IN_TRIGGER_BODY = 1710; +exports.ER_ERROR_IN_UNKNOWN_TRIGGER_BODY = 1711; +exports.ER_INDEX_CORRUPT = 1712; +exports.ER_UNDO_RECORD_TOO_BIG = 1713; +exports.ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT = 1714; +exports.ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE = 1715; +exports.ER_BINLOG_UNSAFE_REPLACE_SELECT = 1716; +exports.ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT = 1717; +exports.ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT = 1718; +exports.ER_BINLOG_UNSAFE_UPDATE_IGNORE = 1719; +exports.ER_PLUGIN_NO_UNINSTALL = 1720; +exports.ER_PLUGIN_NO_INSTALL = 1721; +exports.ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT = 1722; +exports.ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC = 1723; +exports.ER_BINLOG_UNSAFE_INSERT_TWO_KEYS = 1724; +exports.ER_TABLE_IN_FK_CHECK = 1725; +exports.ER_UNSUPPORTED_ENGINE = 1726; +exports.ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST = 1727; +exports.ER_CANNOT_LOAD_FROM_TABLE_V2 = 1728; +exports.ER_MASTER_DELAY_VALUE_OUT_OF_RANGE = 1729; +exports.ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT = 1730; +exports.ER_PARTITION_EXCHANGE_DIFFERENT_OPTION = 1731; +exports.ER_PARTITION_EXCHANGE_PART_TABLE = 1732; +exports.ER_PARTITION_EXCHANGE_TEMP_TABLE = 1733; +exports.ER_PARTITION_INSTEAD_OF_SUBPARTITION = 1734; +exports.ER_UNKNOWN_PARTITION = 1735; +exports.ER_TABLES_DIFFERENT_METADATA = 1736; +exports.ER_ROW_DOES_NOT_MATCH_PARTITION = 1737; +exports.ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX = 1738; +exports.ER_WARN_INDEX_NOT_APPLICABLE = 1739; +exports.ER_PARTITION_EXCHANGE_FOREIGN_KEY = 1740; +exports.ER_NO_SUCH_KEY_VALUE = 1741; +exports.ER_RPL_INFO_DATA_TOO_LONG = 1742; +exports.ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE = 1743; +exports.ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE = 1744; +exports.ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX = 1745; +exports.ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT = 1746; +exports.ER_PARTITION_CLAUSE_ON_NONPARTITIONED = 1747; +exports.ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET = 1748; +exports.ER_NO_SUCH_PARTITION = 1749; +exports.ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE = 1750; +exports.ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE = 1751; +exports.ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE = 1752; +exports.ER_MTS_FEATURE_IS_NOT_SUPPORTED = 1753; +exports.ER_MTS_UPDATED_DBS_GREATER_MAX = 1754; +exports.ER_MTS_CANT_PARALLEL = 1755; +exports.ER_MTS_INCONSISTENT_DATA = 1756; +exports.ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING = 1757; +exports.ER_DA_INVALID_CONDITION_NUMBER = 1758; +exports.ER_INSECURE_PLAIN_TEXT = 1759; +exports.ER_INSECURE_CHANGE_MASTER = 1760; +exports.ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO = 1761; +exports.ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO = 1762; +exports.ER_SQLTHREAD_WITH_SECURE_SLAVE = 1763; +exports.ER_TABLE_HAS_NO_FT = 1764; +exports.ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER = 1765; +exports.ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION = 1766; +exports.ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST = 1767; +exports.ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION = 1768; +exports.ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION = 1769; +exports.ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL = 1770; +exports.ER_SKIPPING_LOGGED_TRANSACTION = 1771; +exports.ER_MALFORMED_GTID_SET_SPECIFICATION = 1772; +exports.ER_MALFORMED_GTID_SET_ENCODING = 1773; +exports.ER_MALFORMED_GTID_SPECIFICATION = 1774; +exports.ER_GNO_EXHAUSTED = 1775; +exports.ER_BAD_SLAVE_AUTO_POSITION = 1776; +exports.ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF = 1777; +exports.ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET = 1778; +exports.ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON = 1779; +exports.ER_GTID_MODE_REQUIRES_BINLOG = 1780; +exports.ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF = 1781; +exports.ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON = 1782; +exports.ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF = 1783; +exports.ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF = 1784; +exports.ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE = 1785; +exports.ER_GTID_UNSAFE_CREATE_SELECT = 1786; +exports.ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION = 1787; +exports.ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME = 1788; +exports.ER_MASTER_HAS_PURGED_REQUIRED_GTIDS = 1789; +exports.ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID = 1790; +exports.ER_UNKNOWN_EXPLAIN_FORMAT = 1791; +exports.ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION = 1792; +exports.ER_TOO_LONG_TABLE_PARTITION_COMMENT = 1793; +exports.ER_SLAVE_CONFIGURATION = 1794; +exports.ER_INNODB_FT_LIMIT = 1795; +exports.ER_INNODB_NO_FT_TEMP_TABLE = 1796; +exports.ER_INNODB_FT_WRONG_DOCID_COLUMN = 1797; +exports.ER_INNODB_FT_WRONG_DOCID_INDEX = 1798; +exports.ER_INNODB_ONLINE_LOG_TOO_BIG = 1799; +exports.ER_UNKNOWN_ALTER_ALGORITHM = 1800; +exports.ER_UNKNOWN_ALTER_LOCK = 1801; +exports.ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS = 1802; +exports.ER_MTS_RECOVERY_FAILURE = 1803; +exports.ER_MTS_RESET_WORKERS = 1804; +exports.ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2 = 1805; +exports.ER_SLAVE_SILENT_RETRY_TRANSACTION = 1806; +exports.ER_DISCARD_FK_CHECKS_RUNNING = 1807; +exports.ER_TABLE_SCHEMA_MISMATCH = 1808; +exports.ER_TABLE_IN_SYSTEM_TABLESPACE = 1809; +exports.ER_IO_READ_ERROR = 1810; +exports.ER_IO_WRITE_ERROR = 1811; +exports.ER_TABLESPACE_MISSING = 1812; +exports.ER_TABLESPACE_EXISTS = 1813; +exports.ER_TABLESPACE_DISCARDED = 1814; +exports.ER_INTERNAL_ERROR = 1815; +exports.ER_INNODB_IMPORT_ERROR = 1816; +exports.ER_INNODB_INDEX_CORRUPT = 1817; +exports.ER_INVALID_YEAR_COLUMN_LENGTH = 1818; +exports.ER_NOT_VALID_PASSWORD = 1819; +exports.ER_MUST_CHANGE_PASSWORD = 1820; +exports.ER_FK_NO_INDEX_CHILD = 1821; +exports.ER_FK_NO_INDEX_PARENT = 1822; +exports.ER_FK_FAIL_ADD_SYSTEM = 1823; +exports.ER_FK_CANNOT_OPEN_PARENT = 1824; +exports.ER_FK_INCORRECT_OPTION = 1825; +exports.ER_FK_DUP_NAME = 1826; +exports.ER_PASSWORD_FORMAT = 1827; +exports.ER_FK_COLUMN_CANNOT_DROP = 1828; +exports.ER_FK_COLUMN_CANNOT_DROP_CHILD = 1829; +exports.ER_FK_COLUMN_NOT_NULL = 1830; +exports.ER_DUP_INDEX = 1831; +exports.ER_FK_COLUMN_CANNOT_CHANGE = 1832; +exports.ER_FK_COLUMN_CANNOT_CHANGE_CHILD = 1833; +exports.ER_FK_CANNOT_DELETE_PARENT = 1834; +exports.ER_MALFORMED_PACKET = 1835; +exports.ER_READ_ONLY_MODE = 1836; +exports.ER_GTID_NEXT_TYPE_UNDEFINED_GROUP = 1837; +exports.ER_VARIABLE_NOT_SETTABLE_IN_SP = 1838; +exports.ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF = 1839; +exports.ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY = 1840; +exports.ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY = 1841; +exports.ER_GTID_PURGED_WAS_CHANGED = 1842; +exports.ER_GTID_EXECUTED_WAS_CHANGED = 1843; +exports.ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES = 1844; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED = 1845; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON = 1846; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY = 1847; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION = 1848; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME = 1849; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE = 1850; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK = 1851; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE = 1852; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK = 1853; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC = 1854; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS = 1855; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS = 1856; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS = 1857; +exports.ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE = 1858; +exports.ER_DUP_UNKNOWN_IN_INDEX = 1859; +exports.ER_IDENT_CAUSES_TOO_LONG_PATH = 1860; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL = 1861; +exports.ER_MUST_CHANGE_PASSWORD_LOGIN = 1862; +exports.ER_ROW_IN_WRONG_PARTITION = 1863; +exports.ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX = 1864; +exports.ER_INNODB_NO_FT_USES_PARSER = 1865; +exports.ER_BINLOG_LOGICAL_CORRUPTION = 1866; +exports.ER_WARN_PURGE_LOG_IN_USE = 1867; +exports.ER_WARN_PURGE_LOG_IS_ACTIVE = 1868; +exports.ER_AUTO_INCREMENT_CONFLICT = 1869; +exports.WARN_ON_BLOCKHOLE_IN_RBR = 1870; +exports.ER_SLAVE_MI_INIT_REPOSITORY = 1871; +exports.ER_SLAVE_RLI_INIT_REPOSITORY = 1872; +exports.ER_ACCESS_DENIED_CHANGE_USER_ERROR = 1873; +exports.ER_INNODB_READ_ONLY = 1874; +exports.ER_STOP_SLAVE_SQL_THREAD_TIMEOUT = 1875; +exports.ER_STOP_SLAVE_IO_THREAD_TIMEOUT = 1876; +exports.ER_TABLE_CORRUPT = 1877; +exports.ER_TEMP_FILE_WRITE_FAILURE = 1878; +exports.ER_INNODB_FT_AUX_NOT_HEX_ID = 1879; +exports.ER_OLD_TEMPORALS_UPGRADED = 1880; +exports.ER_INNODB_FORCED_RECOVERY = 1881; +exports.ER_AES_INVALID_IV = 1882; +exports.ER_PLUGIN_CANNOT_BE_UNINSTALLED = 1883; +exports.ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP = 1884; +exports.ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER = 1885; +exports.ER_MISSING_KEY = 1886; +exports.WARN_NAMED_PIPE_ACCESS_EVERYONE = 1887; +exports.ER_FOUND_MISSING_GTIDS = 1888; +exports.ER_FILE_CORRUPT = 3000; +exports.ER_ERROR_ON_MASTER = 3001; +exports.ER_INCONSISTENT_ERROR = 3002; +exports.ER_STORAGE_ENGINE_NOT_LOADED = 3003; +exports.ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER = 3004; +exports.ER_WARN_LEGACY_SYNTAX_CONVERTED = 3005; +exports.ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN = 3006; +exports.ER_CANNOT_DISCARD_TEMPORARY_TABLE = 3007; +exports.ER_FK_DEPTH_EXCEEDED = 3008; +exports.ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2 = 3009; +exports.ER_WARN_TRIGGER_DOESNT_HAVE_CREATED = 3010; +exports.ER_REFERENCED_TRG_DOES_NOT_EXIST = 3011; +exports.ER_EXPLAIN_NOT_SUPPORTED = 3012; +exports.ER_INVALID_FIELD_SIZE = 3013; +exports.ER_MISSING_HA_CREATE_OPTION = 3014; +exports.ER_ENGINE_OUT_OF_MEMORY = 3015; +exports.ER_PASSWORD_EXPIRE_ANONYMOUS_USER = 3016; +exports.ER_SLAVE_SQL_THREAD_MUST_STOP = 3017; +exports.ER_NO_FT_MATERIALIZED_SUBQUERY = 3018; +exports.ER_INNODB_UNDO_LOG_FULL = 3019; +exports.ER_INVALID_ARGUMENT_FOR_LOGARITHM = 3020; +exports.ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP = 3021; +exports.ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO = 3022; +exports.ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS = 3023; +exports.ER_QUERY_TIMEOUT = 3024; +exports.ER_NON_RO_SELECT_DISABLE_TIMER = 3025; +exports.ER_DUP_LIST_ENTRY = 3026; +exports.ER_SQL_MODE_NO_EFFECT = 3027; +exports.ER_AGGREGATE_ORDER_FOR_UNION = 3028; +exports.ER_AGGREGATE_ORDER_NON_AGG_QUERY = 3029; +exports.ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR = 3030; +exports.ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER = 3031; +exports.ER_SERVER_OFFLINE_MODE = 3032; +exports.ER_GIS_DIFFERENT_SRIDS = 3033; +exports.ER_GIS_UNSUPPORTED_ARGUMENT = 3034; +exports.ER_GIS_UNKNOWN_ERROR = 3035; +exports.ER_GIS_UNKNOWN_EXCEPTION = 3036; +exports.ER_GIS_INVALID_DATA = 3037; +exports.ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION = 3038; +exports.ER_BOOST_GEOMETRY_CENTROID_EXCEPTION = 3039; +exports.ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION = 3040; +exports.ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION = 3041; +exports.ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION = 3042; +exports.ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION = 3043; +exports.ER_STD_BAD_ALLOC_ERROR = 3044; +exports.ER_STD_DOMAIN_ERROR = 3045; +exports.ER_STD_LENGTH_ERROR = 3046; +exports.ER_STD_INVALID_ARGUMENT = 3047; +exports.ER_STD_OUT_OF_RANGE_ERROR = 3048; +exports.ER_STD_OVERFLOW_ERROR = 3049; +exports.ER_STD_RANGE_ERROR = 3050; +exports.ER_STD_UNDERFLOW_ERROR = 3051; +exports.ER_STD_LOGIC_ERROR = 3052; +exports.ER_STD_RUNTIME_ERROR = 3053; +exports.ER_STD_UNKNOWN_EXCEPTION = 3054; +exports.ER_GIS_DATA_WRONG_ENDIANESS = 3055; +exports.ER_CHANGE_MASTER_PASSWORD_LENGTH = 3056; +exports.ER_USER_LOCK_WRONG_NAME = 3057; +exports.ER_USER_LOCK_DEADLOCK = 3058; +exports.ER_REPLACE_INACCESSIBLE_ROWS = 3059; +exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS = 3060; +exports.ER_ILLEGAL_USER_VAR = 3061; +exports.ER_GTID_MODE_OFF = 3062; +exports.ER_UNSUPPORTED_BY_REPLICATION_THREAD = 3063; +exports.ER_INCORRECT_TYPE = 3064; +exports.ER_FIELD_IN_ORDER_NOT_SELECT = 3065; +exports.ER_AGGREGATE_IN_ORDER_NOT_SELECT = 3066; +exports.ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN = 3067; +exports.ER_NET_OK_PACKET_TOO_LARGE = 3068; +exports.ER_INVALID_JSON_DATA = 3069; +exports.ER_INVALID_GEOJSON_MISSING_MEMBER = 3070; +exports.ER_INVALID_GEOJSON_WRONG_TYPE = 3071; +exports.ER_INVALID_GEOJSON_UNSPECIFIED = 3072; +exports.ER_DIMENSION_UNSUPPORTED = 3073; +exports.ER_SLAVE_CHANNEL_DOES_NOT_EXIST = 3074; +exports.ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT = 3075; +exports.ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG = 3076; +exports.ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY = 3077; +exports.ER_SLAVE_CHANNEL_DELETE = 3078; +exports.ER_SLAVE_MULTIPLE_CHANNELS_CMD = 3079; +exports.ER_SLAVE_MAX_CHANNELS_EXCEEDED = 3080; +exports.ER_SLAVE_CHANNEL_MUST_STOP = 3081; +exports.ER_SLAVE_CHANNEL_NOT_RUNNING = 3082; +exports.ER_SLAVE_CHANNEL_WAS_RUNNING = 3083; +exports.ER_SLAVE_CHANNEL_WAS_NOT_RUNNING = 3084; +exports.ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP = 3085; +exports.ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER = 3086; +exports.ER_WRONG_FIELD_WITH_GROUP_V2 = 3087; +exports.ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2 = 3088; +exports.ER_WARN_DEPRECATED_SYSVAR_UPDATE = 3089; +exports.ER_WARN_DEPRECATED_SQLMODE = 3090; +exports.ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID = 3091; +exports.ER_GROUP_REPLICATION_CONFIGURATION = 3092; +exports.ER_GROUP_REPLICATION_RUNNING = 3093; +exports.ER_GROUP_REPLICATION_APPLIER_INIT_ERROR = 3094; +exports.ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT = 3095; +exports.ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR = 3096; +exports.ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR = 3097; +exports.ER_BEFORE_DML_VALIDATION_ERROR = 3098; +exports.ER_PREVENTS_VARIABLE_WITHOUT_RBR = 3099; +exports.ER_RUN_HOOK_ERROR = 3100; +exports.ER_TRANSACTION_ROLLBACK_DURING_COMMIT = 3101; +exports.ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED = 3102; +exports.ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN = 3103; +exports.ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN = 3104; +exports.ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN = 3105; +exports.ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN = 3106; +exports.ER_GENERATED_COLUMN_NON_PRIOR = 3107; +exports.ER_DEPENDENT_BY_GENERATED_COLUMN = 3108; +exports.ER_GENERATED_COLUMN_REF_AUTO_INC = 3109; +exports.ER_FEATURE_NOT_AVAILABLE = 3110; +exports.ER_CANT_SET_GTID_MODE = 3111; +exports.ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF = 3112; +exports.ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION = 3113; +exports.ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON = 3114; +exports.ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF = 3115; +exports.ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS = 3116; +exports.ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS = 3117; +exports.ER_ACCOUNT_HAS_BEEN_LOCKED = 3118; +exports.ER_WRONG_TABLESPACE_NAME = 3119; +exports.ER_TABLESPACE_IS_NOT_EMPTY = 3120; +exports.ER_WRONG_FILE_NAME = 3121; +exports.ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION = 3122; +exports.ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR = 3123; +exports.ER_WARN_BAD_MAX_EXECUTION_TIME = 3124; +exports.ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME = 3125; +exports.ER_WARN_CONFLICTING_HINT = 3126; +exports.ER_WARN_UNKNOWN_QB_NAME = 3127; +exports.ER_UNRESOLVED_HINT_NAME = 3128; +exports.ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE = 3129; +exports.ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED = 3130; +exports.ER_LOCKING_SERVICE_WRONG_NAME = 3131; +exports.ER_LOCKING_SERVICE_DEADLOCK = 3132; +exports.ER_LOCKING_SERVICE_TIMEOUT = 3133; +exports.ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED = 3134; +exports.ER_SQL_MODE_MERGED = 3135; +exports.ER_VTOKEN_PLUGIN_TOKEN_MISMATCH = 3136; +exports.ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND = 3137; +exports.ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID = 3138; +exports.ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED = 3139; +exports.ER_INVALID_JSON_TEXT = 3140; +exports.ER_INVALID_JSON_TEXT_IN_PARAM = 3141; +exports.ER_INVALID_JSON_BINARY_DATA = 3142; +exports.ER_INVALID_JSON_PATH = 3143; +exports.ER_INVALID_JSON_CHARSET = 3144; +exports.ER_INVALID_JSON_CHARSET_IN_FUNCTION = 3145; +exports.ER_INVALID_TYPE_FOR_JSON = 3146; +exports.ER_INVALID_CAST_TO_JSON = 3147; +exports.ER_INVALID_JSON_PATH_CHARSET = 3148; +exports.ER_INVALID_JSON_PATH_WILDCARD = 3149; +exports.ER_JSON_VALUE_TOO_BIG = 3150; +exports.ER_JSON_KEY_TOO_BIG = 3151; +exports.ER_JSON_USED_AS_KEY = 3152; +exports.ER_JSON_VACUOUS_PATH = 3153; +exports.ER_JSON_BAD_ONE_OR_ALL_ARG = 3154; +exports.ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE = 3155; +exports.ER_INVALID_JSON_VALUE_FOR_CAST = 3156; +exports.ER_JSON_DOCUMENT_TOO_DEEP = 3157; +exports.ER_JSON_DOCUMENT_NULL_KEY = 3158; +exports.ER_SECURE_TRANSPORT_REQUIRED = 3159; +exports.ER_NO_SECURE_TRANSPORTS_CONFIGURED = 3160; +exports.ER_DISABLED_STORAGE_ENGINE = 3161; +exports.ER_USER_DOES_NOT_EXIST = 3162; +exports.ER_USER_ALREADY_EXISTS = 3163; +exports.ER_AUDIT_API_ABORT = 3164; +exports.ER_INVALID_JSON_PATH_ARRAY_CELL = 3165; +exports.ER_BUFPOOL_RESIZE_INPROGRESS = 3166; +exports.ER_FEATURE_DISABLED_SEE_DOC = 3167; +exports.ER_SERVER_ISNT_AVAILABLE = 3168; +exports.ER_SESSION_WAS_KILLED = 3169; +exports.ER_CAPACITY_EXCEEDED = 3170; +exports.ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER = 3171; +exports.ER_TABLE_NEEDS_UPG_PART = 3172; +exports.ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID = 3173; +exports.ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL = 3174; +exports.ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT = 3175; +exports.ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE = 3176; +exports.ER_LOCK_REFUSED_BY_ENGINE = 3177; +exports.ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN = 3178; +exports.ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE = 3179; +exports.ER_MASTER_KEY_ROTATION_ERROR_BY_SE = 3180; +exports.ER_MASTER_KEY_ROTATION_BINLOG_FAILED = 3181; +exports.ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE = 3182; +exports.ER_TABLESPACE_CANNOT_ENCRYPT = 3183; +exports.ER_INVALID_ENCRYPTION_OPTION = 3184; +exports.ER_CANNOT_FIND_KEY_IN_KEYRING = 3185; +exports.ER_CAPACITY_EXCEEDED_IN_PARSER = 3186; +exports.ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE = 3187; +exports.ER_KEYRING_UDF_KEYRING_SERVICE_ERROR = 3188; +exports.ER_USER_COLUMN_OLD_LENGTH = 3189; +exports.ER_CANT_RESET_MASTER = 3190; +exports.ER_GROUP_REPLICATION_MAX_GROUP_SIZE = 3191; +exports.ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED = 3192; +exports.ER_TABLE_REFERENCED = 3193; +exports.ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE = 3194; +exports.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO = 3195; +exports.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID = 3196; +exports.ER_XA_RETRY = 3197; +exports.ER_KEYRING_AWS_UDF_AWS_KMS_ERROR = 3198; +exports.ER_BINLOG_UNSAFE_XA = 3199; +exports.ER_UDF_ERROR = 3200; +exports.ER_KEYRING_MIGRATION_FAILURE = 3201; +exports.ER_KEYRING_ACCESS_DENIED_ERROR = 3202; +exports.ER_KEYRING_MIGRATION_STATUS = 3203; +exports.ER_PLUGIN_FAILED_TO_OPEN_TABLES = 3204; +exports.ER_PLUGIN_FAILED_TO_OPEN_TABLE = 3205; +exports.ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED = 3206; +exports.ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET = 3207; +exports.ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY = 3208; +exports.ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED = 3209; +exports.ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED = 3210; +exports.ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE = 3211; +exports.ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED = 3212; +exports.ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS = 3213; +exports.ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE = 3214; +exports.ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT = 3215; +exports.ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED = 3216; +exports.ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE = 3217; +exports.ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE = 3218; +exports.ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR = 3219; +exports.ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY = 3220; +exports.ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY = 3221; +exports.ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS = 3222; +exports.ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC = 3223; +exports.ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER = 3224; +exports.ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER = 3225; +exports.WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP = 3226; +exports.ER_XA_REPLICATION_FILTERS = 3227; +exports.ER_CANT_OPEN_ERROR_LOG = 3228; +exports.ER_GROUPING_ON_TIMESTAMP_IN_DST = 3229; +exports.ER_CANT_START_SERVER_NAMED_PIPE = 3230; + +// Lookup-by-number table +exports[1] = 'EE_CANTCREATEFILE'; +exports[2] = 'EE_READ'; +exports[3] = 'EE_WRITE'; +exports[4] = 'EE_BADCLOSE'; +exports[5] = 'EE_OUTOFMEMORY'; +exports[6] = 'EE_DELETE'; +exports[7] = 'EE_LINK'; +exports[9] = 'EE_EOFERR'; +exports[10] = 'EE_CANTLOCK'; +exports[11] = 'EE_CANTUNLOCK'; +exports[12] = 'EE_DIR'; +exports[13] = 'EE_STAT'; +exports[14] = 'EE_CANT_CHSIZE'; +exports[15] = 'EE_CANT_OPEN_STREAM'; +exports[16] = 'EE_GETWD'; +exports[17] = 'EE_SETWD'; +exports[18] = 'EE_LINK_WARNING'; +exports[19] = 'EE_OPEN_WARNING'; +exports[20] = 'EE_DISK_FULL'; +exports[21] = 'EE_CANT_MKDIR'; +exports[22] = 'EE_UNKNOWN_CHARSET'; +exports[23] = 'EE_OUT_OF_FILERESOURCES'; +exports[24] = 'EE_CANT_READLINK'; +exports[25] = 'EE_CANT_SYMLINK'; +exports[26] = 'EE_REALPATH'; +exports[27] = 'EE_SYNC'; +exports[28] = 'EE_UNKNOWN_COLLATION'; +exports[29] = 'EE_FILENOTFOUND'; +exports[30] = 'EE_FILE_NOT_CLOSED'; +exports[31] = 'EE_CHANGE_OWNERSHIP'; +exports[32] = 'EE_CHANGE_PERMISSIONS'; +exports[33] = 'EE_CANT_SEEK'; +exports[34] = 'EE_CAPACITY_EXCEEDED'; +exports[120] = 'HA_ERR_KEY_NOT_FOUND'; +exports[121] = 'HA_ERR_FOUND_DUPP_KEY'; +exports[122] = 'HA_ERR_INTERNAL_ERROR'; +exports[123] = 'HA_ERR_RECORD_CHANGED'; +exports[124] = 'HA_ERR_WRONG_INDEX'; +exports[126] = 'HA_ERR_CRASHED'; +exports[127] = 'HA_ERR_WRONG_IN_RECORD'; +exports[128] = 'HA_ERR_OUT_OF_MEM'; +exports[130] = 'HA_ERR_NOT_A_TABLE'; +exports[131] = 'HA_ERR_WRONG_COMMAND'; +exports[132] = 'HA_ERR_OLD_FILE'; +exports[133] = 'HA_ERR_NO_ACTIVE_RECORD'; +exports[134] = 'HA_ERR_RECORD_DELETED'; +exports[135] = 'HA_ERR_RECORD_FILE_FULL'; +exports[136] = 'HA_ERR_INDEX_FILE_FULL'; +exports[137] = 'HA_ERR_END_OF_FILE'; +exports[138] = 'HA_ERR_UNSUPPORTED'; +exports[139] = 'HA_ERR_TOO_BIG_ROW'; +exports[140] = 'HA_WRONG_CREATE_OPTION'; +exports[141] = 'HA_ERR_FOUND_DUPP_UNIQUE'; +exports[142] = 'HA_ERR_UNKNOWN_CHARSET'; +exports[143] = 'HA_ERR_WRONG_MRG_TABLE_DEF'; +exports[144] = 'HA_ERR_CRASHED_ON_REPAIR'; +exports[145] = 'HA_ERR_CRASHED_ON_USAGE'; +exports[146] = 'HA_ERR_LOCK_WAIT_TIMEOUT'; +exports[147] = 'HA_ERR_LOCK_TABLE_FULL'; +exports[148] = 'HA_ERR_READ_ONLY_TRANSACTION'; +exports[149] = 'HA_ERR_LOCK_DEADLOCK'; +exports[150] = 'HA_ERR_CANNOT_ADD_FOREIGN'; +exports[151] = 'HA_ERR_NO_REFERENCED_ROW'; +exports[152] = 'HA_ERR_ROW_IS_REFERENCED'; +exports[153] = 'HA_ERR_NO_SAVEPOINT'; +exports[154] = 'HA_ERR_NON_UNIQUE_BLOCK_SIZE'; +exports[155] = 'HA_ERR_NO_SUCH_TABLE'; +exports[156] = 'HA_ERR_TABLE_EXIST'; +exports[157] = 'HA_ERR_NO_CONNECTION'; +exports[158] = 'HA_ERR_NULL_IN_SPATIAL'; +exports[159] = 'HA_ERR_TABLE_DEF_CHANGED'; +exports[160] = 'HA_ERR_NO_PARTITION_FOUND'; +exports[161] = 'HA_ERR_RBR_LOGGING_FAILED'; +exports[162] = 'HA_ERR_DROP_INDEX_FK'; +exports[163] = 'HA_ERR_FOREIGN_DUPLICATE_KEY'; +exports[164] = 'HA_ERR_TABLE_NEEDS_UPGRADE'; +exports[165] = 'HA_ERR_TABLE_READONLY'; +exports[166] = 'HA_ERR_AUTOINC_READ_FAILED'; +exports[167] = 'HA_ERR_AUTOINC_ERANGE'; +exports[168] = 'HA_ERR_GENERIC'; +exports[169] = 'HA_ERR_RECORD_IS_THE_SAME'; +exports[170] = 'HA_ERR_LOGGING_IMPOSSIBLE'; +exports[171] = 'HA_ERR_CORRUPT_EVENT'; +exports[172] = 'HA_ERR_NEW_FILE'; +exports[173] = 'HA_ERR_ROWS_EVENT_APPLY'; +exports[174] = 'HA_ERR_INITIALIZATION'; +exports[175] = 'HA_ERR_FILE_TOO_SHORT'; +exports[176] = 'HA_ERR_WRONG_CRC'; +exports[177] = 'HA_ERR_TOO_MANY_CONCURRENT_TRXS'; +exports[178] = 'HA_ERR_NOT_IN_LOCK_PARTITIONS'; +exports[179] = 'HA_ERR_INDEX_COL_TOO_LONG'; +exports[180] = 'HA_ERR_INDEX_CORRUPT'; +exports[181] = 'HA_ERR_UNDO_REC_TOO_BIG'; +exports[182] = 'HA_FTS_INVALID_DOCID'; +exports[183] = 'HA_ERR_TABLE_IN_FK_CHECK'; +exports[184] = 'HA_ERR_TABLESPACE_EXISTS'; +exports[185] = 'HA_ERR_TOO_MANY_FIELDS'; +exports[186] = 'HA_ERR_ROW_IN_WRONG_PARTITION'; +exports[187] = 'HA_ERR_INNODB_READ_ONLY'; +exports[188] = 'HA_ERR_FTS_EXCEED_RESULT_CACHE_LIMIT'; +exports[189] = 'HA_ERR_TEMP_FILE_WRITE_FAILURE'; +exports[190] = 'HA_ERR_INNODB_FORCED_RECOVERY'; +exports[191] = 'HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE'; +exports[192] = 'HA_ERR_FK_DEPTH_EXCEEDED'; +exports[193] = 'HA_MISSING_CREATE_OPTION'; +exports[194] = 'HA_ERR_SE_OUT_OF_MEMORY'; +exports[195] = 'HA_ERR_TABLE_CORRUPT'; +exports[196] = 'HA_ERR_QUERY_INTERRUPTED'; +exports[197] = 'HA_ERR_TABLESPACE_MISSING'; +exports[198] = 'HA_ERR_TABLESPACE_IS_NOT_EMPTY'; +exports[199] = 'HA_ERR_WRONG_FILE_NAME'; +exports[200] = 'HA_ERR_NOT_ALLOWED_COMMAND'; +exports[201] = 'HA_ERR_COMPUTE_FAILED'; +exports[1000] = 'ER_HASHCHK'; +exports[1001] = 'ER_NISAMCHK'; +exports[1002] = 'ER_NO'; +exports[1003] = 'ER_YES'; +exports[1004] = 'ER_CANT_CREATE_FILE'; +exports[1005] = 'ER_CANT_CREATE_TABLE'; +exports[1006] = 'ER_CANT_CREATE_DB'; +exports[1007] = 'ER_DB_CREATE_EXISTS'; +exports[1008] = 'ER_DB_DROP_EXISTS'; +exports[1009] = 'ER_DB_DROP_DELETE'; +exports[1010] = 'ER_DB_DROP_RMDIR'; +exports[1011] = 'ER_CANT_DELETE_FILE'; +exports[1012] = 'ER_CANT_FIND_SYSTEM_REC'; +exports[1013] = 'ER_CANT_GET_STAT'; +exports[1014] = 'ER_CANT_GET_WD'; +exports[1015] = 'ER_CANT_LOCK'; +exports[1016] = 'ER_CANT_OPEN_FILE'; +exports[1017] = 'ER_FILE_NOT_FOUND'; +exports[1018] = 'ER_CANT_READ_DIR'; +exports[1019] = 'ER_CANT_SET_WD'; +exports[1020] = 'ER_CHECKREAD'; +exports[1021] = 'ER_DISK_FULL'; +exports[1022] = 'ER_DUP_KEY'; +exports[1023] = 'ER_ERROR_ON_CLOSE'; +exports[1024] = 'ER_ERROR_ON_READ'; +exports[1025] = 'ER_ERROR_ON_RENAME'; +exports[1026] = 'ER_ERROR_ON_WRITE'; +exports[1027] = 'ER_FILE_USED'; +exports[1028] = 'ER_FILSORT_ABORT'; +exports[1029] = 'ER_FORM_NOT_FOUND'; +exports[1030] = 'ER_GET_ERRNO'; +exports[1031] = 'ER_ILLEGAL_HA'; +exports[1032] = 'ER_KEY_NOT_FOUND'; +exports[1033] = 'ER_NOT_FORM_FILE'; +exports[1034] = 'ER_NOT_KEYFILE'; +exports[1035] = 'ER_OLD_KEYFILE'; +exports[1036] = 'ER_OPEN_AS_READONLY'; +exports[1037] = 'ER_OUTOFMEMORY'; +exports[1038] = 'ER_OUT_OF_SORTMEMORY'; +exports[1039] = 'ER_UNEXPECTED_EOF'; +exports[1040] = 'ER_CON_COUNT_ERROR'; +exports[1041] = 'ER_OUT_OF_RESOURCES'; +exports[1042] = 'ER_BAD_HOST_ERROR'; +exports[1043] = 'ER_HANDSHAKE_ERROR'; +exports[1044] = 'ER_DBACCESS_DENIED_ERROR'; +exports[1045] = 'ER_ACCESS_DENIED_ERROR'; +exports[1046] = 'ER_NO_DB_ERROR'; +exports[1047] = 'ER_UNKNOWN_COM_ERROR'; +exports[1048] = 'ER_BAD_NULL_ERROR'; +exports[1049] = 'ER_BAD_DB_ERROR'; +exports[1050] = 'ER_TABLE_EXISTS_ERROR'; +exports[1051] = 'ER_BAD_TABLE_ERROR'; +exports[1052] = 'ER_NON_UNIQ_ERROR'; +exports[1053] = 'ER_SERVER_SHUTDOWN'; +exports[1054] = 'ER_BAD_FIELD_ERROR'; +exports[1055] = 'ER_WRONG_FIELD_WITH_GROUP'; +exports[1056] = 'ER_WRONG_GROUP_FIELD'; +exports[1057] = 'ER_WRONG_SUM_SELECT'; +exports[1058] = 'ER_WRONG_VALUE_COUNT'; +exports[1059] = 'ER_TOO_LONG_IDENT'; +exports[1060] = 'ER_DUP_FIELDNAME'; +exports[1061] = 'ER_DUP_KEYNAME'; +exports[1062] = 'ER_DUP_ENTRY'; +exports[1063] = 'ER_WRONG_FIELD_SPEC'; +exports[1064] = 'ER_PARSE_ERROR'; +exports[1065] = 'ER_EMPTY_QUERY'; +exports[1066] = 'ER_NONUNIQ_TABLE'; +exports[1067] = 'ER_INVALID_DEFAULT'; +exports[1068] = 'ER_MULTIPLE_PRI_KEY'; +exports[1069] = 'ER_TOO_MANY_KEYS'; +exports[1070] = 'ER_TOO_MANY_KEY_PARTS'; +exports[1071] = 'ER_TOO_LONG_KEY'; +exports[1072] = 'ER_KEY_COLUMN_DOES_NOT_EXITS'; +exports[1073] = 'ER_BLOB_USED_AS_KEY'; +exports[1074] = 'ER_TOO_BIG_FIELDLENGTH'; +exports[1075] = 'ER_WRONG_AUTO_KEY'; +exports[1076] = 'ER_READY'; +exports[1077] = 'ER_NORMAL_SHUTDOWN'; +exports[1078] = 'ER_GOT_SIGNAL'; +exports[1079] = 'ER_SHUTDOWN_COMPLETE'; +exports[1080] = 'ER_FORCING_CLOSE'; +exports[1081] = 'ER_IPSOCK_ERROR'; +exports[1082] = 'ER_NO_SUCH_INDEX'; +exports[1083] = 'ER_WRONG_FIELD_TERMINATORS'; +exports[1084] = 'ER_BLOBS_AND_NO_TERMINATED'; +exports[1085] = 'ER_TEXTFILE_NOT_READABLE'; +exports[1086] = 'ER_FILE_EXISTS_ERROR'; +exports[1087] = 'ER_LOAD_INFO'; +exports[1088] = 'ER_ALTER_INFO'; +exports[1089] = 'ER_WRONG_SUB_KEY'; +exports[1090] = 'ER_CANT_REMOVE_ALL_FIELDS'; +exports[1091] = 'ER_CANT_DROP_FIELD_OR_KEY'; +exports[1092] = 'ER_INSERT_INFO'; +exports[1093] = 'ER_UPDATE_TABLE_USED'; +exports[1094] = 'ER_NO_SUCH_THREAD'; +exports[1095] = 'ER_KILL_DENIED_ERROR'; +exports[1096] = 'ER_NO_TABLES_USED'; +exports[1097] = 'ER_TOO_BIG_SET'; +exports[1098] = 'ER_NO_UNIQUE_LOGFILE'; +exports[1099] = 'ER_TABLE_NOT_LOCKED_FOR_WRITE'; +exports[1100] = 'ER_TABLE_NOT_LOCKED'; +exports[1101] = 'ER_BLOB_CANT_HAVE_DEFAULT'; +exports[1102] = 'ER_WRONG_DB_NAME'; +exports[1103] = 'ER_WRONG_TABLE_NAME'; +exports[1104] = 'ER_TOO_BIG_SELECT'; +exports[1105] = 'ER_UNKNOWN_ERROR'; +exports[1106] = 'ER_UNKNOWN_PROCEDURE'; +exports[1107] = 'ER_WRONG_PARAMCOUNT_TO_PROCEDURE'; +exports[1108] = 'ER_WRONG_PARAMETERS_TO_PROCEDURE'; +exports[1109] = 'ER_UNKNOWN_TABLE'; +exports[1110] = 'ER_FIELD_SPECIFIED_TWICE'; +exports[1111] = 'ER_INVALID_GROUP_FUNC_USE'; +exports[1112] = 'ER_UNSUPPORTED_EXTENSION'; +exports[1113] = 'ER_TABLE_MUST_HAVE_COLUMNS'; +exports[1114] = 'ER_RECORD_FILE_FULL'; +exports[1115] = 'ER_UNKNOWN_CHARACTER_SET'; +exports[1116] = 'ER_TOO_MANY_TABLES'; +exports[1117] = 'ER_TOO_MANY_FIELDS'; +exports[1118] = 'ER_TOO_BIG_ROWSIZE'; +exports[1119] = 'ER_STACK_OVERRUN'; +exports[1120] = 'ER_WRONG_OUTER_JOIN'; +exports[1121] = 'ER_NULL_COLUMN_IN_INDEX'; +exports[1122] = 'ER_CANT_FIND_UDF'; +exports[1123] = 'ER_CANT_INITIALIZE_UDF'; +exports[1124] = 'ER_UDF_NO_PATHS'; +exports[1125] = 'ER_UDF_EXISTS'; +exports[1126] = 'ER_CANT_OPEN_LIBRARY'; +exports[1127] = 'ER_CANT_FIND_DL_ENTRY'; +exports[1128] = 'ER_FUNCTION_NOT_DEFINED'; +exports[1129] = 'ER_HOST_IS_BLOCKED'; +exports[1130] = 'ER_HOST_NOT_PRIVILEGED'; +exports[1131] = 'ER_PASSWORD_ANONYMOUS_USER'; +exports[1132] = 'ER_PASSWORD_NOT_ALLOWED'; +exports[1133] = 'ER_PASSWORD_NO_MATCH'; +exports[1134] = 'ER_UPDATE_INFO'; +exports[1135] = 'ER_CANT_CREATE_THREAD'; +exports[1136] = 'ER_WRONG_VALUE_COUNT_ON_ROW'; +exports[1137] = 'ER_CANT_REOPEN_TABLE'; +exports[1138] = 'ER_INVALID_USE_OF_NULL'; +exports[1139] = 'ER_REGEXP_ERROR'; +exports[1140] = 'ER_MIX_OF_GROUP_FUNC_AND_FIELDS'; +exports[1141] = 'ER_NONEXISTING_GRANT'; +exports[1142] = 'ER_TABLEACCESS_DENIED_ERROR'; +exports[1143] = 'ER_COLUMNACCESS_DENIED_ERROR'; +exports[1144] = 'ER_ILLEGAL_GRANT_FOR_TABLE'; +exports[1145] = 'ER_GRANT_WRONG_HOST_OR_USER'; +exports[1146] = 'ER_NO_SUCH_TABLE'; +exports[1147] = 'ER_NONEXISTING_TABLE_GRANT'; +exports[1148] = 'ER_NOT_ALLOWED_COMMAND'; +exports[1149] = 'ER_SYNTAX_ERROR'; +exports[1150] = 'ER_DELAYED_CANT_CHANGE_LOCK'; +exports[1151] = 'ER_TOO_MANY_DELAYED_THREADS'; +exports[1152] = 'ER_ABORTING_CONNECTION'; +exports[1153] = 'ER_NET_PACKET_TOO_LARGE'; +exports[1154] = 'ER_NET_READ_ERROR_FROM_PIPE'; +exports[1155] = 'ER_NET_FCNTL_ERROR'; +exports[1156] = 'ER_NET_PACKETS_OUT_OF_ORDER'; +exports[1157] = 'ER_NET_UNCOMPRESS_ERROR'; +exports[1158] = 'ER_NET_READ_ERROR'; +exports[1159] = 'ER_NET_READ_INTERRUPTED'; +exports[1160] = 'ER_NET_ERROR_ON_WRITE'; +exports[1161] = 'ER_NET_WRITE_INTERRUPTED'; +exports[1162] = 'ER_TOO_LONG_STRING'; +exports[1163] = 'ER_TABLE_CANT_HANDLE_BLOB'; +exports[1164] = 'ER_TABLE_CANT_HANDLE_AUTO_INCREMENT'; +exports[1165] = 'ER_DELAYED_INSERT_TABLE_LOCKED'; +exports[1166] = 'ER_WRONG_COLUMN_NAME'; +exports[1167] = 'ER_WRONG_KEY_COLUMN'; +exports[1168] = 'ER_WRONG_MRG_TABLE'; +exports[1169] = 'ER_DUP_UNIQUE'; +exports[1170] = 'ER_BLOB_KEY_WITHOUT_LENGTH'; +exports[1171] = 'ER_PRIMARY_CANT_HAVE_NULL'; +exports[1172] = 'ER_TOO_MANY_ROWS'; +exports[1173] = 'ER_REQUIRES_PRIMARY_KEY'; +exports[1174] = 'ER_NO_RAID_COMPILED'; +exports[1175] = 'ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE'; +exports[1176] = 'ER_KEY_DOES_NOT_EXITS'; +exports[1177] = 'ER_CHECK_NO_SUCH_TABLE'; +exports[1178] = 'ER_CHECK_NOT_IMPLEMENTED'; +exports[1179] = 'ER_CANT_DO_THIS_DURING_AN_TRANSACTION'; +exports[1180] = 'ER_ERROR_DURING_COMMIT'; +exports[1181] = 'ER_ERROR_DURING_ROLLBACK'; +exports[1182] = 'ER_ERROR_DURING_FLUSH_LOGS'; +exports[1183] = 'ER_ERROR_DURING_CHECKPOINT'; +exports[1184] = 'ER_NEW_ABORTING_CONNECTION'; +exports[1185] = 'ER_DUMP_NOT_IMPLEMENTED'; +exports[1186] = 'ER_FLUSH_MASTER_BINLOG_CLOSED'; +exports[1187] = 'ER_INDEX_REBUILD'; +exports[1188] = 'ER_MASTER'; +exports[1189] = 'ER_MASTER_NET_READ'; +exports[1190] = 'ER_MASTER_NET_WRITE'; +exports[1191] = 'ER_FT_MATCHING_KEY_NOT_FOUND'; +exports[1192] = 'ER_LOCK_OR_ACTIVE_TRANSACTION'; +exports[1193] = 'ER_UNKNOWN_SYSTEM_VARIABLE'; +exports[1194] = 'ER_CRASHED_ON_USAGE'; +exports[1195] = 'ER_CRASHED_ON_REPAIR'; +exports[1196] = 'ER_WARNING_NOT_COMPLETE_ROLLBACK'; +exports[1197] = 'ER_TRANS_CACHE_FULL'; +exports[1198] = 'ER_SLAVE_MUST_STOP'; +exports[1199] = 'ER_SLAVE_NOT_RUNNING'; +exports[1200] = 'ER_BAD_SLAVE'; +exports[1201] = 'ER_MASTER_INFO'; +exports[1202] = 'ER_SLAVE_THREAD'; +exports[1203] = 'ER_TOO_MANY_USER_CONNECTIONS'; +exports[1204] = 'ER_SET_CONSTANTS_ONLY'; +exports[1205] = 'ER_LOCK_WAIT_TIMEOUT'; +exports[1206] = 'ER_LOCK_TABLE_FULL'; +exports[1207] = 'ER_READ_ONLY_TRANSACTION'; +exports[1208] = 'ER_DROP_DB_WITH_READ_LOCK'; +exports[1209] = 'ER_CREATE_DB_WITH_READ_LOCK'; +exports[1210] = 'ER_WRONG_ARGUMENTS'; +exports[1211] = 'ER_NO_PERMISSION_TO_CREATE_USER'; +exports[1212] = 'ER_UNION_TABLES_IN_DIFFERENT_DIR'; +exports[1213] = 'ER_LOCK_DEADLOCK'; +exports[1214] = 'ER_TABLE_CANT_HANDLE_FT'; +exports[1215] = 'ER_CANNOT_ADD_FOREIGN'; +exports[1216] = 'ER_NO_REFERENCED_ROW'; +exports[1217] = 'ER_ROW_IS_REFERENCED'; +exports[1218] = 'ER_CONNECT_TO_MASTER'; +exports[1219] = 'ER_QUERY_ON_MASTER'; +exports[1220] = 'ER_ERROR_WHEN_EXECUTING_COMMAND'; +exports[1221] = 'ER_WRONG_USAGE'; +exports[1222] = 'ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT'; +exports[1223] = 'ER_CANT_UPDATE_WITH_READLOCK'; +exports[1224] = 'ER_MIXING_NOT_ALLOWED'; +exports[1225] = 'ER_DUP_ARGUMENT'; +exports[1226] = 'ER_USER_LIMIT_REACHED'; +exports[1227] = 'ER_SPECIFIC_ACCESS_DENIED_ERROR'; +exports[1228] = 'ER_LOCAL_VARIABLE'; +exports[1229] = 'ER_GLOBAL_VARIABLE'; +exports[1230] = 'ER_NO_DEFAULT'; +exports[1231] = 'ER_WRONG_VALUE_FOR_VAR'; +exports[1232] = 'ER_WRONG_TYPE_FOR_VAR'; +exports[1233] = 'ER_VAR_CANT_BE_READ'; +exports[1234] = 'ER_CANT_USE_OPTION_HERE'; +exports[1235] = 'ER_NOT_SUPPORTED_YET'; +exports[1236] = 'ER_MASTER_FATAL_ERROR_READING_BINLOG'; +exports[1237] = 'ER_SLAVE_IGNORED_TABLE'; +exports[1238] = 'ER_INCORRECT_GLOBAL_LOCAL_VAR'; +exports[1239] = 'ER_WRONG_FK_DEF'; +exports[1240] = 'ER_KEY_REF_DO_NOT_MATCH_TABLE_REF'; +exports[1241] = 'ER_OPERAND_COLUMNS'; +exports[1242] = 'ER_SUBQUERY_NO_1_ROW'; +exports[1243] = 'ER_UNKNOWN_STMT_HANDLER'; +exports[1244] = 'ER_CORRUPT_HELP_DB'; +exports[1245] = 'ER_CYCLIC_REFERENCE'; +exports[1246] = 'ER_AUTO_CONVERT'; +exports[1247] = 'ER_ILLEGAL_REFERENCE'; +exports[1248] = 'ER_DERIVED_MUST_HAVE_ALIAS'; +exports[1249] = 'ER_SELECT_REDUCED'; +exports[1250] = 'ER_TABLENAME_NOT_ALLOWED_HERE'; +exports[1251] = 'ER_NOT_SUPPORTED_AUTH_MODE'; +exports[1252] = 'ER_SPATIAL_CANT_HAVE_NULL'; +exports[1253] = 'ER_COLLATION_CHARSET_MISMATCH'; +exports[1254] = 'ER_SLAVE_WAS_RUNNING'; +exports[1255] = 'ER_SLAVE_WAS_NOT_RUNNING'; +exports[1256] = 'ER_TOO_BIG_FOR_UNCOMPRESS'; +exports[1257] = 'ER_ZLIB_Z_MEM_ERROR'; +exports[1258] = 'ER_ZLIB_Z_BUF_ERROR'; +exports[1259] = 'ER_ZLIB_Z_DATA_ERROR'; +exports[1260] = 'ER_CUT_VALUE_GROUP_CONCAT'; +exports[1261] = 'ER_WARN_TOO_FEW_RECORDS'; +exports[1262] = 'ER_WARN_TOO_MANY_RECORDS'; +exports[1263] = 'ER_WARN_NULL_TO_NOTNULL'; +exports[1264] = 'ER_WARN_DATA_OUT_OF_RANGE'; +exports[1265] = 'WARN_DATA_TRUNCATED'; +exports[1266] = 'ER_WARN_USING_OTHER_HANDLER'; +exports[1267] = 'ER_CANT_AGGREGATE_2COLLATIONS'; +exports[1268] = 'ER_DROP_USER'; +exports[1269] = 'ER_REVOKE_GRANTS'; +exports[1270] = 'ER_CANT_AGGREGATE_3COLLATIONS'; +exports[1271] = 'ER_CANT_AGGREGATE_NCOLLATIONS'; +exports[1272] = 'ER_VARIABLE_IS_NOT_STRUCT'; +exports[1273] = 'ER_UNKNOWN_COLLATION'; +exports[1274] = 'ER_SLAVE_IGNORED_SSL_PARAMS'; +exports[1275] = 'ER_SERVER_IS_IN_SECURE_AUTH_MODE'; +exports[1276] = 'ER_WARN_FIELD_RESOLVED'; +exports[1277] = 'ER_BAD_SLAVE_UNTIL_COND'; +exports[1278] = 'ER_MISSING_SKIP_SLAVE'; +exports[1279] = 'ER_UNTIL_COND_IGNORED'; +exports[1280] = 'ER_WRONG_NAME_FOR_INDEX'; +exports[1281] = 'ER_WRONG_NAME_FOR_CATALOG'; +exports[1282] = 'ER_WARN_QC_RESIZE'; +exports[1283] = 'ER_BAD_FT_COLUMN'; +exports[1284] = 'ER_UNKNOWN_KEY_CACHE'; +exports[1285] = 'ER_WARN_HOSTNAME_WONT_WORK'; +exports[1286] = 'ER_UNKNOWN_STORAGE_ENGINE'; +exports[1287] = 'ER_WARN_DEPRECATED_SYNTAX'; +exports[1288] = 'ER_NON_UPDATABLE_TABLE'; +exports[1289] = 'ER_FEATURE_DISABLED'; +exports[1290] = 'ER_OPTION_PREVENTS_STATEMENT'; +exports[1291] = 'ER_DUPLICATED_VALUE_IN_TYPE'; +exports[1292] = 'ER_TRUNCATED_WRONG_VALUE'; +exports[1293] = 'ER_TOO_MUCH_AUTO_TIMESTAMP_COLS'; +exports[1294] = 'ER_INVALID_ON_UPDATE'; +exports[1295] = 'ER_UNSUPPORTED_PS'; +exports[1296] = 'ER_GET_ERRMSG'; +exports[1297] = 'ER_GET_TEMPORARY_ERRMSG'; +exports[1298] = 'ER_UNKNOWN_TIME_ZONE'; +exports[1299] = 'ER_WARN_INVALID_TIMESTAMP'; +exports[1300] = 'ER_INVALID_CHARACTER_STRING'; +exports[1301] = 'ER_WARN_ALLOWED_PACKET_OVERFLOWED'; +exports[1302] = 'ER_CONFLICTING_DECLARATIONS'; +exports[1303] = 'ER_SP_NO_RECURSIVE_CREATE'; +exports[1304] = 'ER_SP_ALREADY_EXISTS'; +exports[1305] = 'ER_SP_DOES_NOT_EXIST'; +exports[1306] = 'ER_SP_DROP_FAILED'; +exports[1307] = 'ER_SP_STORE_FAILED'; +exports[1308] = 'ER_SP_LILABEL_MISMATCH'; +exports[1309] = 'ER_SP_LABEL_REDEFINE'; +exports[1310] = 'ER_SP_LABEL_MISMATCH'; +exports[1311] = 'ER_SP_UNINIT_VAR'; +exports[1312] = 'ER_SP_BADSELECT'; +exports[1313] = 'ER_SP_BADRETURN'; +exports[1314] = 'ER_SP_BADSTATEMENT'; +exports[1315] = 'ER_UPDATE_LOG_DEPRECATED_IGNORED'; +exports[1316] = 'ER_UPDATE_LOG_DEPRECATED_TRANSLATED'; +exports[1317] = 'ER_QUERY_INTERRUPTED'; +exports[1318] = 'ER_SP_WRONG_NO_OF_ARGS'; +exports[1319] = 'ER_SP_COND_MISMATCH'; +exports[1320] = 'ER_SP_NORETURN'; +exports[1321] = 'ER_SP_NORETURNEND'; +exports[1322] = 'ER_SP_BAD_CURSOR_QUERY'; +exports[1323] = 'ER_SP_BAD_CURSOR_SELECT'; +exports[1324] = 'ER_SP_CURSOR_MISMATCH'; +exports[1325] = 'ER_SP_CURSOR_ALREADY_OPEN'; +exports[1326] = 'ER_SP_CURSOR_NOT_OPEN'; +exports[1327] = 'ER_SP_UNDECLARED_VAR'; +exports[1328] = 'ER_SP_WRONG_NO_OF_FETCH_ARGS'; +exports[1329] = 'ER_SP_FETCH_NO_DATA'; +exports[1330] = 'ER_SP_DUP_PARAM'; +exports[1331] = 'ER_SP_DUP_VAR'; +exports[1332] = 'ER_SP_DUP_COND'; +exports[1333] = 'ER_SP_DUP_CURS'; +exports[1334] = 'ER_SP_CANT_ALTER'; +exports[1335] = 'ER_SP_SUBSELECT_NYI'; +exports[1336] = 'ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG'; +exports[1337] = 'ER_SP_VARCOND_AFTER_CURSHNDLR'; +exports[1338] = 'ER_SP_CURSOR_AFTER_HANDLER'; +exports[1339] = 'ER_SP_CASE_NOT_FOUND'; +exports[1340] = 'ER_FPARSER_TOO_BIG_FILE'; +exports[1341] = 'ER_FPARSER_BAD_HEADER'; +exports[1342] = 'ER_FPARSER_EOF_IN_COMMENT'; +exports[1343] = 'ER_FPARSER_ERROR_IN_PARAMETER'; +exports[1344] = 'ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER'; +exports[1345] = 'ER_VIEW_NO_EXPLAIN'; +exports[1346] = 'ER_FRM_UNKNOWN_TYPE'; +exports[1347] = 'ER_WRONG_OBJECT'; +exports[1348] = 'ER_NONUPDATEABLE_COLUMN'; +exports[1349] = 'ER_VIEW_SELECT_DERIVED'; +exports[1350] = 'ER_VIEW_SELECT_CLAUSE'; +exports[1351] = 'ER_VIEW_SELECT_VARIABLE'; +exports[1352] = 'ER_VIEW_SELECT_TMPTABLE'; +exports[1353] = 'ER_VIEW_WRONG_LIST'; +exports[1354] = 'ER_WARN_VIEW_MERGE'; +exports[1355] = 'ER_WARN_VIEW_WITHOUT_KEY'; +exports[1356] = 'ER_VIEW_INVALID'; +exports[1357] = 'ER_SP_NO_DROP_SP'; +exports[1358] = 'ER_SP_GOTO_IN_HNDLR'; +exports[1359] = 'ER_TRG_ALREADY_EXISTS'; +exports[1360] = 'ER_TRG_DOES_NOT_EXIST'; +exports[1361] = 'ER_TRG_ON_VIEW_OR_TEMP_TABLE'; +exports[1362] = 'ER_TRG_CANT_CHANGE_ROW'; +exports[1363] = 'ER_TRG_NO_SUCH_ROW_IN_TRG'; +exports[1364] = 'ER_NO_DEFAULT_FOR_FIELD'; +exports[1365] = 'ER_DIVISION_BY_ZERO'; +exports[1366] = 'ER_TRUNCATED_WRONG_VALUE_FOR_FIELD'; +exports[1367] = 'ER_ILLEGAL_VALUE_FOR_TYPE'; +exports[1368] = 'ER_VIEW_NONUPD_CHECK'; +exports[1369] = 'ER_VIEW_CHECK_FAILED'; +exports[1370] = 'ER_PROCACCESS_DENIED_ERROR'; +exports[1371] = 'ER_RELAY_LOG_FAIL'; +exports[1372] = 'ER_PASSWD_LENGTH'; +exports[1373] = 'ER_UNKNOWN_TARGET_BINLOG'; +exports[1374] = 'ER_IO_ERR_LOG_INDEX_READ'; +exports[1375] = 'ER_BINLOG_PURGE_PROHIBITED'; +exports[1376] = 'ER_FSEEK_FAIL'; +exports[1377] = 'ER_BINLOG_PURGE_FATAL_ERR'; +exports[1378] = 'ER_LOG_IN_USE'; +exports[1379] = 'ER_LOG_PURGE_UNKNOWN_ERR'; +exports[1380] = 'ER_RELAY_LOG_INIT'; +exports[1381] = 'ER_NO_BINARY_LOGGING'; +exports[1382] = 'ER_RESERVED_SYNTAX'; +exports[1383] = 'ER_WSAS_FAILED'; +exports[1384] = 'ER_DIFF_GROUPS_PROC'; +exports[1385] = 'ER_NO_GROUP_FOR_PROC'; +exports[1386] = 'ER_ORDER_WITH_PROC'; +exports[1387] = 'ER_LOGGING_PROHIBIT_CHANGING_OF'; +exports[1388] = 'ER_NO_FILE_MAPPING'; +exports[1389] = 'ER_WRONG_MAGIC'; +exports[1390] = 'ER_PS_MANY_PARAM'; +exports[1391] = 'ER_KEY_PART_0'; +exports[1392] = 'ER_VIEW_CHECKSUM'; +exports[1393] = 'ER_VIEW_MULTIUPDATE'; +exports[1394] = 'ER_VIEW_NO_INSERT_FIELD_LIST'; +exports[1395] = 'ER_VIEW_DELETE_MERGE_VIEW'; +exports[1396] = 'ER_CANNOT_USER'; +exports[1397] = 'ER_XAER_NOTA'; +exports[1398] = 'ER_XAER_INVAL'; +exports[1399] = 'ER_XAER_RMFAIL'; +exports[1400] = 'ER_XAER_OUTSIDE'; +exports[1401] = 'ER_XAER_RMERR'; +exports[1402] = 'ER_XA_RBROLLBACK'; +exports[1403] = 'ER_NONEXISTING_PROC_GRANT'; +exports[1404] = 'ER_PROC_AUTO_GRANT_FAIL'; +exports[1405] = 'ER_PROC_AUTO_REVOKE_FAIL'; +exports[1406] = 'ER_DATA_TOO_LONG'; +exports[1407] = 'ER_SP_BAD_SQLSTATE'; +exports[1408] = 'ER_STARTUP'; +exports[1409] = 'ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR'; +exports[1410] = 'ER_CANT_CREATE_USER_WITH_GRANT'; +exports[1411] = 'ER_WRONG_VALUE_FOR_TYPE'; +exports[1412] = 'ER_TABLE_DEF_CHANGED'; +exports[1413] = 'ER_SP_DUP_HANDLER'; +exports[1414] = 'ER_SP_NOT_VAR_ARG'; +exports[1415] = 'ER_SP_NO_RETSET'; +exports[1416] = 'ER_CANT_CREATE_GEOMETRY_OBJECT'; +exports[1417] = 'ER_FAILED_ROUTINE_BREAK_BINLOG'; +exports[1418] = 'ER_BINLOG_UNSAFE_ROUTINE'; +exports[1419] = 'ER_BINLOG_CREATE_ROUTINE_NEED_SUPER'; +exports[1420] = 'ER_EXEC_STMT_WITH_OPEN_CURSOR'; +exports[1421] = 'ER_STMT_HAS_NO_OPEN_CURSOR'; +exports[1422] = 'ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG'; +exports[1423] = 'ER_NO_DEFAULT_FOR_VIEW_FIELD'; +exports[1424] = 'ER_SP_NO_RECURSION'; +exports[1425] = 'ER_TOO_BIG_SCALE'; +exports[1426] = 'ER_TOO_BIG_PRECISION'; +exports[1427] = 'ER_M_BIGGER_THAN_D'; +exports[1428] = 'ER_WRONG_LOCK_OF_SYSTEM_TABLE'; +exports[1429] = 'ER_CONNECT_TO_FOREIGN_DATA_SOURCE'; +exports[1430] = 'ER_QUERY_ON_FOREIGN_DATA_SOURCE'; +exports[1431] = 'ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST'; +exports[1432] = 'ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE'; +exports[1433] = 'ER_FOREIGN_DATA_STRING_INVALID'; +exports[1434] = 'ER_CANT_CREATE_FEDERATED_TABLE'; +exports[1435] = 'ER_TRG_IN_WRONG_SCHEMA'; +exports[1436] = 'ER_STACK_OVERRUN_NEED_MORE'; +exports[1437] = 'ER_TOO_LONG_BODY'; +exports[1438] = 'ER_WARN_CANT_DROP_DEFAULT_KEYCACHE'; +exports[1439] = 'ER_TOO_BIG_DISPLAYWIDTH'; +exports[1440] = 'ER_XAER_DUPID'; +exports[1441] = 'ER_DATETIME_FUNCTION_OVERFLOW'; +exports[1442] = 'ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG'; +exports[1443] = 'ER_VIEW_PREVENT_UPDATE'; +exports[1444] = 'ER_PS_NO_RECURSION'; +exports[1445] = 'ER_SP_CANT_SET_AUTOCOMMIT'; +exports[1446] = 'ER_MALFORMED_DEFINER'; +exports[1447] = 'ER_VIEW_FRM_NO_USER'; +exports[1448] = 'ER_VIEW_OTHER_USER'; +exports[1449] = 'ER_NO_SUCH_USER'; +exports[1450] = 'ER_FORBID_SCHEMA_CHANGE'; +exports[1451] = 'ER_ROW_IS_REFERENCED_2'; +exports[1452] = 'ER_NO_REFERENCED_ROW_2'; +exports[1453] = 'ER_SP_BAD_VAR_SHADOW'; +exports[1454] = 'ER_TRG_NO_DEFINER'; +exports[1455] = 'ER_OLD_FILE_FORMAT'; +exports[1456] = 'ER_SP_RECURSION_LIMIT'; +exports[1457] = 'ER_SP_PROC_TABLE_CORRUPT'; +exports[1458] = 'ER_SP_WRONG_NAME'; +exports[1459] = 'ER_TABLE_NEEDS_UPGRADE'; +exports[1460] = 'ER_SP_NO_AGGREGATE'; +exports[1461] = 'ER_MAX_PREPARED_STMT_COUNT_REACHED'; +exports[1462] = 'ER_VIEW_RECURSIVE'; +exports[1463] = 'ER_NON_GROUPING_FIELD_USED'; +exports[1464] = 'ER_TABLE_CANT_HANDLE_SPKEYS'; +exports[1465] = 'ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA'; +exports[1466] = 'ER_REMOVED_SPACES'; +exports[1467] = 'ER_AUTOINC_READ_FAILED'; +exports[1468] = 'ER_USERNAME'; +exports[1469] = 'ER_HOSTNAME'; +exports[1470] = 'ER_WRONG_STRING_LENGTH'; +exports[1471] = 'ER_NON_INSERTABLE_TABLE'; +exports[1472] = 'ER_ADMIN_WRONG_MRG_TABLE'; +exports[1473] = 'ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT'; +exports[1474] = 'ER_NAME_BECOMES_EMPTY'; +exports[1475] = 'ER_AMBIGUOUS_FIELD_TERM'; +exports[1476] = 'ER_FOREIGN_SERVER_EXISTS'; +exports[1477] = 'ER_FOREIGN_SERVER_DOESNT_EXIST'; +exports[1478] = 'ER_ILLEGAL_HA_CREATE_OPTION'; +exports[1479] = 'ER_PARTITION_REQUIRES_VALUES_ERROR'; +exports[1480] = 'ER_PARTITION_WRONG_VALUES_ERROR'; +exports[1481] = 'ER_PARTITION_MAXVALUE_ERROR'; +exports[1482] = 'ER_PARTITION_SUBPARTITION_ERROR'; +exports[1483] = 'ER_PARTITION_SUBPART_MIX_ERROR'; +exports[1484] = 'ER_PARTITION_WRONG_NO_PART_ERROR'; +exports[1485] = 'ER_PARTITION_WRONG_NO_SUBPART_ERROR'; +exports[1486] = 'ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR'; +exports[1487] = 'ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR'; +exports[1488] = 'ER_FIELD_NOT_FOUND_PART_ERROR'; +exports[1489] = 'ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR'; +exports[1490] = 'ER_INCONSISTENT_PARTITION_INFO_ERROR'; +exports[1491] = 'ER_PARTITION_FUNC_NOT_ALLOWED_ERROR'; +exports[1492] = 'ER_PARTITIONS_MUST_BE_DEFINED_ERROR'; +exports[1493] = 'ER_RANGE_NOT_INCREASING_ERROR'; +exports[1494] = 'ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR'; +exports[1495] = 'ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR'; +exports[1496] = 'ER_PARTITION_ENTRY_ERROR'; +exports[1497] = 'ER_MIX_HANDLER_ERROR'; +exports[1498] = 'ER_PARTITION_NOT_DEFINED_ERROR'; +exports[1499] = 'ER_TOO_MANY_PARTITIONS_ERROR'; +exports[1500] = 'ER_SUBPARTITION_ERROR'; +exports[1501] = 'ER_CANT_CREATE_HANDLER_FILE'; +exports[1502] = 'ER_BLOB_FIELD_IN_PART_FUNC_ERROR'; +exports[1503] = 'ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF'; +exports[1504] = 'ER_NO_PARTS_ERROR'; +exports[1505] = 'ER_PARTITION_MGMT_ON_NONPARTITIONED'; +exports[1506] = 'ER_FOREIGN_KEY_ON_PARTITIONED'; +exports[1507] = 'ER_DROP_PARTITION_NON_EXISTENT'; +exports[1508] = 'ER_DROP_LAST_PARTITION'; +exports[1509] = 'ER_COALESCE_ONLY_ON_HASH_PARTITION'; +exports[1510] = 'ER_REORG_HASH_ONLY_ON_SAME_NO'; +exports[1511] = 'ER_REORG_NO_PARAM_ERROR'; +exports[1512] = 'ER_ONLY_ON_RANGE_LIST_PARTITION'; +exports[1513] = 'ER_ADD_PARTITION_SUBPART_ERROR'; +exports[1514] = 'ER_ADD_PARTITION_NO_NEW_PARTITION'; +exports[1515] = 'ER_COALESCE_PARTITION_NO_PARTITION'; +exports[1516] = 'ER_REORG_PARTITION_NOT_EXIST'; +exports[1517] = 'ER_SAME_NAME_PARTITION'; +exports[1518] = 'ER_NO_BINLOG_ERROR'; +exports[1519] = 'ER_CONSECUTIVE_REORG_PARTITIONS'; +exports[1520] = 'ER_REORG_OUTSIDE_RANGE'; +exports[1521] = 'ER_PARTITION_FUNCTION_FAILURE'; +exports[1522] = 'ER_PART_STATE_ERROR'; +exports[1523] = 'ER_LIMITED_PART_RANGE'; +exports[1524] = 'ER_PLUGIN_IS_NOT_LOADED'; +exports[1525] = 'ER_WRONG_VALUE'; +exports[1526] = 'ER_NO_PARTITION_FOR_GIVEN_VALUE'; +exports[1527] = 'ER_FILEGROUP_OPTION_ONLY_ONCE'; +exports[1528] = 'ER_CREATE_FILEGROUP_FAILED'; +exports[1529] = 'ER_DROP_FILEGROUP_FAILED'; +exports[1530] = 'ER_TABLESPACE_AUTO_EXTEND_ERROR'; +exports[1531] = 'ER_WRONG_SIZE_NUMBER'; +exports[1532] = 'ER_SIZE_OVERFLOW_ERROR'; +exports[1533] = 'ER_ALTER_FILEGROUP_FAILED'; +exports[1534] = 'ER_BINLOG_ROW_LOGGING_FAILED'; +exports[1535] = 'ER_BINLOG_ROW_WRONG_TABLE_DEF'; +exports[1536] = 'ER_BINLOG_ROW_RBR_TO_SBR'; +exports[1537] = 'ER_EVENT_ALREADY_EXISTS'; +exports[1538] = 'ER_EVENT_STORE_FAILED'; +exports[1539] = 'ER_EVENT_DOES_NOT_EXIST'; +exports[1540] = 'ER_EVENT_CANT_ALTER'; +exports[1541] = 'ER_EVENT_DROP_FAILED'; +exports[1542] = 'ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG'; +exports[1543] = 'ER_EVENT_ENDS_BEFORE_STARTS'; +exports[1544] = 'ER_EVENT_EXEC_TIME_IN_THE_PAST'; +exports[1545] = 'ER_EVENT_OPEN_TABLE_FAILED'; +exports[1546] = 'ER_EVENT_NEITHER_M_EXPR_NOR_M_AT'; +exports[1547] = 'ER_COL_COUNT_DOESNT_MATCH_CORRUPTED'; +exports[1548] = 'ER_CANNOT_LOAD_FROM_TABLE'; +exports[1549] = 'ER_EVENT_CANNOT_DELETE'; +exports[1550] = 'ER_EVENT_COMPILE_ERROR'; +exports[1551] = 'ER_EVENT_SAME_NAME'; +exports[1552] = 'ER_EVENT_DATA_TOO_LONG'; +exports[1553] = 'ER_DROP_INDEX_FK'; +exports[1554] = 'ER_WARN_DEPRECATED_SYNTAX_WITH_VER'; +exports[1555] = 'ER_CANT_WRITE_LOCK_LOG_TABLE'; +exports[1556] = 'ER_CANT_LOCK_LOG_TABLE'; +exports[1557] = 'ER_FOREIGN_DUPLICATE_KEY'; +exports[1558] = 'ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE'; +exports[1559] = 'ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR'; +exports[1560] = 'ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT'; +exports[1561] = 'ER_NDB_CANT_SWITCH_BINLOG_FORMAT'; +exports[1562] = 'ER_PARTITION_NO_TEMPORARY'; +exports[1563] = 'ER_PARTITION_CONST_DOMAIN_ERROR'; +exports[1564] = 'ER_PARTITION_FUNCTION_IS_NOT_ALLOWED'; +exports[1565] = 'ER_DDL_LOG_ERROR'; +exports[1566] = 'ER_NULL_IN_VALUES_LESS_THAN'; +exports[1567] = 'ER_WRONG_PARTITION_NAME'; +exports[1568] = 'ER_CANT_CHANGE_TX_CHARACTERISTICS'; +exports[1569] = 'ER_DUP_ENTRY_AUTOINCREMENT_CASE'; +exports[1570] = 'ER_EVENT_MODIFY_QUEUE_ERROR'; +exports[1571] = 'ER_EVENT_SET_VAR_ERROR'; +exports[1572] = 'ER_PARTITION_MERGE_ERROR'; +exports[1573] = 'ER_CANT_ACTIVATE_LOG'; +exports[1574] = 'ER_RBR_NOT_AVAILABLE'; +exports[1575] = 'ER_BASE64_DECODE_ERROR'; +exports[1576] = 'ER_EVENT_RECURSION_FORBIDDEN'; +exports[1577] = 'ER_EVENTS_DB_ERROR'; +exports[1578] = 'ER_ONLY_INTEGERS_ALLOWED'; +exports[1579] = 'ER_UNSUPORTED_LOG_ENGINE'; +exports[1580] = 'ER_BAD_LOG_STATEMENT'; +exports[1581] = 'ER_CANT_RENAME_LOG_TABLE'; +exports[1582] = 'ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT'; +exports[1583] = 'ER_WRONG_PARAMETERS_TO_NATIVE_FCT'; +exports[1584] = 'ER_WRONG_PARAMETERS_TO_STORED_FCT'; +exports[1585] = 'ER_NATIVE_FCT_NAME_COLLISION'; +exports[1586] = 'ER_DUP_ENTRY_WITH_KEY_NAME'; +exports[1587] = 'ER_BINLOG_PURGE_EMFILE'; +exports[1588] = 'ER_EVENT_CANNOT_CREATE_IN_THE_PAST'; +exports[1589] = 'ER_EVENT_CANNOT_ALTER_IN_THE_PAST'; +exports[1590] = 'ER_SLAVE_INCIDENT'; +exports[1591] = 'ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT'; +exports[1592] = 'ER_BINLOG_UNSAFE_STATEMENT'; +exports[1593] = 'ER_SLAVE_FATAL_ERROR'; +exports[1594] = 'ER_SLAVE_RELAY_LOG_READ_FAILURE'; +exports[1595] = 'ER_SLAVE_RELAY_LOG_WRITE_FAILURE'; +exports[1596] = 'ER_SLAVE_CREATE_EVENT_FAILURE'; +exports[1597] = 'ER_SLAVE_MASTER_COM_FAILURE'; +exports[1598] = 'ER_BINLOG_LOGGING_IMPOSSIBLE'; +exports[1599] = 'ER_VIEW_NO_CREATION_CTX'; +exports[1600] = 'ER_VIEW_INVALID_CREATION_CTX'; +exports[1601] = 'ER_SR_INVALID_CREATION_CTX'; +exports[1602] = 'ER_TRG_CORRUPTED_FILE'; +exports[1603] = 'ER_TRG_NO_CREATION_CTX'; +exports[1604] = 'ER_TRG_INVALID_CREATION_CTX'; +exports[1605] = 'ER_EVENT_INVALID_CREATION_CTX'; +exports[1606] = 'ER_TRG_CANT_OPEN_TABLE'; +exports[1607] = 'ER_CANT_CREATE_SROUTINE'; +exports[1608] = 'ER_NEVER_USED'; +exports[1609] = 'ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT'; +exports[1610] = 'ER_SLAVE_CORRUPT_EVENT'; +exports[1611] = 'ER_LOAD_DATA_INVALID_COLUMN'; +exports[1612] = 'ER_LOG_PURGE_NO_FILE'; +exports[1613] = 'ER_XA_RBTIMEOUT'; +exports[1614] = 'ER_XA_RBDEADLOCK'; +exports[1615] = 'ER_NEED_REPREPARE'; +exports[1616] = 'ER_DELAYED_NOT_SUPPORTED'; +exports[1617] = 'WARN_NO_MASTER_INFO'; +exports[1618] = 'WARN_OPTION_IGNORED'; +exports[1619] = 'ER_PLUGIN_DELETE_BUILTIN'; +exports[1620] = 'WARN_PLUGIN_BUSY'; +exports[1621] = 'ER_VARIABLE_IS_READONLY'; +exports[1622] = 'ER_WARN_ENGINE_TRANSACTION_ROLLBACK'; +exports[1623] = 'ER_SLAVE_HEARTBEAT_FAILURE'; +exports[1624] = 'ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE'; +exports[1625] = 'ER_NDB_REPLICATION_SCHEMA_ERROR'; +exports[1626] = 'ER_CONFLICT_FN_PARSE_ERROR'; +exports[1627] = 'ER_EXCEPTIONS_WRITE_ERROR'; +exports[1628] = 'ER_TOO_LONG_TABLE_COMMENT'; +exports[1629] = 'ER_TOO_LONG_FIELD_COMMENT'; +exports[1630] = 'ER_FUNC_INEXISTENT_NAME_COLLISION'; +exports[1631] = 'ER_DATABASE_NAME'; +exports[1632] = 'ER_TABLE_NAME'; +exports[1633] = 'ER_PARTITION_NAME'; +exports[1634] = 'ER_SUBPARTITION_NAME'; +exports[1635] = 'ER_TEMPORARY_NAME'; +exports[1636] = 'ER_RENAMED_NAME'; +exports[1637] = 'ER_TOO_MANY_CONCURRENT_TRXS'; +exports[1638] = 'WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED'; +exports[1639] = 'ER_DEBUG_SYNC_TIMEOUT'; +exports[1640] = 'ER_DEBUG_SYNC_HIT_LIMIT'; +exports[1641] = 'ER_DUP_SIGNAL_SET'; +exports[1642] = 'ER_SIGNAL_WARN'; +exports[1643] = 'ER_SIGNAL_NOT_FOUND'; +exports[1644] = 'ER_SIGNAL_EXCEPTION'; +exports[1645] = 'ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER'; +exports[1646] = 'ER_SIGNAL_BAD_CONDITION_TYPE'; +exports[1647] = 'WARN_COND_ITEM_TRUNCATED'; +exports[1648] = 'ER_COND_ITEM_TOO_LONG'; +exports[1649] = 'ER_UNKNOWN_LOCALE'; +exports[1650] = 'ER_SLAVE_IGNORE_SERVER_IDS'; +exports[1651] = 'ER_QUERY_CACHE_DISABLED'; +exports[1652] = 'ER_SAME_NAME_PARTITION_FIELD'; +exports[1653] = 'ER_PARTITION_COLUMN_LIST_ERROR'; +exports[1654] = 'ER_WRONG_TYPE_COLUMN_VALUE_ERROR'; +exports[1655] = 'ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR'; +exports[1656] = 'ER_MAXVALUE_IN_VALUES_IN'; +exports[1657] = 'ER_TOO_MANY_VALUES_ERROR'; +exports[1658] = 'ER_ROW_SINGLE_PARTITION_FIELD_ERROR'; +exports[1659] = 'ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD'; +exports[1660] = 'ER_PARTITION_FIELDS_TOO_LONG'; +exports[1661] = 'ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE'; +exports[1662] = 'ER_BINLOG_ROW_MODE_AND_STMT_ENGINE'; +exports[1663] = 'ER_BINLOG_UNSAFE_AND_STMT_ENGINE'; +exports[1664] = 'ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE'; +exports[1665] = 'ER_BINLOG_STMT_MODE_AND_ROW_ENGINE'; +exports[1666] = 'ER_BINLOG_ROW_INJECTION_AND_STMT_MODE'; +exports[1667] = 'ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE'; +exports[1668] = 'ER_BINLOG_UNSAFE_LIMIT'; +exports[1669] = 'ER_BINLOG_UNSAFE_INSERT_DELAYED'; +exports[1670] = 'ER_BINLOG_UNSAFE_SYSTEM_TABLE'; +exports[1671] = 'ER_BINLOG_UNSAFE_AUTOINC_COLUMNS'; +exports[1672] = 'ER_BINLOG_UNSAFE_UDF'; +exports[1673] = 'ER_BINLOG_UNSAFE_SYSTEM_VARIABLE'; +exports[1674] = 'ER_BINLOG_UNSAFE_SYSTEM_FUNCTION'; +exports[1675] = 'ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS'; +exports[1676] = 'ER_MESSAGE_AND_STATEMENT'; +exports[1677] = 'ER_SLAVE_CONVERSION_FAILED'; +exports[1678] = 'ER_SLAVE_CANT_CREATE_CONVERSION'; +exports[1679] = 'ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT'; +exports[1680] = 'ER_PATH_LENGTH'; +exports[1681] = 'ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT'; +exports[1682] = 'ER_WRONG_NATIVE_TABLE_STRUCTURE'; +exports[1683] = 'ER_WRONG_PERFSCHEMA_USAGE'; +exports[1684] = 'ER_WARN_I_S_SKIPPED_TABLE'; +exports[1685] = 'ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT'; +exports[1686] = 'ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT'; +exports[1687] = 'ER_SPATIAL_MUST_HAVE_GEOM_COL'; +exports[1688] = 'ER_TOO_LONG_INDEX_COMMENT'; +exports[1689] = 'ER_LOCK_ABORTED'; +exports[1690] = 'ER_DATA_OUT_OF_RANGE'; +exports[1691] = 'ER_WRONG_SPVAR_TYPE_IN_LIMIT'; +exports[1692] = 'ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE'; +exports[1693] = 'ER_BINLOG_UNSAFE_MIXED_STATEMENT'; +exports[1694] = 'ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN'; +exports[1695] = 'ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN'; +exports[1696] = 'ER_FAILED_READ_FROM_PAR_FILE'; +exports[1697] = 'ER_VALUES_IS_NOT_INT_TYPE_ERROR'; +exports[1698] = 'ER_ACCESS_DENIED_NO_PASSWORD_ERROR'; +exports[1699] = 'ER_SET_PASSWORD_AUTH_PLUGIN'; +exports[1700] = 'ER_GRANT_PLUGIN_USER_EXISTS'; +exports[1701] = 'ER_TRUNCATE_ILLEGAL_FK'; +exports[1702] = 'ER_PLUGIN_IS_PERMANENT'; +exports[1703] = 'ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN'; +exports[1704] = 'ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX'; +exports[1705] = 'ER_STMT_CACHE_FULL'; +exports[1706] = 'ER_MULTI_UPDATE_KEY_CONFLICT'; +exports[1707] = 'ER_TABLE_NEEDS_REBUILD'; +exports[1708] = 'WARN_OPTION_BELOW_LIMIT'; +exports[1709] = 'ER_INDEX_COLUMN_TOO_LONG'; +exports[1710] = 'ER_ERROR_IN_TRIGGER_BODY'; +exports[1711] = 'ER_ERROR_IN_UNKNOWN_TRIGGER_BODY'; +exports[1712] = 'ER_INDEX_CORRUPT'; +exports[1713] = 'ER_UNDO_RECORD_TOO_BIG'; +exports[1714] = 'ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT'; +exports[1715] = 'ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE'; +exports[1716] = 'ER_BINLOG_UNSAFE_REPLACE_SELECT'; +exports[1717] = 'ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT'; +exports[1718] = 'ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT'; +exports[1719] = 'ER_BINLOG_UNSAFE_UPDATE_IGNORE'; +exports[1720] = 'ER_PLUGIN_NO_UNINSTALL'; +exports[1721] = 'ER_PLUGIN_NO_INSTALL'; +exports[1722] = 'ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT'; +exports[1723] = 'ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC'; +exports[1724] = 'ER_BINLOG_UNSAFE_INSERT_TWO_KEYS'; +exports[1725] = 'ER_TABLE_IN_FK_CHECK'; +exports[1726] = 'ER_UNSUPPORTED_ENGINE'; +exports[1727] = 'ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST'; +exports[1728] = 'ER_CANNOT_LOAD_FROM_TABLE_V2'; +exports[1729] = 'ER_MASTER_DELAY_VALUE_OUT_OF_RANGE'; +exports[1730] = 'ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT'; +exports[1731] = 'ER_PARTITION_EXCHANGE_DIFFERENT_OPTION'; +exports[1732] = 'ER_PARTITION_EXCHANGE_PART_TABLE'; +exports[1733] = 'ER_PARTITION_EXCHANGE_TEMP_TABLE'; +exports[1734] = 'ER_PARTITION_INSTEAD_OF_SUBPARTITION'; +exports[1735] = 'ER_UNKNOWN_PARTITION'; +exports[1736] = 'ER_TABLES_DIFFERENT_METADATA'; +exports[1737] = 'ER_ROW_DOES_NOT_MATCH_PARTITION'; +exports[1738] = 'ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX'; +exports[1739] = 'ER_WARN_INDEX_NOT_APPLICABLE'; +exports[1740] = 'ER_PARTITION_EXCHANGE_FOREIGN_KEY'; +exports[1741] = 'ER_NO_SUCH_KEY_VALUE'; +exports[1742] = 'ER_RPL_INFO_DATA_TOO_LONG'; +exports[1743] = 'ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE'; +exports[1744] = 'ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE'; +exports[1745] = 'ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX'; +exports[1746] = 'ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT'; +exports[1747] = 'ER_PARTITION_CLAUSE_ON_NONPARTITIONED'; +exports[1748] = 'ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET'; +exports[1749] = 'ER_NO_SUCH_PARTITION'; +exports[1750] = 'ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE'; +exports[1751] = 'ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE'; +exports[1752] = 'ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE'; +exports[1753] = 'ER_MTS_FEATURE_IS_NOT_SUPPORTED'; +exports[1754] = 'ER_MTS_UPDATED_DBS_GREATER_MAX'; +exports[1755] = 'ER_MTS_CANT_PARALLEL'; +exports[1756] = 'ER_MTS_INCONSISTENT_DATA'; +exports[1757] = 'ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING'; +exports[1758] = 'ER_DA_INVALID_CONDITION_NUMBER'; +exports[1759] = 'ER_INSECURE_PLAIN_TEXT'; +exports[1760] = 'ER_INSECURE_CHANGE_MASTER'; +exports[1761] = 'ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO'; +exports[1762] = 'ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO'; +exports[1763] = 'ER_SQLTHREAD_WITH_SECURE_SLAVE'; +exports[1764] = 'ER_TABLE_HAS_NO_FT'; +exports[1765] = 'ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER'; +exports[1766] = 'ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION'; +exports[1767] = 'ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST'; +exports[1768] = 'ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION'; +exports[1769] = 'ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION'; +exports[1770] = 'ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL'; +exports[1771] = 'ER_SKIPPING_LOGGED_TRANSACTION'; +exports[1772] = 'ER_MALFORMED_GTID_SET_SPECIFICATION'; +exports[1773] = 'ER_MALFORMED_GTID_SET_ENCODING'; +exports[1774] = 'ER_MALFORMED_GTID_SPECIFICATION'; +exports[1775] = 'ER_GNO_EXHAUSTED'; +exports[1776] = 'ER_BAD_SLAVE_AUTO_POSITION'; +exports[1777] = 'ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF'; +exports[1778] = 'ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET'; +exports[1779] = 'ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON'; +exports[1780] = 'ER_GTID_MODE_REQUIRES_BINLOG'; +exports[1781] = 'ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF'; +exports[1782] = 'ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON'; +exports[1783] = 'ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF'; +exports[1784] = 'ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF'; +exports[1785] = 'ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE'; +exports[1786] = 'ER_GTID_UNSAFE_CREATE_SELECT'; +exports[1787] = 'ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION'; +exports[1788] = 'ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME'; +exports[1789] = 'ER_MASTER_HAS_PURGED_REQUIRED_GTIDS'; +exports[1790] = 'ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID'; +exports[1791] = 'ER_UNKNOWN_EXPLAIN_FORMAT'; +exports[1792] = 'ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION'; +exports[1793] = 'ER_TOO_LONG_TABLE_PARTITION_COMMENT'; +exports[1794] = 'ER_SLAVE_CONFIGURATION'; +exports[1795] = 'ER_INNODB_FT_LIMIT'; +exports[1796] = 'ER_INNODB_NO_FT_TEMP_TABLE'; +exports[1797] = 'ER_INNODB_FT_WRONG_DOCID_COLUMN'; +exports[1798] = 'ER_INNODB_FT_WRONG_DOCID_INDEX'; +exports[1799] = 'ER_INNODB_ONLINE_LOG_TOO_BIG'; +exports[1800] = 'ER_UNKNOWN_ALTER_ALGORITHM'; +exports[1801] = 'ER_UNKNOWN_ALTER_LOCK'; +exports[1802] = 'ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS'; +exports[1803] = 'ER_MTS_RECOVERY_FAILURE'; +exports[1804] = 'ER_MTS_RESET_WORKERS'; +exports[1805] = 'ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2'; +exports[1806] = 'ER_SLAVE_SILENT_RETRY_TRANSACTION'; +exports[1807] = 'ER_DISCARD_FK_CHECKS_RUNNING'; +exports[1808] = 'ER_TABLE_SCHEMA_MISMATCH'; +exports[1809] = 'ER_TABLE_IN_SYSTEM_TABLESPACE'; +exports[1810] = 'ER_IO_READ_ERROR'; +exports[1811] = 'ER_IO_WRITE_ERROR'; +exports[1812] = 'ER_TABLESPACE_MISSING'; +exports[1813] = 'ER_TABLESPACE_EXISTS'; +exports[1814] = 'ER_TABLESPACE_DISCARDED'; +exports[1815] = 'ER_INTERNAL_ERROR'; +exports[1816] = 'ER_INNODB_IMPORT_ERROR'; +exports[1817] = 'ER_INNODB_INDEX_CORRUPT'; +exports[1818] = 'ER_INVALID_YEAR_COLUMN_LENGTH'; +exports[1819] = 'ER_NOT_VALID_PASSWORD'; +exports[1820] = 'ER_MUST_CHANGE_PASSWORD'; +exports[1821] = 'ER_FK_NO_INDEX_CHILD'; +exports[1822] = 'ER_FK_NO_INDEX_PARENT'; +exports[1823] = 'ER_FK_FAIL_ADD_SYSTEM'; +exports[1824] = 'ER_FK_CANNOT_OPEN_PARENT'; +exports[1825] = 'ER_FK_INCORRECT_OPTION'; +exports[1826] = 'ER_FK_DUP_NAME'; +exports[1827] = 'ER_PASSWORD_FORMAT'; +exports[1828] = 'ER_FK_COLUMN_CANNOT_DROP'; +exports[1829] = 'ER_FK_COLUMN_CANNOT_DROP_CHILD'; +exports[1830] = 'ER_FK_COLUMN_NOT_NULL'; +exports[1831] = 'ER_DUP_INDEX'; +exports[1832] = 'ER_FK_COLUMN_CANNOT_CHANGE'; +exports[1833] = 'ER_FK_COLUMN_CANNOT_CHANGE_CHILD'; +exports[1834] = 'ER_FK_CANNOT_DELETE_PARENT'; +exports[1835] = 'ER_MALFORMED_PACKET'; +exports[1836] = 'ER_READ_ONLY_MODE'; +exports[1837] = 'ER_GTID_NEXT_TYPE_UNDEFINED_GROUP'; +exports[1838] = 'ER_VARIABLE_NOT_SETTABLE_IN_SP'; +exports[1839] = 'ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF'; +exports[1840] = 'ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY'; +exports[1841] = 'ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY'; +exports[1842] = 'ER_GTID_PURGED_WAS_CHANGED'; +exports[1843] = 'ER_GTID_EXECUTED_WAS_CHANGED'; +exports[1844] = 'ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES'; +exports[1845] = 'ER_ALTER_OPERATION_NOT_SUPPORTED'; +exports[1846] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON'; +exports[1847] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY'; +exports[1848] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION'; +exports[1849] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME'; +exports[1850] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE'; +exports[1851] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK'; +exports[1852] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE'; +exports[1853] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK'; +exports[1854] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC'; +exports[1855] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS'; +exports[1856] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS'; +exports[1857] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS'; +exports[1858] = 'ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE'; +exports[1859] = 'ER_DUP_UNKNOWN_IN_INDEX'; +exports[1860] = 'ER_IDENT_CAUSES_TOO_LONG_PATH'; +exports[1861] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL'; +exports[1862] = 'ER_MUST_CHANGE_PASSWORD_LOGIN'; +exports[1863] = 'ER_ROW_IN_WRONG_PARTITION'; +exports[1864] = 'ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX'; +exports[1865] = 'ER_INNODB_NO_FT_USES_PARSER'; +exports[1866] = 'ER_BINLOG_LOGICAL_CORRUPTION'; +exports[1867] = 'ER_WARN_PURGE_LOG_IN_USE'; +exports[1868] = 'ER_WARN_PURGE_LOG_IS_ACTIVE'; +exports[1869] = 'ER_AUTO_INCREMENT_CONFLICT'; +exports[1870] = 'WARN_ON_BLOCKHOLE_IN_RBR'; +exports[1871] = 'ER_SLAVE_MI_INIT_REPOSITORY'; +exports[1872] = 'ER_SLAVE_RLI_INIT_REPOSITORY'; +exports[1873] = 'ER_ACCESS_DENIED_CHANGE_USER_ERROR'; +exports[1874] = 'ER_INNODB_READ_ONLY'; +exports[1875] = 'ER_STOP_SLAVE_SQL_THREAD_TIMEOUT'; +exports[1876] = 'ER_STOP_SLAVE_IO_THREAD_TIMEOUT'; +exports[1877] = 'ER_TABLE_CORRUPT'; +exports[1878] = 'ER_TEMP_FILE_WRITE_FAILURE'; +exports[1879] = 'ER_INNODB_FT_AUX_NOT_HEX_ID'; +exports[1880] = 'ER_OLD_TEMPORALS_UPGRADED'; +exports[1881] = 'ER_INNODB_FORCED_RECOVERY'; +exports[1882] = 'ER_AES_INVALID_IV'; +exports[1883] = 'ER_PLUGIN_CANNOT_BE_UNINSTALLED'; +exports[1884] = 'ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP'; +exports[1885] = 'ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER'; +exports[1886] = 'ER_MISSING_KEY'; +exports[1887] = 'WARN_NAMED_PIPE_ACCESS_EVERYONE'; +exports[1888] = 'ER_FOUND_MISSING_GTIDS'; +exports[3000] = 'ER_FILE_CORRUPT'; +exports[3001] = 'ER_ERROR_ON_MASTER'; +exports[3002] = 'ER_INCONSISTENT_ERROR'; +exports[3003] = 'ER_STORAGE_ENGINE_NOT_LOADED'; +exports[3004] = 'ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER'; +exports[3005] = 'ER_WARN_LEGACY_SYNTAX_CONVERTED'; +exports[3006] = 'ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN'; +exports[3007] = 'ER_CANNOT_DISCARD_TEMPORARY_TABLE'; +exports[3008] = 'ER_FK_DEPTH_EXCEEDED'; +exports[3009] = 'ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2'; +exports[3010] = 'ER_WARN_TRIGGER_DOESNT_HAVE_CREATED'; +exports[3011] = 'ER_REFERENCED_TRG_DOES_NOT_EXIST'; +exports[3012] = 'ER_EXPLAIN_NOT_SUPPORTED'; +exports[3013] = 'ER_INVALID_FIELD_SIZE'; +exports[3014] = 'ER_MISSING_HA_CREATE_OPTION'; +exports[3015] = 'ER_ENGINE_OUT_OF_MEMORY'; +exports[3016] = 'ER_PASSWORD_EXPIRE_ANONYMOUS_USER'; +exports[3017] = 'ER_SLAVE_SQL_THREAD_MUST_STOP'; +exports[3018] = 'ER_NO_FT_MATERIALIZED_SUBQUERY'; +exports[3019] = 'ER_INNODB_UNDO_LOG_FULL'; +exports[3020] = 'ER_INVALID_ARGUMENT_FOR_LOGARITHM'; +exports[3021] = 'ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP'; +exports[3022] = 'ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO'; +exports[3023] = 'ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS'; +exports[3024] = 'ER_QUERY_TIMEOUT'; +exports[3025] = 'ER_NON_RO_SELECT_DISABLE_TIMER'; +exports[3026] = 'ER_DUP_LIST_ENTRY'; +exports[3027] = 'ER_SQL_MODE_NO_EFFECT'; +exports[3028] = 'ER_AGGREGATE_ORDER_FOR_UNION'; +exports[3029] = 'ER_AGGREGATE_ORDER_NON_AGG_QUERY'; +exports[3030] = 'ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR'; +exports[3031] = 'ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER'; +exports[3032] = 'ER_SERVER_OFFLINE_MODE'; +exports[3033] = 'ER_GIS_DIFFERENT_SRIDS'; +exports[3034] = 'ER_GIS_UNSUPPORTED_ARGUMENT'; +exports[3035] = 'ER_GIS_UNKNOWN_ERROR'; +exports[3036] = 'ER_GIS_UNKNOWN_EXCEPTION'; +exports[3037] = 'ER_GIS_INVALID_DATA'; +exports[3038] = 'ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION'; +exports[3039] = 'ER_BOOST_GEOMETRY_CENTROID_EXCEPTION'; +exports[3040] = 'ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION'; +exports[3041] = 'ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION'; +exports[3042] = 'ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION'; +exports[3043] = 'ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION'; +exports[3044] = 'ER_STD_BAD_ALLOC_ERROR'; +exports[3045] = 'ER_STD_DOMAIN_ERROR'; +exports[3046] = 'ER_STD_LENGTH_ERROR'; +exports[3047] = 'ER_STD_INVALID_ARGUMENT'; +exports[3048] = 'ER_STD_OUT_OF_RANGE_ERROR'; +exports[3049] = 'ER_STD_OVERFLOW_ERROR'; +exports[3050] = 'ER_STD_RANGE_ERROR'; +exports[3051] = 'ER_STD_UNDERFLOW_ERROR'; +exports[3052] = 'ER_STD_LOGIC_ERROR'; +exports[3053] = 'ER_STD_RUNTIME_ERROR'; +exports[3054] = 'ER_STD_UNKNOWN_EXCEPTION'; +exports[3055] = 'ER_GIS_DATA_WRONG_ENDIANESS'; +exports[3056] = 'ER_CHANGE_MASTER_PASSWORD_LENGTH'; +exports[3057] = 'ER_USER_LOCK_WRONG_NAME'; +exports[3058] = 'ER_USER_LOCK_DEADLOCK'; +exports[3059] = 'ER_REPLACE_INACCESSIBLE_ROWS'; +exports[3060] = 'ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS'; +exports[3061] = 'ER_ILLEGAL_USER_VAR'; +exports[3062] = 'ER_GTID_MODE_OFF'; +exports[3063] = 'ER_UNSUPPORTED_BY_REPLICATION_THREAD'; +exports[3064] = 'ER_INCORRECT_TYPE'; +exports[3065] = 'ER_FIELD_IN_ORDER_NOT_SELECT'; +exports[3066] = 'ER_AGGREGATE_IN_ORDER_NOT_SELECT'; +exports[3067] = 'ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN'; +exports[3068] = 'ER_NET_OK_PACKET_TOO_LARGE'; +exports[3069] = 'ER_INVALID_JSON_DATA'; +exports[3070] = 'ER_INVALID_GEOJSON_MISSING_MEMBER'; +exports[3071] = 'ER_INVALID_GEOJSON_WRONG_TYPE'; +exports[3072] = 'ER_INVALID_GEOJSON_UNSPECIFIED'; +exports[3073] = 'ER_DIMENSION_UNSUPPORTED'; +exports[3074] = 'ER_SLAVE_CHANNEL_DOES_NOT_EXIST'; +exports[3075] = 'ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT'; +exports[3076] = 'ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG'; +exports[3077] = 'ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY'; +exports[3078] = 'ER_SLAVE_CHANNEL_DELETE'; +exports[3079] = 'ER_SLAVE_MULTIPLE_CHANNELS_CMD'; +exports[3080] = 'ER_SLAVE_MAX_CHANNELS_EXCEEDED'; +exports[3081] = 'ER_SLAVE_CHANNEL_MUST_STOP'; +exports[3082] = 'ER_SLAVE_CHANNEL_NOT_RUNNING'; +exports[3083] = 'ER_SLAVE_CHANNEL_WAS_RUNNING'; +exports[3084] = 'ER_SLAVE_CHANNEL_WAS_NOT_RUNNING'; +exports[3085] = 'ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP'; +exports[3086] = 'ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER'; +exports[3087] = 'ER_WRONG_FIELD_WITH_GROUP_V2'; +exports[3088] = 'ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2'; +exports[3089] = 'ER_WARN_DEPRECATED_SYSVAR_UPDATE'; +exports[3090] = 'ER_WARN_DEPRECATED_SQLMODE'; +exports[3091] = 'ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID'; +exports[3092] = 'ER_GROUP_REPLICATION_CONFIGURATION'; +exports[3093] = 'ER_GROUP_REPLICATION_RUNNING'; +exports[3094] = 'ER_GROUP_REPLICATION_APPLIER_INIT_ERROR'; +exports[3095] = 'ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT'; +exports[3096] = 'ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR'; +exports[3097] = 'ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR'; +exports[3098] = 'ER_BEFORE_DML_VALIDATION_ERROR'; +exports[3099] = 'ER_PREVENTS_VARIABLE_WITHOUT_RBR'; +exports[3100] = 'ER_RUN_HOOK_ERROR'; +exports[3101] = 'ER_TRANSACTION_ROLLBACK_DURING_COMMIT'; +exports[3102] = 'ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED'; +exports[3103] = 'ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN'; +exports[3104] = 'ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN'; +exports[3105] = 'ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN'; +exports[3106] = 'ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN'; +exports[3107] = 'ER_GENERATED_COLUMN_NON_PRIOR'; +exports[3108] = 'ER_DEPENDENT_BY_GENERATED_COLUMN'; +exports[3109] = 'ER_GENERATED_COLUMN_REF_AUTO_INC'; +exports[3110] = 'ER_FEATURE_NOT_AVAILABLE'; +exports[3111] = 'ER_CANT_SET_GTID_MODE'; +exports[3112] = 'ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF'; +exports[3113] = 'ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION'; +exports[3114] = 'ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON'; +exports[3115] = 'ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF'; +exports[3116] = 'ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS'; +exports[3117] = 'ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS'; +exports[3118] = 'ER_ACCOUNT_HAS_BEEN_LOCKED'; +exports[3119] = 'ER_WRONG_TABLESPACE_NAME'; +exports[3120] = 'ER_TABLESPACE_IS_NOT_EMPTY'; +exports[3121] = 'ER_WRONG_FILE_NAME'; +exports[3122] = 'ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION'; +exports[3123] = 'ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR'; +exports[3124] = 'ER_WARN_BAD_MAX_EXECUTION_TIME'; +exports[3125] = 'ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME'; +exports[3126] = 'ER_WARN_CONFLICTING_HINT'; +exports[3127] = 'ER_WARN_UNKNOWN_QB_NAME'; +exports[3128] = 'ER_UNRESOLVED_HINT_NAME'; +exports[3129] = 'ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE'; +exports[3130] = 'ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED'; +exports[3131] = 'ER_LOCKING_SERVICE_WRONG_NAME'; +exports[3132] = 'ER_LOCKING_SERVICE_DEADLOCK'; +exports[3133] = 'ER_LOCKING_SERVICE_TIMEOUT'; +exports[3134] = 'ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED'; +exports[3135] = 'ER_SQL_MODE_MERGED'; +exports[3136] = 'ER_VTOKEN_PLUGIN_TOKEN_MISMATCH'; +exports[3137] = 'ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND'; +exports[3138] = 'ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID'; +exports[3139] = 'ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED'; +exports[3140] = 'ER_INVALID_JSON_TEXT'; +exports[3141] = 'ER_INVALID_JSON_TEXT_IN_PARAM'; +exports[3142] = 'ER_INVALID_JSON_BINARY_DATA'; +exports[3143] = 'ER_INVALID_JSON_PATH'; +exports[3144] = 'ER_INVALID_JSON_CHARSET'; +exports[3145] = 'ER_INVALID_JSON_CHARSET_IN_FUNCTION'; +exports[3146] = 'ER_INVALID_TYPE_FOR_JSON'; +exports[3147] = 'ER_INVALID_CAST_TO_JSON'; +exports[3148] = 'ER_INVALID_JSON_PATH_CHARSET'; +exports[3149] = 'ER_INVALID_JSON_PATH_WILDCARD'; +exports[3150] = 'ER_JSON_VALUE_TOO_BIG'; +exports[3151] = 'ER_JSON_KEY_TOO_BIG'; +exports[3152] = 'ER_JSON_USED_AS_KEY'; +exports[3153] = 'ER_JSON_VACUOUS_PATH'; +exports[3154] = 'ER_JSON_BAD_ONE_OR_ALL_ARG'; +exports[3155] = 'ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE'; +exports[3156] = 'ER_INVALID_JSON_VALUE_FOR_CAST'; +exports[3157] = 'ER_JSON_DOCUMENT_TOO_DEEP'; +exports[3158] = 'ER_JSON_DOCUMENT_NULL_KEY'; +exports[3159] = 'ER_SECURE_TRANSPORT_REQUIRED'; +exports[3160] = 'ER_NO_SECURE_TRANSPORTS_CONFIGURED'; +exports[3161] = 'ER_DISABLED_STORAGE_ENGINE'; +exports[3162] = 'ER_USER_DOES_NOT_EXIST'; +exports[3163] = 'ER_USER_ALREADY_EXISTS'; +exports[3164] = 'ER_AUDIT_API_ABORT'; +exports[3165] = 'ER_INVALID_JSON_PATH_ARRAY_CELL'; +exports[3166] = 'ER_BUFPOOL_RESIZE_INPROGRESS'; +exports[3167] = 'ER_FEATURE_DISABLED_SEE_DOC'; +exports[3168] = 'ER_SERVER_ISNT_AVAILABLE'; +exports[3169] = 'ER_SESSION_WAS_KILLED'; +exports[3170] = 'ER_CAPACITY_EXCEEDED'; +exports[3171] = 'ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER'; +exports[3172] = 'ER_TABLE_NEEDS_UPG_PART'; +exports[3173] = 'ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID'; +exports[3174] = 'ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL'; +exports[3175] = 'ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT'; +exports[3176] = 'ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE'; +exports[3177] = 'ER_LOCK_REFUSED_BY_ENGINE'; +exports[3178] = 'ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN'; +exports[3179] = 'ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE'; +exports[3180] = 'ER_MASTER_KEY_ROTATION_ERROR_BY_SE'; +exports[3181] = 'ER_MASTER_KEY_ROTATION_BINLOG_FAILED'; +exports[3182] = 'ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE'; +exports[3183] = 'ER_TABLESPACE_CANNOT_ENCRYPT'; +exports[3184] = 'ER_INVALID_ENCRYPTION_OPTION'; +exports[3185] = 'ER_CANNOT_FIND_KEY_IN_KEYRING'; +exports[3186] = 'ER_CAPACITY_EXCEEDED_IN_PARSER'; +exports[3187] = 'ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE'; +exports[3188] = 'ER_KEYRING_UDF_KEYRING_SERVICE_ERROR'; +exports[3189] = 'ER_USER_COLUMN_OLD_LENGTH'; +exports[3190] = 'ER_CANT_RESET_MASTER'; +exports[3191] = 'ER_GROUP_REPLICATION_MAX_GROUP_SIZE'; +exports[3192] = 'ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED'; +exports[3193] = 'ER_TABLE_REFERENCED'; +exports[3194] = 'ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE'; +exports[3195] = 'ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO'; +exports[3196] = 'ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID'; +exports[3197] = 'ER_XA_RETRY'; +exports[3198] = 'ER_KEYRING_AWS_UDF_AWS_KMS_ERROR'; +exports[3199] = 'ER_BINLOG_UNSAFE_XA'; +exports[3200] = 'ER_UDF_ERROR'; +exports[3201] = 'ER_KEYRING_MIGRATION_FAILURE'; +exports[3202] = 'ER_KEYRING_ACCESS_DENIED_ERROR'; +exports[3203] = 'ER_KEYRING_MIGRATION_STATUS'; +exports[3204] = 'ER_PLUGIN_FAILED_TO_OPEN_TABLES'; +exports[3205] = 'ER_PLUGIN_FAILED_TO_OPEN_TABLE'; +exports[3206] = 'ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED'; +exports[3207] = 'ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET'; +exports[3208] = 'ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY'; +exports[3209] = 'ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED'; +exports[3210] = 'ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED'; +exports[3211] = 'ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE'; +exports[3212] = 'ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED'; +exports[3213] = 'ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS'; +exports[3214] = 'ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE'; +exports[3215] = 'ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT'; +exports[3216] = 'ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED'; +exports[3217] = 'ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE'; +exports[3218] = 'ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE'; +exports[3219] = 'ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR'; +exports[3220] = 'ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY'; +exports[3221] = 'ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY'; +exports[3222] = 'ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS'; +exports[3223] = 'ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC'; +exports[3224] = 'ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER'; +exports[3225] = 'ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER'; +exports[3226] = 'WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP'; +exports[3227] = 'ER_XA_REPLICATION_FILTERS'; +exports[3228] = 'ER_CANT_OPEN_ERROR_LOG'; +exports[3229] = 'ER_GROUPING_ON_TIMESTAMP_IN_DST'; +exports[3230] = 'ER_CANT_START_SERVER_NAMED_PIPE'; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/field_flags.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/field_flags.js" new file mode 100644 index 0000000000000000000000000000000000000000..c698da51bd99ee4d6e65d9111087660b5a53e317 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/field_flags.js" @@ -0,0 +1,18 @@ +// Manually extracted from mysql-5.5.23/include/mysql_com.h +exports.NOT_NULL_FLAG = 1; /* Field can't be NULL */ +exports.PRI_KEY_FLAG = 2; /* Field is part of a primary key */ +exports.UNIQUE_KEY_FLAG = 4; /* Field is part of a unique key */ +exports.MULTIPLE_KEY_FLAG = 8; /* Field is part of a key */ +exports.BLOB_FLAG = 16; /* Field is a blob */ +exports.UNSIGNED_FLAG = 32; /* Field is unsigned */ +exports.ZEROFILL_FLAG = 64; /* Field is zerofill */ +exports.BINARY_FLAG = 128; /* Field is binary */ + +/* The following are only sent to new clients */ +exports.ENUM_FLAG = 256; /* field is an enum */ +exports.AUTO_INCREMENT_FLAG = 512; /* field is a autoincrement field */ +exports.TIMESTAMP_FLAG = 1024; /* Field is a timestamp */ +exports.SET_FLAG = 2048; /* field is a set */ +exports.NO_DEFAULT_VALUE_FLAG = 4096; /* Field doesn't have default value */ +exports.ON_UPDATE_NOW_FLAG = 8192; /* Field is set to NOW on UPDATE */ +exports.NUM_FLAG = 32768; /* Field is num (for clients) */ diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/server_status.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/server_status.js" new file mode 100644 index 0000000000000000000000000000000000000000..48880c3709cf58149a448f3e4821e85097d95f20 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/server_status.js" @@ -0,0 +1,39 @@ +// Manually extracted from mysql-5.5.23/include/mysql_com.h + +/** + Is raised when a multi-statement transaction + has been started, either explicitly, by means + of BEGIN or COMMIT AND CHAIN, or + implicitly, by the first transactional + statement, when autocommit=off. +*/ +exports.SERVER_STATUS_IN_TRANS = 1; +exports.SERVER_STATUS_AUTOCOMMIT = 2; /* Server in auto_commit mode */ +exports.SERVER_MORE_RESULTS_EXISTS = 8; /* Multi query - next query exists */ +exports.SERVER_QUERY_NO_GOOD_INDEX_USED = 16; +exports.SERVER_QUERY_NO_INDEX_USED = 32; +/** + The server was able to fulfill the clients request and opened a + read-only non-scrollable cursor for a query. This flag comes + in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. +*/ +exports.SERVER_STATUS_CURSOR_EXISTS = 64; +/** + This flag is sent when a read-only cursor is exhausted, in reply to + COM_STMT_FETCH command. +*/ +exports.SERVER_STATUS_LAST_ROW_SENT = 128; +exports.SERVER_STATUS_DB_DROPPED = 256; /* A database was dropped */ +exports.SERVER_STATUS_NO_BACKSLASH_ESCAPES = 512; +/** + Sent to the client if after a prepared statement reprepare + we discovered that the new statement returns a different + number of result set columns. +*/ +exports.SERVER_STATUS_METADATA_CHANGED = 1024; +exports.SERVER_QUERY_WAS_SLOW = 2048; + +/** + To mark ResultSet containing output parameter values. +*/ +exports.SERVER_PS_OUT_PARAMS = 4096; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/ssl_profiles.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/ssl_profiles.js" new file mode 100644 index 0000000000000000000000000000000000000000..bec1864f3dcc7e3eb08aea32cb9a52133413bd8f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/ssl_profiles.js" @@ -0,0 +1,1480 @@ +// Certificates for Amazon RDS +exports['Amazon RDS'] = { + ca: [ + /** + * Amazon RDS global certificate 2010 to 2015 + * + * CN = aws.amazon.com/rds/ + * OU = RDS + * O = Amazon.com + * L = Seattle + * ST = Washington + * C = US + * P = 2010-04-05T22:44:31Z/2015-04-04T22:41:31Z + * F = 7F:09:8D:A5:7D:BB:A6:EF:7C:70:D8:CA:4E:49:11:55:7E:89:A7:D3 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIDQzCCAqygAwIBAgIJAOd1tlfiGoEoMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV\n' + + 'BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdTZWF0dGxlMRMw\n' + + 'EQYDVQQKEwpBbWF6b24uY29tMQwwCgYDVQQLEwNSRFMxHDAaBgNVBAMTE2F3cy5h\n' + + 'bWF6b24uY29tL3Jkcy8wHhcNMTAwNDA1MjI0NDMxWhcNMTUwNDA0MjI0NDMxWjB1\n' + + 'MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHU2Vh\n' + + 'dHRsZTETMBEGA1UEChMKQW1hem9uLmNvbTEMMAoGA1UECxMDUkRTMRwwGgYDVQQD\n' + + 'ExNhd3MuYW1hem9uLmNvbS9yZHMvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n' + + 'gQDKhXGU7tizxUR5WaFoMTFcxNxa05PEjZaIOEN5ctkWrqYSRov0/nOMoZjqk8bC\n' + + 'med9vPFoQGD0OTakPs0jVe3wwmR735hyVwmKIPPsGlaBYj1O6llIpZeQVyupNx56\n' + + 'UzqtiLaDzh1KcmfqP3qP2dInzBfJQKjiRudo1FWnpPt33QIDAQABo4HaMIHXMB0G\n' + + 'A1UdDgQWBBT/H3x+cqSkR/ePSIinPtc4yWKe3DCBpwYDVR0jBIGfMIGcgBT/H3x+\n' + + 'cqSkR/ePSIinPtc4yWKe3KF5pHcwdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh\n' + + 'c2hpbmd0b24xEDAOBgNVBAcTB1NlYXR0bGUxEzARBgNVBAoTCkFtYXpvbi5jb20x\n' + + 'DDAKBgNVBAsTA1JEUzEcMBoGA1UEAxMTYXdzLmFtYXpvbi5jb20vcmRzL4IJAOd1\n' + + 'tlfiGoEoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAvguZy/BDT66x\n' + + 'GfgnJlyQwnFSeVLQm9u/FIvz4huGjbq9dqnD6h/Gm56QPFdyMEyDiZWaqY6V08lY\n' + + 'LTBNb4kcIc9/6pc0/ojKciP5QJRm6OiZ4vgG05nF4fYjhU7WClUx7cxq1fKjNc2J\n' + + 'UCmmYqgiVkAGWRETVo+byOSDZ4swb10=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS global root CA 2015 to 2020 + * + * CN = Amazon RDS Root CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T09:11:31Z/2020-03-05T09:11:31Z + * F = E8:11:88:56:E7:A7:CE:3E:5E:DC:9A:31:25:1B:93:AC:DC:43:CE:B0 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID9DCCAtygAwIBAgIBQjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUwOTExMzFaFw0y\n' + + 'MDAzMDUwOTExMzFaMIGKMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEbMBkGA1UEAwwSQW1hem9uIFJE\n' + + 'UyBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuD8nrZ8V\n' + + 'u+VA8yVlUipCZIKPTDcOILYpUe8Tct0YeQQr0uyl018StdBsa3CjBgvwpDRq1HgF\n' + + 'Ji2N3+39+shCNspQeE6aYU+BHXhKhIIStt3r7gl/4NqYiDDMWKHxHq0nsGDFfArf\n' + + 'AOcjZdJagOMqb3fF46flc8k2E7THTm9Sz4L7RY1WdABMuurpICLFE3oHcGdapOb9\n' + + 'T53pQR+xpHW9atkcf3pf7gbO0rlKVSIoUenBlZipUlp1VZl/OD/E+TtRhDDNdI2J\n' + + 'P/DSMM3aEsq6ZQkfbz/Ilml+Lx3tJYXUDmp+ZjzMPLk/+3beT8EhrwtcG3VPpvwp\n' + + 'BIOqsqVVTvw/CwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw\n' + + 'AwEB/zAdBgNVHQ4EFgQUTgLurD72FchM7Sz1BcGPnIQISYMwHwYDVR0jBBgwFoAU\n' + + 'TgLurD72FchM7Sz1BcGPnIQISYMwDQYJKoZIhvcNAQEFBQADggEBAHZcgIio8pAm\n' + + 'MjHD5cl6wKjXxScXKtXygWH2BoDMYBJF9yfyKO2jEFxYKbHePpnXB1R04zJSWAw5\n' + + '2EUuDI1pSBh9BA82/5PkuNlNeSTB3dXDD2PEPdzVWbSKvUB8ZdooV+2vngL0Zm4r\n' + + '47QPyd18yPHrRIbtBtHR/6CwKevLZ394zgExqhnekYKIqqEX41xsUV0Gm6x4vpjf\n' + + '2u6O/+YE2U+qyyxHE5Wd5oqde0oo9UUpFETJPVb6Q2cEeQib8PBAyi0i6KnF+kIV\n' + + 'A9dY7IHSubtCK/i8wxMVqfd5GtbA8mmpeJFwnDvm9rBEsHybl08qlax9syEwsUYr\n' + + '/40NawZfTUU=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS global root CA 2019 to 2024 + * + * CN = Amazon RDS Root 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-08-22T17:08:50Z/2024-08-22T17:08:50Z + * F = D4:0D:DB:29:E3:75:0D:FF:A6:71:C3:14:0B:BF:5F:47:8D:1C:80:96 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBjCCAu6gAwIBAgIJAMc0ZzaSUK51MA0GCSqGSIb3DQEBCwUAMIGPMQswCQYD\n' + + 'VQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n' + + 'MCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\n' + + 'em9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkw\n' + + 'ODIyMTcwODUwWhcNMjQwODIyMTcwODUwWjCBjzELMAkGA1UEBhMCVVMxEDAOBgNV\n' + + 'BAcMB1NlYXR0bGUxEzARBgNVBAgMCldhc2hpbmd0b24xIjAgBgNVBAoMGUFtYXpv\n' + + 'biBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxIDAeBgNV\n' + + 'BAMMF0FtYXpvbiBSRFMgUm9vdCAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC\n' + + 'AQ8AMIIBCgKCAQEArXnF/E6/Qh+ku3hQTSKPMhQQlCpoWvnIthzX6MK3p5a0eXKZ\n' + + 'oWIjYcNNG6UwJjp4fUXl6glp53Jobn+tWNX88dNH2n8DVbppSwScVE2LpuL+94vY\n' + + '0EYE/XxN7svKea8YvlrqkUBKyxLxTjh+U/KrGOaHxz9v0l6ZNlDbuaZw3qIWdD/I\n' + + '6aNbGeRUVtpM6P+bWIoxVl/caQylQS6CEYUk+CpVyJSkopwJlzXT07tMoDL5WgX9\n' + + 'O08KVgDNz9qP/IGtAcRduRcNioH3E9v981QO1zt/Gpb2f8NqAjUUCUZzOnij6mx9\n' + + 'McZ+9cWX88CRzR0vQODWuZscgI08NvM69Fn2SQIDAQABo2MwYTAOBgNVHQ8BAf8E\n' + + 'BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUc19g2LzLA5j0Kxc0LjZa\n' + + 'pmD/vB8wHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJKoZIhvcN\n' + + 'AQELBQADggEBAHAG7WTmyjzPRIM85rVj+fWHsLIvqpw6DObIjMWokpliCeMINZFV\n' + + 'ynfgBKsf1ExwbvJNzYFXW6dihnguDG9VMPpi2up/ctQTN8tm9nDKOy08uNZoofMc\n' + + 'NUZxKCEkVKZv+IL4oHoeayt8egtv3ujJM6V14AstMQ6SwvwvA93EP/Ug2e4WAXHu\n' + + 'cbI1NAbUgVDqp+DRdfvZkgYKryjTWd/0+1fS8X1bBZVWzl7eirNVnHbSH2ZDpNuY\n' + + '0SBd8dj5F6ld3t58ydZbrTHze7JJOd8ijySAp4/kiu9UfZWuTPABzDa/DSdz9Dk/\n' + + 'zPW4CXXvhLmE02TA9/HeCw3KEHIwicNuEfw=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-northeast-1 certificate CA 2015 to 2020 + * + * CN = Amazon RDS ap-northeast-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:06Z/2020-03-05T22:03:06Z + * F = 4B:2D:8A:E0:C1:A3:A9:AF:A7:BB:65:0C:5A:16:8A:39:3C:03:F2:C5 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEATCCAumgAwIBAgIBRDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMDZaFw0y\n' + + 'MDAzMDUyMjAzMDZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n' + + 'UyBhcC1ub3J0aGVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n' + + 'ggEBAMmM2B4PfTXCZjbZMWiDPyxvk/eeNwIRJAhfzesiGUiLozX6CRy3rwC1ZOPV\n' + + 'AcQf0LB+O8wY88C/cV+d4Q2nBDmnk+Vx7o2MyMh343r5rR3Na+4izd89tkQVt0WW\n' + + 'vO21KRH5i8EuBjinboOwAwu6IJ+HyiQiM0VjgjrmEr/YzFPL8MgHD/YUHehqjACn\n' + + 'C0+B7/gu7W4qJzBL2DOf7ub2qszGtwPE+qQzkCRDwE1A4AJmVE++/FLH2Zx78Egg\n' + + 'fV1sUxPtYgjGH76VyyO6GNKM6rAUMD/q5mnPASQVIXgKbupr618bnH+SWHFjBqZq\n' + + 'HvDGPMtiiWII41EmGUypyt5AbysCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n' + + 'A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIiKM0Q6n1K4EmLxs3ZXxINbwEwR\n' + + 'MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n' + + 'A4IBAQBezGbE9Rw/k2e25iGjj5n8r+M3dlye8ORfCE/dijHtxqAKasXHgKX8I9Tw\n' + + 'JkBiGWiuzqn7gO5MJ0nMMro1+gq29qjZnYX1pDHPgsRjUX8R+juRhgJ3JSHijRbf\n' + + '4qNJrnwga7pj94MhcLq9u0f6dxH6dXbyMv21T4TZMTmcFduf1KgaiVx1PEyJjC6r\n' + + 'M+Ru+A0eM+jJ7uCjUoZKcpX8xkj4nmSnz9NMPog3wdOSB9cAW7XIc5mHa656wr7I\n' + + 'WJxVcYNHTXIjCcng2zMKd1aCcl2KSFfy56sRfT7J5Wp69QSr+jq8KM55gw8uqAwi\n' + + 'VPrXn2899T1rcTtFYFP16WXjGuc0\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-northeast-2 certificate CA 2015 to 2020 + * + * CN = Amazon RDS ap-northeast-2 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-11-06T00:05:46Z/2020-03-05T00:05:46Z + * F = 77:D9:33:4E:CE:56:FC:42:7B:29:57:8D:67:59:ED:29:4E:18:CB:6B + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEATCCAumgAwIBAgIBTDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTExMDYwMDA1NDZaFw0y\n' + + 'MDAzMDUwMDA1NDZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n' + + 'UyBhcC1ub3J0aGVhc3QtMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n' + + 'ggEBAKSwd+RVUzTRH0FgnbwoTK8TMm/zMT4+2BvALpAUe6YXbkisg2goycWuuWLg\n' + + 'jOpFBB3GtyvXZnkqi7MkDWUmj1a2kf8l2oLyoaZ+Hm9x/sV+IJzOqPvj1XVUGjP6\n' + + 'yYYnPJmUYqvZeI7fEkIGdFkP2m4/sgsSGsFvpD9FK1bL1Kx2UDpYX0kHTtr18Zm/\n' + + '1oN6irqWALSmXMDydb8hE0FB2A1VFyeKE6PnoDj/Y5cPHwPPdEi6/3gkDkSaOG30\n' + + 'rWeQfL3pOcKqzbHaWTxMphd0DSL/quZ64Nr+Ly65Q5PRcTrtr55ekOUziuqXwk+o\n' + + '9QpACMwcJ7ROqOznZTqTzSFVXFECAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n' + + 'A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFM6Nox/QWbhzWVvzoJ/y0kGpNPK+\n' + + 'MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n' + + 'A4IBAQCTkWBqNvyRf3Y/W21DwFx3oT/AIWrHt0BdGZO34tavummXemTH9LZ/mqv9\n' + + 'aljt6ZuDtf5DEQjdsAwXMsyo03ffnP7doWm8iaF1+Mui77ot0TmTsP/deyGwukvJ\n' + + 'tkxX8bZjDh+EaNauWKr+CYnniNxCQLfFtXYJsfOdVBzK3xNL+Z3ucOQRhr2helWc\n' + + 'CDQgwfhP1+3pRVKqHvWCPC4R3fT7RZHuRmZ38kndv476GxRntejh+ePffif78bFI\n' + + '3rIZCPBGobrrUMycafSbyXteoGca/kA+/IqrAPlk0pWQ4aEL0yTWN2h2dnjoD7oX\n' + + 'byIuL/g9AGRh97+ssn7D6bDRPTbW\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-southeast-1 certificate CA 2015 to 2020 + * + * CN = Amazon RDS ap-southeast-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:19Z/2020-03-05T22:03:19Z + * F = 0E:EC:5D:BD:F9:80:EE:A9:A0:8D:81:AC:37:D9:8D:34:1C:CD:27:D1 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEATCCAumgAwIBAgIBRTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMTlaFw0y\n' + + 'MDAzMDUyMjAzMTlaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n' + + 'UyBhcC1zb3V0aGVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n' + + 'ggEBANaXElmSEYt/UtxHFsARFhSUahTf1KNJzR0Dmay6hqOXQuRVbKRwPd19u5vx\n' + + 'DdF1sLT7D69IK3VDnUiQScaCv2Dpu9foZt+rLx+cpx1qiQd1UHrvqq8xPzQOqCdC\n' + + 'RFStq6yVYZ69yfpfoI67AjclMOjl2Vph3ftVnqP0IgVKZdzeC7fd+umGgR9xY0Qr\n' + + 'Ubhd/lWdsbNvzK3f1TPWcfIKQnpvSt85PIEDJir6/nuJUKMtmJRwTymJf0i+JZ4x\n' + + '7dJa341p2kHKcHMgOPW7nJQklGBA70ytjUV6/qebS3yIugr/28mwReflg3TJzVDl\n' + + 'EOvi6pqbqNbkMuEwGDCmEQIVqgkCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n' + + 'A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAu93/4k5xbWOsgdCdn+/KdiRuit\n' + + 'MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n' + + 'A4IBAQBlcjSyscpPjf5+MgzMuAsCxByqUt+WFspwcMCpwdaBeHOPSQrXNqX2Sk6P\n' + + 'kth6oCivA64trWo8tFMvPYlUA1FYVD5WpN0kCK+P5pD4KHlaDsXhuhClJzp/OP8t\n' + + 'pOyUr5109RHLxqoKB5J5m1XA7rgcFjnMxwBSWFe3/4uMk/+4T53YfCVXuc6QV3i7\n' + + 'I/2LAJwFf//pTtt6fZenYfCsahnr2nvrNRNyAxcfvGZ/4Opn/mJtR6R/AjvQZHiR\n' + + 'bkRNKF2GW0ueK5W4FkZVZVhhX9xh1Aj2Ollb+lbOqADaVj+AT3PoJPZ3MPQHKCXm\n' + + 'xwG0LOLlRr/TfD6li1AfOVTAJXv9\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-southeast-2 certificate CA 2015 to 2020 + * + * CN = Amazon RDS ap-southeast-2 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:24Z/2020-03-05T22:03:24Z + * F = 20:D9:A8:82:23:AB:B9:E5:C5:24:10:D3:4D:0F:3D:B1:31:DF:E5:14 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEATCCAumgAwIBAgIBRjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMjRaFw0y\n' + + 'MDAzMDUyMjAzMjRaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n' + + 'UyBhcC1zb3V0aGVhc3QtMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n' + + 'ggEBAJqBAJutz69hFOh3BtLHZTbwE8eejGGKayn9hu98YMDPzWzGXWCmW+ZYWELA\n' + + 'cY3cNWNF8K4FqKXFr2ssorBYim1UtYFX8yhydT2hMD5zgQ2sCGUpuidijuPA6zaq\n' + + 'Z3tdhVR94f0q8mpwpv2zqR9PcqaGDx2VR1x773FupRPRo7mEW1vC3IptHCQlP/zE\n' + + '7jQiLl28bDIH2567xg7e7E9WnZToRnhlYdTaDaJsHTzi5mwILi4cihSok7Shv/ME\n' + + 'hnukvxeSPUpaVtFaBhfBqq055ePq9I+Ns4KGreTKMhU0O9fkkaBaBmPaFgmeX/XO\n' + + 'n2AX7gMouo3mtv34iDTZ0h6YCGkCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n' + + 'A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIlQnY0KHYWn1jYumSdJYfwj/Nfw\n' + + 'MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n' + + 'A4IBAQA0wVU6/l41cTzHc4azc4CDYY2Wd90DFWiH9C/mw0SgToYfCJ/5Cfi0NT/Y\n' + + 'PRnk3GchychCJgoPA/k9d0//IhYEAIiIDjyFVgjbTkKV3sh4RbdldKVOUB9kumz/\n' + + 'ZpShplsGt3z4QQiVnKfrAgqxWDjR0I0pQKkxXa6Sjkicos9LQxVtJ0XA4ieG1E7z\n' + + 'zJr+6t80wmzxvkInSaWP3xNJK9azVRTrgQZQlvkbpDbExl4mNTG66VD3bAp6t3Wa\n' + + 'B49//uDdfZmPkqqbX+hsxp160OH0rxJppwO3Bh869PkDnaPEd/Pxw7PawC+li0gi\n' + + 'NRV8iCEx85aFxcyOhqn0WZOasxee\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-central-1 certificate CA 2015 to 2020 + * + * CN = Amazon RDS eu-central-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:31Z/2020-03-05T22:03:31Z + * F = 94:B4:DF:B9:6D:7E:F7:C3:B7:BF:51:E9:A6:B7:44:A0:D0:82:11:84 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/zCCAuegAwIBAgIBRzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMzFaFw0y\n' + + 'MDAzMDUyMjAzMzFaMIGSMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEjMCEGA1UEAwwaQW1hem9uIFJE\n' + + 'UyBldS1jZW50cmFsLTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\n' + + 'AQDFtP2dhSLuaPOI4ZrrPWsK4OY9ocQBp3yApH1KJYmI9wpQKZG/KCH2E6Oo7JAw\n' + + 'QORU519r033T+FO2Z7pFPlmz1yrxGXyHpJs8ySx3Yo5S8ncDCdZJCLmtPiq/hahg\n' + + '5/0ffexMFUCQaYicFZsrJ/cStdxUV+tSw2JQLD7UxS9J97LQWUPyyG+ZrjYVTVq+\n' + + 'zudnFmNSe4QoecXMhAFTGJFQXxP7nhSL9Ao5FGgdXy7/JWeWdQIAj8ku6cBDKPa6\n' + + 'Y6kP+ak+In+Lye8z9qsCD/afUozfWjPR2aA4JoIZVF8dNRShIMo8l0XfgfM2q0+n\n' + + 'ApZWZ+BjhIO5XuoUgHS3D2YFAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV\n' + + 'HRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRm4GsWIA/M6q+tK8WGHWDGh2gcyTAf\n' + + 'BgNVHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOC\n' + + 'AQEAHpMmeVQNqcxgfQdbDIi5UIy+E7zZykmtAygN1XQrvga9nXTis4kOTN6g5/+g\n' + + 'HCx7jIXeNJzAbvg8XFqBN84Quqgpl/tQkbpco9Jh1HDs558D5NnZQxNqH5qXQ3Mm\n' + + 'uPgCw0pYcPOa7bhs07i+MdVwPBsX27CFDtsgAIru8HvKxY1oTZrWnyIRo93tt/pk\n' + + 'WuItVMVHjaQZVfTCow0aDUbte6Vlw82KjUFq+n2NMSCJDiDKsDDHT6BJc4AJHIq3\n' + + '/4Z52MSC9KMr0yAaaoWfW/yMEj9LliQauAgwVjArF4q78rxpfKTG9Rfd8U1BZANP\n' + + '7FrFMN0ThjfA1IvmOYcgskY5bQ==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-west-1 certificate CA 2015 to 2020 + * + * CN = Amazon RDS eu-west-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:35Z/2020-03-05T22:03:35Z + * F = 1A:95:F0:43:82:D2:5D:A6:AD:F5:13:27:0B:40:8A:72:D9:92:F3:E0 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBSDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMzVaFw0y\n' + + 'MDAzMDUyMjAzMzVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyBldS13ZXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx\n' + + 'PdbqQ0HKRj79Pmocxvjc+P6i4Ux24kgFIl+ckiir1vzkmesc3a58gjrMlCksEObt\n' + + 'Yihs5IhzEq1ePT0gbfS9GYFp34Uj/MtPwlrfCBWG4d2TcrsKRHr1/EXUYhWqmdrb\n' + + 'RhX8XqoRhVkbF/auzFSBhTzcGGvZpQ2KIaxRcQfcXlMVhj/pxxAjh8U4F350Fb0h\n' + + 'nX1jw4/KvEreBL0Xb2lnlGTkwVxaKGSgXEnOgIyOFdOQc61vdome0+eeZsP4jqeR\n' + + 'TGYJA9izJsRbe2YJxHuazD+548hsPlM3vFzKKEVURCha466rAaYAHy3rKur3HYQx\n' + + 'Yt+SoKcEz9PXuSGj96ejAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBTebg//h2oeXbZjQ4uuoiuLYzuiPDAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n' + + 'TikPaGeZasTPw+4RBemlsyPAjtFFQLo7ddaFdORLgdEysVf8aBqndvbA6MT/v4lj\n' + + 'GtEtUdF59ZcbWOrVm+fBZ2h/jYJ59dYF/xzb09nyRbdMSzB9+mkSsnOMqluq5y8o\n' + + 'DY/PfP2vGhEg/2ZncRC7nlQU1Dm8F4lFWEiQ2fi7O1cW852Vmbq61RIfcYsH/9Ma\n' + + 'kpgk10VZ75b8m3UhmpZ/2uRY+JEHImH5WpcTJ7wNiPNJsciZMznGtrgOnPzYco8L\n' + + 'cDleOASIZifNMQi9PKOJKvi0ITz0B/imr8KBsW0YjZVJ54HMa7W1lwugSM7aMAs+\n' + + 'E3Sd5lS+SHwWaOCHwhOEVA==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS sa-east-1 certificate CA 2015 to 2020 + * + * CN = Amazon RDS sa-east-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:40Z/2020-03-05T22:03:40Z + * F = 32:10:3D:FA:6D:42:F5:35:98:40:15:F4:4C:74:74:27:CB:CE:D4:B5 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBSTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNDBaFw0y\n' + + 'MDAzMDUyMjAzNDBaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyBzYS1lYXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCU\n' + + 'X4OBnQ5xA6TLJAiFEI6l7bUWjoVJBa/VbMdCCSs2i2dOKmqUaXu2ix2zcPILj3lZ\n' + + 'GMk3d/2zvTK/cKhcFrewHUBamTeVHdEmynhMQamqNmkM4ptYzFcvEUw1TGxHT4pV\n' + + 'Q6gSN7+/AJewQvyHexHo8D0+LDN0/Wa9mRm4ixCYH2CyYYJNKaZt9+EZfNu+PPS4\n' + + '8iB0TWH0DgQkbWMBfCRgolLLitAZklZ4dvdlEBS7evN1/7ttBxUK6SvkeeSx3zBl\n' + + 'ww3BlXqc3bvTQL0A+RRysaVyFbvtp9domFaDKZCpMmDFAN/ntx215xmQdrSt+K3F\n' + + 'cXdGQYHx5q410CAclGnbAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBT6iVWnm/uakS+tEX2mzIfw+8JL0zAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n' + + 'FmDD+QuDklXn2EgShwQxV13+txPRuVdOSrutHhoCgMwFWCMtPPtBAKs6KPY7Guvw\n' + + 'DpJoZSehDiOfsgMirjOWjvfkeWSNvKfjWTVneX7pZD9W5WPnsDBvTbCGezm+v87z\n' + + 'b+ZM2ZMo98m/wkMcIEAgdSKilR2fuw8rLkAjhYFfs0A7tDgZ9noKwgHvoE4dsrI0\n' + + 'KZYco6DlP/brASfHTPa2puBLN9McK3v+h0JaSqqm5Ro2Bh56tZkQh8AWy/miuDuK\n' + + '3+hNEVdxosxlkM1TPa1DGj0EzzK0yoeerXuH2HX7LlCrrxf6/wdKnjR12PMrLQ4A\n' + + 'pCqkcWw894z6bV9MAvKe6A==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-east-1 certificate CA 2015 to 2020 + * + * CN = Amazon RDS us-east-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T21:54:04Z/2020-03-05T21:54:04Z + * F = 34:47:8A:90:8A:83:AE:45:DC:B6:16:76:D2:35:EC:E9:75:C6:2C:63 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBQzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMTU0MDRaFw0y\n' + + 'MDAzMDUyMTU0MDRaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyB1cy1lYXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDI\n' + + 'UIuwh8NusKHk1SqPXcP7OqxY3S/M2ZyQWD3w7Bfihpyyy/fc1w0/suIpX3kbMhAV\n' + + '2ESwged2/2zSx4pVnjp/493r4luhSqQYzru78TuPt9bhJIJ51WXunZW2SWkisSaf\n' + + 'USYUzVN9ezR/bjXTumSUQaLIouJt3OHLX49s+3NAbUyOI8EdvgBQWD68H1epsC0n\n' + + 'CI5s+pIktyOZ59c4DCDLQcXErQ+tNbDC++oct1ANd/q8p9URonYwGCGOBy7sbCYq\n' + + '9eVHh1Iy2M+SNXddVOGw5EuruvHoCIQyOz5Lz4zSuZA9dRbrfztNOpezCNYu6NKM\n' + + 'n+hzcvdiyxv77uNm8EaxAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBQSQG3TmMe6Sa3KufaPBa72v4QFDzAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n' + + 'L/mOZfB3187xTmjOHMqN2G2oSKHBKiQLM9uv8+97qT+XR+TVsBT6b3yoPpMAGhHA\n' + + 'Pc7nxAF5gPpuzatx0OTLPcmYucFmfqT/1qA5WlgCnMNtczyNMH97lKFTNV7Njtek\n' + + 'jWEzAEQSyEWrkNpNlC4j6kMYyPzVXQeXUeZTgJ9FNnVZqmvfjip2N22tawMjrCn5\n' + + '7KN/zN65EwY2oO9XsaTwwWmBu3NrDdMbzJnbxoWcFWj4RBwanR1XjQOVNhDwmCOl\n' + + '/1Et13b8CPyj69PC8BOVU6cfTSx8WUVy0qvYOKHNY9Bqa5BDnIL3IVmUkeTlM1mt\n' + + 'enRpyBj+Bk9rh/ICdiRKmA==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-west-1 certificate CA 2015 to 2020 + * + * CN = Amazon RDS us-west-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:45Z/2020-03-05T22:03:45Z + * F = EF:94:2F:E3:58:0E:09:D6:79:C2:16:97:91:FB:37:EA:D7:70:A8:4B + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBSjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNDVaFw0y\n' + + 'MDAzMDUyMjAzNDVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyB1cy13ZXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDE\n' + + 'Dhw+uw/ycaiIhhyu2pXFRimq0DlB8cNtIe8hdqndH8TV/TFrljNgR8QdzOgZtZ9C\n' + + 'zzQ2GRpInN/qJF6slEd6wO+6TaDBQkPY+07TXNt52POFUhdVkhJXHpE2BS7Xn6J7\n' + + '7RFAOeG1IZmc2DDt+sR1BgXzUqHslQGfFYNS0/MBO4P+ya6W7IhruB1qfa4HiYQS\n' + + 'dbe4MvGWnv0UzwAqdR7OF8+8/5c58YXZIXCO9riYF2ql6KNSL5cyDPcYK5VK0+Q9\n' + + 'VI6vuJHSMYcF7wLePw8jtBktqAFE/wbdZiIHhZvNyiNWPPNTGUmQbaJ+TzQEHDs5\n' + + '8en+/W7JKnPyBOkxxENbAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBS0nw/tFR9bCjgqWTPJkyy4oOD8bzAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n' + + 'CXGAY3feAak6lHdqj6+YWjy6yyUnLK37bRxZDsyDVXrPRQaXRzPTzx79jvDwEb/H\n' + + 'Q/bdQ7zQRWqJcbivQlwhuPJ4kWPUZgSt3JUUuqkMsDzsvj/bwIjlrEFDOdHGh0mi\n' + + 'eVIngFEjUXjMh+5aHPEF9BlQnB8LfVtKj18e15UDTXFa+xJPFxUR7wDzCfo4WI1m\n' + + 'sUMG4q1FkGAZgsoyFPZfF8IVvgCuGdR8z30VWKklFxttlK0eGLlPAyIO0CQxPQlo\n' + + 'saNJrHf4tLOgZIWk+LpDhNd9Et5EzvJ3aURUsKY4pISPPF5WdvM9OE59bERwUErd\n' + + 'nuOuQWQeeadMceZnauRzJQ==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-west-2 certificate CA 2015 to 2020 + * + * CN = Amazon RDS us-west-2 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2015-02-05T22:03:50Z/2020-03-05T22:03:50Z + * F = 94:2C:A8:B0:23:48:17:F0:CD:2F:19:7F:C1:E0:21:7C:65:79:13:3A + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBSzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNTBaFw0y\n' + + 'MDAzMDUyMjAzNTBaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyB1cy13ZXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM\n' + + 'H58SR48U6jyERC1vYTnub34smf5EQVXyzaTmspWGWGzT31NLNZGSDFaa7yef9kdO\n' + + 'mzJsgebR5tXq6LdwlIoWkKYQ7ycUaadtVKVYdI40QcI3cHn0qLFlg2iBXmWp/B+i\n' + + 'Z34VuVlCh31Uj5WmhaBoz8t/GRqh1V/aCsf3Wc6jCezH3QfuCjBpzxdOOHN6Ie2v\n' + + 'xX09O5qmZTvMoRBAvPkxdaPg/Mi7fxueWTbEVk78kuFbF1jHYw8U1BLILIAhcqlq\n' + + 'x4u8nl73t3O3l/soNUcIwUDK0/S+Kfqhwn9yQyPlhb4Wy3pfnZLJdkyHldktnQav\n' + + '9TB9u7KH5Lk0aAYslMLxAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBT8roM4lRnlFHWMPWRz0zkwFZog1jAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n' + + 'JwrxwgwmPtcdaU7O7WDdYa4hprpOMamI49NDzmE0s10oGrqmLwZygcWU0jT+fJ+Y\n' + + 'pJe1w0CVfKaeLYNsOBVW3X4ZPmffYfWBheZiaiEflq/P6t7/Eg81gaKYnZ/x1Dfa\n' + + 'sUYkzPvCkXe9wEz5zdUTOCptDt89rBR9CstL9vE7WYUgiVVmBJffWbHQLtfjv6OF\n' + + 'NMb0QME981kGRzc2WhgP71YS2hHd1kXtsoYP1yTu4vThSKsoN4bkiHsaC1cRkLoy\n' + + '0fFA4wpB3WloMEvCDaUvvH1LZlBXTNlwi9KtcwD4tDxkkBt4tQczKLGpQ/nF/W9n\n' + + '8YDWk3IIc1sd0bkZqoau2Q==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-south-1 certificate CA 2016 to 2020 + * + * CN = Amazon RDS ap-south-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2016-05-03T21:29:22Z/2020-03-05T21:29:22Z + * F = F3:A3:C2:52:D9:82:20:AC:8C:62:31:2A:8C:AD:5D:7B:1C:31:F1:DD + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/TCCAuWgAwIBAgIBTTANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA1MDMyMTI5MjJaFw0y\n' + + 'MDAzMDUyMTI5MjJaMIGQMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEhMB8GA1UEAwwYQW1hem9uIFJE\n' + + 'UyBhcC1zb3V0aC0xIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n' + + '06eWGLE0TeqL9kyWOLkS8q0fXO97z+xyBV3DKSB2lg2GkgBz3B98MkmkeB0SZy3G\n' + + 'Ce4uCpCPbFKiFEdiUclOlhZsrBuCeaimxLM3Ig2wuenElO/7TqgaYHYUbT3d+VQW\n' + + 'GUbLn5GRZJZe1OAClYdOWm7A1CKpuo+cVV1vxbY2nGUQSJPpVn2sT9gnwvjdE60U\n' + + 'JGYU/RLCTm8zmZBvlWaNIeKDnreIc4rKn6gUnJ2cQn1ryCVleEeyc3xjYDSrjgdn\n' + + 'FLYGcp9mphqVT0byeQMOk0c7RHpxrCSA0V5V6/CreFV2LteK50qcDQzDSM18vWP/\n' + + 'p09FoN8O7QrtOeZJzH/lmwIDAQABo2YwZDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0T\n' + + 'AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU2i83QHuEl/d0keXF+69HNJph7cMwHwYD\n' + + 'VR0jBBgwFoAUTgLurD72FchM7Sz1BcGPnIQISYMwDQYJKoZIhvcNAQELBQADggEB\n' + + 'ACqnH2VjApoDqoSQOky52QBwsGaj+xWYHW5Gm7EvCqvQuhWMkeBuD6YJmMvNyA9G\n' + + 'I2lh6/o+sUk/RIsbYbxPRdhNPTOgDR9zsNRw6qxaHztq/CEC+mxDCLa3O1hHBaDV\n' + + 'BmB3nCZb93BvO0EQSEk7aytKq/f+sjyxqOcs385gintdHGU9uM7gTZHnU9vByJsm\n' + + '/TL07Miq67X0NlhIoo3jAk+xHaeKJdxdKATQp0448P5cY20q4b8aMk1twcNaMvCP\n' + + 'dG4M5doaoUA8OQ/0ukLLae/LBxLeTw04q1/a2SyFaVUX2Twbb1S3xVWwLA8vsyGr\n' + + 'igXx7B5GgP+IHb6DTjPJAi0=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-east-2 certificate CA 2016 to 2020 + * + * CN = Amazon RDS us-east-2 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2016-08-11T19:58:45Z/2020-03-05T19:58:45Z + * F = 9B:78:E3:64:7F:74:BC:B2:52:18:CF:13:C3:62:B8:35:9D:3D:5F:B6 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBTjANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA4MTExOTU4NDVaFw0y\n' + + 'MDAzMDUxOTU4NDVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyB1cy1lYXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp\n' + + 'WnnUX7wM0zzstccX+4iXKJa9GR0a2PpvB1paEX4QRCgfhEdQWDaSqyrWNgdVCKkt\n' + + '1aQkWu5j6VAC2XIG7kKoonm1ZdBVyBLqW5lXNywlaiU9yhJkwo8BR+/OqgE+PLt/\n' + + 'EO1mlN0PQudja/XkExCXTO29TG2j7F/O7hox6vTyHNHc0H88zS21uPuBE+jivViS\n' + + 'yzj/BkyoQ85hnkues3f9R6gCGdc+J51JbZnmgzUkvXjAEuKhAm9JksVOxcOKUYe5\n' + + 'ERhn0U9zjzpfbAITIkul97VVa5IxskFFTHIPJbvRKHJkiF6wTJww/tc9wm+fSCJ1\n' + + '+DbQTGZgkQ3bJrqRN29/AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBSAHQzUYYZbepwKEMvGdHp8wzHnfDAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n' + + 'MbaEzSYZ+aZeTBxf8yi0ta8K4RdwEJsEmP6IhFFQHYUtva2Cynl4Q9tZg3RMsybT\n' + + '9mlnSQQlbN/wqIIXbkrcgFcHoXG9Odm/bDtUwwwDaiEhXVfeQom3G77QHOWMTCGK\n' + + 'qadwuh5msrb17JdXZoXr4PYHDKP7j0ONfAyFNER2+uecblHfRSpVq5UeF3L6ZJb8\n' + + 'fSw/GtAV6an+/0r+Qm+PiI2H5XuZ4GmRJYnGMhqWhBYrY7p3jtVnKcsh39wgfUnW\n' + + 'AvZEZG/yhFyAZW0Essa39LiL5VSq14Y1DOj0wgnhSY/9WHxaAo1HB1T9OeZknYbD\n' + + 'fl/EGSZ0TEvZkENrXcPlVA==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ca-central-1 certificate CA 2016 to 2020 + * + * CN = Amazon RDS ca-central-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2016-09-15T00:10:11Z/2020-03-05T00:10:11Z + * F = D7:E0:16:AB:8A:0B:63:9F:67:1F:16:87:42:F4:0A:EE:73:A6:FC:04 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/zCCAuegAwIBAgIBTzANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA5MTUwMDEwMTFaFw0y\n' + + 'MDAzMDUwMDEwMTFaMIGSMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEjMCEGA1UEAwwaQW1hem9uIFJE\n' + + 'UyBjYS1jZW50cmFsLTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\n' + + 'AQCZYI/iQ6DrS3ny3t1EwX1wAD+3LMgh7Fd01EW5LIuaK2kYIIQpsVKhxLCit/V5\n' + + 'AGc/1qiJS1Qz9ODLTh0Na6bZW6EakRzuHJLe32KJtoFYPC7Z09UqzXrpA/XL+1hM\n' + + 'P0ZmCWsU7Nn/EmvfBp9zX3dZp6P6ATrvDuYaVFr+SA7aT3FXpBroqBS1fyzUPs+W\n' + + 'c6zTR6+yc4zkHX0XQxC5RH6xjgpeRkoOajA/sNo7AQF7KlWmKHbdVF44cvvAhRKZ\n' + + 'XaoVs/C4GjkaAEPTCbopYdhzg+KLx9eB2BQnYLRrIOQZtRfbQI2Nbj7p3VsRuOW1\n' + + 'tlcks2w1Gb0YC6w6SuIMFkl1AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV\n' + + 'HRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBToYWxE1lawl6Ks6NsvpbHQ3GKEtzAf\n' + + 'BgNVHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOC\n' + + 'AQEAG/8tQ0ooi3hoQpa5EJz0/E5VYBsAz3YxA2HoIonn0jJyG16bzB4yZt4vNQMA\n' + + 'KsNlQ1uwDWYL1nz63axieUUFIxqxl1KmwfhsmLgZ0Hd2mnTPIl2Hw3uj5+wdgGBg\n' + + 'agnAZ0bajsBYgD2VGQbqjdk2Qn7Fjy3LEWIvGZx4KyZ99OJ2QxB7JOPdauURAtWA\n' + + 'DKYkP4LLJxtj07DSzG8kuRWb9B47uqUD+eKDIyjfjbnzGtd9HqqzYFau7EX3HVD9\n' + + '9Qhnjl7bTZ6YfAEZ3nH2t3Vc0z76XfGh47rd0pNRhMV+xpok75asKf/lNh5mcUrr\n' + + 'VKwflyMkQpSbDCmcdJ90N2xEXQ==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-west-2 certificate CA 2016 to 2020 + * + * CN = Amazon RDS eu-west-2 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2016-10-10T17:44:42Z/2020-03-05T17:44:42Z + * F = 47:79:51:9F:FF:07:D3:F4:27:D3:AB:64:56:7F:00:45:BB:84:C1:71 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBUDANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjEwMTAxNzQ0NDJaFw0y\n' + + 'MDAzMDUxNzQ0NDJaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyBldS13ZXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDO\n' + + 'cttLJfubB4XMMIGWNfJISkIdCMGJyOzLiMJaiWB5GYoXKhEl7YGotpy0qklwW3BQ\n' + + 'a0fmVdcCLX+dIuVQ9iFK+ZcK7zwm7HtdDTCHOCKeOh2IcnU4c/VIokFi6Gn8udM6\n' + + 'N/Zi5M5OGpVwLVALQU7Yctsn3c95el6MdVx6mJiIPVu7tCVZn88Z2koBQ2gq9P4O\n' + + 'Sb249SHFqOb03lYDsaqy1NDsznEOhaRBw7DPJFpvmw1lA3/Y6qrExRI06H2VYR2i\n' + + '7qxwDV50N58fs10n7Ye1IOxTVJsgEA7X6EkRRXqYaM39Z76R894548WHfwXWjUsi\n' + + 'MEX0RS0/t1GmnUQjvevDAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBQBxmcuRSxERYCtNnSr5xNfySokHjAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n' + + 'UyCUQjsF3nUAABjfEZmpksTuUo07aT3KGYt+EMMFdejnBQ0+2lJJFGtT+CDAk1SD\n' + + 'RSgfEBon5vvKEtlnTf9a3pv8WXOAkhfxnryr9FH6NiB8obISHNQNPHn0ljT2/T+I\n' + + 'Y6ytfRvKHa0cu3V0NXbJm2B4KEOt4QCDiFxUIX9z6eB4Kditwu05OgQh6KcogOiP\n' + + 'JesWxBMXXGoDC1rIYTFO7szwDyOHlCcVXJDNsTJhc32oDWYdeIbW7o/5I+aQsrXZ\n' + + 'C96HykZcgWzz6sElrQxUaT3IoMw/5nmw4uWKKnZnxgI9bY4fpQwMeBZ96iHfFxvH\n' + + 'mqfEEuC7uUoPofXdBp2ObQ==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-gov-west-1 CA 2017 to 2022 + * + * CN = Amazon RDS us-gov-west-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2017-05-19T22:31:19Z/2022-05-18T12:00:00Z + * F = 77:55:8C:C4:5E:71:1F:1B:57:E3:DA:6E:5B:74:27:12:4E:E8:69:E8 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIECjCCAvKgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZMxCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSQwIgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwHhcNMTcwNTE5\n' + + 'MjIzMTE5WhcNMjIwNTE4MTIwMDAwWjCBkzELMAkGA1UEBhMCVVMxEzARBgNVBAgM\n' + + 'Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBX\n' + + 'ZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJDAiBgNVBAMM\n' + + 'G0FtYXpvbiBSRFMgdXMtZ292LXdlc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n' + + 'ggEPADCCAQoCggEBAM8YZLKAzzOdNnoi7Klih26Zkj+OCpDfwx4ZYB6f8L8UoQi5\n' + + '8z9ZtIwMjiJ/kO08P1yl4gfc7YZcNFvhGruQZNat3YNpxwUpQcr4mszjuffbL4uz\n' + + '+/8FBxALdqCVOJ5Q0EVSfz3d9Bd1pUPL7ARtSpy7bn/tUPyQeI+lODYO906C0TQ3\n' + + 'b9bjOsgAdBKkHfjLdsknsOZYYIzYWOJyFJJa0B11XjDUNBy/3IuC0KvDl6At0V5b\n' + + '8M6cWcKhte2hgjwTYepV+/GTadeube1z5z6mWsN5arOAQUtYDLH6Aztq9mCJzLHm\n' + + 'RccBugnGl3fRLJ2VjioN8PoGoN9l9hFBy5fnFgsCAwEAAaNmMGQwDgYDVR0PAQH/\n' + + 'BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEG7+br8KkvwPd5g\n' + + '71Rvh2stclJbMB8GA1UdIwQYMBaAFEkQz6S4NS5lOYKcDjBSuCcVpdzjMA0GCSqG\n' + + 'SIb3DQEBCwUAA4IBAQBMA327u5ABmhX+aPxljoIbxnydmAFWxW6wNp5+rZrvPig8\n' + + 'zDRqGQWWr7wWOIjfcWugSElYtf/m9KZHG/Z6+NG7nAoUrdcd1h/IQhb+lFQ2b5g9\n' + + 'sVzQv/H2JNkfZA8fL/Ko/Tm/f9tcqe0zrGCtT+5u0Nvz35Wl8CEUKLloS5xEb3k5\n' + + '7D9IhG3fsE3vHWlWrGCk1cKry3j12wdPG5cUsug0vt34u6rdhP+FsM0tHI15Kjch\n' + + 'RuUCvyQecy2ZFNAa3jmd5ycNdL63RWe8oayRBpQBxPPCbHfILxGZEdJbCH9aJ2D/\n' + + 'l8oHIDnvOLdv7/cBjyYuvmprgPtu3QEkbre5Hln/\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-west-3 certificate CA 2017 to 2020 + * + * CN = Amazon RDS eu-west-3 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2017-08-25T21:39:26Z/2020-03-05T21:39:26Z + * F = FD:35:A7:84:60:68:98:00:12:54:ED:34:26:8C:66:0F:72:DD:B2:F4 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIID/DCCAuSgAwIBAgIBUTANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzA4MjUyMTM5MjZaFw0y\n' + + 'MDAzMDUyMTM5MjZaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n' + + 'UyBldS13ZXN0LTMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+\n' + + 'xmlEC/3a4cJH+UPwXCE02lC7Zq5NHd0dn6peMeLN8agb6jW4VfSY0NydjRj2DJZ8\n' + + 'K7wV6sub5NUGT1NuFmvSmdbNR2T59KX0p2dVvxmXHHtIpQ9Y8Aq3ZfhmC5q5Bqgw\n' + + 'tMA1xayDi7HmoPX3R8kk9ktAZQf6lDeksCvok8idjTu9tiSpDiMwds5BjMsWfyjZ\n' + + 'd13PTGGNHYVdP692BSyXzSP1Vj84nJKnciW8tAqwIiadreJt5oXyrCXi8ekUMs80\n' + + 'cUTuGm3aA3Q7PB5ljJMPqz0eVddaiIvmTJ9O3Ez3Du/HpImyMzXjkFaf+oNXf/Hx\n' + + '/EW5jCRR6vEiXJcDRDS7AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n' + + 'Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBRZ9mRtS5fHk3ZKhG20Oack4cAqMTAfBgNV\n' + + 'HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n' + + 'F/u/9L6ExQwD73F/bhCw7PWcwwqsK1mypIdrjdIsu0JSgwWwGCXmrIspA3n3Dqxq\n' + + 'sMhAJD88s9Em7337t+naar2VyLO63MGwjj+vA4mtvQRKq8ScIpiEc7xN6g8HUMsd\n' + + 'gPG9lBGfNjuAZsrGJflrko4HyuSM7zHExMjXLH+CXcv/m3lWOZwnIvlVMa4x0Tz0\n' + + 'A4fklaawryngzeEjuW6zOiYCzjZtPlP8Fw0SpzppJ8VpQfrZ751RDo4yudmPqoPK\n' + + '5EUe36L8U+oYBXnC5TlYs9bpVv9o5wJQI5qA9oQE2eFWxF1E0AyZ4V5sgGUBStaX\n' + + 'BjDDWul0wSo7rt1Tq7XpnA==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-northeast-3 certificate CA 2017 to 2020 + * + * CN = Amazon RDS ap-northeast-3 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2017-12-01T00:55:42Z/2020-03-05T00:55:42Z + * F = C0:C7:D4:B3:91:40:A0:77:43:28:BF:AF:77:57:DF:FD:98:FB:10:3F + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEATCCAumgAwIBAgIBTjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n' + + 'EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzEyMDEwMDU1NDJaFw0y\n' + + 'MDAzMDUwMDU1NDJaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n' + + 'bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n' + + 'cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n' + + 'UyBhcC1ub3J0aGVhc3QtMyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n' + + 'ggEBAMZtQNnm/XT19mTa10ftHLzg5UhajoI65JHv4TQNdGXdsv+CQdGYU49BJ9Eu\n' + + '3bYgiEtTzR2lQe9zGMvtuJobLhOWuavzp7IixoIQcHkFHN6wJ1CvqrxgvJfBq6Hy\n' + + 'EuCDCiU+PPDLUNA6XM6Qx3IpHd1wrJkjRB80dhmMSpxmRmx849uFafhN+P1QybsM\n' + + 'TI0o48VON2+vj+mNuQTyLMMP8D4odSQHjaoG+zyJfJGZeAyqQyoOUOFEyQaHC3TT\n' + + '3IDSNCQlpxb9LerbCoKu79WFBBq3CS5cYpg8/fsnV2CniRBFFUumBt5z4dhw9RJU\n' + + 'qlUXXO1ZyzpGd+c5v6FtrfXtnIUCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n' + + 'A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFETv7ELNplYy/xTeIOInl6nzeiHg\n' + + 'MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n' + + 'A4IBAQCpKxOQcd0tEKb3OtsOY8q/MPwTyustGk2Rt7t9G68idADp8IytB7M0SDRo\n' + + 'wWZqynEq7orQVKdVOanhEWksNDzGp0+FPAf/KpVvdYCd7ru3+iI+V4ZEp2JFdjuZ\n' + + 'Zz0PIjS6AgsZqE5Ri1J+NmfmjGZCPhsHnGZiBaenX6K5VRwwwmLN6xtoqrrfR5zL\n' + + 'QfBeeZNJG6KiM3R/DxJ5rAa6Fz+acrhJ60L7HprhB7SFtj1RCijau3+ZwiGmUOMr\n' + + 'yKlMv+VgmzSw7o4Hbxy1WVrA6zQsTHHSGf+vkQn2PHvnFMUEu/ZLbTDYFNmTLK91\n' + + 'K6o4nMsEvhBKgo4z7H1EqqxXhvN2\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS GovCloud Root CA 2017 to 2022 + * + * CN = Amazon RDS GovCloud Root CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2017-05-19T22:29:11Z/2022-05-18T22:29:11Z + * F = A3:61:F9:C9:A2:5B:91:FE:73:A6:52:E3:59:14:8E:CE:35:12:0F:FD + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEDjCCAvagAwIBAgIJAMM61RQn3/kdMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYD\n' + + 'VQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n' + + 'MCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\n' + + 'em9uIFJEUzEkMCIGA1UEAwwbQW1hem9uIFJEUyBHb3ZDbG91ZCBSb290IENBMB4X\n' + + 'DTE3MDUxOTIyMjkxMVoXDTIyMDUxODIyMjkxMVowgZMxCzAJBgNVBAYTAlVTMRAw\n' + + 'DgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQKDBlB\n' + + 'bWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMSQw\n' + + 'IgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwggEiMA0GCSqGSIb3\n' + + 'DQEBAQUAA4IBDwAwggEKAoIBAQDGS9bh1FGiJPT+GRb3C5aKypJVDC1H2gbh6n3u\n' + + 'j8cUiyMXfmm+ak402zdLpSYMaxiQ7oL/B3wEmumIpRDAsQrSp3B/qEeY7ipQGOfh\n' + + 'q2TXjXGIUjiJ/FaoGqkymHRLG+XkNNBtb7MRItsjlMVNELXECwSiMa3nJL2/YyHW\n' + + 'nTr1+11/weeZEKgVbCUrOugFkMXnfZIBSn40j6EnRlO2u/NFU5ksK5ak2+j8raZ7\n' + + 'xW7VXp9S1Tgf1IsWHjGZZZguwCkkh1tHOlHC9gVA3p63WecjrIzcrR/V27atul4m\n' + + 'tn56s5NwFvYPUIx1dbC8IajLUrepVm6XOwdQCfd02DmOyjWJAgMBAAGjYzBhMA4G\n' + + 'A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRJEM+kuDUu\n' + + 'ZTmCnA4wUrgnFaXc4zAfBgNVHSMEGDAWgBRJEM+kuDUuZTmCnA4wUrgnFaXc4zAN\n' + + 'BgkqhkiG9w0BAQsFAAOCAQEAcfA7uirXsNZyI2j4AJFVtOTKOZlQwqbyNducnmlg\n' + + '/5nug9fAkwM4AgvF5bBOD1Hw6khdsccMwIj+1S7wpL+EYb/nSc8G0qe1p/9lZ/mZ\n' + + 'ff5g4JOa26lLuCrZDqAk4TzYnt6sQKfa5ZXVUUn0BK3okhiXS0i+NloMyaBCL7vk\n' + + 'kDwkHwEqflRKfZ9/oFTcCfoiHPA7AdBtaPVr0/Kj9L7k+ouz122huqG5KqX0Zpo8\n' + + 'S0IGvcd2FZjNSNPttNAK7YuBVsZ0m2nIH1SLp//00v7yAHIgytQwwB17PBcp4NXD\n' + + 'pCfTa27ng9mMMC2YLqWQpW4TkqjDin2ZC+5X/mbrjzTvVg==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-east-1 certificate CA 2019 to 2022 + * + * CN = Amazon RDS ap-east-1 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-02-17T02:47:00Z/2022-06-01T12:00:00Z + * F = BC:F8:70:75:1F:93:3F:A7:82:86:67:63:A8:86:1F:A4:E8:07:CE:06 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSUwIwYDVQQDDBxBbWF6b24gUkRTIGFwLWVhc3QtMSBSb290IENBMB4XDTE5MDIx\n' + + 'NzAyNDcwMFoXDTIyMDYwMTEyMDAwMFowgY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI\n' + + 'DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMSIwIAYDVQQKDBlBbWF6b24g\n' + + 'V2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMSAwHgYDVQQD\n' + + 'DBdBbWF6b24gUkRTIGFwLWVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n' + + 'ADCCAQoCggEBAOcJAUofyJuBuPr5ISHi/Ha5ed8h3eGdzn4MBp6rytPOg9NVGRQs\n' + + 'O93fNGCIKsUT6gPuk+1f1ncMTV8Y0Fdf4aqGWme+Khm3ZOP3V1IiGnVq0U2xiOmn\n' + + 'SQ4Q7LoeQC4lC6zpoCHVJyDjZ4pAknQQfsXb77Togdt/tK5ahev0D+Q3gCwAoBoO\n' + + 'DHKJ6t820qPi63AeGbJrsfNjLKiXlFPDUj4BGir4dUzjEeH7/hx37na1XG/3EcxP\n' + + '399cT5k7sY/CR9kctMlUyEEUNQOmhi/ly1Lgtihm3QfjL6K9aGLFNwX35Bkh9aL2\n' + + 'F058u+n8DP/dPeKUAcJKiQZUmzuen5n57x8CAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n' + + 'AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFlqgF4FQlb9yP6c+Q3E\n' + + 'O3tXv+zOMB8GA1UdIwQYMBaAFK9T6sY/PBZVbnHcNcQXf58P4OuPMA0GCSqGSIb3\n' + + 'DQEBCwUAA4IBAQDeXiS3v1z4jWAo1UvVyKDeHjtrtEH1Rida1eOXauFuEQa5tuOk\n' + + 'E53Os4haZCW4mOlKjigWs4LN+uLIAe1aFXGo92nGIqyJISHJ1L+bopx/JmIbHMCZ\n' + + '0lTNJfR12yBma5VQy7vzeFku/SisKwX0Lov1oHD4MVhJoHbUJYkmAjxorcIHORvh\n' + + 'I3Vj5XrgDWtLDPL8/Id/roul/L+WX5ir+PGScKBfQIIN2lWdZoqdsx8YWqhm/ikL\n' + + 'C6qNieSwcvWL7C03ri0DefTQMY54r5wP33QU5hJ71JoaZI3YTeT0Nf+NRL4hM++w\n' + + 'Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-northeast-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS ap-northeast-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-18T16:56:20Z/2024-08-22T17:08:50Z + * F = 47:A3:F9:20:64:5C:9F:9D:48:8C:7D:E6:0B:86:D6:05:13:00:16:A1 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEDDCCAvSgAwIBAgICcEUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTgxNjU2\n' + + 'MjBaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n' + + 'em9uIFJEUyBhcC1ub3J0aGVhc3QtMSAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n' + + 'AAOCAQ8AMIIBCgKCAQEAndtkldmHtk4TVQAyqhAvtEHSMb6pLhyKrIFved1WO3S7\n' + + '+I+bWwv9b2W/ljJxLq9kdT43bhvzonNtI4a1LAohS6bqyirmk8sFfsWT3akb+4Sx\n' + + '1sjc8Ovc9eqIWJCrUiSvv7+cS7ZTA9AgM1PxvHcsqrcUXiK3Jd/Dax9jdZE1e15s\n' + + 'BEhb2OEPE+tClFZ+soj8h8Pl2Clo5OAppEzYI4LmFKtp1X/BOf62k4jviXuCSst3\n' + + 'UnRJzE/CXtjmN6oZySVWSe0rQYuyqRl6//9nK40cfGKyxVnimB8XrrcxUN743Vud\n' + + 'QQVU0Esm8OVTX013mXWQXJHP2c0aKkog8LOga0vobQIDAQABo2YwZDAOBgNVHQ8B\n' + + 'Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQULmoOS1mFSjj+\n' + + 'snUPx4DgS3SkLFYwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n' + + 'KoZIhvcNAQELBQADggEBAAkVL2P1M2/G9GM3DANVAqYOwmX0Xk58YBHQu6iiQg4j\n' + + 'b4Ky/qsZIsgT7YBsZA4AOcPKQFgGTWhe9pvhmXqoN3RYltN8Vn7TbUm/ZVDoMsrM\n' + + 'gwv0+TKxW1/u7s8cXYfHPiTzVSJuOogHx99kBW6b2f99GbP7O1Sv3sLq4j6lVvBX\n' + + 'Fiacf5LAWC925nvlTzLlBgIc3O9xDtFeAGtZcEtxZJ4fnGXiqEnN4539+nqzIyYq\n' + + 'nvlgCzyvcfRAxwltrJHuuRu6Maw5AGcd2Y0saMhqOVq9KYKFKuD/927BTrbd2JVf\n' + + '2sGWyuPZPCk3gq+5pCjbD0c6DkhcMGI6WwxvM5V/zSM=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-northeast-2 certificate CA 2019 to 2024 + * + * CN = Amazon RDS ap-northeast-2 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-10T17:46:21Z/2024-08-22T17:08:50Z + * F = 8E:1C:70:C1:64:BD:FC:F9:93:9B:A2:67:CA:CF:52:F0:E1:F7:B4:F0 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEDDCCAvSgAwIBAgICOFAwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTAxNzQ2\n' + + 'MjFaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n' + + 'em9uIFJEUyBhcC1ub3J0aGVhc3QtMiAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n' + + 'AAOCAQ8AMIIBCgKCAQEAzU72e6XbaJbi4HjJoRNjKxzUEuChKQIt7k3CWzNnmjc5\n' + + '8I1MjCpa2W1iw1BYVysXSNSsLOtUsfvBZxi/1uyMn5ZCaf9aeoA9UsSkFSZBjOCN\n' + + 'DpKPCmfV1zcEOvJz26+1m8WDg+8Oa60QV0ou2AU1tYcw98fOQjcAES0JXXB80P2s\n' + + '3UfkNcnDz+l4k7j4SllhFPhH6BQ4lD2NiFAP4HwoG6FeJUn45EPjzrydxjq6v5Fc\n' + + 'cQ8rGuHADVXotDbEhaYhNjIrsPL+puhjWfhJjheEw8c4whRZNp6gJ/b6WEes/ZhZ\n' + + 'h32DwsDsZw0BfRDUMgUn8TdecNexHUw8vQWeC181hwIDAQABo2YwZDAOBgNVHQ8B\n' + + 'Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUwW9bWgkWkr0U\n' + + 'lrOsq2kvIdrECDgwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n' + + 'KoZIhvcNAQELBQADggEBAEugF0Gj7HVhX0ehPZoGRYRt3PBuI2YjfrrJRTZ9X5wc\n' + + '9T8oHmw07mHmNy1qqWvooNJg09bDGfB0k5goC2emDiIiGfc/kvMLI7u+eQOoMKj6\n' + + 'mkfCncyRN3ty08Po45vTLBFZGUvtQmjM6yKewc4sXiASSBmQUpsMbiHRCL72M5qV\n' + + 'obcJOjGcIdDTmV1BHdWT+XcjynsGjUqOvQWWhhLPrn4jWe6Xuxll75qlrpn3IrIx\n' + + 'CRBv/5r7qbcQJPOgwQsyK4kv9Ly8g7YT1/vYBlR3cRsYQjccw5ceWUj2DrMVWhJ4\n' + + 'prf+E3Aa4vYmLLOUUvKnDQ1k3RGNu56V0tonsQbfsaM=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-northeast-3 certificate CA 2019 to 2024 + * + * CN = Amazon RDS ap-northeast-3 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-17T20:05:29Z/2024-08-22T17:08:50Z + * F = D1:08:B1:40:6D:6C:80:8E:F4:C1:2C:8A:1F:66:17:01:54:CD:1A:4E + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEDDCCAvSgAwIBAgICOYIwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTcyMDA1\n' + + 'MjlaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n' + + 'em9uIFJEUyBhcC1ub3J0aGVhc3QtMyAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n' + + 'AAOCAQ8AMIIBCgKCAQEA4dMak8W+XW8y/2F6nRiytFiA4XLwePadqWebGtlIgyCS\n' + + 'kbug8Jv5w7nlMkuxOxoUeD4WhI6A9EkAn3r0REM/2f0aYnd2KPxeqS2MrtdxxHw1\n' + + 'xoOxk2x0piNSlOz6yog1idsKR5Wurf94fvM9FdTrMYPPrDabbGqiBMsZZmoHLvA3\n' + + 'Z+57HEV2tU0Ei3vWeGIqnNjIekS+E06KhASxrkNU5vi611UsnYZlSi0VtJsH4UGV\n' + + 'LhnHl53aZL0YFO5mn/fzuNG/51qgk/6EFMMhaWInXX49Dia9FnnuWXwVwi6uX1Wn\n' + + '7kjoHi5VtmC8ZlGEHroxX2DxEr6bhJTEpcLMnoQMqwIDAQABo2YwZDAOBgNVHQ8B\n' + + 'Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUsUI5Cb3SWB8+\n' + + 'gv1YLN/ABPMdxSAwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n' + + 'KoZIhvcNAQELBQADggEBAJAF3E9PM1uzVL8YNdzb6fwJrxxqI2shvaMVmC1mXS+w\n' + + 'G0zh4v2hBZOf91l1EO0rwFD7+fxoI6hzQfMxIczh875T6vUXePKVOCOKI5wCrDad\n' + + 'zQbVqbFbdhsBjF4aUilOdtw2qjjs9JwPuB0VXN4/jY7m21oKEOcnpe36+7OiSPjN\n' + + 'xngYewCXKrSRqoj3mw+0w/+exYj3Wsush7uFssX18av78G+ehKPIVDXptOCP/N7W\n' + + '8iKVNeQ2QGTnu2fzWsGUSvMGyM7yqT+h1ILaT//yQS8er511aHMLc142bD4D9VSy\n' + + 'DgactwPDTShK/PXqhvNey9v/sKXm4XatZvwcc8KYlW4=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-south-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS ap-south-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-04T17:13:04Z/2024-08-22T17:08:50Z + * F = D6:AD:45:A9:54:36:E4:BA:9C:B7:9B:06:8C:0C:CD:CC:1E:81:B5:00 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIECDCCAvCgAwIBAgICVIYwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MDQxNzEz\n' + + 'MDRaFw0yNDA4MjIxNzA4NTBaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEmMCQGA1UEAwwdQW1h\n' + + 'em9uIFJEUyBhcC1zb3V0aC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n' + + 'DwAwggEKAoIBAQDUYOz1hGL42yUCrcsMSOoU8AeD/3KgZ4q7gP+vAz1WnY9K/kim\n' + + 'eWN/2Qqzlo3+mxSFQFyD4MyV3+CnCPnBl9Sh1G/F6kThNiJ7dEWSWBQGAB6HMDbC\n' + + 'BaAsmUc1UIz8sLTL3fO+S9wYhA63Wun0Fbm/Rn2yk/4WnJAaMZcEtYf6e0KNa0LM\n' + + 'p/kN/70/8cD3iz3dDR8zOZFpHoCtf0ek80QqTich0A9n3JLxR6g6tpwoYviVg89e\n' + + 'qCjQ4axxOkWWeusLeTJCcY6CkVyFvDAKvcUl1ytM5AiaUkXblE7zDFXRM4qMMRdt\n' + + 'lPm8d3pFxh0fRYk8bIKnpmtOpz3RIctDrZZxAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n' + + 'AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT99wKJftD3jb4sHoHG\n' + + 'i3uGlH6W6TAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n' + + '9w0BAQsFAAOCAQEAZ17hhr3dII3hUfuHQ1hPWGrpJOX/G9dLzkprEIcCidkmRYl+\n' + + 'hu1Pe3caRMh/17+qsoEErmnVq5jNY9X1GZL04IZH8YbHc7iRHw3HcWAdhN8633+K\n' + + 'jYEB2LbJ3vluCGnCejq9djDb6alOugdLMJzxOkHDhMZ6/gYbECOot+ph1tQuZXzD\n' + + 'tZ7prRsrcuPBChHlPjmGy8M9z8u+kF196iNSUGC4lM8vLkHM7ycc1/ZOwRq9aaTe\n' + + 'iOghbQQyAEe03MWCyDGtSmDfr0qEk+CHN+6hPiaL8qKt4s+V9P7DeK4iW08ny8Ox\n' + + 'AVS7u0OK/5+jKMAMrKwpYrBydOjTUTHScocyNw==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-southeast-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS ap-southeast-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-13T20:11:42Z/2024-08-22T17:08:50Z + * F = 0D:20:FB:91:DE:BE:D2:CF:F3:F8:F8:43:AF:68:C6:03:76:F3:DD:B8 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEDDCCAvSgAwIBAgICY4kwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTMyMDEx\n' + + 'NDJaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n' + + 'em9uIFJEUyBhcC1zb3V0aGVhc3QtMSAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n' + + 'AAOCAQ8AMIIBCgKCAQEAr5u9OuLL/OF/fBNUX2kINJLzFl4DnmrhnLuSeSnBPgbb\n' + + 'qddjf5EFFJBfv7IYiIWEFPDbDG5hoBwgMup5bZDbas+ZTJTotnnxVJTQ6wlhTmns\n' + + 'eHECcg2pqGIKGrxZfbQhlj08/4nNAPvyYCTS0bEcmQ1emuDPyvJBYDDLDU6AbCB5\n' + + '6Z7YKFQPTiCBblvvNzchjLWF9IpkqiTsPHiEt21sAdABxj9ityStV3ja/W9BfgxH\n' + + 'wzABSTAQT6FbDwmQMo7dcFOPRX+hewQSic2Rn1XYjmNYzgEHisdUsH7eeXREAcTw\n' + + '61TRvaLH8AiOWBnTEJXPAe6wYfrcSd1pD0MXpoB62wIDAQABo2YwZDAOBgNVHQ8B\n' + + 'Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUytwMiomQOgX5\n' + + 'Ichd+2lDWRUhkikwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n' + + 'KoZIhvcNAQELBQADggEBACf6lRDpfCD7BFRqiWM45hqIzffIaysmVfr+Jr+fBTjP\n' + + 'uYe/ba1omSrNGG23bOcT9LJ8hkQJ9d+FxUwYyICQNWOy6ejicm4z0C3VhphbTPqj\n' + + 'yjpt9nG56IAcV8BcRJh4o/2IfLNzC/dVuYJV8wj7XzwlvjysenwdrJCoLadkTr1h\n' + + 'eIdG6Le07sB9IxrGJL9e04afk37h7c8ESGSE4E+oS4JQEi3ATq8ne1B9DQ9SasXi\n' + + 'IRmhNAaISDzOPdyLXi9N9V9Lwe/DHcja7hgLGYx3UqfjhLhOKwp8HtoZORixAmOI\n' + + 'HfILgNmwyugAbuZoCazSKKBhQ0wgO0WZ66ZKTMG8Oho=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ap-southeast-2 certificate CA 2019 to 2024 + * + * CN = Amazon RDS ap-southeast-2 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-16T19:53:47Z/2024-08-22T17:08:50Z + * F = D5:D4:51:83:D9:A3:AC:47:B0:0A:5A:77:D8:A0:79:A9:6A:3F:6D:96 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEDDCCAvSgAwIBAgICEkYwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTYxOTUz\n' + + 'NDdaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n' + + 'em9uIFJEUyBhcC1zb3V0aGVhc3QtMiAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n' + + 'AAOCAQ8AMIIBCgKCAQEAufodI2Flker8q7PXZG0P0vmFSlhQDw907A6eJuF/WeMo\n' + + 'GHnll3b4S6nC3oRS3nGeRMHbyU2KKXDwXNb3Mheu+ox+n5eb/BJ17eoj9HbQR1cd\n' + + 'gEkIciiAltf8gpMMQH4anP7TD+HNFlZnP7ii3geEJB2GGXSxgSWvUzH4etL67Zmn\n' + + 'TpGDWQMB0T8lK2ziLCMF4XAC/8xDELN/buHCNuhDpxpPebhct0T+f6Arzsiswt2j\n' + + '7OeNeLLZwIZvVwAKF7zUFjC6m7/VmTQC8nidVY559D6l0UhhU0Co/txgq3HVsMOH\n' + + 'PbxmQUwJEKAzQXoIi+4uZzHFZrvov/nDTNJUhC6DqwIDAQABo2YwZDAOBgNVHQ8B\n' + + 'Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUwaZpaCme+EiV\n' + + 'M5gcjeHZSTgOn4owHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n' + + 'KoZIhvcNAQELBQADggEBAAR6a2meCZuXO2TF9bGqKGtZmaah4pH2ETcEVUjkvXVz\n' + + 'sl+ZKbYjrun+VkcMGGKLUjS812e7eDF726ptoku9/PZZIxlJB0isC/0OyixI8N4M\n' + + 'NsEyvp52XN9QundTjkl362bomPnHAApeU0mRbMDRR2JdT70u6yAzGLGsUwMkoNnw\n' + + '1VR4XKhXHYGWo7KMvFrZ1KcjWhubxLHxZWXRulPVtGmyWg/MvE6KF+2XMLhojhUL\n' + + '+9jB3Fpn53s6KMx5tVq1x8PukHmowcZuAF8k+W4gk8Y68wIwynrdZrKRyRv6CVtR\n' + + 'FZ8DeJgoNZT3y/GT254VqMxxfuy2Ccb/RInd16tEvVk=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS ca-central-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS ca-central-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-10T20:52:25Z/2024-08-22T17:08:50Z + * F = A1:03:46:F2:BB:29:BF:4F:EC:04:7E:82:9A:A6:C0:11:4D:AB:82:25 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIECjCCAvKgAwIBAgICEzUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTAyMDUy\n' + + 'MjVaFw0yNDA4MjIxNzA4NTBaMIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEoMCYGA1UEAwwfQW1h\n' + + 'em9uIFJEUyBjYS1jZW50cmFsLTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n' + + 'ggEPADCCAQoCggEBAOxHqdcPSA2uBjsCP4DLSlqSoPuQ/X1kkJLusVRKiQE2zayB\n' + + 'viuCBt4VB9Qsh2rW3iYGM+usDjltGnI1iUWA5KHcvHszSMkWAOYWLiMNKTlg6LCp\n' + + 'XnE89tvj5dIH6U8WlDvXLdjB/h30gW9JEX7S8supsBSci2GxEzb5mRdKaDuuF/0O\n' + + 'qvz4YE04pua3iZ9QwmMFuTAOYzD1M72aOpj+7Ac+YLMM61qOtU+AU6MndnQkKoQi\n' + + 'qmUN2A9IFaqHFzRlSdXwKCKUA4otzmz+/N3vFwjb5F4DSsbsrMfjeHMo6o/nb6Nh\n' + + 'YDb0VJxxPee6TxSuN7CQJ2FxMlFUezcoXqwqXD0CAwEAAaNmMGQwDgYDVR0PAQH/\n' + + 'BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDGGpon9WfIpsggE\n' + + 'CxHq8hZ7E2ESMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqG\n' + + 'SIb3DQEBCwUAA4IBAQAvpeQYEGZvoTVLgV9rd2+StPYykMsmFjWQcyn3dBTZRXC2\n' + + 'lKq7QhQczMAOhEaaN29ZprjQzsA2X/UauKzLR2Uyqc2qOeO9/YOl0H3qauo8C/W9\n' + + 'r8xqPbOCDLEXlOQ19fidXyyEPHEq5WFp8j+fTh+s8WOx2M7IuC0ANEetIZURYhSp\n' + + 'xl9XOPRCJxOhj7JdelhpweX0BJDNHeUFi0ClnFOws8oKQ7sQEv66d5ddxqqZ3NVv\n' + + 'RbCvCtEutQMOUMIuaygDlMn1anSM8N7Wndx8G6+Uy67AnhjGx7jw/0YPPxopEj6x\n' + + 'JXP8j0sJbcT9K/9/fPVLNT25RvQ/93T2+IQL4Ca2\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-central-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS eu-central-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-11T19:36:20Z/2024-08-22T17:08:50Z + * F = 53:46:18:4A:42:65:A2:8C:5F:5B:0A:AD:E2:2C:80:E5:E6:8A:6D:2F + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIECjCCAvKgAwIBAgICV2YwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTExOTM2\n' + + 'MjBaFw0yNDA4MjIxNzA4NTBaMIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEoMCYGA1UEAwwfQW1h\n' + + 'em9uIFJEUyBldS1jZW50cmFsLTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n' + + 'ggEPADCCAQoCggEBAMEx54X2pHVv86APA0RWqxxRNmdkhAyp2R1cFWumKQRofoFv\n' + + 'n+SPXdkpIINpMuEIGJANozdiEz7SPsrAf8WHyD93j/ZxrdQftRcIGH41xasetKGl\n' + + 'I67uans8d+pgJgBKGb/Z+B5m+UsIuEVekpvgpwKtmmaLFC/NCGuSsJoFsRqoa6Gh\n' + + 'm34W6yJoY87UatddCqLY4IIXaBFsgK9Q/wYzYLbnWM6ZZvhJ52VMtdhcdzeTHNW0\n' + + '5LGuXJOF7Ahb4JkEhoo6TS2c0NxB4l4MBfBPgti+O7WjR3FfZHpt18A6Zkq6A2u6\n' + + 'D/oTSL6c9/3sAaFTFgMyL3wHb2YlW0BPiljZIqECAwEAAaNmMGQwDgYDVR0PAQH/\n' + + 'BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOcAToAc6skWffJa\n' + + 'TnreaswAfrbcMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqG\n' + + 'SIb3DQEBCwUAA4IBAQA1d0Whc1QtspK496mFWfFEQNegLh0a9GWYlJm+Htcj5Nxt\n' + + 'DAIGXb+8xrtOZFHmYP7VLCT5Zd2C+XytqseK/+s07iAr0/EPF+O2qcyQWMN5KhgE\n' + + 'cXw2SwuP9FPV3i+YAm11PBVeenrmzuk9NrdHQ7TxU4v7VGhcsd2C++0EisrmquWH\n' + + 'mgIfmVDGxphwoES52cY6t3fbnXmTkvENvR+h3rj+fUiSz0aSo+XZUGHPgvuEKM/W\n' + + 'CBD9Smc9CBoBgvy7BgHRgRUmwtABZHFUIEjHI5rIr7ZvYn+6A0O6sogRfvVYtWFc\n' + + 'qpyrW1YX8mD0VlJ8fGKM3G+aCOsiiPKDV/Uafrm+\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-north-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS eu-north-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-12T18:19:44Z/2024-08-22T17:08:50Z + * F = D0:CA:9C:6E:47:4C:4F:DB:85:28:03:4A:60:AC:14:E0:E6:DF:D4:42 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIECDCCAvCgAwIBAgICGAcwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTIxODE5\n' + + 'NDRaFw0yNDA4MjIxNzA4NTBaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEmMCQGA1UEAwwdQW1h\n' + + 'em9uIFJEUyBldS1ub3J0aC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n' + + 'DwAwggEKAoIBAQCiIYnhe4UNBbdBb/nQxl5giM0XoVHWNrYV5nB0YukA98+TPn9v\n' + + 'Aoj1RGYmtryjhrf01Kuv8SWO+Eom95L3zquoTFcE2gmxCfk7bp6qJJ3eHOJB+QUO\n' + + 'XsNRh76fwDzEF1yTeZWH49oeL2xO13EAx4PbZuZpZBttBM5zAxgZkqu4uWQczFEs\n' + + 'JXfla7z2fvWmGcTagX10O5C18XaFroV0ubvSyIi75ue9ykg/nlFAeB7O0Wxae88e\n' + + 'uhiBEFAuLYdqWnsg3459NfV8Yi1GnaitTym6VI3tHKIFiUvkSiy0DAlAGV2iiyJE\n' + + 'q+DsVEO4/hSINJEtII4TMtysOsYPpINqeEzRAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n' + + 'AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRR0UpnbQyjnHChgmOc\n' + + 'hnlc0PogzTAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n' + + '9w0BAQsFAAOCAQEAKJD4xVzSf4zSGTBJrmamo86jl1NHQxXUApAZuBZEc8tqC6TI\n' + + 'T5CeoSr9CMuVC8grYyBjXblC4OsM5NMvmsrXl/u5C9dEwtBFjo8mm53rOOIm1fxl\n' + + 'I1oYB/9mtO9ANWjkykuLzWeBlqDT/i7ckaKwalhLODsRDO73vRhYNjsIUGloNsKe\n' + + 'pxw3dzHwAZx4upSdEVG4RGCZ1D0LJ4Gw40OfD69hfkDfRVVxKGrbEzqxXRvovmDc\n' + + 'tKLdYZO/6REoca36v4BlgIs1CbUXJGLSXUwtg7YXGLSVBJ/U0+22iGJmBSNcoyUN\n' + + 'cjPFD9JQEhDDIYYKSGzIYpvslvGc4T5ISXFiuQ==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-west-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS eu-west-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-11T17:31:48Z/2024-08-22T17:08:50Z + * F = 2D:1A:A6:3E:0D:EB:D6:26:03:3E:A1:8A:0A:DF:14:80:78:EC:B6:63 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBzCCAu+gAwIBAgICYpgwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTExNzMx\n' + + 'NDhaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n' + + 'em9uIFJEUyBldS13ZXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n' + + 'ADCCAQoCggEBAMk3YdSZ64iAYp6MyyKtYJtNzv7zFSnnNf6vv0FB4VnfITTMmOyZ\n' + + 'LXqKAT2ahZ00hXi34ewqJElgU6eUZT/QlzdIu359TEZyLVPwURflL6SWgdG01Q5X\n' + + 'O++7fSGcBRyIeuQWs9FJNIIqK8daF6qw0Rl5TXfu7P9dBc3zkgDXZm2DHmxGDD69\n' + + '7liQUiXzoE1q2Z9cA8+jirDioJxN9av8hQt12pskLQumhlArsMIhjhHRgF03HOh5\n' + + 'tvi+RCfihVOxELyIRTRpTNiIwAqfZxxTWFTgfn+gijTmd0/1DseAe82aYic8JbuS\n' + + 'EMbrDduAWsqrnJ4GPzxHKLXX0JasCUcWyMECAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n' + + 'AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPLtsq1NrwJXO13C9eHt\n' + + 'sLY11AGwMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n' + + 'DQEBCwUAA4IBAQAnWBKj5xV1A1mYd0kIgDdkjCwQkiKF5bjIbGkT3YEFFbXoJlSP\n' + + '0lZZ/hDaOHI8wbLT44SzOvPEEmWF9EE7SJzkvSdQrUAWR9FwDLaU427ALI3ngNHy\n' + + 'lGJ2hse1fvSRNbmg8Sc9GBv8oqNIBPVuw+AJzHTacZ1OkyLZrz1c1QvwvwN2a+Jd\n' + + 'vH0V0YIhv66llKcYDMUQJAQi4+8nbRxXWv6Gq3pvrFoorzsnkr42V3JpbhnYiK+9\n' + + 'nRKd4uWl62KRZjGkfMbmsqZpj2fdSWMY1UGyN1k+kDmCSWYdrTRDP0xjtIocwg+A\n' + + 'J116n4hV/5mbA0BaPiS2krtv17YAeHABZcvz\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-west-2 certificate CA 2019 to 2024 + * + * CN = Amazon RDS eu-west-2 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-12T21:32:32Z/2024-08-22T17:08:50Z + * F = 60:65:44:F4:74:6E:2E:29:50:19:38:7C:4B:BE:18:B9:5B:D4:CD:23 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBzCCAu+gAwIBAgICZIEwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTIyMTMy\n' + + 'MzJaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n' + + 'em9uIFJEUyBldS13ZXN0LTIgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n' + + 'ADCCAQoCggEBALGiwqjiF7xIjT0Sx7zB3764K2T2a1DHnAxEOr+/EIftWKxWzT3u\n' + + 'PFwS2eEZcnKqSdRQ+vRzonLBeNLO4z8aLjQnNbkizZMBuXGm4BqRm1Kgq3nlLDQn\n' + + '7YqdijOq54SpShvR/8zsO4sgMDMmHIYAJJOJqBdaus2smRt0NobIKc0liy7759KB\n' + + '6kmQ47Gg+kfIwxrQA5zlvPLeQImxSoPi9LdbRoKvu7Iot7SOa+jGhVBh3VdqndJX\n' + + '7tm/saj4NE375csmMETFLAOXjat7zViMRwVorX4V6AzEg1vkzxXpA9N7qywWIT5Y\n' + + 'fYaq5M8i6vvLg0CzrH9fHORtnkdjdu1y+0MCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n' + + 'AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFOhOx1yt3Z7mvGB9jBv\n' + + '2ymdZwiOMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n' + + 'DQEBCwUAA4IBAQBehqY36UGDvPVU9+vtaYGr38dBbp+LzkjZzHwKT1XJSSUc2wqM\n' + + 'hnCIQKilonrTIvP1vmkQi8qHPvDRtBZKqvz/AErW/ZwQdZzqYNFd+BmOXaeZWV0Q\n' + + 'oHtDzXmcwtP8aUQpxN0e1xkWb1E80qoy+0uuRqb/50b/R4Q5qqSfJhkn6z8nwB10\n' + + '7RjLtJPrK8igxdpr3tGUzfAOyiPrIDncY7UJaL84GFp7WWAkH0WG3H8Y8DRcRXOU\n' + + 'mqDxDLUP3rNuow3jnGxiUY+gGX5OqaZg4f4P6QzOSmeQYs6nLpH0PiN00+oS1BbD\n' + + 'bpWdZEttILPI+vAYkU4QuBKKDjJL6HbSd+cn\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS eu-west-3 certificate CA 2019 to 2024 + * + * CN = Amazon RDS eu-west-3 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-18T17:03:15Z/2024-08-22T17:08:50Z + * F = 6F:79:56:B0:74:9C:C6:3E:3B:50:26:C8:51:55:08:F0:BB:7E:32:04 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBzCCAu+gAwIBAgICJDQwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTgxNzAz\n' + + 'MTVaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n' + + 'em9uIFJEUyBldS13ZXN0LTMgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n' + + 'ADCCAQoCggEBAL9bL7KE0n02DLVtlZ2PL+g/BuHpMYFq2JnE2RgompGurDIZdjmh\n' + + '1pxfL3nT+QIVMubuAOy8InRfkRxfpxyjKYdfLJTPJG+jDVL+wDcPpACFVqoV7Prg\n' + + 'pVYEV0lc5aoYw4bSeYFhdzgim6F8iyjoPnObjll9mo4XsHzSoqJLCd0QC+VG9Fw2\n' + + 'q+GDRZrLRmVM2oNGDRbGpGIFg77aRxRapFZa8SnUgs2AqzuzKiprVH5i0S0M6dWr\n' + + 'i+kk5epmTtkiDHceX+dP/0R1NcnkCPoQ9TglyXyPdUdTPPRfKCq12dftqll+u4mV\n' + + 'ARdN6WFjovxax8EAP2OAUTi1afY+1JFMj+sCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n' + + 'AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLfhrbrO5exkCVgxW0x3\n' + + 'Y2mAi8lNMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n' + + 'DQEBCwUAA4IBAQAigQ5VBNGyw+OZFXwxeJEAUYaXVoP/qrhTOJ6mCE2DXUVEoJeV\n' + + 'SxScy/TlFA9tJXqmit8JH8VQ/xDL4ubBfeMFAIAo4WzNWDVoeVMqphVEcDWBHsI1\n' + + 'AETWzfsapRS9yQekOMmxg63d/nV8xewIl8aNVTHdHYXMqhhik47VrmaVEok1UQb3\n' + + 'O971RadLXIEbVd9tjY5bMEHm89JsZDnDEw1hQXBb67Elu64OOxoKaHBgUH8AZn/2\n' + + 'zFsL1ynNUjOhCSAA15pgd1vjwc0YsBbAEBPcHBWYBEyME6NLNarjOzBl4FMtATSF\n' + + 'wWCKRGkvqN8oxYhwR2jf2rR5Mu4DWkK5Q8Ep\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS me-south-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS me-south-1 Root CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-05-10T21:48:27Z/2024-05-08T21:48:27Z + * F = 8A:69:D7:00:FB:5D:62:9C:B0:D1:75:6F:B7:B6:38:AA:76:C4:BD:1F + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEEjCCAvqgAwIBAgIJANew34ehz5l8MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYD\n' + + 'VQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n' + + 'MCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\n' + + 'em9uIFJEUzEmMCQGA1UEAwwdQW1hem9uIFJEUyBtZS1zb3V0aC0xIFJvb3QgQ0Ew\n' + + 'HhcNMTkwNTEwMjE0ODI3WhcNMjQwNTA4MjE0ODI3WjCBlTELMAkGA1UEBhMCVVMx\n' + + 'EDAOBgNVBAcMB1NlYXR0bGUxEzARBgNVBAgMCldhc2hpbmd0b24xIjAgBgNVBAoM\n' + + 'GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n' + + 'JjAkBgNVBAMMHUFtYXpvbiBSRFMgbWUtc291dGgtMSBSb290IENBMIIBIjANBgkq\n' + + 'hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp7BYV88MukcY+rq0r79+C8UzkT30fEfT\n' + + 'aPXbx1d6M7uheGN4FMaoYmL+JE1NZPaMRIPTHhFtLSdPccInvenRDIatcXX+jgOk\n' + + 'UA6lnHQ98pwN0pfDUyz/Vph4jBR9LcVkBbe0zdoKKp+HGbMPRU0N2yNrog9gM5O8\n' + + 'gkU/3O2csJ/OFQNnj4c2NQloGMUpEmedwJMOyQQfcUyt9CvZDfIPNnheUS29jGSw\n' + + 'ERpJe/AENu8Pxyc72jaXQuD+FEi2Ck6lBkSlWYQFhTottAeGvVFNCzKszCntrtqd\n' + + 'rdYUwurYsLTXDHv9nW2hfDUQa0mhXf9gNDOBIVAZugR9NqNRNyYLHQIDAQABo2Mw\n' + + 'YTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU54cf\n' + + 'DjgwBx4ycBH8+/r8WXdaiqYwHwYDVR0jBBgwFoAU54cfDjgwBx4ycBH8+/r8WXda\n' + + 'iqYwDQYJKoZIhvcNAQELBQADggEBAIIMTSPx/dR7jlcxggr+O6OyY49Rlap2laKA\n' + + 'eC/XI4ySP3vQkIFlP822U9Kh8a9s46eR0uiwV4AGLabcu0iKYfXjPkIprVCqeXV7\n' + + 'ny9oDtrbflyj7NcGdZLvuzSwgl9SYTJp7PVCZtZutsPYlbJrBPHwFABvAkMvRtDB\n' + + 'hitIg4AESDGPoCl94sYHpfDfjpUDMSrAMDUyO6DyBdZH5ryRMAs3lGtsmkkNUrso\n' + + 'aTW6R05681Z0mvkRdb+cdXtKOSuDZPoe2wJJIaz3IlNQNSrB5TImMYgmt6iAsFhv\n' + + '3vfTSTKrZDNTJn4ybG6pq1zWExoXsktZPylJly6R3RBwV6nwqBM=\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS sa-east-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS sa-east-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-05T18:46:29Z/2024-08-22T17:08:50Z + * F = 8C:34:0F:AA:FB:10:80:9C:05:CE:D7:BF:0B:12:4D:07:42:39:74:7A + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBzCCAu+gAwIBAgICQ2QwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MDUxODQ2\n' + + 'MjlaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n' + + 'em9uIFJEUyBzYS1lYXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n' + + 'ADCCAQoCggEBAMMvR+ReRnOzqJzoaPipNTt1Z2VA968jlN1+SYKUrYM3No+Vpz0H\n' + + 'M6Tn0oYB66ByVsXiGc28ulsqX1HbHsxqDPwvQTKvO7SrmDokoAkjJgLocOLUAeld\n' + + '5AwvUjxGRP6yY90NV7X786MpnYb2Il9DIIaV9HjCmPt+rjy2CZjS0UjPjCKNfB8J\n' + + 'bFjgW6GGscjeyGb/zFwcom5p4j0rLydbNaOr9wOyQrtt3ZQWLYGY9Zees/b8pmcc\n' + + 'Jt+7jstZ2UMV32OO/kIsJ4rMUn2r/uxccPwAc1IDeRSSxOrnFKhW3Cu69iB3bHp7\n' + + 'JbawY12g7zshE4I14sHjv3QoXASoXjx4xgMCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n' + + 'AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI1Fc/Ql2jx+oJPgBVYq\n' + + 'ccgP0pQ8MB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n' + + 'DQEBCwUAA4IBAQB4VVVabVp70myuYuZ3vltQIWqSUMhkaTzehMgGcHjMf9iLoZ/I\n' + + '93KiFUSGnek5cRePyS9wcpp0fcBT3FvkjpUdCjVtdttJgZFhBxgTd8y26ImdDDMR\n' + + '4+BUuhI5msvjL08f+Vkkpu1GQcGmyFVPFOy/UY8iefu+QyUuiBUnUuEDd49Hw0Fn\n' + + '/kIPII6Vj82a2mWV/Q8e+rgN8dIRksRjKI03DEoP8lhPlsOkhdwU6Uz9Vu6NOB2Q\n' + + 'Ls1kbcxAc7cFSyRVJEhh12Sz9d0q/CQSTFsVJKOjSNQBQfVnLz1GwO/IieUEAr4C\n' + + 'jkTntH0r1LX5b/GwN4R887LvjAEdTbg1his7\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-east-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS us-east-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-19T18:16:53Z/2024-08-22T17:08:50Z + * F = F0:ED:82:3E:D1:44:47:BA:B5:57:FD:F3:E4:92:74:66:98:8C:1C:78 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBzCCAu+gAwIBAgICJVUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTkxODE2\n' + + 'NTNaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n' + + 'em9uIFJEUyB1cy1lYXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n' + + 'ADCCAQoCggEBAM3i/k2u6cqbMdcISGRvh+m+L0yaSIoOXjtpNEoIftAipTUYoMhL\n' + + 'InXGlQBVA4shkekxp1N7HXe1Y/iMaPEyb3n+16pf3vdjKl7kaSkIhjdUz3oVUEYt\n' + + 'i8Z/XeJJ9H2aEGuiZh3kHixQcZczn8cg3dA9aeeyLSEnTkl/npzLf//669Ammyhs\n' + + 'XcAo58yvT0D4E0D/EEHf2N7HRX7j/TlyWvw/39SW0usiCrHPKDLxByLojxLdHzso\n' + + 'QIp/S04m+eWn6rmD+uUiRteN1hI5ncQiA3wo4G37mHnUEKo6TtTUh+sd/ku6a8HK\n' + + 'glMBcgqudDI90s1OpuIAWmuWpY//8xEG2YECAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n' + + 'AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPqhoWZcrVY9mU7tuemR\n' + + 'RBnQIj1jMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n' + + 'DQEBCwUAA4IBAQB6zOLZ+YINEs72heHIWlPZ8c6WY8MDU+Be5w1M+BK2kpcVhCUK\n' + + 'PJO4nMXpgamEX8DIiaO7emsunwJzMSvavSPRnxXXTKIc0i/g1EbiDjnYX9d85DkC\n' + + 'E1LaAUCmCZBVi9fIe0H2r9whIh4uLWZA41oMnJx/MOmo3XyMfQoWcqaSFlMqfZM4\n' + + '0rNoB/tdHLNuV4eIdaw2mlHxdWDtF4oH+HFm+2cVBUVC1jXKrFv/euRVtsTT+A6i\n' + + 'h2XBHKxQ1Y4HgAn0jACP2QSPEmuoQEIa57bEKEcZsBR8SDY6ZdTd2HLRIApcCOSF\n' + + 'MRM8CKLeF658I0XgF8D5EsYoKPsA+74Z+jDH\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-east-2 certificate CA 2019 to 2024 + * + * CN = Amazon RDS us-east-2 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-13T17:06:41Z/2024-08-22T17:08:50Z + * F = E9:FE:27:2A:A0:0F:CE:DF:AD:51:03:A6:94:F7:1F:6F:BD:1E:28:D3 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIECDCCAvCgAwIBAgIDAIVCMA0GCSqGSIb3DQEBCwUAMIGPMQswCQYDVQQGEwJV\n' + + 'UzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEiMCAGA1UE\n' + + 'CgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJE\n' + + 'UzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkwOTEzMTcw\n' + + 'NjQxWhcNMjQwODIyMTcwODUwWjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldh\n' + + 'c2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBXZWIg\n' + + 'U2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJTAjBgNVBAMMHEFt\n' + + 'YXpvbiBSRFMgdXMtZWFzdC0yIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n' + + 'DwAwggEKAoIBAQDE+T2xYjUbxOp+pv+gRA3FO24+1zCWgXTDF1DHrh1lsPg5k7ht\n' + + '2KPYzNc+Vg4E+jgPiW0BQnA6jStX5EqVh8BU60zELlxMNvpg4KumniMCZ3krtMUC\n' + + 'au1NF9rM7HBh+O+DYMBLK5eSIVt6lZosOb7bCi3V6wMLA8YqWSWqabkxwN4w0vXI\n' + + '8lu5uXXFRemHnlNf+yA/4YtN4uaAyd0ami9+klwdkZfkrDOaiy59haOeBGL8EB/c\n' + + 'dbJJlguHH5CpCscs3RKtOOjEonXnKXldxarFdkMzi+aIIjQ8GyUOSAXHtQHb3gZ4\n' + + 'nS6Ey0CMlwkB8vUObZU9fnjKJcL5QCQqOfwvAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n' + + 'AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQUPuRHohPxx4VjykmH\n' + + '6usGrLL1ETAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n' + + '9w0BAQsFAAOCAQEAUdR9Vb3y33Yj6X6KGtuthZ08SwjImVQPtknzpajNE5jOJAh8\n' + + 'quvQnU9nlnMO85fVDU1Dz3lLHGJ/YG1pt1Cqq2QQ200JcWCvBRgdvH6MjHoDQpqZ\n' + + 'HvQ3vLgOGqCLNQKFuet9BdpsHzsctKvCVaeBqbGpeCtt3Hh/26tgx0rorPLw90A2\n' + + 'V8QSkZJjlcKkLa58N5CMM8Xz8KLWg3MZeT4DmlUXVCukqK2RGuP2L+aME8dOxqNv\n' + + 'OnOz1zrL5mR2iJoDpk8+VE/eBDmJX40IJk6jBjWoxAO/RXq+vBozuF5YHN1ujE92\n' + + 'tO8HItgTp37XT8bJBAiAnt5mxw+NLSqtxk2QdQ==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-west-1 certificate CA 2019 to 2024 + * + * CN = Amazon RDS us-west-1 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-06T17:40:21Z/2024-08-22T17:08:50Z + * F = 1C:9F:DF:84:E6:13:32:F3:91:12:2D:0D:A5:9A:16:5D:AC:DC:E8:93 + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIECDCCAvCgAwIBAgIDAIkHMA0GCSqGSIb3DQEBCwUAMIGPMQswCQYDVQQGEwJV\n' + + 'UzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEiMCAGA1UE\n' + + 'CgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJE\n' + + 'UzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkwOTA2MTc0\n' + + 'MDIxWhcNMjQwODIyMTcwODUwWjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldh\n' + + 'c2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBXZWIg\n' + + 'U2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJTAjBgNVBAMMHEFt\n' + + 'YXpvbiBSRFMgdXMtd2VzdC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n' + + 'DwAwggEKAoIBAQDD2yzbbAl77OofTghDMEf624OvU0eS9O+lsdO0QlbfUfWa1Kd6\n' + + '0WkgjkLZGfSRxEHMCnrv4UPBSK/Qwn6FTjkDLgemhqBtAnplN4VsoDL+BkRX4Wwq\n' + + '/dSQJE2b+0hm9w9UMVGFDEq1TMotGGTD2B71eh9HEKzKhGzqiNeGsiX4VV+LJzdH\n' + + 'uM23eGisNqmd4iJV0zcAZ+Gbh2zK6fqTOCvXtm7Idccv8vZZnyk1FiWl3NR4WAgK\n' + + 'AkvWTIoFU3Mt7dIXKKClVmvssG8WHCkd3Xcb4FHy/G756UZcq67gMMTX/9fOFM/v\n' + + 'l5C0+CHl33Yig1vIDZd+fXV1KZD84dEJfEvHAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n' + + 'AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR+ap20kO/6A7pPxo3+\n' + + 'T3CfqZpQWjAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n' + + '9w0BAQsFAAOCAQEAHCJky2tPjPttlDM/RIqExupBkNrnSYnOK4kr9xJ3sl8UF2DA\n' + + 'PAnYsjXp3rfcjN/k/FVOhxwzi3cXJF/2Tjj39Bm/OEfYTOJDNYtBwB0VVH4ffa/6\n' + + 'tZl87jaIkrxJcreeeHqYMnIxeN0b/kliyA+a5L2Yb0VPjt9INq34QDc1v74FNZ17\n' + + '4z8nr1nzg4xsOWu0Dbjo966lm4nOYIGBRGOKEkHZRZ4mEiMgr3YLkv8gSmeitx57\n' + + 'Z6dVemNtUic/LVo5Iqw4n3TBS0iF2C1Q1xT/s3h+0SXZlfOWttzSluDvoMv5PvCd\n' + + 'pFjNn+aXLAALoihL1MJSsxydtsLjOBro5eK0Vw==\n' + + '-----END CERTIFICATE-----\n', + + /** + * Amazon RDS us-west-2 certificate CA 2019 to 2024 + * + * CN = Amazon RDS us-west-2 2019 CA + * OU = Amazon RDS + * O = Amazon Web Services, Inc. + * L = Seattle + * ST = Washington + * C = US + * P = 2019-09-16T18:21:15Z/2024-08-22T17:08:50Z + * F = C8:DE:1D:13:AD:35:9B:3D:EA:18:2A:DC:B4:79:6D:22:47:75:3C:4A + */ + '-----BEGIN CERTIFICATE-----\n' + + 'MIIEBzCCAu+gAwIBAgICUYkwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n' + + 'MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n' + + 'DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n' + + 'MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTYxODIx\n' + + 'MTVaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n' + + 'aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n' + + 'ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n' + + 'em9uIFJEUyB1cy13ZXN0LTIgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n' + + 'ADCCAQoCggEBANCEZBZyu6yJQFZBJmSUZfSZd3Ui2gitczMKC4FLr0QzkbxY+cLa\n' + + 'uVONIOrPt4Rwi+3h/UdnUg917xao3S53XDf1TDMFEYp4U8EFPXqCn/GXBIWlU86P\n' + + 'PvBN+gzw3nS+aco7WXb+woTouvFVkk8FGU7J532llW8o/9ydQyDIMtdIkKTuMfho\n' + + 'OiNHSaNc+QXQ32TgvM9A/6q7ksUoNXGCP8hDOkSZ/YOLiI5TcdLh/aWj00ziL5bj\n' + + 'pvytiMZkilnc9dLY9QhRNr0vGqL0xjmWdoEXz9/OwjmCihHqJq+20MJPsvFm7D6a\n' + + '2NKybR9U+ddrjb8/iyLOjURUZnj5O+2+OPcCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n' + + 'AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEBxMBdv81xuzqcK5TVu\n' + + 'pHj+Aor8MB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n' + + 'DQEBCwUAA4IBAQBZkfiVqGoJjBI37aTlLOSjLcjI75L5wBrwO39q+B4cwcmpj58P\n' + + '3sivv+jhYfAGEbQnGRzjuFoyPzWnZ1DesRExX+wrmHsLLQbF2kVjLZhEJMHF9eB7\n' + + 'GZlTPdTzHErcnuXkwA/OqyXMpj9aghcQFuhCNguEfnROY9sAoK2PTfnTz9NJHL+Q\n' + + 'UpDLEJEUfc0GZMVWYhahc0x38ZnSY2SKacIPECQrTI0KpqZv/P+ijCEcMD9xmYEb\n' + + 'jL4en+XKS1uJpw5fIU5Sj0MxhdGstH6S84iAE5J3GM3XHklGSFwwqPYvuTXvANH6\n' + + 'uboynxRgSae59jIlAK6Jrr6GWMwQRbgcaAlW\n' + + '-----END CERTIFICATE-----\n' + ] +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/types.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/types.js" new file mode 100644 index 0000000000000000000000000000000000000000..a33cd502c10deb92fa07065fd0c16721b92d4ded --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/constants/types.js" @@ -0,0 +1,72 @@ +/** + * MySQL type constants + * + * Extracted from version 5.7.29 + * + * !! Generated by generate-type-constants.js, do not modify by hand !! + */ + +exports.DECIMAL = 0; +exports.TINY = 1; +exports.SHORT = 2; +exports.LONG = 3; +exports.FLOAT = 4; +exports.DOUBLE = 5; +exports.NULL = 6; +exports.TIMESTAMP = 7; +exports.LONGLONG = 8; +exports.INT24 = 9; +exports.DATE = 10; +exports.TIME = 11; +exports.DATETIME = 12; +exports.YEAR = 13; +exports.NEWDATE = 14; +exports.VARCHAR = 15; +exports.BIT = 16; +exports.TIMESTAMP2 = 17; +exports.DATETIME2 = 18; +exports.TIME2 = 19; +exports.JSON = 245; +exports.NEWDECIMAL = 246; +exports.ENUM = 247; +exports.SET = 248; +exports.TINY_BLOB = 249; +exports.MEDIUM_BLOB = 250; +exports.LONG_BLOB = 251; +exports.BLOB = 252; +exports.VAR_STRING = 253; +exports.STRING = 254; +exports.GEOMETRY = 255; + +// Lookup-by-number table +exports[0] = 'DECIMAL'; +exports[1] = 'TINY'; +exports[2] = 'SHORT'; +exports[3] = 'LONG'; +exports[4] = 'FLOAT'; +exports[5] = 'DOUBLE'; +exports[6] = 'NULL'; +exports[7] = 'TIMESTAMP'; +exports[8] = 'LONGLONG'; +exports[9] = 'INT24'; +exports[10] = 'DATE'; +exports[11] = 'TIME'; +exports[12] = 'DATETIME'; +exports[13] = 'YEAR'; +exports[14] = 'NEWDATE'; +exports[15] = 'VARCHAR'; +exports[16] = 'BIT'; +exports[17] = 'TIMESTAMP2'; +exports[18] = 'DATETIME2'; +exports[19] = 'TIME2'; +exports[245] = 'JSON'; +exports[246] = 'NEWDECIMAL'; +exports[247] = 'ENUM'; +exports[248] = 'SET'; +exports[249] = 'TINY_BLOB'; +exports[250] = 'MEDIUM_BLOB'; +exports[251] = 'LONG_BLOB'; +exports[252] = 'BLOB'; +exports[253] = 'VAR_STRING'; +exports[254] = 'STRING'; +exports[255] = 'GEOMETRY'; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/AuthSwitchRequestPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/AuthSwitchRequestPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..c74e6ec23680991261e2184ee3c69bbd338daa52 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/AuthSwitchRequestPacket.js" @@ -0,0 +1,20 @@ +module.exports = AuthSwitchRequestPacket; +function AuthSwitchRequestPacket(options) { + options = options || {}; + + this.status = 0xfe; + this.authMethodName = options.authMethodName; + this.authMethodData = options.authMethodData; +} + +AuthSwitchRequestPacket.prototype.parse = function parse(parser) { + this.status = parser.parseUnsignedNumber(1); + this.authMethodName = parser.parseNullTerminatedString(); + this.authMethodData = parser.parsePacketTerminatedBuffer(); +}; + +AuthSwitchRequestPacket.prototype.write = function write(writer) { + writer.writeUnsignedNumber(1, this.status); + writer.writeNullTerminatedString(this.authMethodName); + writer.writeBuffer(this.authMethodData); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/AuthSwitchResponsePacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/AuthSwitchResponsePacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..488abbd03b26f3bf9b5952f53ec7b48096d74e68 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/AuthSwitchResponsePacket.js" @@ -0,0 +1,14 @@ +module.exports = AuthSwitchResponsePacket; +function AuthSwitchResponsePacket(options) { + options = options || {}; + + this.data = options.data; +} + +AuthSwitchResponsePacket.prototype.parse = function parse(parser) { + this.data = parser.parsePacketTerminatedBuffer(); +}; + +AuthSwitchResponsePacket.prototype.write = function write(writer) { + writer.writeBuffer(this.data); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ClientAuthenticationPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ClientAuthenticationPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..595db77a002f236f10e78e9c5b816ba0afc57f5d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ClientAuthenticationPacket.js" @@ -0,0 +1,54 @@ +var Buffer = require('safe-buffer').Buffer; + +module.exports = ClientAuthenticationPacket; +function ClientAuthenticationPacket(options) { + options = options || {}; + + this.clientFlags = options.clientFlags; + this.maxPacketSize = options.maxPacketSize; + this.charsetNumber = options.charsetNumber; + this.filler = undefined; + this.user = options.user; + this.scrambleBuff = options.scrambleBuff; + this.database = options.database; + this.protocol41 = options.protocol41; +} + +ClientAuthenticationPacket.prototype.parse = function(parser) { + if (this.protocol41) { + this.clientFlags = parser.parseUnsignedNumber(4); + this.maxPacketSize = parser.parseUnsignedNumber(4); + this.charsetNumber = parser.parseUnsignedNumber(1); + this.filler = parser.parseFiller(23); + this.user = parser.parseNullTerminatedString(); + this.scrambleBuff = parser.parseLengthCodedBuffer(); + this.database = parser.parseNullTerminatedString(); + } else { + this.clientFlags = parser.parseUnsignedNumber(2); + this.maxPacketSize = parser.parseUnsignedNumber(3); + this.user = parser.parseNullTerminatedString(); + this.scrambleBuff = parser.parseBuffer(8); + this.database = parser.parseLengthCodedBuffer(); + } +}; + +ClientAuthenticationPacket.prototype.write = function(writer) { + if (this.protocol41) { + writer.writeUnsignedNumber(4, this.clientFlags); + writer.writeUnsignedNumber(4, this.maxPacketSize); + writer.writeUnsignedNumber(1, this.charsetNumber); + writer.writeFiller(23); + writer.writeNullTerminatedString(this.user); + writer.writeLengthCodedBuffer(this.scrambleBuff); + writer.writeNullTerminatedString(this.database); + } else { + writer.writeUnsignedNumber(2, this.clientFlags); + writer.writeUnsignedNumber(3, this.maxPacketSize); + writer.writeNullTerminatedString(this.user); + writer.writeBuffer(this.scrambleBuff); + if (this.database && this.database.length) { + writer.writeFiller(1); + writer.writeBuffer(Buffer.from(this.database)); + } + } +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComChangeUserPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComChangeUserPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..3278842358f1e083729481d68b37e5ffbb9bae49 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComChangeUserPacket.js" @@ -0,0 +1,26 @@ +module.exports = ComChangeUserPacket; +function ComChangeUserPacket(options) { + options = options || {}; + + this.command = 0x11; + this.user = options.user; + this.scrambleBuff = options.scrambleBuff; + this.database = options.database; + this.charsetNumber = options.charsetNumber; +} + +ComChangeUserPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); + this.user = parser.parseNullTerminatedString(); + this.scrambleBuff = parser.parseLengthCodedBuffer(); + this.database = parser.parseNullTerminatedString(); + this.charsetNumber = parser.parseUnsignedNumber(1); +}; + +ComChangeUserPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); + writer.writeNullTerminatedString(this.user); + writer.writeLengthCodedBuffer(this.scrambleBuff); + writer.writeNullTerminatedString(this.database); + writer.writeUnsignedNumber(2, this.charsetNumber); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComPingPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComPingPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..dd332c93cb42201f5a3311e21a393117fd3b9ffa --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComPingPacket.js" @@ -0,0 +1,12 @@ +module.exports = ComPingPacket; +function ComPingPacket() { + this.command = 0x0e; +} + +ComPingPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); +}; + +ComPingPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComQueryPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComQueryPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..7ac191fd0a1abd5ddd1ceaf4c70959e6731c1bce --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComQueryPacket.js" @@ -0,0 +1,15 @@ +module.exports = ComQueryPacket; +function ComQueryPacket(sql) { + this.command = 0x03; + this.sql = sql; +} + +ComQueryPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); + writer.writeString(this.sql); +}; + +ComQueryPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); + this.sql = parser.parsePacketTerminatedString(); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComQuitPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComQuitPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..1104061cb29cee10858660db16e493c06efc46e7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComQuitPacket.js" @@ -0,0 +1,12 @@ +module.exports = ComQuitPacket; +function ComQuitPacket() { + this.command = 0x01; +} + +ComQuitPacket.prototype.parse = function parse(parser) { + this.command = parser.parseUnsignedNumber(1); +}; + +ComQuitPacket.prototype.write = function write(writer) { + writer.writeUnsignedNumber(1, this.command); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComStatisticsPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComStatisticsPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..5e3913e15e09f9272461b8e0dfbb2434262921e7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ComStatisticsPacket.js" @@ -0,0 +1,12 @@ +module.exports = ComStatisticsPacket; +function ComStatisticsPacket() { + this.command = 0x09; +} + +ComStatisticsPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); +}; + +ComStatisticsPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/EmptyPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/EmptyPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..27dd68604ab0e3e4d4d648b221291c334fce17bd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/EmptyPacket.js" @@ -0,0 +1,9 @@ +module.exports = EmptyPacket; +function EmptyPacket() { +} + +EmptyPacket.prototype.parse = function parse() { +}; + +EmptyPacket.prototype.write = function write() { +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/EofPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/EofPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..b80ca5ef22f0036e31add667da8d5f9567728c6d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/EofPacket.js" @@ -0,0 +1,25 @@ +module.exports = EofPacket; +function EofPacket(options) { + options = options || {}; + + this.fieldCount = undefined; + this.warningCount = options.warningCount; + this.serverStatus = options.serverStatus; + this.protocol41 = options.protocol41; +} + +EofPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseUnsignedNumber(1); + if (this.protocol41) { + this.warningCount = parser.parseUnsignedNumber(2); + this.serverStatus = parser.parseUnsignedNumber(2); + } +}; + +EofPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, 0xfe); + if (this.protocol41) { + writer.writeUnsignedNumber(2, this.warningCount); + writer.writeUnsignedNumber(2, this.serverStatus); + } +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ErrorPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ErrorPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..e03de00ce2b5ebb3fab5057f4b08058e6904499c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ErrorPacket.js" @@ -0,0 +1,35 @@ +module.exports = ErrorPacket; +function ErrorPacket(options) { + options = options || {}; + + this.fieldCount = options.fieldCount; + this.errno = options.errno; + this.sqlStateMarker = options.sqlStateMarker; + this.sqlState = options.sqlState; + this.message = options.message; +} + +ErrorPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseUnsignedNumber(1); + this.errno = parser.parseUnsignedNumber(2); + + // sqlStateMarker ('#' = 0x23) indicates error packet format + if (parser.peak() === 0x23) { + this.sqlStateMarker = parser.parseString(1); + this.sqlState = parser.parseString(5); + } + + this.message = parser.parsePacketTerminatedString(); +}; + +ErrorPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, 0xff); + writer.writeUnsignedNumber(2, this.errno); + + if (this.sqlStateMarker) { + writer.writeString(this.sqlStateMarker); + writer.writeString(this.sqlState); + } + + writer.writeString(this.message); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/Field.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/Field.js" new file mode 100644 index 0000000000000000000000000000000000000000..a5d58edb6569afafb0dea0529f80787b6f351df3 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/Field.js" @@ -0,0 +1,26 @@ +var Types = require('../constants/types'); + +module.exports = Field; +function Field(options) { + options = options || {}; + + this.parser = options.parser; + this.packet = options.packet; + this.db = options.packet.db; + this.table = options.packet.table; + this.name = options.packet.name; + this.type = Types[options.packet.type]; + this.length = options.packet.length; +} + +Field.prototype.string = function () { + return this.parser.parseLengthCodedString(); +}; + +Field.prototype.buffer = function () { + return this.parser.parseLengthCodedBuffer(); +}; + +Field.prototype.geometry = function () { + return this.parser.parseGeometryValue(); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/FieldPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/FieldPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..12cfed10c174f705ec8c8364782e9f54f1573b03 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/FieldPacket.js" @@ -0,0 +1,93 @@ +module.exports = FieldPacket; +function FieldPacket(options) { + options = options || {}; + + this.catalog = options.catalog; + this.db = options.db; + this.table = options.table; + this.orgTable = options.orgTable; + this.name = options.name; + this.orgName = options.orgName; + this.charsetNr = options.charsetNr; + this.length = options.length; + this.type = options.type; + this.flags = options.flags; + this.decimals = options.decimals; + this.default = options.default; + this.zeroFill = options.zeroFill; + this.protocol41 = options.protocol41; +} + +FieldPacket.prototype.parse = function(parser) { + if (this.protocol41) { + this.catalog = parser.parseLengthCodedString(); + this.db = parser.parseLengthCodedString(); + this.table = parser.parseLengthCodedString(); + this.orgTable = parser.parseLengthCodedString(); + this.name = parser.parseLengthCodedString(); + this.orgName = parser.parseLengthCodedString(); + + if (parser.parseLengthCodedNumber() !== 0x0c) { + var err = new TypeError('Received invalid field length'); + err.code = 'PARSER_INVALID_FIELD_LENGTH'; + throw err; + } + + this.charsetNr = parser.parseUnsignedNumber(2); + this.length = parser.parseUnsignedNumber(4); + this.type = parser.parseUnsignedNumber(1); + this.flags = parser.parseUnsignedNumber(2); + this.decimals = parser.parseUnsignedNumber(1); + + var filler = parser.parseBuffer(2); + if (filler[0] !== 0x0 || filler[1] !== 0x0) { + var err = new TypeError('Received invalid filler'); + err.code = 'PARSER_INVALID_FILLER'; + throw err; + } + + // parsed flags + this.zeroFill = (this.flags & 0x0040 ? true : false); + + if (parser.reachedPacketEnd()) { + return; + } + + this.default = parser.parseLengthCodedString(); + } else { + this.table = parser.parseLengthCodedString(); + this.name = parser.parseLengthCodedString(); + this.length = parser.parseUnsignedNumber(parser.parseUnsignedNumber(1)); + this.type = parser.parseUnsignedNumber(parser.parseUnsignedNumber(1)); + } +}; + +FieldPacket.prototype.write = function(writer) { + if (this.protocol41) { + writer.writeLengthCodedString(this.catalog); + writer.writeLengthCodedString(this.db); + writer.writeLengthCodedString(this.table); + writer.writeLengthCodedString(this.orgTable); + writer.writeLengthCodedString(this.name); + writer.writeLengthCodedString(this.orgName); + + writer.writeLengthCodedNumber(0x0c); + writer.writeUnsignedNumber(2, this.charsetNr || 0); + writer.writeUnsignedNumber(4, this.length || 0); + writer.writeUnsignedNumber(1, this.type || 0); + writer.writeUnsignedNumber(2, this.flags || 0); + writer.writeUnsignedNumber(1, this.decimals || 0); + writer.writeFiller(2); + + if (this.default !== undefined) { + writer.writeLengthCodedString(this.default); + } + } else { + writer.writeLengthCodedString(this.table); + writer.writeLengthCodedString(this.name); + writer.writeUnsignedNumber(1, 0x01); + writer.writeUnsignedNumber(1, this.length); + writer.writeUnsignedNumber(1, 0x01); + writer.writeUnsignedNumber(1, this.type); + } +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/HandshakeInitializationPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/HandshakeInitializationPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..b2510633b807b91e3b9698f9778acde3b64069ef --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/HandshakeInitializationPacket.js" @@ -0,0 +1,103 @@ +var Buffer = require('safe-buffer').Buffer; +var Client = require('../constants/client'); + +module.exports = HandshakeInitializationPacket; +function HandshakeInitializationPacket(options) { + options = options || {}; + + this.protocolVersion = options.protocolVersion; + this.serverVersion = options.serverVersion; + this.threadId = options.threadId; + this.scrambleBuff1 = options.scrambleBuff1; + this.filler1 = options.filler1; + this.serverCapabilities1 = options.serverCapabilities1; + this.serverLanguage = options.serverLanguage; + this.serverStatus = options.serverStatus; + this.serverCapabilities2 = options.serverCapabilities2; + this.scrambleLength = options.scrambleLength; + this.filler2 = options.filler2; + this.scrambleBuff2 = options.scrambleBuff2; + this.filler3 = options.filler3; + this.pluginData = options.pluginData; + this.protocol41 = options.protocol41; + + if (this.protocol41) { + // force set the bit in serverCapabilities1 + this.serverCapabilities1 |= Client.CLIENT_PROTOCOL_41; + } +} + +HandshakeInitializationPacket.prototype.parse = function(parser) { + this.protocolVersion = parser.parseUnsignedNumber(1); + this.serverVersion = parser.parseNullTerminatedString(); + this.threadId = parser.parseUnsignedNumber(4); + this.scrambleBuff1 = parser.parseBuffer(8); + this.filler1 = parser.parseFiller(1); + this.serverCapabilities1 = parser.parseUnsignedNumber(2); + this.serverLanguage = parser.parseUnsignedNumber(1); + this.serverStatus = parser.parseUnsignedNumber(2); + + this.protocol41 = (this.serverCapabilities1 & (1 << 9)) > 0; + + if (this.protocol41) { + this.serverCapabilities2 = parser.parseUnsignedNumber(2); + this.scrambleLength = parser.parseUnsignedNumber(1); + this.filler2 = parser.parseFiller(10); + // scrambleBuff2 should be 0x00 terminated, but sphinx does not do this + // so we assume scrambleBuff2 to be 12 byte and treat the next byte as a + // filler byte. + this.scrambleBuff2 = parser.parseBuffer(12); + this.filler3 = parser.parseFiller(1); + } else { + this.filler2 = parser.parseFiller(13); + } + + if (parser.reachedPacketEnd()) { + return; + } + + // According to the docs this should be 0x00 terminated, but MariaDB does + // not do this, so we assume this string to be packet terminated. + this.pluginData = parser.parsePacketTerminatedString(); + + // However, if there is a trailing '\0', strip it + var lastChar = this.pluginData.length - 1; + if (this.pluginData[lastChar] === '\0') { + this.pluginData = this.pluginData.substr(0, lastChar); + } +}; + +HandshakeInitializationPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.protocolVersion); + writer.writeNullTerminatedString(this.serverVersion); + writer.writeUnsignedNumber(4, this.threadId); + writer.writeBuffer(this.scrambleBuff1); + writer.writeFiller(1); + writer.writeUnsignedNumber(2, this.serverCapabilities1); + writer.writeUnsignedNumber(1, this.serverLanguage); + writer.writeUnsignedNumber(2, this.serverStatus); + if (this.protocol41) { + writer.writeUnsignedNumber(2, this.serverCapabilities2); + writer.writeUnsignedNumber(1, this.scrambleLength); + writer.writeFiller(10); + } + writer.writeNullTerminatedBuffer(this.scrambleBuff2); + + if (this.pluginData !== undefined) { + writer.writeNullTerminatedString(this.pluginData); + } +}; + +HandshakeInitializationPacket.prototype.scrambleBuff = function() { + var buffer = null; + + if (typeof this.scrambleBuff2 === 'undefined') { + buffer = Buffer.from(this.scrambleBuff1); + } else { + buffer = Buffer.allocUnsafe(this.scrambleBuff1.length + this.scrambleBuff2.length); + this.scrambleBuff1.copy(buffer, 0); + this.scrambleBuff2.copy(buffer, this.scrambleBuff1.length); + } + + return buffer; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/LocalDataFilePacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/LocalDataFilePacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..af7aaa045bb200c1f7e220eab8ecbfc82578b30b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/LocalDataFilePacket.js" @@ -0,0 +1,15 @@ +module.exports = LocalDataFilePacket; + +/** + * Create a new LocalDataFilePacket + * @constructor + * @param {Buffer} data The data contents of the packet + * @public + */ +function LocalDataFilePacket(data) { + this.data = data; +} + +LocalDataFilePacket.prototype.write = function(writer) { + writer.writeBuffer(this.data); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/LocalInfileRequestPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/LocalInfileRequestPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..b1f68bab42da82229a47f1d6be3887367e62260c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/LocalInfileRequestPacket.js" @@ -0,0 +1,21 @@ +module.exports = LocalInfileRequestPacket; +function LocalInfileRequestPacket(options) { + options = options || {}; + + this.filename = options.filename; +} + +LocalInfileRequestPacket.prototype.parse = function parse(parser) { + if (parser.parseLengthCodedNumber() !== null) { + var err = new TypeError('Received invalid field length'); + err.code = 'PARSER_INVALID_FIELD_LENGTH'; + throw err; + } + + this.filename = parser.parsePacketTerminatedString(); +}; + +LocalInfileRequestPacket.prototype.write = function write(writer) { + writer.writeLengthCodedNumber(null); + writer.writeString(this.filename); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/OkPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/OkPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..7caf3b0e7cbe1e2b1814aec8fceb62aa0e79be36 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/OkPacket.js" @@ -0,0 +1,44 @@ + +// Language-neutral expression to match ER_UPDATE_INFO +var ER_UPDATE_INFO_REGEXP = /^[^:0-9]+: [0-9]+[^:0-9]+: ([0-9]+)[^:0-9]+: [0-9]+[^:0-9]*$/; + +module.exports = OkPacket; +function OkPacket(options) { + options = options || {}; + + this.fieldCount = undefined; + this.affectedRows = undefined; + this.insertId = undefined; + this.serverStatus = undefined; + this.warningCount = undefined; + this.message = undefined; + this.protocol41 = options.protocol41; +} + +OkPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseUnsignedNumber(1); + this.affectedRows = parser.parseLengthCodedNumber(); + this.insertId = parser.parseLengthCodedNumber(); + if (this.protocol41) { + this.serverStatus = parser.parseUnsignedNumber(2); + this.warningCount = parser.parseUnsignedNumber(2); + } + this.message = parser.parsePacketTerminatedString(); + this.changedRows = 0; + + var m = ER_UPDATE_INFO_REGEXP.exec(this.message); + if (m !== null) { + this.changedRows = parseInt(m[1], 10); + } +}; + +OkPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, 0x00); + writer.writeLengthCodedNumber(this.affectedRows || 0); + writer.writeLengthCodedNumber(this.insertId || 0); + if (this.protocol41) { + writer.writeUnsignedNumber(2, this.serverStatus || 0); + writer.writeUnsignedNumber(2, this.warningCount || 0); + } + writer.writeString(this.message); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/OldPasswordPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/OldPasswordPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..a7295102184fb5ea843afa5ed01ac8d450bdb6ea --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/OldPasswordPacket.js" @@ -0,0 +1,14 @@ +module.exports = OldPasswordPacket; +function OldPasswordPacket(options) { + options = options || {}; + + this.scrambleBuff = options.scrambleBuff; +} + +OldPasswordPacket.prototype.parse = function(parser) { + this.scrambleBuff = parser.parsePacketTerminatedBuffer(); +}; + +OldPasswordPacket.prototype.write = function(writer) { + writer.writeBuffer(this.scrambleBuff); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ResultSetHeaderPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ResultSetHeaderPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..a097ea1f28f358d0adb59e56dd7f509519eb476b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/ResultSetHeaderPacket.js" @@ -0,0 +1,14 @@ +module.exports = ResultSetHeaderPacket; +function ResultSetHeaderPacket(options) { + options = options || {}; + + this.fieldCount = options.fieldCount; +} + +ResultSetHeaderPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseLengthCodedNumber(); +}; + +ResultSetHeaderPacket.prototype.write = function(writer) { + writer.writeLengthCodedNumber(this.fieldCount); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/RowDataPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/RowDataPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..b8ec4b895b568f388a5cfd752f23e7baab2ae65d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/RowDataPacket.js" @@ -0,0 +1,130 @@ +var Types = require('../constants/types'); +var Charsets = require('../constants/charsets'); +var Field = require('./Field'); +var IEEE_754_BINARY_64_PRECISION = Math.pow(2, 53); + +module.exports = RowDataPacket; +function RowDataPacket() { +} + +Object.defineProperty(RowDataPacket.prototype, 'parse', { + configurable : true, + enumerable : false, + value : parse +}); + +Object.defineProperty(RowDataPacket.prototype, '_typeCast', { + configurable : true, + enumerable : false, + value : typeCast +}); + +function parse(parser, fieldPackets, typeCast, nestTables, connection) { + var self = this; + var next = function () { + return self._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings, connection.config.dateStrings); + }; + + for (var i = 0; i < fieldPackets.length; i++) { + var fieldPacket = fieldPackets[i]; + var value; + + if (typeof typeCast === 'function') { + value = typeCast.apply(connection, [ new Field({ packet: fieldPacket, parser: parser }), next ]); + } else { + value = (typeCast) + ? this._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings, connection.config.dateStrings) + : ( (fieldPacket.charsetNr === Charsets.BINARY) + ? parser.parseLengthCodedBuffer() + : parser.parseLengthCodedString() ); + } + + if (typeof nestTables === 'string' && nestTables.length) { + this[fieldPacket.table + nestTables + fieldPacket.name] = value; + } else if (nestTables) { + this[fieldPacket.table] = this[fieldPacket.table] || {}; + this[fieldPacket.table][fieldPacket.name] = value; + } else { + this[fieldPacket.name] = value; + } + } +} + +function typeCast(field, parser, timeZone, supportBigNumbers, bigNumberStrings, dateStrings) { + var numberString; + + switch (field.type) { + case Types.TIMESTAMP: + case Types.TIMESTAMP2: + case Types.DATE: + case Types.DATETIME: + case Types.DATETIME2: + case Types.NEWDATE: + var dateString = parser.parseLengthCodedString(); + + if (typeMatch(field.type, dateStrings)) { + return dateString; + } + + if (dateString === null) { + return null; + } + + var originalString = dateString; + if (field.type === Types.DATE) { + dateString += ' 00:00:00'; + } + + if (timeZone !== 'local') { + dateString += ' ' + timeZone; + } + + var dt = new Date(dateString); + if (isNaN(dt.getTime())) { + return originalString; + } + + return dt; + case Types.TINY: + case Types.SHORT: + case Types.LONG: + case Types.INT24: + case Types.YEAR: + case Types.FLOAT: + case Types.DOUBLE: + numberString = parser.parseLengthCodedString(); + return (numberString === null || (field.zeroFill && numberString[0] === '0')) + ? numberString : Number(numberString); + case Types.NEWDECIMAL: + case Types.LONGLONG: + numberString = parser.parseLengthCodedString(); + return (numberString === null || (field.zeroFill && numberString[0] === '0')) + ? numberString + : ((supportBigNumbers && (bigNumberStrings || (Number(numberString) >= IEEE_754_BINARY_64_PRECISION) || Number(numberString) <= -IEEE_754_BINARY_64_PRECISION)) + ? numberString + : Number(numberString)); + case Types.BIT: + return parser.parseLengthCodedBuffer(); + case Types.STRING: + case Types.VAR_STRING: + case Types.TINY_BLOB: + case Types.MEDIUM_BLOB: + case Types.LONG_BLOB: + case Types.BLOB: + return (field.charsetNr === Charsets.BINARY) + ? parser.parseLengthCodedBuffer() + : parser.parseLengthCodedString(); + case Types.GEOMETRY: + return parser.parseGeometryValue(); + default: + return parser.parseLengthCodedString(); + } +} + +function typeMatch(type, list) { + if (Array.isArray(list)) { + return list.indexOf(Types[type]) !== -1; + } else { + return Boolean(list); + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/SSLRequestPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/SSLRequestPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..a57cfc1a1f2ca9d79392727b2726d752ae49cc97 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/SSLRequestPacket.js" @@ -0,0 +1,27 @@ +// http://dev.mysql.com/doc/internals/en/ssl.html +// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::SSLRequest + +var ClientConstants = require('../constants/client'); + +module.exports = SSLRequestPacket; + +function SSLRequestPacket(options) { + options = options || {}; + this.clientFlags = options.clientFlags | ClientConstants.CLIENT_SSL; + this.maxPacketSize = options.maxPacketSize; + this.charsetNumber = options.charsetNumber; +} + +SSLRequestPacket.prototype.parse = function(parser) { + // TODO: check SSLRequest packet v41 vs pre v41 + this.clientFlags = parser.parseUnsignedNumber(4); + this.maxPacketSize = parser.parseUnsignedNumber(4); + this.charsetNumber = parser.parseUnsignedNumber(1); +}; + +SSLRequestPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(4, this.clientFlags); + writer.writeUnsignedNumber(4, this.maxPacketSize); + writer.writeUnsignedNumber(1, this.charsetNumber); + writer.writeFiller(23); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/StatisticsPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/StatisticsPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..5f70b3ba71608ff682f034db59707709eb1e558a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/StatisticsPacket.js" @@ -0,0 +1,20 @@ +module.exports = StatisticsPacket; +function StatisticsPacket() { + this.message = undefined; +} + +StatisticsPacket.prototype.parse = function(parser) { + this.message = parser.parsePacketTerminatedString(); + + var items = this.message.split(/\s\s/); + for (var i = 0; i < items.length; i++) { + var m = items[i].match(/^(.+)\:\s+(.+)$/); + if (m !== null) { + this[m[1].toLowerCase().replace(/\s/g, '_')] = Number(m[2]); + } + } +}; + +StatisticsPacket.prototype.write = function(writer) { + writer.writeString(this.message); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/UseOldPasswordPacket.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/UseOldPasswordPacket.js" new file mode 100644 index 0000000000000000000000000000000000000000..d73bf44594d64dc665a3a07fc73832f5bef18bae --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/UseOldPasswordPacket.js" @@ -0,0 +1,14 @@ +module.exports = UseOldPasswordPacket; +function UseOldPasswordPacket(options) { + options = options || {}; + + this.firstByte = options.firstByte || 0xfe; +} + +UseOldPasswordPacket.prototype.parse = function(parser) { + this.firstByte = parser.parseUnsignedNumber(1); +}; + +UseOldPasswordPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.firstByte); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..5e9352457aee2586ed2cc0c44cf402eb057cbddc --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/packets/index.js" @@ -0,0 +1,23 @@ +exports.AuthSwitchRequestPacket = require('./AuthSwitchRequestPacket'); +exports.AuthSwitchResponsePacket = require('./AuthSwitchResponsePacket'); +exports.ClientAuthenticationPacket = require('./ClientAuthenticationPacket'); +exports.ComChangeUserPacket = require('./ComChangeUserPacket'); +exports.ComPingPacket = require('./ComPingPacket'); +exports.ComQueryPacket = require('./ComQueryPacket'); +exports.ComQuitPacket = require('./ComQuitPacket'); +exports.ComStatisticsPacket = require('./ComStatisticsPacket'); +exports.EmptyPacket = require('./EmptyPacket'); +exports.EofPacket = require('./EofPacket'); +exports.ErrorPacket = require('./ErrorPacket'); +exports.Field = require('./Field'); +exports.FieldPacket = require('./FieldPacket'); +exports.HandshakeInitializationPacket = require('./HandshakeInitializationPacket'); +exports.LocalDataFilePacket = require('./LocalDataFilePacket'); +exports.LocalInfileRequestPacket = require('./LocalInfileRequestPacket'); +exports.OkPacket = require('./OkPacket'); +exports.OldPasswordPacket = require('./OldPasswordPacket'); +exports.ResultSetHeaderPacket = require('./ResultSetHeaderPacket'); +exports.RowDataPacket = require('./RowDataPacket'); +exports.SSLRequestPacket = require('./SSLRequestPacket'); +exports.StatisticsPacket = require('./StatisticsPacket'); +exports.UseOldPasswordPacket = require('./UseOldPasswordPacket'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/ChangeUser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/ChangeUser.js" new file mode 100644 index 0000000000000000000000000000000000000000..e1cc1fbc3d69a9503d72c861bc5b14e717d98d18 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/ChangeUser.js" @@ -0,0 +1,67 @@ +var Sequence = require('./Sequence'); +var Util = require('util'); +var Packets = require('../packets'); +var Auth = require('../Auth'); + +module.exports = ChangeUser; +Util.inherits(ChangeUser, Sequence); +function ChangeUser(options, callback) { + Sequence.call(this, options, callback); + + this._user = options.user; + this._password = options.password; + this._database = options.database; + this._charsetNumber = options.charsetNumber; + this._currentConfig = options.currentConfig; +} + +ChangeUser.prototype.determinePacket = function determinePacket(firstByte) { + switch (firstByte) { + case 0xfe: return Packets.AuthSwitchRequestPacket; + case 0xff: return Packets.ErrorPacket; + default: return undefined; + } +}; + +ChangeUser.prototype.start = function(handshakeInitializationPacket) { + var scrambleBuff = handshakeInitializationPacket.scrambleBuff(); + scrambleBuff = Auth.token(this._password, scrambleBuff); + + var packet = new Packets.ComChangeUserPacket({ + user : this._user, + scrambleBuff : scrambleBuff, + database : this._database, + charsetNumber : this._charsetNumber + }); + + this._currentConfig.user = this._user; + this._currentConfig.password = this._password; + this._currentConfig.database = this._database; + this._currentConfig.charsetNumber = this._charsetNumber; + + this.emit('packet', packet); +}; + +ChangeUser.prototype['AuthSwitchRequestPacket'] = function (packet) { + var name = packet.authMethodName; + var data = Auth.auth(name, packet.authMethodData, { + password: this._password + }); + + if (data !== undefined) { + this.emit('packet', new Packets.AuthSwitchResponsePacket({ + data: data + })); + } else { + var err = new Error('MySQL is requesting the ' + name + ' authentication method, which is not supported.'); + err.code = 'UNSUPPORTED_AUTH_METHOD'; + err.fatal = true; + this.end(err); + } +}; + +ChangeUser.prototype['ErrorPacket'] = function(packet) { + var err = this._packetToError(packet); + err.fatal = true; + this.end(err); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Handshake.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Handshake.js" new file mode 100644 index 0000000000000000000000000000000000000000..8fad0fcf386a90f2b549a2c334dd02759696ba86 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Handshake.js" @@ -0,0 +1,126 @@ +var Sequence = require('./Sequence'); +var Util = require('util'); +var Packets = require('../packets'); +var Auth = require('../Auth'); +var ClientConstants = require('../constants/client'); + +module.exports = Handshake; +Util.inherits(Handshake, Sequence); +function Handshake(options, callback) { + Sequence.call(this, options, callback); + + options = options || {}; + + this._config = options.config; + this._handshakeInitializationPacket = null; +} + +Handshake.prototype.determinePacket = function determinePacket(firstByte, parser) { + if (firstByte === 0xff) { + return Packets.ErrorPacket; + } + + if (!this._handshakeInitializationPacket) { + return Packets.HandshakeInitializationPacket; + } + + if (firstByte === 0xfe) { + return (parser.packetLength() === 1) + ? Packets.UseOldPasswordPacket + : Packets.AuthSwitchRequestPacket; + } + + return undefined; +}; + +Handshake.prototype['AuthSwitchRequestPacket'] = function (packet) { + var name = packet.authMethodName; + var data = Auth.auth(name, packet.authMethodData, { + password: this._config.password + }); + + if (data !== undefined) { + this.emit('packet', new Packets.AuthSwitchResponsePacket({ + data: data + })); + } else { + var err = new Error('MySQL is requesting the ' + name + ' authentication method, which is not supported.'); + err.code = 'UNSUPPORTED_AUTH_METHOD'; + err.fatal = true; + this.end(err); + } +}; + +Handshake.prototype['HandshakeInitializationPacket'] = function(packet) { + this._handshakeInitializationPacket = packet; + + this._config.protocol41 = packet.protocol41; + + var serverSSLSupport = packet.serverCapabilities1 & ClientConstants.CLIENT_SSL; + + if (this._config.ssl) { + if (!serverSSLSupport) { + var err = new Error('Server does not support secure connection'); + + err.code = 'HANDSHAKE_NO_SSL_SUPPORT'; + err.fatal = true; + + this.end(err); + return; + } + + this._config.clientFlags |= ClientConstants.CLIENT_SSL; + this.emit('packet', new Packets.SSLRequestPacket({ + clientFlags : this._config.clientFlags, + maxPacketSize : this._config.maxPacketSize, + charsetNumber : this._config.charsetNumber + })); + this.emit('start-tls'); + } else { + this._sendCredentials(); + } +}; + +Handshake.prototype._tlsUpgradeCompleteHandler = function() { + this._sendCredentials(); +}; + +Handshake.prototype._sendCredentials = function() { + var packet = this._handshakeInitializationPacket; + this.emit('packet', new Packets.ClientAuthenticationPacket({ + clientFlags : this._config.clientFlags, + maxPacketSize : this._config.maxPacketSize, + charsetNumber : this._config.charsetNumber, + user : this._config.user, + database : this._config.database, + protocol41 : packet.protocol41, + scrambleBuff : (packet.protocol41) + ? Auth.token(this._config.password, packet.scrambleBuff()) + : Auth.scramble323(packet.scrambleBuff(), this._config.password) + })); +}; + +Handshake.prototype['UseOldPasswordPacket'] = function() { + if (!this._config.insecureAuth) { + var err = new Error( + 'MySQL server is requesting the old and insecure pre-4.1 auth mechanism. ' + + 'Upgrade the user password or use the {insecureAuth: true} option.' + ); + + err.code = 'HANDSHAKE_INSECURE_AUTH'; + err.fatal = true; + + this.end(err); + return; + } + + this.emit('packet', new Packets.OldPasswordPacket({ + scrambleBuff: Auth.scramble323(this._handshakeInitializationPacket.scrambleBuff(), this._config.password) + })); +}; + +Handshake.prototype['ErrorPacket'] = function(packet) { + var err = this._packetToError(packet, true); + err.fatal = true; + this.end(err); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Ping.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Ping.js" new file mode 100644 index 0000000000000000000000000000000000000000..230f3c1aba8573ae01fd4416a0ec2a4996b7f591 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Ping.js" @@ -0,0 +1,19 @@ +var Sequence = require('./Sequence'); +var Util = require('util'); +var Packets = require('../packets'); + +module.exports = Ping; +Util.inherits(Ping, Sequence); + +function Ping(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + Sequence.call(this, options, callback); +} + +Ping.prototype.start = function() { + this.emit('packet', new Packets.ComPingPacket()); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Query.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Query.js" new file mode 100644 index 0000000000000000000000000000000000000000..b7632959b6b18eff0a239456c67b2696a5b931bd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Query.js" @@ -0,0 +1,228 @@ +var ClientConstants = require('../constants/client'); +var fs = require('fs'); +var Packets = require('../packets'); +var ResultSet = require('../ResultSet'); +var Sequence = require('./Sequence'); +var ServerStatus = require('../constants/server_status'); +var Readable = require('readable-stream'); +var Util = require('util'); + +module.exports = Query; +Util.inherits(Query, Sequence); +function Query(options, callback) { + Sequence.call(this, options, callback); + + this.sql = options.sql; + this.values = options.values; + this.typeCast = (options.typeCast === undefined) + ? true + : options.typeCast; + this.nestTables = options.nestTables || false; + + this._resultSet = null; + this._results = []; + this._fields = []; + this._index = 0; + this._loadError = null; +} + +Query.prototype.start = function() { + this.emit('packet', new Packets.ComQueryPacket(this.sql)); +}; + +Query.prototype.determinePacket = function determinePacket(byte, parser) { + var resultSet = this._resultSet; + + if (!resultSet) { + switch (byte) { + case 0x00: return Packets.OkPacket; + case 0xfb: return Packets.LocalInfileRequestPacket; + case 0xff: return Packets.ErrorPacket; + default: return Packets.ResultSetHeaderPacket; + } + } + + if (resultSet.eofPackets.length === 0) { + return (resultSet.fieldPackets.length < resultSet.resultSetHeaderPacket.fieldCount) + ? Packets.FieldPacket + : Packets.EofPacket; + } + + if (byte === 0xff) { + return Packets.ErrorPacket; + } + + if (byte === 0xfe && parser.packetLength() < 9) { + return Packets.EofPacket; + } + + return Packets.RowDataPacket; +}; + +Query.prototype['OkPacket'] = function(packet) { + // try...finally for exception safety + try { + if (!this._callback) { + this.emit('result', packet, this._index); + } else { + this._results.push(packet); + this._fields.push(undefined); + } + } finally { + this._index++; + this._resultSet = null; + this._handleFinalResultPacket(packet); + } +}; + +Query.prototype['ErrorPacket'] = function(packet) { + var err = this._packetToError(packet); + + var results = (this._results.length > 0) + ? this._results + : undefined; + + var fields = (this._fields.length > 0) + ? this._fields + : undefined; + + err.index = this._index; + err.sql = this.sql; + + this.end(err, results, fields); +}; + +Query.prototype['LocalInfileRequestPacket'] = function(packet) { + if (this._connection.config.clientFlags & ClientConstants.CLIENT_LOCAL_FILES) { + this._sendLocalDataFile(packet.filename); + } else { + this._loadError = new Error('Load local files command is disabled'); + this._loadError.code = 'LOCAL_FILES_DISABLED'; + this._loadError.fatal = false; + + this.emit('packet', new Packets.EmptyPacket()); + } +}; + +Query.prototype['ResultSetHeaderPacket'] = function(packet) { + this._resultSet = new ResultSet(packet); +}; + +Query.prototype['FieldPacket'] = function(packet) { + this._resultSet.fieldPackets.push(packet); +}; + +Query.prototype['EofPacket'] = function(packet) { + this._resultSet.eofPackets.push(packet); + + if (this._resultSet.eofPackets.length === 1 && !this._callback) { + this.emit('fields', this._resultSet.fieldPackets, this._index); + } + + if (this._resultSet.eofPackets.length !== 2) { + return; + } + + if (this._callback) { + this._results.push(this._resultSet.rows); + this._fields.push(this._resultSet.fieldPackets); + } + + this._index++; + this._resultSet = null; + this._handleFinalResultPacket(packet); +}; + +Query.prototype._handleFinalResultPacket = function(packet) { + if (packet.serverStatus & ServerStatus.SERVER_MORE_RESULTS_EXISTS) { + return; + } + + var results = (this._results.length > 1) + ? this._results + : this._results[0]; + + var fields = (this._fields.length > 1) + ? this._fields + : this._fields[0]; + + this.end(this._loadError, results, fields); +}; + +Query.prototype['RowDataPacket'] = function(packet, parser, connection) { + packet.parse(parser, this._resultSet.fieldPackets, this.typeCast, this.nestTables, connection); + + if (this._callback) { + this._resultSet.rows.push(packet); + } else { + this.emit('result', packet, this._index); + } +}; + +Query.prototype._sendLocalDataFile = function(path) { + var self = this; + var localStream = fs.createReadStream(path, { + flag : 'r', + encoding : null, + autoClose : true + }); + + this.on('pause', function () { + localStream.pause(); + }); + + this.on('resume', function () { + localStream.resume(); + }); + + localStream.on('data', function (data) { + self.emit('packet', new Packets.LocalDataFilePacket(data)); + }); + + localStream.on('error', function (err) { + self._loadError = err; + localStream.emit('end'); + }); + + localStream.on('end', function () { + self.emit('packet', new Packets.EmptyPacket()); + }); +}; + +Query.prototype.stream = function(options) { + var self = this; + + options = options || {}; + options.objectMode = true; + + var stream = new Readable(options); + + stream._read = function() { + self._connection && self._connection.resume(); + }; + + stream.once('end', function() { + process.nextTick(function () { + stream.emit('close'); + }); + }); + + this.on('result', function(row, i) { + if (!stream.push(row)) self._connection.pause(); + stream.emit('result', row, i); // replicate old emitter + }); + + this.on('error', function(err) { + stream.emit('error', err); // Pass on any errors + }); + + this.on('end', function() { + stream.push(null); // pushing null, indicating EOF + }); + + this.on('fields', function(fields, i) { + stream.emit('fields', fields, i); // replicate old emitter + }); + + return stream; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Quit.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Quit.js" new file mode 100644 index 0000000000000000000000000000000000000000..3c34c58205f0e1dfa818a3b4e5f36550416f9e00 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Quit.js" @@ -0,0 +1,40 @@ +var Sequence = require('./Sequence'); +var Util = require('util'); +var Packets = require('../packets'); + +module.exports = Quit; +Util.inherits(Quit, Sequence); +function Quit(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + Sequence.call(this, options, callback); + + this._started = false; +} + +Quit.prototype.end = function end(err) { + if (this._ended) { + return; + } + + if (!this._started) { + Sequence.prototype.end.call(this, err); + return; + } + + if (err && err.code === 'ECONNRESET' && err.syscall === 'read') { + // Ignore read errors after packet sent + Sequence.prototype.end.call(this); + return; + } + + Sequence.prototype.end.call(this, err); +}; + +Quit.prototype.start = function() { + this._started = true; + this.emit('packet', new Packets.ComQuitPacket()); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Sequence.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Sequence.js" new file mode 100644 index 0000000000000000000000000000000000000000..de82dc270ceba918e83c6d8f6e5833d29283c171 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Sequence.js" @@ -0,0 +1,125 @@ +var Util = require('util'); +var EventEmitter = require('events').EventEmitter; +var Packets = require('../packets'); +var ErrorConstants = require('../constants/errors'); +var Timer = require('../Timer'); + +// istanbul ignore next: Node.js < 0.10 not covered +var listenerCount = EventEmitter.listenerCount + || function(emitter, type){ return emitter.listeners(type).length; }; + +var LONG_STACK_DELIMITER = '\n --------------------\n'; + +module.exports = Sequence; +Util.inherits(Sequence, EventEmitter); +function Sequence(options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + EventEmitter.call(this); + + options = options || {}; + + this._callback = callback; + this._callSite = null; + this._ended = false; + this._timeout = options.timeout; + this._timer = new Timer(this); +} + +Sequence.determinePacket = function(byte) { + switch (byte) { + case 0x00: return Packets.OkPacket; + case 0xfe: return Packets.EofPacket; + case 0xff: return Packets.ErrorPacket; + default: return undefined; + } +}; + +Sequence.prototype.hasErrorHandler = function() { + return Boolean(this._callback) || listenerCount(this, 'error') > 1; +}; + +Sequence.prototype._packetToError = function(packet) { + var code = ErrorConstants[packet.errno] || 'UNKNOWN_CODE_PLEASE_REPORT'; + var err = new Error(code + ': ' + packet.message); + err.code = code; + err.errno = packet.errno; + + err.sqlMessage = packet.message; + err.sqlState = packet.sqlState; + + return err; +}; + +Sequence.prototype.end = function(err) { + if (this._ended) { + return; + } + + this._ended = true; + + if (err) { + this._addLongStackTrace(err); + } + + // Without this we are leaking memory. This problem was introduced in + // 8189925374e7ce3819bbe88b64c7b15abac96b16. I suspect that the error object + // causes a cyclic reference that the GC does not detect properly, but I was + // unable to produce a standalone version of this leak. This would be a great + // challenge for somebody interested in difficult problems : )! + this._callSite = null; + + // try...finally for exception safety + try { + if (err) { + this.emit('error', err); + } + } finally { + try { + if (this._callback) { + this._callback.apply(this, arguments); + } + } finally { + this.emit('end'); + } + } +}; + +Sequence.prototype['OkPacket'] = function(packet) { + this.end(null, packet); +}; + +Sequence.prototype['ErrorPacket'] = function(packet) { + this.end(this._packetToError(packet)); +}; + +// Implemented by child classes +Sequence.prototype.start = function() {}; + +Sequence.prototype._addLongStackTrace = function _addLongStackTrace(err) { + var callSiteStack = this._callSite && this._callSite.stack; + + if (!callSiteStack || typeof callSiteStack !== 'string') { + // No recorded call site + return; + } + + if (err.stack.indexOf(LONG_STACK_DELIMITER) !== -1) { + // Error stack already looks long + return; + } + + var index = callSiteStack.indexOf('\n'); + + if (index !== -1) { + // Append recorded call site + err.stack += LONG_STACK_DELIMITER + callSiteStack.substr(index + 1); + } +}; + +Sequence.prototype._onTimeout = function _onTimeout() { + this.emit('timeout'); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Statistics.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Statistics.js" new file mode 100644 index 0000000000000000000000000000000000000000..c75b5d936a1adc3bf0ff2df5dd78caea2b038204 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/Statistics.js" @@ -0,0 +1,30 @@ +var Sequence = require('./Sequence'); +var Util = require('util'); +var Packets = require('../packets'); + +module.exports = Statistics; +Util.inherits(Statistics, Sequence); +function Statistics(options, callback) { + if (!callback && typeof options === 'function') { + callback = options; + options = {}; + } + + Sequence.call(this, options, callback); +} + +Statistics.prototype.start = function() { + this.emit('packet', new Packets.ComStatisticsPacket()); +}; + +Statistics.prototype['StatisticsPacket'] = function (packet) { + this.end(null, packet); +}; + +Statistics.prototype.determinePacket = function determinePacket(firstByte) { + if (firstByte === 0x55) { + return Packets.StatisticsPacket; + } + + return undefined; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..0eae5ce63bbdeb08ffe1b0fcfbf83448964b6236 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/lib/protocol/sequences/index.js" @@ -0,0 +1,7 @@ +exports.ChangeUser = require('./ChangeUser'); +exports.Handshake = require('./Handshake'); +exports.Ping = require('./Ping'); +exports.Query = require('./Query'); +exports.Quit = require('./Quit'); +exports.Sequence = require('./Sequence'); +exports.Statistics = require('./Statistics'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..0c068ceecbd48fc4e8279e6451793fec2bf12178 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/LICENSE" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..e9a81afd0406f030ba21169f0c7a1dba70b3a93b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/README.md" @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a t茅st'); +console.log(buf1.toString()); + // prints: this is a t茅st +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a t茅st +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/index.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/index.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..e9fed809a5ab515658d6e71f7ba5f631be769be4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/index.d.ts" @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..22438dabbbceef6954a1a7a68038f8c440a90c79 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/index.js" @@ -0,0 +1,62 @@ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..7ac8cc7a02ce3409dff36ef1e55fe92937f3add2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/node_modules/safe-buffer/package.json" @@ -0,0 +1,62 @@ +{ + "_from": "safe-buffer@5.1.2", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "_location": "/mysql/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.2", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.2", + "saveSpec": null, + "fetchSpec": "5.1.2" + }, + "_requiredBy": [ + "/mysql" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", + "_spec": "safe-buffer@5.1.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\mysql", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..54bed2da3ad3f090214f8d5ba045e166fb8a7393 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/mysql/package.json" @@ -0,0 +1,98 @@ +{ + "_from": "mysql", + "_id": "mysql@2.18.1", + "_inBundle": false, + "_integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "_location": "/mysql", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "mysql", + "name": "mysql", + "escapedName": "mysql", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "_shasum": "2254143855c5a8c73825e4522baf2ea021766717", + "_spec": "mysql", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰", + "author": { + "name": "Felix Geisend枚rfer", + "email": "felix@debuggable.com", + "url": "http://debuggable.com/" + }, + "bugs": { + "url": "https://github.com/mysqljs/mysql/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Andrey Sidorov", + "email": "sidorares@yandex.ru" + }, + { + "name": "Bradley Grainger", + "email": "bgrainger@gmail.com" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Diogo Resende", + "email": "dresende@thinkdigital.pt" + }, + { + "name": "Nathan Woltman", + "email": "nwoltman@outlook.com" + } + ], + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "deprecated": false, + "description": "A node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 100% MIT licensed.", + "devDependencies": { + "after": "0.8.2", + "eslint": "5.16.0", + "seedrandom": "3.0.5", + "timezone-mock": "0.0.7", + "urun": "0.0.8", + "utest": "0.0.8" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "lib/", + "Changes.md", + "License", + "Readme.md", + "index.js" + ], + "homepage": "https://github.com/mysqljs/mysql#readme", + "license": "MIT", + "name": "mysql", + "repository": { + "type": "git", + "url": "git+https://github.com/mysqljs/mysql.git" + }, + "scripts": { + "lint": "eslint . && node tool/lint-readme.js", + "test": "node test/run.js", + "test-ci": "node tool/install-nyc.js --nyc-optional --reporter=text -- npm test", + "test-cov": "node tool/install-nyc.js --reporter=html --reporter=text -- npm test", + "version": "node tool/version-changes.js && git add Changes.md" + }, + "version": "2.18.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..a9a544914c43bb8927b9ee9ff02aa2c2c7277fdb --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/HISTORY.md" @@ -0,0 +1,108 @@ +0.6.3 / 2022-01-22 +================== + + * Revert "Lazy-load modules from main entry point" + +0.6.2 / 2019-04-29 +================== + + * Fix sorting charset, encoding, and language with extra parameters + +0.6.1 / 2016-05-02 +================== + + * perf: improve `Accept` parsing speed + * perf: improve `Accept-Charset` parsing speed + * perf: improve `Accept-Encoding` parsing speed + * perf: improve `Accept-Language` parsing speed + +0.6.0 / 2015-09-29 +================== + + * Fix including type extensions in parameters in `Accept` parsing + * Fix parsing `Accept` parameters with quoted equals + * Fix parsing `Accept` parameters with quoted semicolons + * Lazy-load modules from main entry point + * perf: delay type concatenation until needed + * perf: enable strict mode + * perf: hoist regular expressions + * perf: remove closures getting spec properties + * perf: remove a closure from media type parsing + * perf: remove property delete from media type parsing + +0.5.3 / 2015-05-10 +================== + + * Fix media type parameter matching to be case-insensitive + +0.5.2 / 2015-05-06 +================== + + * Fix comparing media types with quoted values + * Fix splitting media types with quoted commas + +0.5.1 / 2015-02-14 +================== + + * Fix preference sorting to be stable for long acceptable lists + +0.5.0 / 2014-12-18 +================== + + * Fix list return order when large accepted list + * Fix missing identity encoding when q=0 exists + * Remove dynamic building of Negotiator class + +0.4.9 / 2014-10-14 +================== + + * Fix error when media type has invalid parameter + +0.4.8 / 2014-09-28 +================== + + * Fix all negotiations to be case-insensitive + * Stable sort preferences of same quality according to client order + * Support Node.js 0.6 + +0.4.7 / 2014-06-24 +================== + + * Handle invalid provided languages + * Handle invalid provided media types + +0.4.6 / 2014-06-11 +================== + + * Order by specificity when quality is the same + +0.4.5 / 2014-05-29 +================== + + * Fix regression in empty header handling + +0.4.4 / 2014-05-29 +================== + + * Fix behaviors when headers are not present + +0.4.3 / 2014-04-16 +================== + + * Handle slashes on media params correctly + +0.4.2 / 2014-02-28 +================== + + * Fix media type sorting + * Handle media types params strictly + +0.4.1 / 2014-01-16 +================== + + * Use most specific matches + +0.4.0 / 2014-01-09 +================== + + * Remove preferred prefix from methods diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..ea6b9e2e9ac251526c95df2dd995cf5f1e861854 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/LICENSE" @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2014 Federico Romero +Copyright (c) 2012-2014 Isaac Z. Schlueter +Copyright (c) 2014-2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..82915e521b4d321d90111316c6193706f1d7b8bf --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/README.md" @@ -0,0 +1,203 @@ +# negotiator + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +An HTTP content negotiator for Node.js + +## Installation + +```sh +$ npm install negotiator +``` + +## API + +```js +var Negotiator = require('negotiator') +``` + +### Accept Negotiation + +```js +availableMediaTypes = ['text/html', 'text/plain', 'application/json'] + +// The negotiator constructor receives a request object +negotiator = new Negotiator(request) + +// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8' + +negotiator.mediaTypes() +// -> ['text/html', 'image/jpeg', 'application/*'] + +negotiator.mediaTypes(availableMediaTypes) +// -> ['text/html', 'application/json'] + +negotiator.mediaType(availableMediaTypes) +// -> 'text/html' +``` + +You can check a working example at `examples/accept.js`. + +#### Methods + +##### mediaType() + +Returns the most preferred media type from the client. + +##### mediaType(availableMediaType) + +Returns the most preferred media type from a list of available media types. + +##### mediaTypes() + +Returns an array of preferred media types ordered by the client preference. + +##### mediaTypes(availableMediaTypes) + +Returns an array of preferred media types ordered by priority from a list of +available media types. + +### Accept-Language Negotiation + +```js +negotiator = new Negotiator(request) + +availableLanguages = ['en', 'es', 'fr'] + +// Let's say Accept-Language header is 'en;q=0.8, es, pt' + +negotiator.languages() +// -> ['es', 'pt', 'en'] + +negotiator.languages(availableLanguages) +// -> ['es', 'en'] + +language = negotiator.language(availableLanguages) +// -> 'es' +``` + +You can check a working example at `examples/language.js`. + +#### Methods + +##### language() + +Returns the most preferred language from the client. + +##### language(availableLanguages) + +Returns the most preferred language from a list of available languages. + +##### languages() + +Returns an array of preferred languages ordered by the client preference. + +##### languages(availableLanguages) + +Returns an array of preferred languages ordered by priority from a list of +available languages. + +### Accept-Charset Negotiation + +```js +availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5'] + +negotiator = new Negotiator(request) + +// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2' + +negotiator.charsets() +// -> ['utf-8', 'iso-8859-1', 'utf-7'] + +negotiator.charsets(availableCharsets) +// -> ['utf-8', 'iso-8859-1'] + +negotiator.charset(availableCharsets) +// -> 'utf-8' +``` + +You can check a working example at `examples/charset.js`. + +#### Methods + +##### charset() + +Returns the most preferred charset from the client. + +##### charset(availableCharsets) + +Returns the most preferred charset from a list of available charsets. + +##### charsets() + +Returns an array of preferred charsets ordered by the client preference. + +##### charsets(availableCharsets) + +Returns an array of preferred charsets ordered by priority from a list of +available charsets. + +### Accept-Encoding Negotiation + +```js +availableEncodings = ['identity', 'gzip'] + +negotiator = new Negotiator(request) + +// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5' + +negotiator.encodings() +// -> ['gzip', 'identity', 'compress'] + +negotiator.encodings(availableEncodings) +// -> ['gzip', 'identity'] + +negotiator.encoding(availableEncodings) +// -> 'gzip' +``` + +You can check a working example at `examples/encoding.js`. + +#### Methods + +##### encoding() + +Returns the most preferred encoding from the client. + +##### encoding(availableEncodings) + +Returns the most preferred encoding from a list of available encodings. + +##### encodings() + +Returns an array of preferred encodings ordered by the client preference. + +##### encodings(availableEncodings) + +Returns an array of preferred encodings ordered by priority from a list of +available encodings. + +## See Also + +The [accepts](https://npmjs.org/package/accepts#readme) module builds on +this module and provides an alternative interface, mime type validation, +and more. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/negotiator.svg +[npm-url]: https://npmjs.org/package/negotiator +[node-version-image]: https://img.shields.io/node/v/negotiator.svg +[node-version-url]: https://nodejs.org/en/download/ +[coveralls-image]: https://img.shields.io/coveralls/jshttp/negotiator/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/negotiator?branch=master +[downloads-image]: https://img.shields.io/npm/dm/negotiator.svg +[downloads-url]: https://npmjs.org/package/negotiator +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/negotiator/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/negotiator/actions/workflows/ci.yml diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..4788264b16c9f2282bba539529577ed31920425d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/index.js" @@ -0,0 +1,82 @@ +/*! + * negotiator + * Copyright(c) 2012 Federico Romero + * Copyright(c) 2012-2014 Isaac Z. Schlueter + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +var preferredCharsets = require('./lib/charset') +var preferredEncodings = require('./lib/encoding') +var preferredLanguages = require('./lib/language') +var preferredMediaTypes = require('./lib/mediaType') + +/** + * Module exports. + * @public + */ + +module.exports = Negotiator; +module.exports.Negotiator = Negotiator; + +/** + * Create a Negotiator instance from a request. + * @param {object} request + * @public + */ + +function Negotiator(request) { + if (!(this instanceof Negotiator)) { + return new Negotiator(request); + } + + this.request = request; +} + +Negotiator.prototype.charset = function charset(available) { + var set = this.charsets(available); + return set && set[0]; +}; + +Negotiator.prototype.charsets = function charsets(available) { + return preferredCharsets(this.request.headers['accept-charset'], available); +}; + +Negotiator.prototype.encoding = function encoding(available) { + var set = this.encodings(available); + return set && set[0]; +}; + +Negotiator.prototype.encodings = function encodings(available) { + return preferredEncodings(this.request.headers['accept-encoding'], available); +}; + +Negotiator.prototype.language = function language(available) { + var set = this.languages(available); + return set && set[0]; +}; + +Negotiator.prototype.languages = function languages(available) { + return preferredLanguages(this.request.headers['accept-language'], available); +}; + +Negotiator.prototype.mediaType = function mediaType(available) { + var set = this.mediaTypes(available); + return set && set[0]; +}; + +Negotiator.prototype.mediaTypes = function mediaTypes(available) { + return preferredMediaTypes(this.request.headers.accept, available); +}; + +// Backwards compatibility +Negotiator.prototype.preferredCharset = Negotiator.prototype.charset; +Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets; +Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding; +Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings; +Negotiator.prototype.preferredLanguage = Negotiator.prototype.language; +Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages; +Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType; +Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/charset.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/charset.js" new file mode 100644 index 0000000000000000000000000000000000000000..cdd014803474a4b76b981c475a32ebcaa81a36e5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/charset.js" @@ -0,0 +1,169 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredCharsets; +module.exports.preferredCharsets = preferredCharsets; + +/** + * Module variables. + * @private + */ + +var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + +/** + * Parse the Accept-Charset header. + * @private + */ + +function parseAcceptCharset(accept) { + var accepts = accept.split(','); + + for (var i = 0, j = 0; i < accepts.length; i++) { + var charset = parseCharset(accepts[i].trim(), i); + + if (charset) { + accepts[j++] = charset; + } + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse a charset from the Accept-Charset header. + * @private + */ + +function parseCharset(str, i) { + var match = simpleCharsetRegExp.exec(str); + if (!match) return null; + + var charset = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(';') + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split('='); + if (p[0] === 'q') { + q = parseFloat(p[1]); + break; + } + } + } + + return { + charset: charset, + q: q, + i: i + }; +} + +/** + * Get the priority of a charset. + * @private + */ + +function getCharsetPriority(charset, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(charset, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the charset. + * @private + */ + +function specify(charset, spec, index) { + var s = 0; + if(spec.charset.toLowerCase() === charset.toLowerCase()){ + s |= 1; + } else if (spec.charset !== '*' ) { + return null + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s + } +} + +/** + * Get the preferred charsets from an Accept-Charset header. + * @public + */ + +function preferredCharsets(accept, provided) { + // RFC 2616 sec 14.2: no header = * + var accepts = parseAcceptCharset(accept === undefined ? '*' : accept || ''); + + if (!provided) { + // sorted list of all charsets + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullCharset); + } + + var priorities = provided.map(function getPriority(type, index) { + return getCharsetPriority(type, accepts, index); + }); + + // sorted list of accepted charsets + return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full charset string. + * @private + */ + +function getFullCharset(spec) { + return spec.charset; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/encoding.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/encoding.js" new file mode 100644 index 0000000000000000000000000000000000000000..8432cd77b8a96940b87d747dbb30ee9c2d065a31 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/encoding.js" @@ -0,0 +1,184 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredEncodings; +module.exports.preferredEncodings = preferredEncodings; + +/** + * Module variables. + * @private + */ + +var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + +/** + * Parse the Accept-Encoding header. + * @private + */ + +function parseAcceptEncoding(accept) { + var accepts = accept.split(','); + var hasIdentity = false; + var minQuality = 1; + + for (var i = 0, j = 0; i < accepts.length; i++) { + var encoding = parseEncoding(accepts[i].trim(), i); + + if (encoding) { + accepts[j++] = encoding; + hasIdentity = hasIdentity || specify('identity', encoding); + minQuality = Math.min(minQuality, encoding.q || 1); + } + } + + if (!hasIdentity) { + /* + * If identity doesn't explicitly appear in the accept-encoding header, + * it's added to the list of acceptable encoding with the lowest q + */ + accepts[j++] = { + encoding: 'identity', + q: minQuality, + i: i + }; + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse an encoding from the Accept-Encoding header. + * @private + */ + +function parseEncoding(str, i) { + var match = simpleEncodingRegExp.exec(str); + if (!match) return null; + + var encoding = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(';'); + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split('='); + if (p[0] === 'q') { + q = parseFloat(p[1]); + break; + } + } + } + + return { + encoding: encoding, + q: q, + i: i + }; +} + +/** + * Get the priority of an encoding. + * @private + */ + +function getEncodingPriority(encoding, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(encoding, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the encoding. + * @private + */ + +function specify(encoding, spec, index) { + var s = 0; + if(spec.encoding.toLowerCase() === encoding.toLowerCase()){ + s |= 1; + } else if (spec.encoding !== '*' ) { + return null + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s + } +}; + +/** + * Get the preferred encodings from an Accept-Encoding header. + * @public + */ + +function preferredEncodings(accept, provided) { + var accepts = parseAcceptEncoding(accept || ''); + + if (!provided) { + // sorted list of all encodings + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullEncoding); + } + + var priorities = provided.map(function getPriority(type, index) { + return getEncodingPriority(type, accepts, index); + }); + + // sorted list of accepted encodings + return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full encoding string. + * @private + */ + +function getFullEncoding(spec) { + return spec.encoding; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/language.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/language.js" new file mode 100644 index 0000000000000000000000000000000000000000..a23167252719be841ad570eb655a703a4ae8fe9e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/language.js" @@ -0,0 +1,179 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredLanguages; +module.exports.preferredLanguages = preferredLanguages; + +/** + * Module variables. + * @private + */ + +var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/; + +/** + * Parse the Accept-Language header. + * @private + */ + +function parseAcceptLanguage(accept) { + var accepts = accept.split(','); + + for (var i = 0, j = 0; i < accepts.length; i++) { + var language = parseLanguage(accepts[i].trim(), i); + + if (language) { + accepts[j++] = language; + } + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse a language from the Accept-Language header. + * @private + */ + +function parseLanguage(str, i) { + var match = simpleLanguageRegExp.exec(str); + if (!match) return null; + + var prefix = match[1] + var suffix = match[2] + var full = prefix + + if (suffix) full += "-" + suffix; + + var q = 1; + if (match[3]) { + var params = match[3].split(';') + for (var j = 0; j < params.length; j++) { + var p = params[j].split('='); + if (p[0] === 'q') q = parseFloat(p[1]); + } + } + + return { + prefix: prefix, + suffix: suffix, + q: q, + i: i, + full: full + }; +} + +/** + * Get the priority of a language. + * @private + */ + +function getLanguagePriority(language, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(language, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the language. + * @private + */ + +function specify(language, spec, index) { + var p = parseLanguage(language) + if (!p) return null; + var s = 0; + if(spec.full.toLowerCase() === p.full.toLowerCase()){ + s |= 4; + } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) { + s |= 2; + } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) { + s |= 1; + } else if (spec.full !== '*' ) { + return null + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s + } +}; + +/** + * Get the preferred languages from an Accept-Language header. + * @public + */ + +function preferredLanguages(accept, provided) { + // RFC 2616 sec 14.4: no header = * + var accepts = parseAcceptLanguage(accept === undefined ? '*' : accept || ''); + + if (!provided) { + // sorted list of all languages + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullLanguage); + } + + var priorities = provided.map(function getPriority(type, index) { + return getLanguagePriority(type, accepts, index); + }); + + // sorted list of accepted languages + return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full language string. + * @private + */ + +function getFullLanguage(spec) { + return spec.full; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/mediaType.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/mediaType.js" new file mode 100644 index 0000000000000000000000000000000000000000..67309dd75f1b62cfe90bfa622919fdae8b80bc0b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/lib/mediaType.js" @@ -0,0 +1,294 @@ +/** + * negotiator + * Copyright(c) 2012 Isaac Z. Schlueter + * Copyright(c) 2014 Federico Romero + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = preferredMediaTypes; +module.exports.preferredMediaTypes = preferredMediaTypes; + +/** + * Module variables. + * @private + */ + +var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/; + +/** + * Parse the Accept header. + * @private + */ + +function parseAccept(accept) { + var accepts = splitMediaTypes(accept); + + for (var i = 0, j = 0; i < accepts.length; i++) { + var mediaType = parseMediaType(accepts[i].trim(), i); + + if (mediaType) { + accepts[j++] = mediaType; + } + } + + // trim accepts + accepts.length = j; + + return accepts; +} + +/** + * Parse a media type from the Accept header. + * @private + */ + +function parseMediaType(str, i) { + var match = simpleMediaTypeRegExp.exec(str); + if (!match) return null; + + var params = Object.create(null); + var q = 1; + var subtype = match[2]; + var type = match[1]; + + if (match[3]) { + var kvps = splitParameters(match[3]).map(splitKeyValuePair); + + for (var j = 0; j < kvps.length; j++) { + var pair = kvps[j]; + var key = pair[0].toLowerCase(); + var val = pair[1]; + + // get the value, unwrapping quotes + var value = val && val[0] === '"' && val[val.length - 1] === '"' + ? val.substr(1, val.length - 2) + : val; + + if (key === 'q') { + q = parseFloat(value); + break; + } + + // store parameter + params[key] = value; + } + } + + return { + type: type, + subtype: subtype, + params: params, + q: q, + i: i + }; +} + +/** + * Get the priority of a media type. + * @private + */ + +function getMediaTypePriority(type, accepted, index) { + var priority = {o: -1, q: 0, s: 0}; + + for (var i = 0; i < accepted.length; i++) { + var spec = specify(type, accepted[i], index); + + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + + return priority; +} + +/** + * Get the specificity of the media type. + * @private + */ + +function specify(type, spec, index) { + var p = parseMediaType(type); + var s = 0; + + if (!p) { + return null; + } + + if(spec.type.toLowerCase() == p.type.toLowerCase()) { + s |= 4 + } else if(spec.type != '*') { + return null; + } + + if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) { + s |= 2 + } else if(spec.subtype != '*') { + return null; + } + + var keys = Object.keys(spec.params); + if (keys.length > 0) { + if (keys.every(function (k) { + return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase(); + })) { + s |= 1 + } else { + return null + } + } + + return { + i: index, + o: spec.i, + q: spec.q, + s: s, + } +} + +/** + * Get the preferred media types from an Accept header. + * @public + */ + +function preferredMediaTypes(accept, provided) { + // RFC 2616 sec 14.2: no header = */* + var accepts = parseAccept(accept === undefined ? '*/*' : accept || ''); + + if (!provided) { + // sorted list of all types + return accepts + .filter(isQuality) + .sort(compareSpecs) + .map(getFullType); + } + + var priorities = provided.map(function getPriority(type, index) { + return getMediaTypePriority(type, accepts, index); + }); + + // sorted list of accepted types + return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) { + return provided[priorities.indexOf(priority)]; + }); +} + +/** + * Compare two specs. + * @private + */ + +function compareSpecs(a, b) { + return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0; +} + +/** + * Get full type string. + * @private + */ + +function getFullType(spec) { + return spec.type + '/' + spec.subtype; +} + +/** + * Check if a spec has any quality. + * @private + */ + +function isQuality(spec) { + return spec.q > 0; +} + +/** + * Count the number of quotes in a string. + * @private + */ + +function quoteCount(string) { + var count = 0; + var index = 0; + + while ((index = string.indexOf('"', index)) !== -1) { + count++; + index++; + } + + return count; +} + +/** + * Split a key value pair. + * @private + */ + +function splitKeyValuePair(str) { + var index = str.indexOf('='); + var key; + var val; + + if (index === -1) { + key = str; + } else { + key = str.substr(0, index); + val = str.substr(index + 1); + } + + return [key, val]; +} + +/** + * Split an Accept header into media types. + * @private + */ + +function splitMediaTypes(accept) { + var accepts = accept.split(','); + + for (var i = 1, j = 0; i < accepts.length; i++) { + if (quoteCount(accepts[j]) % 2 == 0) { + accepts[++j] = accepts[i]; + } else { + accepts[j] += ',' + accepts[i]; + } + } + + // trim accepts + accepts.length = j + 1; + + return accepts; +} + +/** + * Split a string of parameters. + * @private + */ + +function splitParameters(str) { + var parameters = str.split(';'); + + for (var i = 1, j = 0; i < parameters.length; i++) { + if (quoteCount(parameters[j]) % 2 == 0) { + parameters[++j] = parameters[i]; + } else { + parameters[j] += ';' + parameters[i]; + } + } + + // trim parameters + parameters.length = j + 1; + + for (var i = 0; i < parameters.length; i++) { + parameters[i] = parameters[i].trim(); + } + + return parameters; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..cb1d550855330ae06aae9eca19012a091734549b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/negotiator/package.json" @@ -0,0 +1,84 @@ +{ + "_from": "negotiator@0.6.3", + "_id": "negotiator@0.6.3", + "_inBundle": false, + "_integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "_location": "/negotiator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "negotiator@0.6.3", + "name": "negotiator", + "escapedName": "negotiator", + "rawSpec": "0.6.3", + "saveSpec": null, + "fetchSpec": "0.6.3" + }, + "_requiredBy": [ + "/accepts" + ], + "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "_shasum": "58e323a72fedc0d6f9cd4d31fe49f51479590ccd", + "_spec": "negotiator@0.6.3", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\accepts", + "bugs": { + "url": "https://github.com/jshttp/negotiator/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Federico Romero", + "email": "federico.romero@outboxlabs.com" + }, + { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + } + ], + "deprecated": false, + "description": "HTTP content negotiation", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.1.3", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "lib/", + "HISTORY.md", + "LICENSE", + "index.js", + "README.md" + ], + "homepage": "https://github.com/jshttp/negotiator#readme", + "keywords": [ + "http", + "content negotiation", + "accept", + "accept-language", + "accept-encoding", + "accept-charset" + ], + "license": "MIT", + "name": "negotiator", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/negotiator.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "0.6.3" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..98ff0e9924e5e1e24df2a1518d941de9c2a6d61c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/HISTORY.md" @@ -0,0 +1,88 @@ +2.3.0 / 2015-05-26 +================== + + * Add defined behavior for HTTP `CONNECT` requests + * Add defined behavior for HTTP `Upgrade` requests + * deps: ee-first@1.1.1 + +2.2.1 / 2015-04-22 +================== + + * Fix `isFinished(req)` when data buffered + +2.2.0 / 2014-12-22 +================== + + * Add message object to callback arguments + +2.1.1 / 2014-10-22 +================== + + * Fix handling of pipelined requests + +2.1.0 / 2014-08-16 +================== + + * Check if `socket` is detached + * Return `undefined` for `isFinished` if state unknown + +2.0.0 / 2014-08-16 +================== + + * Add `isFinished` function + * Move to `jshttp` organization + * Remove support for plain socket argument + * Rename to `on-finished` + * Support both `req` and `res` as arguments + * deps: ee-first@1.0.5 + +1.2.2 / 2014-06-10 +================== + + * Reduce listeners added to emitters + - avoids "event emitter leak" warnings when used multiple times on same request + +1.2.1 / 2014-06-08 +================== + + * Fix returned value when already finished + +1.2.0 / 2014-06-05 +================== + + * Call callback when called on already-finished socket + +1.1.4 / 2014-05-27 +================== + + * Support node.js 0.8 + +1.1.3 / 2014-04-30 +================== + + * Make sure errors passed as instanceof `Error` + +1.1.2 / 2014-04-18 +================== + + * Default the `socket` to passed-in object + +1.1.1 / 2014-01-16 +================== + + * Rename module to `finished` + +1.1.0 / 2013-12-25 +================== + + * Call callback when called on already-errored socket + +1.0.1 / 2013-12-20 +================== + + * Actually pass the error to the callback + +1.0.0 / 2013-12-20 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..5931fd23eab9dd3be559cd4bd81253df87a5297c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2014 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..a0e11574403abbf8c96765d9fe3baac8ebe17571 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/README.md" @@ -0,0 +1,154 @@ +# on-finished + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Execute a callback when a HTTP request closes, finishes, or errors. + +## Install + +```sh +$ npm install on-finished +``` + +## API + +```js +var onFinished = require('on-finished') +``` + +### onFinished(res, listener) + +Attach a listener to listen for the response to finish. The listener will +be invoked only once when the response finished. If the response finished +to an error, the first argument will contain the error. If the response +has already finished, the listener will be invoked. + +Listening to the end of a response would be used to close things associated +with the response, like open files. + +Listener is invoked as `listener(err, res)`. + +```js +onFinished(res, function (err, res) { + // clean up open fds, etc. + // err contains the error is request error'd +}) +``` + +### onFinished(req, listener) + +Attach a listener to listen for the request to finish. The listener will +be invoked only once when the request finished. If the request finished +to an error, the first argument will contain the error. If the request +has already finished, the listener will be invoked. + +Listening to the end of a request would be used to know when to continue +after reading the data. + +Listener is invoked as `listener(err, req)`. + +```js +var data = '' + +req.setEncoding('utf8') +res.on('data', function (str) { + data += str +}) + +onFinished(req, function (err, req) { + // data is read unless there is err +}) +``` + +### onFinished.isFinished(res) + +Determine if `res` is already finished. This would be useful to check and +not even start certain operations if the response has already finished. + +### onFinished.isFinished(req) + +Determine if `req` is already finished. This would be useful to check and +not even start certain operations if the request has already finished. + +## Special Node.js requests + +### HTTP CONNECT method + +The meaning of the `CONNECT` method from RFC 7231, section 4.3.6: + +> The CONNECT method requests that the recipient establish a tunnel to +> the destination origin server identified by the request-target and, +> if successful, thereafter restrict its behavior to blind forwarding +> of packets, in both directions, until the tunnel is closed. Tunnels +> are commonly used to create an end-to-end virtual connection, through +> one or more proxies, which can then be secured using TLS (Transport +> Layer Security, [RFC5246]). + +In Node.js, these request objects come from the `'connect'` event on +the HTTP server. + +When this module is used on a HTTP `CONNECT` request, the request is +considered "finished" immediately, **due to limitations in the Node.js +interface**. This means if the `CONNECT` request contains a request entity, +the request will be considered "finished" even before it has been read. + +There is no such thing as a response object to a `CONNECT` request in +Node.js, so there is no support for for one. + +### HTTP Upgrade request + +The meaning of the `Upgrade` header from RFC 7230, section 6.1: + +> The "Upgrade" header field is intended to provide a simple mechanism +> for transitioning from HTTP/1.1 to some other protocol on the same +> connection. + +In Node.js, these request objects come from the `'upgrade'` event on +the HTTP server. + +When this module is used on a HTTP request with an `Upgrade` header, the +request is considered "finished" immediately, **due to limitations in the +Node.js interface**. This means if the `Upgrade` request contains a request +entity, the request will be considered "finished" even before it has been +read. + +There is no such thing as a response object to a `Upgrade` request in +Node.js, so there is no support for for one. + +## Example + +The following code ensures that file descriptors are always closed +once the response finishes. + +```js +var destroy = require('destroy') +var http = require('http') +var onFinished = require('on-finished') + +http.createServer(function onRequest(req, res) { + var stream = fs.createReadStream('package.json') + stream.pipe(res) + onFinished(res, function (err) { + destroy(stream) + }) +}) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/on-finished.svg +[npm-url]: https://npmjs.org/package/on-finished +[node-version-image]: https://img.shields.io/node/v/on-finished.svg +[node-version-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/jshttp/on-finished/master.svg +[travis-url]: https://travis-ci.org/jshttp/on-finished +[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-finished/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/on-finished?branch=master +[downloads-image]: https://img.shields.io/npm/dm/on-finished.svg +[downloads-url]: https://npmjs.org/package/on-finished diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..9abd98f9d386260ca739c293c035b83252619f6a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/index.js" @@ -0,0 +1,196 @@ +/*! + * on-finished + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = onFinished +module.exports.isFinished = isFinished + +/** + * Module dependencies. + * @private + */ + +var first = require('ee-first') + +/** + * Variables. + * @private + */ + +/* istanbul ignore next */ +var defer = typeof setImmediate === 'function' + ? setImmediate + : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } + +/** + * Invoke callback when the response has finished, useful for + * cleaning up resources afterwards. + * + * @param {object} msg + * @param {function} listener + * @return {object} + * @public + */ + +function onFinished(msg, listener) { + if (isFinished(msg) !== false) { + defer(listener, null, msg) + return msg + } + + // attach the listener to the message + attachListener(msg, listener) + + return msg +} + +/** + * Determine if message is already finished. + * + * @param {object} msg + * @return {boolean} + * @public + */ + +function isFinished(msg) { + var socket = msg.socket + + if (typeof msg.finished === 'boolean') { + // OutgoingMessage + return Boolean(msg.finished || (socket && !socket.writable)) + } + + if (typeof msg.complete === 'boolean') { + // IncomingMessage + return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable)) + } + + // don't know + return undefined +} + +/** + * Attach a finished listener to the message. + * + * @param {object} msg + * @param {function} callback + * @private + */ + +function attachFinishedListener(msg, callback) { + var eeMsg + var eeSocket + var finished = false + + function onFinish(error) { + eeMsg.cancel() + eeSocket.cancel() + + finished = true + callback(error) + } + + // finished on first message event + eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish) + + function onSocket(socket) { + // remove listener + msg.removeListener('socket', onSocket) + + if (finished) return + if (eeMsg !== eeSocket) return + + // finished on first socket event + eeSocket = first([[socket, 'error', 'close']], onFinish) + } + + if (msg.socket) { + // socket already assigned + onSocket(msg.socket) + return + } + + // wait for socket to be assigned + msg.on('socket', onSocket) + + if (msg.socket === undefined) { + // node.js 0.8 patch + patchAssignSocket(msg, onSocket) + } +} + +/** + * Attach the listener to the message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function attachListener(msg, listener) { + var attached = msg.__onFinished + + // create a private single listener with queue + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg) + attachFinishedListener(msg, attached) + } + + attached.queue.push(listener) +} + +/** + * Create listener on message. + * + * @param {object} msg + * @return {function} + * @private + */ + +function createListener(msg) { + function listener(err) { + if (msg.__onFinished === listener) msg.__onFinished = null + if (!listener.queue) return + + var queue = listener.queue + listener.queue = null + + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg) + } + } + + listener.queue = [] + + return listener +} + +/** + * Patch ServerResponse.prototype.assignSocket for node.js 0.8. + * + * @param {ServerResponse} res + * @param {function} callback + * @private + */ + +function patchAssignSocket(res, callback) { + var assignSocket = res.assignSocket + + if (typeof assignSocket !== 'function') return + + // res.on('socket', callback) is broken in 0.8 + res.assignSocket = function _assignSocket(socket) { + assignSocket.call(this, socket) + callback(socket) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..2cf32b52fab5a4c82a238b74783c207ffbac514d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/on-finished/package.json" @@ -0,0 +1,73 @@ +{ + "_from": "on-finished@~2.3.0", + "_id": "on-finished@2.3.0", + "_inBundle": false, + "_integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "_location": "/on-finished", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "on-finished@~2.3.0", + "name": "on-finished", + "escapedName": "on-finished", + "rawSpec": "~2.3.0", + "saveSpec": null, + "fetchSpec": "~2.3.0" + }, + "_requiredBy": [ + "/body-parser", + "/express", + "/finalhandler", + "/send" + ], + "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "_shasum": "20f1336481b083cd75337992a16971aa2d906947", + "_spec": "on-finished@~2.3.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/on-finished/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "ee-first": "1.1.1" + }, + "deprecated": false, + "description": "Execute a callback when a request closes, finishes, or errors", + "devDependencies": { + "istanbul": "0.3.9", + "mocha": "2.2.5" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/jshttp/on-finished#readme", + "license": "MIT", + "name": "on-finished", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/on-finished.git" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "2.3.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..8e409541d855de232cc24d29524282441d11cbc7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/HISTORY.md" @@ -0,0 +1,58 @@ +1.3.3 / 2019-04-15 +================== + + * Fix Node.js 0.8 return value inconsistencies + +1.3.2 / 2017-09-09 +================== + + * perf: reduce overhead for full URLs + * perf: unroll the "fast-path" `RegExp` + +1.3.1 / 2016-01-17 +================== + + * perf: enable strict mode + +1.3.0 / 2014-08-09 +================== + + * Add `parseurl.original` for parsing `req.originalUrl` with fallback + * Return `undefined` if `req.url` is `undefined` + +1.2.0 / 2014-07-21 +================== + + * Cache URLs based on original value + * Remove no-longer-needed URL mis-parse work-around + * Simplify the "fast-path" `RegExp` + +1.1.3 / 2014-07-08 +================== + + * Fix typo + +1.1.2 / 2014-07-08 +================== + + * Seriously fix Node.js 0.8 compatibility + +1.1.1 / 2014-07-08 +================== + + * Fix Node.js 0.8 compatibility + +1.1.0 / 2014-07-08 +================== + + * Incorporate URL href-only parse fast-path + +1.0.1 / 2014-03-08 +================== + + * Add missing `require` + +1.0.0 / 2014-03-08 +================== + + * Genesis from `connect` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..27653d3db7e584321691af8f1bc30d49fe105d3e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/LICENSE" @@ -0,0 +1,24 @@ + +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..443e716b85dc54a70d063109d4e9afa39022989d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/README.md" @@ -0,0 +1,133 @@ +# parseurl + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Parse a URL with memoization. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install parseurl +``` + +## API + +```js +var parseurl = require('parseurl') +``` + +### parseurl(req) + +Parse the URL of the given request object (looks at the `req.url` property) +and return the result. The result is the same as `url.parse` in Node.js core. +Calling this function multiple times on the same `req` where `req.url` does +not change will return a cached parsed object, rather than parsing again. + +### parseurl.original(req) + +Parse the original URL of the given request object and return the result. +This works by trying to parse `req.originalUrl` if it is a string, otherwise +parses `req.url`. The result is the same as `url.parse` in Node.js core. +Calling this function multiple times on the same `req` where `req.originalUrl` +does not change will return a cached parsed object, rather than parsing again. + +## Benchmark + +```bash +$ npm run-script bench + +> parseurl@1.3.3 bench nodejs-parseurl +> node benchmark/index.js + + http_parser@2.8.0 + node@10.6.0 + v8@6.7.288.46-node.13 + uv@1.21.0 + zlib@1.2.11 + ares@1.14.0 + modules@64 + nghttp2@1.32.0 + napi@3 + openssl@1.1.0h + icu@61.1 + unicode@10.0 + cldr@33.0 + tz@2018c + +> node benchmark/fullurl.js + + Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy" + + 4 tests completed. + + fasturl x 2,207,842 ops/sec 卤3.76% (184 runs sampled) + nativeurl - legacy x 507,180 ops/sec 卤0.82% (191 runs sampled) + nativeurl - whatwg x 290,044 ops/sec 卤1.96% (189 runs sampled) + parseurl x 488,907 ops/sec 卤2.13% (192 runs sampled) + +> node benchmark/pathquery.js + + Parsing URL "/foo/bar?user=tj&pet=fluffy" + + 4 tests completed. + + fasturl x 3,812,564 ops/sec 卤3.15% (188 runs sampled) + nativeurl - legacy x 2,651,631 ops/sec 卤1.68% (189 runs sampled) + nativeurl - whatwg x 161,837 ops/sec 卤2.26% (189 runs sampled) + parseurl x 4,166,338 ops/sec 卤2.23% (184 runs sampled) + +> node benchmark/samerequest.js + + Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object + + 4 tests completed. + + fasturl x 3,821,651 ops/sec 卤2.42% (185 runs sampled) + nativeurl - legacy x 2,651,162 ops/sec 卤1.90% (187 runs sampled) + nativeurl - whatwg x 175,166 ops/sec 卤1.44% (188 runs sampled) + parseurl x 14,912,606 ops/sec 卤3.59% (183 runs sampled) + +> node benchmark/simplepath.js + + Parsing URL "/foo/bar" + + 4 tests completed. + + fasturl x 12,421,765 ops/sec 卤2.04% (191 runs sampled) + nativeurl - legacy x 7,546,036 ops/sec 卤1.41% (188 runs sampled) + nativeurl - whatwg x 198,843 ops/sec 卤1.83% (189 runs sampled) + parseurl x 24,244,006 ops/sec 卤0.51% (194 runs sampled) + +> node benchmark/slash.js + + Parsing URL "/" + + 4 tests completed. + + fasturl x 17,159,456 ops/sec 卤3.25% (188 runs sampled) + nativeurl - legacy x 11,635,097 ops/sec 卤3.79% (184 runs sampled) + nativeurl - whatwg x 240,693 ops/sec 卤0.83% (189 runs sampled) + parseurl x 42,279,067 ops/sec 卤0.55% (190 runs sampled) +``` + +## License + + [MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/parseurl/master +[coveralls-url]: https://coveralls.io/r/pillarjs/parseurl?branch=master +[node-image]: https://badgen.net/npm/node/parseurl +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/parseurl +[npm-url]: https://npmjs.org/package/parseurl +[npm-version-image]: https://badgen.net/npm/v/parseurl +[travis-image]: https://badgen.net/travis/pillarjs/parseurl/master +[travis-url]: https://travis-ci.org/pillarjs/parseurl diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..ece722327959f3bd9721488a035947387f1c1db1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/index.js" @@ -0,0 +1,158 @@ +/*! + * parseurl + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var url = require('url') +var parse = url.parse +var Url = url.Url + +/** + * Module exports. + * @public + */ + +module.exports = parseurl +module.exports.original = originalurl + +/** + * Parse the `req` url with memoization. + * + * @param {ServerRequest} req + * @return {Object} + * @public + */ + +function parseurl (req) { + var url = req.url + + if (url === undefined) { + // URL is undefined + return undefined + } + + var parsed = req._parsedUrl + + if (fresh(url, parsed)) { + // Return cached URL parse + return parsed + } + + // Parse the URL + parsed = fastparse(url) + parsed._raw = url + + return (req._parsedUrl = parsed) +}; + +/** + * Parse the `req` original url with fallback and memoization. + * + * @param {ServerRequest} req + * @return {Object} + * @public + */ + +function originalurl (req) { + var url = req.originalUrl + + if (typeof url !== 'string') { + // Fallback + return parseurl(req) + } + + var parsed = req._parsedOriginalUrl + + if (fresh(url, parsed)) { + // Return cached URL parse + return parsed + } + + // Parse the URL + parsed = fastparse(url) + parsed._raw = url + + return (req._parsedOriginalUrl = parsed) +}; + +/** + * Parse the `str` url with fast-path short-cut. + * + * @param {string} str + * @return {Object} + * @private + */ + +function fastparse (str) { + if (typeof str !== 'string' || str.charCodeAt(0) !== 0x2f /* / */) { + return parse(str) + } + + var pathname = str + var query = null + var search = null + + // This takes the regexp from https://github.com/joyent/node/pull/7878 + // Which is /^(\/[^?#\s]*)(\?[^#\s]*)?$/ + // And unrolls it into a for loop + for (var i = 1; i < str.length; i++) { + switch (str.charCodeAt(i)) { + case 0x3f: /* ? */ + if (search === null) { + pathname = str.substring(0, i) + query = str.substring(i + 1) + search = str.substring(i) + } + break + case 0x09: /* \t */ + case 0x0a: /* \n */ + case 0x0c: /* \f */ + case 0x0d: /* \r */ + case 0x20: /* */ + case 0x23: /* # */ + case 0xa0: + case 0xfeff: + return parse(str) + } + } + + var url = Url !== undefined + ? new Url() + : {} + + url.path = str + url.href = str + url.pathname = pathname + + if (search !== null) { + url.query = query + url.search = search + } + + return url +} + +/** + * Determine if parsed is still fresh for url. + * + * @param {string} url + * @param {object} parsedUrl + * @return {boolean} + * @private + */ + +function fresh (url, parsedUrl) { + return typeof parsedUrl === 'object' && + parsedUrl !== null && + (Url === undefined || parsedUrl instanceof Url) && + parsedUrl._raw === url +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..f6dbe1ac5d88e28f846d1adfc0348c8dcc750159 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/parseurl/package.json" @@ -0,0 +1,81 @@ +{ + "_from": "parseurl@~1.3.3", + "_id": "parseurl@1.3.3", + "_inBundle": false, + "_integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "_location": "/parseurl", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "parseurl@~1.3.3", + "name": "parseurl", + "escapedName": "parseurl", + "rawSpec": "~1.3.3", + "saveSpec": null, + "fetchSpec": "~1.3.3" + }, + "_requiredBy": [ + "/express", + "/finalhandler", + "/serve-static" + ], + "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "_shasum": "9da19e7bee8d12dff0513ed5b76957793bc2e8d4", + "_spec": "parseurl@~1.3.3", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/pillarjs/parseurl/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "parse a url with memoization", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.1", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "fast-url-parser": "1.1.3", + "istanbul": "0.4.5", + "mocha": "6.1.3" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/pillarjs/parseurl#readme", + "license": "MIT", + "name": "parseurl", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/parseurl.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --check-leaks --bail --reporter spec test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/" + }, + "version": "1.3.3" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/History.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/History.md" new file mode 100644 index 0000000000000000000000000000000000000000..7f6587846f67047b7f9ecddbb176abd25dc3741d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/History.md" @@ -0,0 +1,36 @@ +0.1.7 / 2015-07-28 +================== + + * Fixed regression with escaped round brackets and matching groups. + +0.1.6 / 2015-06-19 +================== + + * Replace `index` feature by outputting all parameters, unnamed and named. + +0.1.5 / 2015-05-08 +================== + + * Add an index property for position in match result. + +0.1.4 / 2015-03-05 +================== + + * Add license information + +0.1.3 / 2014-07-06 +================== + + * Better array support + * Improved support for trailing slash in non-ending mode + +0.1.0 / 2014-03-06 +================== + + * add options.end + +0.0.2 / 2013-02-10 +================== + + * Update to match current express + * add .license property to component.json diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..983fbe8aec3f4e2d4add592bb1083b00d7366f66 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/LICENSE" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..95452a6e9ee2ca18ec76107d4f7c78a5ef7991db --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/Readme.md" @@ -0,0 +1,35 @@ +# Path-to-RegExp + +Turn an Express-style path string such as `/user/:name` into a regular expression. + +**Note:** This is a legacy branch. You should upgrade to `1.x`. + +## Usage + +```javascript +var pathToRegexp = require('path-to-regexp'); +``` + +### pathToRegexp(path, keys, options) + + - **path** A string in the express format, an array of such strings, or a regular expression + - **keys** An array to be populated with the keys present in the url. Once the function completes, this will be an array of strings. + - **options** + - **options.sensitive** Defaults to false, set this to true to make routes case sensitive + - **options.strict** Defaults to false, set this to true to make the trailing slash matter. + - **options.end** Defaults to true, set this to false to only match the prefix of the URL. + +```javascript +var keys = []; +var exp = pathToRegexp('/foo/:bar', keys); +//keys = ['bar'] +//exp = /^\/foo\/(?:([^\/]+?))\/?$/i +``` + +## Live Demo + +You can see a live demo of this library in use at [express-route-tester](http://forbeslindesay.github.com/express-route-tester/). + +## License + + MIT diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..500d1dad0ef117b52778cbf060b9bde54d6860a4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/index.js" @@ -0,0 +1,129 @@ +/** + * Expose `pathtoRegexp`. + */ + +module.exports = pathtoRegexp; + +/** + * Match matching groups in a regular expression. + */ +var MATCHING_GROUP_REGEXP = /\((?!\?)/g; + +/** + * Normalize the given path string, + * returning a regular expression. + * + * An empty array should be passed, + * which will contain the placeholder + * key names. For example "/user/:id" will + * then contain ["id"]. + * + * @param {String|RegExp|Array} path + * @param {Array} keys + * @param {Object} options + * @return {RegExp} + * @api private + */ + +function pathtoRegexp(path, keys, options) { + options = options || {}; + keys = keys || []; + var strict = options.strict; + var end = options.end !== false; + var flags = options.sensitive ? '' : 'i'; + var extraOffset = 0; + var keysOffset = keys.length; + var i = 0; + var name = 0; + var m; + + if (path instanceof RegExp) { + while (m = MATCHING_GROUP_REGEXP.exec(path.source)) { + keys.push({ + name: name++, + optional: false, + offset: m.index + }); + } + + return path; + } + + if (Array.isArray(path)) { + // Map array parts into regexps and return their source. We also pass + // the same keys and options instance into every generation to get + // consistent matching groups before we join the sources together. + path = path.map(function (value) { + return pathtoRegexp(value, keys, options).source; + }); + + return new RegExp('(?:' + path.join('|') + ')', flags); + } + + path = ('^' + path + (strict ? '' : path[path.length - 1] === '/' ? '?' : '/?')) + .replace(/\/\(/g, '/(?:') + .replace(/([\/\.])/g, '\\$1') + .replace(/(\\\/)?(\\\.)?:(\w+)(\(.*?\))?(\*)?(\?)?/g, function (match, slash, format, key, capture, star, optional, offset) { + slash = slash || ''; + format = format || ''; + capture = capture || '([^\\/' + format + ']+?)'; + optional = optional || ''; + + keys.push({ + name: key, + optional: !!optional, + offset: offset + extraOffset + }); + + var result = '' + + (optional ? '' : slash) + + '(?:' + + format + (optional ? slash : '') + capture + + (star ? '((?:[\\/' + format + '].+?)?)' : '') + + ')' + + optional; + + extraOffset += result.length - match.length; + + return result; + }) + .replace(/\*/g, function (star, index) { + var len = keys.length + + while (len-- > keysOffset && keys[len].offset > index) { + keys[len].offset += 3; // Replacement length minus asterisk length. + } + + return '(.*)'; + }); + + // This is a workaround for handling unnamed matching groups. + while (m = MATCHING_GROUP_REGEXP.exec(path)) { + var escapeCount = 0; + var index = m.index; + + while (path.charAt(--index) === '\\') { + escapeCount++; + } + + // It's possible to escape the bracket. + if (escapeCount % 2 === 1) { + continue; + } + + if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) { + keys.splice(keysOffset + i, 0, { + name: name++, // Unnamed matching groups must be consistently linear. + optional: false, + offset: m.index + }); + } + + i++; + } + + // If the path is non-ending, match until the end or a slash. + path += (end ? '$' : (path[path.length - 1] === '/' ? '' : '(?=\\/|$)')); + + return new RegExp(path, flags); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..3d510bf12188d4321d67d07a1e09f53efeae5b29 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/path-to-regexp/package.json" @@ -0,0 +1,59 @@ +{ + "_from": "path-to-regexp@0.1.7", + "_id": "path-to-regexp@0.1.7", + "_inBundle": false, + "_integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "_location": "/path-to-regexp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-to-regexp@0.1.7", + "name": "path-to-regexp", + "escapedName": "path-to-regexp", + "rawSpec": "0.1.7", + "saveSpec": null, + "fetchSpec": "0.1.7" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "_shasum": "df604178005f522f15eb4490e7247a1bfaa67f8c", + "_spec": "path-to-regexp@0.1.7", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/component/path-to-regexp/issues" + }, + "bundleDependencies": false, + "component": { + "scripts": { + "path-to-regexp": "index.js" + } + }, + "deprecated": false, + "description": "Express style path to RegExp utility", + "devDependencies": { + "istanbul": "^0.2.6", + "mocha": "^1.17.1" + }, + "files": [ + "index.js", + "LICENSE" + ], + "homepage": "https://github.com/component/path-to-regexp#readme", + "keywords": [ + "express", + "regexp" + ], + "license": "MIT", + "name": "path-to-regexp", + "repository": { + "type": "git", + "url": "git+https://github.com/component/path-to-regexp.git" + }, + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "version": "0.1.7" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..3eecf11488531cd40aed422f0a68bdf0e6a8611a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/index.js" @@ -0,0 +1,45 @@ +'use strict'; + +if (typeof process === 'undefined' || + !process.version || + process.version.indexOf('v0.') === 0 || + process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { + module.exports = { nextTick: nextTick }; +} else { + module.exports = process +} + +function nextTick(fn, arg1, arg2, arg3) { + if (typeof fn !== 'function') { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process.nextTick(fn); + case 2: + return process.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process.nextTick(function afterTick() { + fn.apply(null, args); + }); + } +} + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/license.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/license.md" new file mode 100644 index 0000000000000000000000000000000000000000..c67e3532b542455fad8c4004ef297534d7f480b2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/license.md" @@ -0,0 +1,19 @@ +# Copyright (c) 2015 Calvin Metcalf + +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.** diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..2fabae148316c420fcdb57d7a7c0a56df5059d4e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/package.json" @@ -0,0 +1,50 @@ +{ + "_from": "process-nextick-args@~2.0.0", + "_id": "process-nextick-args@2.0.1", + "_inBundle": false, + "_integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "_location": "/process-nextick-args", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "process-nextick-args@~2.0.0", + "name": "process-nextick-args", + "escapedName": "process-nextick-args", + "rawSpec": "~2.0.0", + "saveSpec": null, + "fetchSpec": "~2.0.0" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "_shasum": "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2", + "_spec": "process-nextick-args@~2.0.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\readable-stream", + "author": "", + "bugs": { + "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "process.nextTick but always with args", + "devDependencies": { + "tap": "~0.2.6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/calvinmetcalf/process-nextick-args", + "license": "MIT", + "main": "index.js", + "name": "process-nextick-args", + "repository": { + "type": "git", + "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "2.0.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..ecb432c9b21ffd44bded842812586d3dab132c69 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/process-nextick-args/readme.md" @@ -0,0 +1,18 @@ +process-nextick-args +===== + +[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args) + +```bash +npm install --save process-nextick-args +``` + +Always be able to pass arguments to process.nextTick, no matter the platform + +```js +var pna = require('process-nextick-args'); + +pna.nextTick(function (a, b, c) { + console.log(a, b, c); +}, 'step', 3, 'profit'); +``` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..8480242a0c43af25ec8d685e941b6a79a65c8fb4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/HISTORY.md" @@ -0,0 +1,161 @@ +2.0.7 / 2021-05-31 +================== + + * deps: forwarded@0.2.0 + - Use `req.socket` over deprecated `req.connection` + +2.0.6 / 2020-02-24 +================== + + * deps: ipaddr.js@1.9.1 + +2.0.5 / 2019-04-16 +================== + + * deps: ipaddr.js@1.9.0 + +2.0.4 / 2018-07-26 +================== + + * deps: ipaddr.js@1.8.0 + +2.0.3 / 2018-02-19 +================== + + * deps: ipaddr.js@1.6.0 + +2.0.2 / 2017-09-24 +================== + + * deps: forwarded@~0.1.2 + - perf: improve header parsing + - perf: reduce overhead when no `X-Forwarded-For` header + +2.0.1 / 2017-09-10 +================== + + * deps: forwarded@~0.1.1 + - Fix trimming leading / trailing OWS + - perf: hoist regular expression + * deps: ipaddr.js@1.5.2 + +2.0.0 / 2017-08-08 +================== + + * Drop support for Node.js below 0.10 + +1.1.5 / 2017-07-25 +================== + + * Fix array argument being altered + * deps: ipaddr.js@1.4.0 + +1.1.4 / 2017-03-24 +================== + + * deps: ipaddr.js@1.3.0 + +1.1.3 / 2017-01-14 +================== + + * deps: ipaddr.js@1.2.0 + +1.1.2 / 2016-05-29 +================== + + * deps: ipaddr.js@1.1.1 + - Fix IPv6-mapped IPv4 validation edge cases + +1.1.1 / 2016-05-03 +================== + + * Fix regression matching mixed versions against multiple subnets + +1.1.0 / 2016-05-01 +================== + + * Fix accepting various invalid netmasks + - IPv4 netmasks must be contingous + - IPv6 addresses cannot be used as a netmask + * deps: ipaddr.js@1.1.0 + +1.0.10 / 2015-12-09 +=================== + + * deps: ipaddr.js@1.0.5 + - Fix regression in `isValid` with non-string arguments + +1.0.9 / 2015-12-01 +================== + + * deps: ipaddr.js@1.0.4 + - Fix accepting some invalid IPv6 addresses + - Reject CIDRs with negative or overlong masks + * perf: enable strict mode + +1.0.8 / 2015-05-10 +================== + + * deps: ipaddr.js@1.0.1 + +1.0.7 / 2015-03-16 +================== + + * deps: ipaddr.js@0.1.9 + - Fix OOM on certain inputs to `isValid` + +1.0.6 / 2015-02-01 +================== + + * deps: ipaddr.js@0.1.8 + +1.0.5 / 2015-01-08 +================== + + * deps: ipaddr.js@0.1.6 + +1.0.4 / 2014-11-23 +================== + + * deps: ipaddr.js@0.1.5 + - Fix edge cases with `isValid` + +1.0.3 / 2014-09-21 +================== + + * Use `forwarded` npm module + +1.0.2 / 2014-09-18 +================== + + * Fix a global leak when multiple subnets are trusted + * Support Node.js 0.6 + * deps: ipaddr.js@0.1.3 + +1.0.1 / 2014-06-03 +================== + + * Fix links in npm package + +1.0.0 / 2014-05-08 +================== + + * Add `trust` argument to determine proxy trust on + * Accepts custom function + * Accepts IPv4/IPv6 address(es) + * Accepts subnets + * Accepts pre-defined names + * Add optional `trust` argument to `proxyaddr.all` to + stop at first untrusted + * Add `proxyaddr.compile` to pre-compile `trust` function + to make subsequent calls faster + +0.0.1 / 2014-05-04 +================== + + * Fix bad npm publish + +0.0.0 / 2014-05-04 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..cab251c2b9a81318267600f68130faa3a290e5fd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2016 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..69c0b63eab22e32821df374c5e84a37c665c28c3 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/README.md" @@ -0,0 +1,139 @@ +# proxy-addr + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Determine address of proxied request + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install proxy-addr +``` + +## API + +```js +var proxyaddr = require('proxy-addr') +``` + +### proxyaddr(req, trust) + +Return the address of the request, using the given `trust` parameter. + +The `trust` argument is a function that returns `true` if you trust +the address, `false` if you don't. The closest untrusted address is +returned. + +```js +proxyaddr(req, function (addr) { return addr === '127.0.0.1' }) +proxyaddr(req, function (addr, i) { return i < 1 }) +``` + +The `trust` arugment may also be a single IP address string or an +array of trusted addresses, as plain IP addresses, CIDR-formatted +strings, or IP/netmask strings. + +```js +proxyaddr(req, '127.0.0.1') +proxyaddr(req, ['127.0.0.0/8', '10.0.0.0/8']) +proxyaddr(req, ['127.0.0.0/255.0.0.0', '192.168.0.0/255.255.0.0']) +``` + +This module also supports IPv6. Your IPv6 addresses will be normalized +automatically (i.e. `fe80::00ed:1` equals `fe80:0:0:0:0:0:ed:1`). + +```js +proxyaddr(req, '::1') +proxyaddr(req, ['::1/128', 'fe80::/10']) +``` + +This module will automatically work with IPv4-mapped IPv6 addresses +as well to support node.js in IPv6-only mode. This means that you do +not have to specify both `::ffff:a00:1` and `10.0.0.1`. + +As a convenience, this module also takes certain pre-defined names +in addition to IP addresses, which expand into IP addresses: + +```js +proxyaddr(req, 'loopback') +proxyaddr(req, ['loopback', 'fc00:ac:1ab5:fff::1/64']) +``` + + * `loopback`: IPv4 and IPv6 loopback addresses (like `::1` and + `127.0.0.1`). + * `linklocal`: IPv4 and IPv6 link-local addresses (like + `fe80::1:1:1:1` and `169.254.0.1`). + * `uniquelocal`: IPv4 private addresses and IPv6 unique-local + addresses (like `fc00:ac:1ab5:fff::1` and `192.168.0.1`). + +When `trust` is specified as a function, it will be called for each +address to determine if it is a trusted address. The function is +given two arguments: `addr` and `i`, where `addr` is a string of +the address to check and `i` is a number that represents the distance +from the socket address. + +### proxyaddr.all(req, [trust]) + +Return all the addresses of the request, optionally stopping at the +first untrusted. This array is ordered from closest to furthest +(i.e. `arr[0] === req.connection.remoteAddress`). + +```js +proxyaddr.all(req) +``` + +The optional `trust` argument takes the same arguments as `trust` +does in `proxyaddr(req, trust)`. + +```js +proxyaddr.all(req, 'loopback') +``` + +### proxyaddr.compile(val) + +Compiles argument `val` into a `trust` function. This function takes +the same arguments as `trust` does in `proxyaddr(req, trust)` and +returns a function suitable for `proxyaddr(req, trust)`. + +```js +var trust = proxyaddr.compile('loopback') +var addr = proxyaddr(req, trust) +``` + +This function is meant to be optimized for use against every request. +It is recommend to compile a trust function up-front for the trusted +configuration and pass that to `proxyaddr(req, trust)` for each request. + +## Testing + +```sh +$ npm test +``` + +## Benchmarks + +```sh +$ npm run-script bench +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/proxy-addr/master?label=ci +[ci-url]: https://github.com/jshttp/proxy-addr/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/proxy-addr/master +[coveralls-url]: https://coveralls.io/r/jshttp/proxy-addr?branch=master +[node-image]: https://badgen.net/npm/node/proxy-addr +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/proxy-addr +[npm-url]: https://npmjs.org/package/proxy-addr +[npm-version-image]: https://badgen.net/npm/v/proxy-addr diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..a909b05064a377ed49b5aea673d0849970f050e9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/index.js" @@ -0,0 +1,327 @@ +/*! + * proxy-addr + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = proxyaddr +module.exports.all = alladdrs +module.exports.compile = compile + +/** + * Module dependencies. + * @private + */ + +var forwarded = require('forwarded') +var ipaddr = require('ipaddr.js') + +/** + * Variables. + * @private + */ + +var DIGIT_REGEXP = /^[0-9]+$/ +var isip = ipaddr.isValid +var parseip = ipaddr.parse + +/** + * Pre-defined IP ranges. + * @private + */ + +var IP_RANGES = { + linklocal: ['169.254.0.0/16', 'fe80::/10'], + loopback: ['127.0.0.1/8', '::1/128'], + uniquelocal: ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16', 'fc00::/7'] +} + +/** + * Get all addresses in the request, optionally stopping + * at the first untrusted. + * + * @param {Object} request + * @param {Function|Array|String} [trust] + * @public + */ + +function alladdrs (req, trust) { + // get addresses + var addrs = forwarded(req) + + if (!trust) { + // Return all addresses + return addrs + } + + if (typeof trust !== 'function') { + trust = compile(trust) + } + + for (var i = 0; i < addrs.length - 1; i++) { + if (trust(addrs[i], i)) continue + + addrs.length = i + 1 + } + + return addrs +} + +/** + * Compile argument into trust function. + * + * @param {Array|String} val + * @private + */ + +function compile (val) { + if (!val) { + throw new TypeError('argument is required') + } + + var trust + + if (typeof val === 'string') { + trust = [val] + } else if (Array.isArray(val)) { + trust = val.slice() + } else { + throw new TypeError('unsupported trust argument') + } + + for (var i = 0; i < trust.length; i++) { + val = trust[i] + + if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) { + continue + } + + // Splice in pre-defined range + val = IP_RANGES[val] + trust.splice.apply(trust, [i, 1].concat(val)) + i += val.length - 1 + } + + return compileTrust(compileRangeSubnets(trust)) +} + +/** + * Compile `arr` elements into range subnets. + * + * @param {Array} arr + * @private + */ + +function compileRangeSubnets (arr) { + var rangeSubnets = new Array(arr.length) + + for (var i = 0; i < arr.length; i++) { + rangeSubnets[i] = parseipNotation(arr[i]) + } + + return rangeSubnets +} + +/** + * Compile range subnet array into trust function. + * + * @param {Array} rangeSubnets + * @private + */ + +function compileTrust (rangeSubnets) { + // Return optimized function based on length + var len = rangeSubnets.length + return len === 0 + ? trustNone + : len === 1 + ? trustSingle(rangeSubnets[0]) + : trustMulti(rangeSubnets) +} + +/** + * Parse IP notation string into range subnet. + * + * @param {String} note + * @private + */ + +function parseipNotation (note) { + var pos = note.lastIndexOf('/') + var str = pos !== -1 + ? note.substring(0, pos) + : note + + if (!isip(str)) { + throw new TypeError('invalid IP address: ' + str) + } + + var ip = parseip(str) + + if (pos === -1 && ip.kind() === 'ipv6' && ip.isIPv4MappedAddress()) { + // Store as IPv4 + ip = ip.toIPv4Address() + } + + var max = ip.kind() === 'ipv6' + ? 128 + : 32 + + var range = pos !== -1 + ? note.substring(pos + 1, note.length) + : null + + if (range === null) { + range = max + } else if (DIGIT_REGEXP.test(range)) { + range = parseInt(range, 10) + } else if (ip.kind() === 'ipv4' && isip(range)) { + range = parseNetmask(range) + } else { + range = null + } + + if (range <= 0 || range > max) { + throw new TypeError('invalid range on address: ' + note) + } + + return [ip, range] +} + +/** + * Parse netmask string into CIDR range. + * + * @param {String} netmask + * @private + */ + +function parseNetmask (netmask) { + var ip = parseip(netmask) + var kind = ip.kind() + + return kind === 'ipv4' + ? ip.prefixLengthFromSubnetMask() + : null +} + +/** + * Determine address of proxied request. + * + * @param {Object} request + * @param {Function|Array|String} trust + * @public + */ + +function proxyaddr (req, trust) { + if (!req) { + throw new TypeError('req argument is required') + } + + if (!trust) { + throw new TypeError('trust argument is required') + } + + var addrs = alladdrs(req, trust) + var addr = addrs[addrs.length - 1] + + return addr +} + +/** + * Static trust function to trust nothing. + * + * @private + */ + +function trustNone () { + return false +} + +/** + * Compile trust function for multiple subnets. + * + * @param {Array} subnets + * @private + */ + +function trustMulti (subnets) { + return function trust (addr) { + if (!isip(addr)) return false + + var ip = parseip(addr) + var ipconv + var kind = ip.kind() + + for (var i = 0; i < subnets.length; i++) { + var subnet = subnets[i] + var subnetip = subnet[0] + var subnetkind = subnetip.kind() + var subnetrange = subnet[1] + var trusted = ip + + if (kind !== subnetkind) { + if (subnetkind === 'ipv4' && !ip.isIPv4MappedAddress()) { + // Incompatible IP addresses + continue + } + + if (!ipconv) { + // Convert IP to match subnet IP kind + ipconv = subnetkind === 'ipv4' + ? ip.toIPv4Address() + : ip.toIPv4MappedAddress() + } + + trusted = ipconv + } + + if (trusted.match(subnetip, subnetrange)) { + return true + } + } + + return false + } +} + +/** + * Compile trust function for single subnet. + * + * @param {Object} subnet + * @private + */ + +function trustSingle (subnet) { + var subnetip = subnet[0] + var subnetkind = subnetip.kind() + var subnetisipv4 = subnetkind === 'ipv4' + var subnetrange = subnet[1] + + return function trust (addr) { + if (!isip(addr)) return false + + var ip = parseip(addr) + var kind = ip.kind() + + if (kind !== subnetkind) { + if (subnetisipv4 && !ip.isIPv4MappedAddress()) { + // Incompatible IP addresses + return false + } + + // Convert IP to match subnet IP kind + ip = subnetisipv4 + ? ip.toIPv4Address() + : ip.toIPv4MappedAddress() + } + + return ip.match(subnetip, subnetrange) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..037b8b001b6d558872e4c3b72ca271cc1a2b952f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/proxy-addr/package.json" @@ -0,0 +1,82 @@ +{ + "_from": "proxy-addr@~2.0.7", + "_id": "proxy-addr@2.0.7", + "_inBundle": false, + "_integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "_location": "/proxy-addr", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "proxy-addr@~2.0.7", + "name": "proxy-addr", + "escapedName": "proxy-addr", + "rawSpec": "~2.0.7", + "saveSpec": null, + "fetchSpec": "~2.0.7" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "_shasum": "f19fe69ceab311eeb94b42e70e8c2070f9ba1025", + "_spec": "proxy-addr@~2.0.7", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/proxy-addr/issues" + }, + "bundleDependencies": false, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "deprecated": false, + "description": "Determine address of proxied request", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "deep-equal": "1.0.1", + "eslint": "7.26.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.23.4", + "eslint-plugin-markdown": "2.2.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "8.4.0", + "nyc": "15.1.0" + }, + "engines": { + "node": ">= 0.10" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/proxy-addr#readme", + "keywords": [ + "ip", + "proxy", + "x-forwarded-for" + ], + "license": "MIT", + "name": "proxy-addr", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/proxy-addr.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "2.0.7" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.editorconfig" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.editorconfig" new file mode 100644 index 0000000000000000000000000000000000000000..0ea91d99525e60ae962a12108a8e529ce6bcfa32 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.editorconfig" @@ -0,0 +1,40 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 160 +quote_type = single + +[test/*] +max_line_length = off + +[LICENSE.md] +indent_size = off + +[*.md] +max_line_length = off + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[LICENSE] +indent_size = 2 +max_line_length = off + +[coverage/**/*] +indent_size = off +indent_style = off +indent = off +max_line_length = off diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.eslintrc" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.eslintrc" new file mode 100644 index 0000000000000000000000000000000000000000..6884760ee3e1fce41088c3bae92549185c7c7d46 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.eslintrc" @@ -0,0 +1,38 @@ +{ + "root": true, + + "extends": "@ljharb", + + "ignorePatterns": [ + "dist/", + ], + + "rules": { + "complexity": 0, + "consistent-return": 1, + "func-name-matching": 0, + "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], + "indent": [2, 4], + "max-lines-per-function": [2, { "max": 150 }], + "max-params": [2, 15], + "max-statements": [2, 52], + "multiline-comment-style": 0, + "no-continue": 1, + "no-magic-numbers": 0, + "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "function-paren-newline": 0, + "max-lines-per-function": 0, + "max-statements": 0, + "no-buffer-constructor": 0, + "no-extend-native": 0, + "no-throw-literal": 0, + } + } + ] +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.github/FUNDING.yml" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.github/FUNDING.yml" new file mode 100644 index 0000000000000000000000000000000000000000..0355f4f5fbecd763def967aca1130cd2dfbb3479 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.github/FUNDING.yml" @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/qs +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.nycrc" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.nycrc" new file mode 100644 index 0000000000000000000000000000000000000000..1d57cabe1b647c742d82f896933bf4af5dfcdc0d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/.nycrc" @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "dist" + ] +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/CHANGELOG.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/CHANGELOG.md" new file mode 100644 index 0000000000000000000000000000000000000000..128346575f114a6665dddbd40e487daec0550123 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/CHANGELOG.md" @@ -0,0 +1,371 @@ +## **6.9.7** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] add note and links for coercing primitive values (#408) +- [Tests] clean up stringify tests slightly +- [meta] fix README.md (#399) +- Revert "[meta] ignore eclint transitive audit warning" +- [actions] backport actions from main +- [Dev Deps] backport updates from main + +## **6.9.6** +- [Fix] restore `dist` dir; mistakenly removed in d4f6c32 + +## **6.9.5** +- [Fix] `stringify`: do not encode parens for RFC1738 +- [Fix] `stringify`: fix arrayFormat comma with empty array/objects (#350) +- [Refactor] `format`: remove `util.assign` call +- [meta] add "Allow Edits" workflow; update rebase workflow +- [actions] switch Automatic Rebase workflow to `pull_request_target` event +- [Tests] `stringify`: add tests for #378 +- [Tests] migrate tests to Github Actions +- [Tests] run `nyc` on all tests; use `tape` runner +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `mkdirp`, `object-inspect`, `tape`; add `aud` + +## **6.9.4** +- [Fix] `stringify`: when `arrayFormat` is `comma`, respect `serializeDate` (#364) +- [Refactor] `stringify`: reduce branching (part of #350) +- [Refactor] move `maybeMap` to `utils` +- [Dev Deps] update `browserify`, `tape` + +## **6.9.3** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.9.2** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [meta] ignore eclint transitive audit warning +- [meta] fix indentation in package.json +- [meta] add tidelift marketing copy +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `has-symbols`, `tape`, `mkdirp`, `iconv-lite` +- [actions] add automatic rebasing / merge commit blocking + +## **6.9.1** +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [Fix] `parse`: with comma true, do not split non-string values (#334) +- [meta] add `funding` field +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` +- [Tests] use shared travis-ci config + +## **6.9.0** +- [New] `parse`/`stringify`: Pass extra key/value argument to `decoder` (#333) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `evalmd` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] add `posttest` using `npx aud` to run `npm audit` without a lockfile +- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16` +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray + +## **6.8.2** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.8.1** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [fix] `parse`: with comma true, do not split non-string values (#334) +- [meta] add tidelift marketing copy +- [meta] add `funding` field +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `safe-publish-latest`, `evalmd`, `has-symbols`, `iconv-lite`, `mkdirp`, `object-inspect` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] use shared travis-ci configs +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray +- [actions] add automatic rebasing / merge commit blocking + +## **6.8.0** +- [New] add `depth=false` to preserve the original key; [Fix] `depth=0` should preserve the original key (#326) +- [New] [Fix] stringify symbols and bigints +- [Fix] ensure node 0.12 can stringify Symbols +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Refactor] `formats`: tiny bit of cleanup. +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `safe-publish-latest`, `iconv-lite`, `tape` +- [Tests] add tests for `depth=0` and `depth=false` behavior, both current and intuitive/intended (#326) +- [Tests] use `eclint` instead of `editorconfig-tools` +- [docs] readme: add security note +- [meta] add github sponsorship +- [meta] add FUNDING.yml +- [meta] Clean up license text so it鈥檚 properly detected as BSD-3-Clause + +## **6.7.2** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.7.1** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [fix] `parse`: with comma true, do not split non-string values (#334) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Refactor] `formats`: tiny bit of cleanup. +- readme: add security note +- [meta] add tidelift marketing copy +- [meta] add `funding` field +- [meta] add FUNDING.yml +- [meta] Clean up license text so it鈥檚 properly detected as BSD-3-Clause +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `safe-publish-latest`, `evalmd`, `iconv-lite`, `mkdirp`, `object-inspect`, `browserify` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] use shared travis-ci configs +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray +- [Tests] add tests for `depth=0` and `depth=false` behavior, both current and intuitive/intended +- [Tests] use `eclint` instead of `editorconfig-tools` +- [actions] add automatic rebasing / merge commit blocking + +## **6.7.0** +- [New] `stringify`/`parse`: add `comma` as an `arrayFormat` option (#276, #219) +- [Fix] correctly parse nested arrays (#212) +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source, also with an array source +- [Robustness] `stringify`: cache `Object.prototype.hasOwnProperty` +- [Refactor] `utils`: `isBuffer`: small tweak; add tests +- [Refactor] use cached `Array.isArray` +- [Refactor] `parse`/`stringify`: make a function to normalize the options +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] `stringify`/`utils`: cache `Array.isArray` +- [Tests] always use `String(x)` over `x.toString()` +- [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10 +- [Tests] temporarily allow coverage to fail + +## **6.6.0** +- [New] Add support for iso-8859-1, utf8 "sentinel" and numeric entities (#268) +- [New] move two-value combine to a `utils` function (#189) +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` (#260) +- [Fix] `stringify`: do not crash in an obscure combo of `interpretNumericEntities`, a bad custom `decoder`, & `iso-8859-1` +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Refactor] `parse`: only need to reassign the var once +- [Refactor] `parse`/`stringify`: clean up `charset` options checking; fix defaults +- [Refactor] add missing defaults +- [Refactor] `parse`: one less `concat` call +- [Refactor] `utils`: `compactQueue`: make it explicitly side-effecting +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`, `iconv-lite`, `safe-publish-latest`, `tape` +- [Tests] up to `node` `v10.10`, `v9.11`, `v8.12`, `v6.14`, `v4.9`; pin included builds to LTS + +## **6.5.2** +- [Fix] use `safer-buffer` instead of `Buffer` constructor +- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230) +- [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify` + +## **6.5.1** +- [Fix] Fix parsing & compacting very deep objects (#224) +- [Refactor] name utils functions +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` +- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesn鈥檛 break older node +- [Tests] Use precise dist for Node.js 0.6 runtime (#225) +- [Tests] make 0.6 required, now that it鈥檚 passing +- [Tests] on `node` `v8.2`; fix npm on node 0.6 + +## **6.5.0** +- [New] add `utils.assign` +- [New] pass default encoder/decoder to custom encoder/decoder functions (#206) +- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213) +- [Fix] Handle stringifying empty objects with addQueryPrefix (#217) +- [Fix] do not mutate `options` argument (#207) +- [Refactor] `parse`: cache index to reuse in else statement (#182) +- [Docs] add various badges to readme (#208) +- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape` +- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4 +- [Tests] add `editorconfig-tools` + +## **6.4.0** +- [New] `qs.stringify`: add `encodeValuesOnly` option +- [Fix] follow `allowPrototypes` option during merge (#201, #201) +- [Fix] support keys starting with brackets (#202, #200) +- [Fix] chmod a-x +- [Dev Deps] update `eslint` +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds +- [eslint] reduce warnings + +## **6.3.2** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Dev Deps] update `eslint` +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.3.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape` +- [Tests] on all node minors; improve test matrix +- [Docs] document stringify option `allowDots` (#195) +- [Docs] add empty object and array values example (#195) +- [Docs] Fix minor inconsistency/typo (#192) +- [Docs] document stringify option `sort` (#191) +- [Refactor] `stringify`: throw faster with an invalid encoder +- [Refactor] remove unnecessary escapes (#184) +- Remove contributing.md, since `qs` is no longer part of `hapi` (#183) + +## **6.3.0** +- [New] Add support for RFC 1738 (#174, #173) +- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159) +- [Fix] ensure `utils.merge` handles merging two arrays +- [Refactor] only constructors should be capitalized +- [Refactor] capitalized var names are for constructors only +- [Refactor] avoid using a sparse array +- [Robustness] `formats`: cache `String#replace` +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest` +- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix +- [Tests] flesh out arrayLimit/arrayFormat tests (#107) +- [Tests] skip Object.create tests when null objects are not available +- [Tests] Turn on eslint for test files (#175) + +## **6.2.3** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.2.2** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## **6.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values +- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call` +- [Tests] remove `parallelshell` since it does not reliably report failures +- [Tests] up to `node` `v6.3`, `v5.12` +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv` + +## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) +- [New] pass Buffers to the encoder/decoder directly (#161) +- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) +- [Fix] fix compacting of nested sparse arrays (#150) + +## **6.1.2 +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.1.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) +- [New] allowDots option for `stringify` (#151) +- [Fix] "sort" option should work at a depth of 3 or more (#151) +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## **6.0.4** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.0.3** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) +- Revert ES6 requirement and restore support for node down to v0.8. + +## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) +- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json + +## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) +- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 + +## **5.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values + +## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) +- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string + +## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) +- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional +- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify + +## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) +- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false +- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm + +## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) +- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional + +## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) +- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" + +## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) +- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties +- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost +- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing +- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object +- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option +- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. +- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 +- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 +- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign +- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute + +## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) +- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function + +## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) +- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option + +## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) +- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 +- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader + +## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) +- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object + +## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) +- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". + +## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) +- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 + +## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) +- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? +- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 +- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 + +## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) +- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number + +## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) +- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array +- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x + +## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) +- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value +- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty +- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? + +## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) +- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 +- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects + +## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) +- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present +- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays +- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge +- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? + +## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) +- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter + +## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) +- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? +- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit +- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 + +## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) +- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values + +## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) +- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters +- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block + +## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) +- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument +- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed + +## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) +- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted +- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null +- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README + +## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) +- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/LICENSE.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/LICENSE.md" new file mode 100644 index 0000000000000000000000000000000000000000..fecf6b6942d17bc7ae41a5e106dc98815c0db652 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/LICENSE.md" @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..f64de3de13c27f4ea15e648fcbf25df0e90421f3 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/README.md" @@ -0,0 +1,616 @@ +# qs [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +A querystring parsing and stringifying library with some added security. + +Lead Maintainer: [Jordan Harband](https://github.com/ljharb) + +The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). + +## Usage + +```javascript +var qs = require('qs'); +var assert = require('assert'); + +var obj = qs.parse('a=c'); +assert.deepEqual(obj, { a: 'c' }); + +var str = qs.stringify(obj); +assert.equal(str, 'a=c'); +``` + +### Parsing Objects + +[](#preventEval) +```javascript +qs.parse(string, [options]); +``` + +**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. +For example, the string `'foo[bar]=baz'` converts to: + +```javascript +assert.deepEqual(qs.parse('foo[bar]=baz'), { + foo: { + bar: 'baz' + } +}); +``` + +When using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: + +```javascript +var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); +assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } }); +``` + +By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. + +```javascript +var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); +assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); +``` + +URI encoded strings work too: + +```javascript +assert.deepEqual(qs.parse('a%5Bb%5D=c'), { + a: { b: 'c' } +}); +``` + +You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: + +```javascript +assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { + foo: { + bar: { + baz: 'foobarbaz' + } + } +}); +``` + +By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like +`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: + +```javascript +var expected = { + a: { + b: { + c: { + d: { + e: { + f: { + '[g][h][i]': 'j' + } + } + } + } + } + } +}; +var string = 'a[b][c][d][e][f][g][h][i]=j'; +assert.deepEqual(qs.parse(string), expected); +``` + +This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: + +```javascript +var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); +assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); +``` + +The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. + +For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: + +```javascript +var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); +assert.deepEqual(limited, { a: 'b' }); +``` + +To bypass the leading question mark, use `ignoreQueryPrefix`: + +```javascript +var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true }); +assert.deepEqual(prefixed, { a: 'b', c: 'd' }); +``` + +An optional delimiter can also be passed: + +```javascript +var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); +assert.deepEqual(delimited, { a: 'b', c: 'd' }); +``` + +Delimiters can be a regular expression too: + +```javascript +var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); +assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); +``` + +Option `allowDots` can be used to enable dot notation: + +```javascript +var withDots = qs.parse('a.b=c', { allowDots: true }); +assert.deepEqual(withDots, { a: { b: 'c' } }); +``` + +If you have to deal with legacy browsers or services, there's +also support for decoding percent-encoded octets as iso-8859-1: + +```javascript +var oldCharset = qs.parse('a=%A7', { charset: 'iso-8859-1' }); +assert.deepEqual(oldCharset, { a: '搂' }); +``` + +Some services add an initial `utf8=鉁揱 value to forms so that old +Internet Explorer versions are more likely to submit the form as +utf-8. Additionally, the server can check the value against wrong +encodings of the checkmark character and detect that a query string +or `application/x-www-form-urlencoded` body was *not* sent as +utf-8, eg. if the form had an `accept-charset` parameter or the +containing page had a different character set. + +**qs** supports this mechanism via the `charsetSentinel` option. +If specified, the `utf8` parameter will be omitted from the +returned object. It will be used to switch to `iso-8859-1`/`utf-8` +mode depending on how the checkmark is encoded. + +**Important**: When you specify both the `charset` option and the +`charsetSentinel` option, the `charset` will be overridden when +the request contains a `utf8` parameter from which the actual +charset can be deduced. In that sense the `charset` will behave +as the default charset rather than the authoritative charset. + +```javascript +var detectedAsUtf8 = qs.parse('utf8=%E2%9C%93&a=%C3%B8', { + charset: 'iso-8859-1', + charsetSentinel: true +}); +assert.deepEqual(detectedAsUtf8, { a: '酶' }); + +// Browsers encode the checkmark as ✓ when submitting as iso-8859-1: +var detectedAsIso8859_1 = qs.parse('utf8=%26%2310003%3B&a=%F8', { + charset: 'utf-8', + charsetSentinel: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: '酶' }); +``` + +If you want to decode the `&#...;` syntax to the actual character, +you can specify the `interpretNumericEntities` option as well: + +```javascript +var detectedAsIso8859_1 = qs.parse('a=%26%239786%3B', { + charset: 'iso-8859-1', + interpretNumericEntities: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: '鈽' }); +``` + +It also works when the charset has been detected in `charsetSentinel` +mode. + +### Parsing Arrays + +**qs** can also parse arrays using a similar `[]` notation: + +```javascript +var withArray = qs.parse('a[]=b&a[]=c'); +assert.deepEqual(withArray, { a: ['b', 'c'] }); +``` + +You may specify an index as well: + +```javascript +var withIndexes = qs.parse('a[1]=c&a[0]=b'); +assert.deepEqual(withIndexes, { a: ['b', 'c'] }); +``` + +Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number +to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving +their order: + +```javascript +var noSparse = qs.parse('a[1]=b&a[15]=c'); +assert.deepEqual(noSparse, { a: ['b', 'c'] }); +``` + +Note that an empty string is also a value, and will be preserved: + +```javascript +var withEmptyString = qs.parse('a[]=&a[]=b'); +assert.deepEqual(withEmptyString, { a: ['', 'b'] }); + +var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); +assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); +``` + +**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will +instead be converted to an object with the index as the key. This is needed to handle cases when someone sent, for example, `a[999999999]` and it will take significant time to iterate over this huge array. + +```javascript +var withMaxIndex = qs.parse('a[100]=b'); +assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); +``` + +This limit can be overridden by passing an `arrayLimit` option: + +```javascript +var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); +assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); +``` + +To disable array parsing entirely, set `parseArrays` to `false`. + +```javascript +var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); +assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); +``` + +If you mix notations, **qs** will merge the two items into an object: + +```javascript +var mixedNotation = qs.parse('a[0]=b&a[b]=c'); +assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); +``` + +You can also create arrays of objects: + +```javascript +var arraysOfObjects = qs.parse('a[][b]=c'); +assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); +``` + +Some people use comma to join array, **qs** can parse it: +```javascript +var arraysOfObjects = qs.parse('a=b,c', { comma: true }) +assert.deepEqual(arraysOfObjects, { a: ['b', 'c'] }) +``` +(_this cannot convert nested objects, such as `a={b:1},{c:d}`_) + +### Parsing primitive/scalar values (numbers, booleans, null, etc) + +By default, all values are parsed as strings. This behavior will not change and is explained in [issue #91](https://github.com/ljharb/qs/issues/91). + +```javascript +var primitiveValues = qs.parse('a=15&b=true&c=null'); +assert.deepEqual(primitiveValues, { a: '15', b: 'true', c: 'null' }); +``` + +If you wish to auto-convert values which look like numbers, booleans, and other values into their primitive counterparts, you can use the [query-types Express JS middleware](https://github.com/xpepermint/query-types) which will auto-convert all request query parameters. + +### Stringifying + +[](#preventEval) +```javascript +qs.stringify(object, [options]); +``` + +When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: + +```javascript +assert.equal(qs.stringify({ a: 'b' }), 'a=b'); +assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); +``` + +This encoding can be disabled by setting the `encode` option to `false`: + +```javascript +var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); +assert.equal(unencoded, 'a[b]=c'); +``` + +Encoding can be disabled for keys by setting the `encodeValuesOnly` option to `true`: +```javascript +var encodedValues = qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true } +); +assert.equal(encodedValues,'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'); +``` + +This encoding can also be replaced by a custom encoding method set as `encoder` option: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) { + // Passed in values `a`, `b`, `c` + return // Return encoded string +}}) +``` + +_(Note: the `encoder` option does not apply if `encode` is `false`)_ + +Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str) { + // Passed in values `x`, `z` + return // Return decoded string +}}) +``` + +You can encode keys and values using different logic by using the type argument provided to the encoder: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str, defaultEncoder, charset, type) { + if (type === 'key') { + return // Encoded key + } else if (type === 'value') { + return // Encoded value + } +}}) +``` + +The type argument is also provided to the decoder: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str, defaultDecoder, charset, type) { + if (type === 'key') { + return // Decoded key + } else if (type === 'value') { + return // Decoded value + } +}}) +``` + +Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. + +When arrays are stringified, by default they are given explicit indices: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }); +// 'a[0]=b&a[1]=c&a[2]=d' +``` + +You may override this by setting the `indices` option to `false`: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); +// 'a=b&a=c&a=d' +``` + +You may use the `arrayFormat` option to specify the format of the output array: + +```javascript +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) +// 'a[0]=b&a[1]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) +// 'a[]=b&a[]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) +// 'a=b&a=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' }) +// 'a=b,c' +``` + +When objects are stringified, by default they use bracket notation: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }); +// 'a[b][c]=d&a[b][e]=f' +``` + +You may override this to use dot notation by setting the `allowDots` option to `true`: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true }); +// 'a.b.c=d&a.b.e=f' +``` + +Empty strings and null values will omit the value, but the equals sign (=) remains in place: + +```javascript +assert.equal(qs.stringify({ a: '' }), 'a='); +``` + +Key with no values (such as an empty object or array) will return nothing: + +```javascript +assert.equal(qs.stringify({ a: [] }), ''); +assert.equal(qs.stringify({ a: {} }), ''); +assert.equal(qs.stringify({ a: [{}] }), ''); +assert.equal(qs.stringify({ a: { b: []} }), ''); +assert.equal(qs.stringify({ a: { b: {}} }), ''); +``` + +Properties that are set to `undefined` will be omitted entirely: + +```javascript +assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); +``` + +The query string may optionally be prepended with a question mark: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d'); +``` + +The delimiter may be overridden with stringify as well: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); +``` + +If you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option: + +```javascript +var date = new Date(7); +assert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A')); +assert.equal( + qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }), + 'a=7' +); +``` + +You may use the `sort` option to affect the order of parameter keys: + +```javascript +function alphabeticalSort(a, b) { + return a.localeCompare(b); +} +assert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort }), 'a=c&b=f&z=y'); +``` + +Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. +If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you +pass an array, it will be used to select properties and array indices for stringification: + +```javascript +function filterFunc(prefix, value) { + if (prefix == 'b') { + // Return an `undefined` value to omit a property. + return; + } + if (prefix == 'e[f]') { + return value.getTime(); + } + if (prefix == 'e[g][0]') { + return value * 2; + } + return value; +} +qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); +// 'a=b&c=d&e[f]=123&e[g][0]=4' +qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); +// 'a=b&e=f' +qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); +// 'a[0]=b&a[2]=d' +``` + +### Handling of `null` values + +By default, `null` values are treated like empty strings: + +```javascript +var withNull = qs.stringify({ a: null, b: '' }); +assert.equal(withNull, 'a=&b='); +``` + +Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. + +```javascript +var equalsInsensitive = qs.parse('a&b='); +assert.deepEqual(equalsInsensitive, { a: '', b: '' }); +``` + +To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` +values have no `=` sign: + +```javascript +var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); +assert.equal(strictNull, 'a&b='); +``` + +To parse values without `=` back to `null` use the `strictNullHandling` flag: + +```javascript +var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); +assert.deepEqual(parsedStrictNull, { a: null, b: '' }); +``` + +To completely skip rendering keys with `null` values, use the `skipNulls` flag: + +```javascript +var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); +assert.equal(nullsSkipped, 'a=b'); +``` + +If you're communicating with legacy systems, you can switch to `iso-8859-1` +using the `charset` option: + +```javascript +var iso = qs.stringify({ 忙: '忙' }, { charset: 'iso-8859-1' }); +assert.equal(iso, '%E6=%E6'); +``` + +Characters that don't exist in `iso-8859-1` will be converted to numeric +entities, similar to what browsers do: + +```javascript +var numeric = qs.stringify({ a: '鈽' }, { charset: 'iso-8859-1' }); +assert.equal(numeric, 'a=%26%239786%3B'); +``` + +You can use the `charsetSentinel` option to announce the character by +including an `utf8=鉁揱 parameter with the proper encoding if the checkmark, +similar to what Ruby on Rails and others do when submitting forms. + +```javascript +var sentinel = qs.stringify({ a: '鈽' }, { charsetSentinel: true }); +assert.equal(sentinel, 'utf8=%E2%9C%93&a=%E2%98%BA'); + +var isoSentinel = qs.stringify({ a: '忙' }, { charsetSentinel: true, charset: 'iso-8859-1' }); +assert.equal(isoSentinel, 'utf8=%26%2310003%3B&a=%E6'); +``` + +### Dealing with special character sets + +By default the encoding and decoding of characters is done in `utf-8`, +and `iso-8859-1` support is also built in via the `charset` parameter. + +If you wish to encode querystrings to a different character set (i.e. +[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the +[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: + +```javascript +var encoder = require('qs-iconv/encoder')('shift_jis'); +var shiftJISEncoded = qs.stringify({ a: '銇撱倱銇仭銇紒' }, { encoder: encoder }); +assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I'); +``` + +This also works for decoding of query strings: + +```javascript +var decoder = require('qs-iconv/decoder')('shift_jis'); +var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder }); +assert.deepEqual(obj, { a: '銇撱倱銇仭銇紒' }); +``` + +### RFC 3986 and RFC 1738 space encoding + +RFC3986 used as default option and encodes ' ' to *%20* which is backward compatible. +In the same time, output can be stringified as per RFC1738 with ' ' equal to '+'. + +``` +assert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c'); +``` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +## qs for enterprise + +Available as part of the Tidelift Subscription + +The maintainers of qs and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-qs?utm_source=npm-qs&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +[package-url]: https://npmjs.org/package/qs +[npm-version-svg]: https://versionbadg.es/ljharb/qs.svg +[deps-svg]: https://david-dm.org/ljharb/qs.svg +[deps-url]: https://david-dm.org/ljharb/qs +[dev-deps-svg]: https://david-dm.org/ljharb/qs/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/qs#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/qs.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/qs.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/qs.svg +[downloads-url]: https://npm-stat.com/charts.html?package=qs +[codecov-image]: https://codecov.io/gh/ljharb/qs/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/qs/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/qs +[actions-url]: https://github.com/ljharb/qs/actions diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/dist/qs.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/dist/qs.js" new file mode 100644 index 0000000000000000000000000000000000000000..ca3d394f5a8a072185f3b9ed2a85973187a1ad73 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/dist/qs.js" @@ -0,0 +1,842 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i -1) { + return val.split(','); + } + + return val; +}; + +// This is what browsers will submit when the 鉁 character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the 鉁 character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('鉁') + +var parseValues = function parseQueryStringValues(str, options) { + var obj = {}; + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; + var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + + var bracketEqualsPos = part.indexOf(']='); + var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; + + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, 'key'); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); + val = utils.maybeMap( + parseArrayValue(part.slice(pos + 1), options), + function (encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, 'value'); + } + ); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(val); + } + + if (part.indexOf('[]=') > -1) { + val = isArray(val) ? [val] : val; + } + + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], val); + } else { + obj[key] = val; + } + } + + return obj; +}; + +var parseObject = function (chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + + if (root === '[]' && options.parseArrays) { + obj = [].concat(leaf); + } else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; + var index = parseInt(cleanRoot, 10); + if (!options.parseArrays && cleanRoot === '') { + obj = { 0: leaf }; + } else if ( + !isNaN(index) + && root !== cleanRoot + && String(index) === cleanRoot + && index >= 0 + && (options.parseArrays && index <= options.arrayLimit) + ) { + obj = []; + obj[index] = leaf; + } else if (cleanRoot !== '__proto__') { + obj[cleanRoot] = leaf; + } + } + + leaf = obj; + } + + return leaf; +}; + +var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + + // Transform dot notation to bracket notation + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; + + // The regex chunks + + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + + // Get the parent + + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + + // Stash the parent if it exists + + var keys = []; + if (parent) { + // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + + keys.push(parent); + } + + // Loop through children appending to the array until we hit depth + + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + + // If there's a remainder, just add whatever is left + + if (segment) { + keys.push('[' + key.slice(segment.index) + ']'); + } + + return parseObject(keys, val, options, valuesParsed); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + return { + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + if (str === '' || str === null || typeof str === 'undefined') { + return options.plainObjects ? Object.create(null) : {}; + } + + var tempObj = typeof str === 'string' ? parseValues(str, options) : str; + var obj = options.plainObjects ? Object.create(null) : {}; + + // Iterate over the keys and setup the new object + + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); + obj = utils.merge(obj, newObj, options); + } + + return utils.compact(obj); +}; + +},{"./utils":5}],4:[function(require,module,exports){ +'use strict'; + +var utils = require('./utils'); +var formats = require('./formats'); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + '[]'; + }, + comma: 'comma', + indices: function indices(prefix, key) { + return prefix + '[' + key + ']'; + }, + repeat: function repeat(prefix) { + return prefix; + } +}; + +var isArray = Array.isArray; +var split = String.prototype.split; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaultFormat = formats['default']; +var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false +}; + +var isNonNullishPrimitive = function isNonNullishPrimitive(v) { + return typeof v === 'string' + || typeof v === 'number' + || typeof v === 'boolean' + || typeof v === 'symbol' + || typeof v === 'bigint'; +}; + +var stringify = function stringify( + object, + prefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset +) { + var obj = object; + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = utils.maybeMap(obj, function (value) { + if (value instanceof Date) { + return serializeDate(value); + } + return value; + }); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix; + } + + obj = ''; + } + + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format); + if (generateArrayPrefix === 'comma' && encodeValuesOnly) { + var valuesArray = split.call(String(obj), ','); + var valuesJoined = ''; + for (var i = 0; i < valuesArray.length; ++i) { + valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format)); + } + return [formatter(keyValue) + '=' + valuesJoined]; + } + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (generateArrayPrefix === 'comma' && isArray(obj)) { + // we need to join elements in + objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key]; + + if (skipNulls && value === null) { + continue; + } + + var keyPrefix = isArray(obj) + ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix + : prefix + (allowDots ? '.' + key : '[' + key + ']'); + + pushToArray(values, stringify( + value, + keyPrefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset + )); + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + format: format, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && 'indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = 'indices'; + } + + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + options.strictNullHandling, + options.skipNulls, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('鉁') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; + +},{"./formats":1,"./utils":5}],5:[function(require,module,exports){ +'use strict'; + +var formats = require('./formats'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var hexTable = (function () { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); + } + + return array; +}()); + +var compactQueue = function compactQueue(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (isArray(obj)) { + var compacted = []; + + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== 'undefined') { + compacted.push(obj[j]); + } + } + + item.obj[item.prop] = compacted; + } + } +}; + +var arrayToObject = function arrayToObject(source, options) { + var obj = options && options.plainObjects ? Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== 'undefined') { + obj[i] = source[i]; + } + } + + return obj; +}; + +var merge = function merge(target, source, options) { + /* eslint no-param-reassign: 0 */ + if (!source) { + return target; + } + + if (typeof source !== 'object') { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + + return Object.keys(source).reduce(function (acc, key) { + var value = source[key]; + + if (has.call(acc, key)) { + acc[key] = merge(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); +}; + +var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function (acc, key) { + acc[key] = source[key]; + return acc; + }, target); +}; + +var decode = function (str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var encode = function encode(str, defaultEncoder, charset, kind, format) { + // This code was originally written by Brian White (mscdex) for the io.js core querystring library. + // It has been adapted here for stricter adherence to RFC 3986 + if (str.length === 0) { + return str; + } + + var string = str; + if (typeof str === 'symbol') { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== 'string') { + string = String(str); + } + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + var out = ''; + for (var i = 0; i < string.length; ++i) { + var c = string.charCodeAt(i); + + if ( + c === 0x2D // - + || c === 0x2E // . + || c === 0x5F // _ + || c === 0x7E // ~ + || (c >= 0x30 && c <= 0x39) // 0-9 + || (c >= 0x41 && c <= 0x5A) // a-z + || (c >= 0x61 && c <= 0x7A) // A-Z + || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( ) + ) { + out += string.charAt(i); + continue; + } + + if (c < 0x80) { + out = out + hexTable[c]; + continue; + } + + if (c < 0x800) { + out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + if (c < 0xD800 || c >= 0xE000) { + out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + i += 1; + c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); + /* eslint operator-linebreak: [2, "before"] */ + out += hexTable[0xF0 | (c >> 18)] + + hexTable[0x80 | ((c >> 12) & 0x3F)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + } + + return out; +}; + +var compact = function compact(value) { + var queue = [{ obj: { o: value }, prop: 'o' }]; + var refs = []; + + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj: obj, prop: key }); + refs.push(val); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +var maybeMap = function maybeMap(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + maybeMap: maybeMap, + merge: merge +}; + +},{"./formats":1}]},{},[2])(2) +}); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/formats.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/formats.js" new file mode 100644 index 0000000000000000000000000000000000000000..f36cf206b90ff764e9709be64d57f6da60b6307e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/formats.js" @@ -0,0 +1,23 @@ +'use strict'; + +var replace = String.prototype.replace; +var percentTwenties = /%20/g; + +var Format = { + RFC1738: 'RFC1738', + RFC3986: 'RFC3986' +}; + +module.exports = { + 'default': Format.RFC3986, + formatters: { + RFC1738: function (value) { + return replace.call(value, percentTwenties, '+'); + }, + RFC3986: function (value) { + return String(value); + } + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..0d6a97dcf096449e7100cb63bb05f232a7f790a5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/index.js" @@ -0,0 +1,11 @@ +'use strict'; + +var stringify = require('./stringify'); +var parse = require('./parse'); +var formats = require('./formats'); + +module.exports = { + formats: formats, + parse: parse, + stringify: stringify +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/parse.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/parse.js" new file mode 100644 index 0000000000000000000000000000000000000000..698a310dee80fd4562bcd639524a3a67bde688c9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/parse.js" @@ -0,0 +1,257 @@ +'use strict'; + +var utils = require('./utils'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var defaults = { + allowDots: false, + allowPrototypes: false, + arrayLimit: 20, + charset: 'utf-8', + charsetSentinel: false, + comma: false, + decoder: utils.decode, + delimiter: '&', + depth: 5, + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1000, + parseArrays: true, + plainObjects: false, + strictNullHandling: false +}; + +var interpretNumericEntities = function (str) { + return str.replace(/&#(\d+);/g, function ($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); +}; + +var parseArrayValue = function (val, options) { + if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) { + return val.split(','); + } + + return val; +}; + +// This is what browsers will submit when the 鉁 character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the 鉁 character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('鉁') + +var parseValues = function parseQueryStringValues(str, options) { + var obj = {}; + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; + var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + + var bracketEqualsPos = part.indexOf(']='); + var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; + + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, 'key'); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); + val = utils.maybeMap( + parseArrayValue(part.slice(pos + 1), options), + function (encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, 'value'); + } + ); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(val); + } + + if (part.indexOf('[]=') > -1) { + val = isArray(val) ? [val] : val; + } + + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], val); + } else { + obj[key] = val; + } + } + + return obj; +}; + +var parseObject = function (chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + + if (root === '[]' && options.parseArrays) { + obj = [].concat(leaf); + } else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; + var index = parseInt(cleanRoot, 10); + if (!options.parseArrays && cleanRoot === '') { + obj = { 0: leaf }; + } else if ( + !isNaN(index) + && root !== cleanRoot + && String(index) === cleanRoot + && index >= 0 + && (options.parseArrays && index <= options.arrayLimit) + ) { + obj = []; + obj[index] = leaf; + } else if (cleanRoot !== '__proto__') { + obj[cleanRoot] = leaf; + } + } + + leaf = obj; + } + + return leaf; +}; + +var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + + // Transform dot notation to bracket notation + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; + + // The regex chunks + + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + + // Get the parent + + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + + // Stash the parent if it exists + + var keys = []; + if (parent) { + // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + + keys.push(parent); + } + + // Loop through children appending to the array until we hit depth + + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + + // If there's a remainder, just add whatever is left + + if (segment) { + keys.push('[' + key.slice(segment.index) + ']'); + } + + return parseObject(keys, val, options, valuesParsed); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + return { + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + if (str === '' || str === null || typeof str === 'undefined') { + return options.plainObjects ? Object.create(null) : {}; + } + + var tempObj = typeof str === 'string' ? parseValues(str, options) : str; + var obj = options.plainObjects ? Object.create(null) : {}; + + // Iterate over the keys and setup the new object + + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); + obj = utils.merge(obj, newObj, options); + } + + return utils.compact(obj); +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/stringify.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/stringify.js" new file mode 100644 index 0000000000000000000000000000000000000000..bdc19c65b067461b3a19e37aaf64aa5c5186f4ad --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/stringify.js" @@ -0,0 +1,287 @@ +'use strict'; + +var utils = require('./utils'); +var formats = require('./formats'); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + '[]'; + }, + comma: 'comma', + indices: function indices(prefix, key) { + return prefix + '[' + key + ']'; + }, + repeat: function repeat(prefix) { + return prefix; + } +}; + +var isArray = Array.isArray; +var split = String.prototype.split; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaultFormat = formats['default']; +var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false +}; + +var isNonNullishPrimitive = function isNonNullishPrimitive(v) { + return typeof v === 'string' + || typeof v === 'number' + || typeof v === 'boolean' + || typeof v === 'symbol' + || typeof v === 'bigint'; +}; + +var stringify = function stringify( + object, + prefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset +) { + var obj = object; + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = utils.maybeMap(obj, function (value) { + if (value instanceof Date) { + return serializeDate(value); + } + return value; + }); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix; + } + + obj = ''; + } + + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format); + if (generateArrayPrefix === 'comma' && encodeValuesOnly) { + var valuesArray = split.call(String(obj), ','); + var valuesJoined = ''; + for (var i = 0; i < valuesArray.length; ++i) { + valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format)); + } + return [formatter(keyValue) + '=' + valuesJoined]; + } + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (generateArrayPrefix === 'comma' && isArray(obj)) { + // we need to join elements in + objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key]; + + if (skipNulls && value === null) { + continue; + } + + var keyPrefix = isArray(obj) + ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix + : prefix + (allowDots ? '.' + key : '[' + key + ']'); + + pushToArray(values, stringify( + value, + keyPrefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset + )); + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + format: format, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && 'indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = 'indices'; + } + + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + options.strictNullHandling, + options.skipNulls, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('鉁') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/utils.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/utils.js" new file mode 100644 index 0000000000000000000000000000000000000000..1e545381131a9665a5561d22fc0cfe05d5a60315 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/lib/utils.js" @@ -0,0 +1,252 @@ +'use strict'; + +var formats = require('./formats'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var hexTable = (function () { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); + } + + return array; +}()); + +var compactQueue = function compactQueue(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (isArray(obj)) { + var compacted = []; + + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== 'undefined') { + compacted.push(obj[j]); + } + } + + item.obj[item.prop] = compacted; + } + } +}; + +var arrayToObject = function arrayToObject(source, options) { + var obj = options && options.plainObjects ? Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== 'undefined') { + obj[i] = source[i]; + } + } + + return obj; +}; + +var merge = function merge(target, source, options) { + /* eslint no-param-reassign: 0 */ + if (!source) { + return target; + } + + if (typeof source !== 'object') { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + + return Object.keys(source).reduce(function (acc, key) { + var value = source[key]; + + if (has.call(acc, key)) { + acc[key] = merge(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); +}; + +var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function (acc, key) { + acc[key] = source[key]; + return acc; + }, target); +}; + +var decode = function (str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var encode = function encode(str, defaultEncoder, charset, kind, format) { + // This code was originally written by Brian White (mscdex) for the io.js core querystring library. + // It has been adapted here for stricter adherence to RFC 3986 + if (str.length === 0) { + return str; + } + + var string = str; + if (typeof str === 'symbol') { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== 'string') { + string = String(str); + } + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + var out = ''; + for (var i = 0; i < string.length; ++i) { + var c = string.charCodeAt(i); + + if ( + c === 0x2D // - + || c === 0x2E // . + || c === 0x5F // _ + || c === 0x7E // ~ + || (c >= 0x30 && c <= 0x39) // 0-9 + || (c >= 0x41 && c <= 0x5A) // a-z + || (c >= 0x61 && c <= 0x7A) // A-Z + || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( ) + ) { + out += string.charAt(i); + continue; + } + + if (c < 0x80) { + out = out + hexTable[c]; + continue; + } + + if (c < 0x800) { + out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + if (c < 0xD800 || c >= 0xE000) { + out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + i += 1; + c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); + /* eslint operator-linebreak: [2, "before"] */ + out += hexTable[0xF0 | (c >> 18)] + + hexTable[0x80 | ((c >> 12) & 0x3F)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + } + + return out; +}; + +var compact = function compact(value) { + var queue = [{ obj: { o: value }, prop: 'o' }]; + var refs = []; + + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj: obj, prop: key }); + refs.push(val); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +var maybeMap = function maybeMap(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + maybeMap: maybeMap, + merge: merge +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..963ed3f043a6d215ddf8abcf2a475f511fe7659a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/package.json" @@ -0,0 +1,99 @@ +{ + "_from": "qs@6.9.7", + "_id": "qs@6.9.7", + "_inBundle": false, + "_integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "_location": "/qs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "qs@6.9.7", + "name": "qs", + "escapedName": "qs", + "rawSpec": "6.9.7", + "saveSpec": null, + "fetchSpec": "6.9.7" + }, + "_requiredBy": [ + "/body-parser", + "/express" + ], + "_resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "_shasum": "4610846871485e1e048f44ae3b94033f0e675afe", + "_spec": "qs@6.9.7", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/ljharb/qs/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "deprecated": false, + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "devDependencies": { + "@ljharb/eslint-config": "^20.1.0", + "aud": "^1.1.5", + "browserify": "^16.5.2", + "eclint": "^2.8.1", + "eslint": "^8.6.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "has-symbols": "^1.0.2", + "iconv-lite": "^0.5.1", + "in-publish": "^2.0.1", + "mkdirp": "^0.5.5", + "nyc": "^10.3.2", + "object-inspect": "^1.12.0", + "qs-iconv": "^1.0.4", + "safe-publish-latest": "^2.0.0", + "safer-buffer": "^2.1.2", + "tape": "^5.4.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "greenkeeper": { + "ignore": [ + "iconv-lite", + "mkdirp" + ] + }, + "homepage": "https://github.com/ljharb/qs", + "keywords": [ + "querystring", + "qs", + "query", + "url", + "parse", + "stringify" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "qs", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/qs.git" + }, + "scripts": { + "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", + "lint": "eslint .", + "postlint": "eclint check * lib/* test/* !dist/*", + "posttest": "aud --production", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest && npm run dist", + "pretest": "npm run --silent readme && npm run --silent lint", + "readme": "evalmd README.md", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'" + }, + "version": "6.9.7" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/parse.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/parse.js" new file mode 100644 index 0000000000000000000000000000000000000000..7721aaa9b041465528f4198cbfc6331edf1177be --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/parse.js" @@ -0,0 +1,832 @@ +'use strict'; + +var test = require('tape'); +var qs = require('../'); +var utils = require('../lib/utils'); +var iconv = require('iconv-lite'); +var SaferBuffer = require('safer-buffer').Buffer; + +test('parse()', function (t) { + t.test('parses a simple string', function (st) { + st.deepEqual(qs.parse('0=foo'), { 0: 'foo' }); + st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' }); + st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } }); + st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } }); + st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } }); + st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null }); + st.deepEqual(qs.parse('foo'), { foo: '' }); + st.deepEqual(qs.parse('foo='), { foo: '' }); + st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' }); + st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' }); + st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' }); + st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' }); + st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' }); + st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null }); + st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' }); + st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), { + cht: 'p3', + chd: 't:60,40', + chs: '250x100', + chl: 'Hello|World' + }); + st.end(); + }); + + t.test('arrayFormat: brackets allows only explicit arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'brackets' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('arrayFormat: indices allows only indexed arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'indices' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('arrayFormat: comma allows only comma-separated arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'comma' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('arrayFormat: repeat allows only repeated values', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'repeat' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('allows enabling dot notation', function (st) { + st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' }); + st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } }); + st.end(); + }); + + t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string'); + t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string'); + t.deepEqual( + qs.parse('a[b][c][d][e][f][g][h]=i'), + { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }, + 'defaults to a depth of 5' + ); + + t.test('only parses one level when depth = 1', function (st) { + st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } }); + st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } }); + st.end(); + }); + + t.test('uses original key when depth = 0', function (st) { + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: 0 }), { 'a[0]': 'b', 'a[1]': 'c' }); + st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: 0 }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' }); + st.end(); + }); + + t.test('uses original key when depth = false', function (st) { + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: false }), { 'a[0]': 'b', 'a[1]': 'c' }); + st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: false }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' }); + st.end(); + }); + + t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array'); + + t.test('parses an explicit array', function (st) { + st.deepEqual(qs.parse('a[]=b'), { a: ['b'] }); + st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] }); + st.end(); + }); + + t.test('parses a mix of simple and explicit arrays', function (st) { + st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] }); + + st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); + + st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); + + st.end(); + }); + + t.test('parses a nested array', function (st) { + st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } }); + st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } }); + st.end(); + }); + + t.test('allows to specify array indices', function (st) { + st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] }); + st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] }); + st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } }); + st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] }); + st.end(); + }); + + t.test('limits specific array indices to arrayLimit', function (st) { + st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] }); + st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } }); + st.end(); + }); + + t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number'); + + t.test('supports encoded = signs', function (st) { + st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' }); + st.end(); + }); + + t.test('is ok with url encoded strings', function (st) { + st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } }); + st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } }); + st.end(); + }); + + t.test('allows brackets in the value', function (st) { + st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' }); + st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' }); + st.end(); + }); + + t.test('allows empty values', function (st) { + st.deepEqual(qs.parse(''), {}); + st.deepEqual(qs.parse(null), {}); + st.deepEqual(qs.parse(undefined), {}); + st.end(); + }); + + t.test('transforms arrays to objects', function (st) { + st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); + st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); + + st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } }); + st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } }); + st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } }); + st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } }); + st.end(); + }); + + t.test('transforms arrays to objects (dot notation)', function (st) { + st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); + st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); + st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); + st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] }); + st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] }); + st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); + st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); + st.end(); + }); + + t.test('correctly prunes undefined values when converting an array to an object', function (st) { + st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } }); + st.end(); + }); + + t.test('supports malformed uri characters', function (st) { + st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null }); + st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' }); + st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' }); + st.end(); + }); + + t.test('doesn\'t produce empty keys', function (st) { + st.deepEqual(qs.parse('_r=1&'), { _r: '1' }); + st.end(); + }); + + t.test('cannot access Object prototype', function (st) { + qs.parse('constructor[prototype][bad]=bad'); + qs.parse('bad[constructor][prototype][bad]=bad'); + st.equal(typeof Object.prototype.bad, 'undefined'); + st.end(); + }); + + t.test('parses arrays of objects', function (st) { + st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); + st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] }); + st.end(); + }); + + t.test('allows for empty strings in arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] }); + + st.deepEqual( + qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }), + { a: ['b', null, 'c', ''] }, + 'with arrayLimit 20 + array indices: null then empty string works' + ); + st.deepEqual( + qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }), + { a: ['b', null, 'c', ''] }, + 'with arrayLimit 0 + array brackets: null then empty string works' + ); + + st.deepEqual( + qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }), + { a: ['b', '', 'c', null] }, + 'with arrayLimit 20 + array indices: empty string then null works' + ); + st.deepEqual( + qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }), + { a: ['b', '', 'c', null] }, + 'with arrayLimit 0 + array brackets: empty string then null works' + ); + + st.deepEqual( + qs.parse('a[]=&a[]=b&a[]=c'), + { a: ['', 'b', 'c'] }, + 'array brackets: empty strings work' + ); + st.end(); + }); + + t.test('compacts sparse arrays', function (st) { + st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] }); + st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] }); + st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] }); + st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] }); + st.end(); + }); + + t.test('parses semi-parsed strings', function (st) { + st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } }); + st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } }); + st.end(); + }); + + t.test('parses buffers correctly', function (st) { + var b = SaferBuffer.from('test'); + st.deepEqual(qs.parse({ a: b }), { a: b }); + st.end(); + }); + + t.test('parses jquery-param strings', function (st) { + // readable = 'filter[0][]=int1&filter[0][]==&filter[0][]=77&filter[]=and&filter[2][]=int2&filter[2][]==&filter[2][]=8' + var encoded = 'filter%5B0%5D%5B%5D=int1&filter%5B0%5D%5B%5D=%3D&filter%5B0%5D%5B%5D=77&filter%5B%5D=and&filter%5B2%5D%5B%5D=int2&filter%5B2%5D%5B%5D=%3D&filter%5B2%5D%5B%5D=8'; + var expected = { filter: [['int1', '=', '77'], 'and', ['int2', '=', '8']] }; + st.deepEqual(qs.parse(encoded), expected); + st.end(); + }); + + t.test('continues parsing when no parent is found', function (st) { + st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' }); + st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' }); + st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' }); + st.end(); + }); + + t.test('does not error when parsing a very long array', function (st) { + var str = 'a[]=a'; + while (Buffer.byteLength(str) < 128 * 1024) { + str = str + '&' + str; + } + + st.doesNotThrow(function () { + qs.parse(str); + }); + + st.end(); + }); + + t.test('should not throw when a native prototype has an enumerable property', function (st) { + Object.prototype.crash = ''; + Array.prototype.crash = ''; + st.doesNotThrow(qs.parse.bind(null, 'a=b')); + st.deepEqual(qs.parse('a=b'), { a: 'b' }); + st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c')); + st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); + delete Object.prototype.crash; + delete Array.prototype.crash; + st.end(); + }); + + t.test('parses a string with an alternative string delimiter', function (st) { + st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('parses a string with an alternative RegExp delimiter', function (st) { + st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('does not use non-splittable objects as delimiters', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('allows overriding parameter limit', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' }); + st.end(); + }); + + t.test('allows setting the parameter limit to Infinity', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('allows overriding array limit', function (st) { + st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } }); + st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } }); + st.end(); + }); + + t.test('allows disabling array parsing', function (st) { + var indices = qs.parse('a[0]=b&a[1]=c', { parseArrays: false }); + st.deepEqual(indices, { a: { 0: 'b', 1: 'c' } }); + st.equal(Array.isArray(indices.a), false, 'parseArrays:false, indices case is not an array'); + + var emptyBrackets = qs.parse('a[]=b', { parseArrays: false }); + st.deepEqual(emptyBrackets, { a: { 0: 'b' } }); + st.equal(Array.isArray(emptyBrackets.a), false, 'parseArrays:false, empty brackets case is not an array'); + + st.end(); + }); + + t.test('allows for query string prefix', function (st) { + st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); + st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); + st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' }); + st.end(); + }); + + t.test('parses an object', function (st) { + var input = { + 'user[name]': { 'pop[bob]': 3 }, + 'user[email]': null + }; + + var expected = { + user: { + name: { 'pop[bob]': 3 }, + email: null + } + }; + + var result = qs.parse(input); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('parses string with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo=bar,tee', { comma: true }), { foo: ['bar', 'tee'] }); + st.deepEqual(qs.parse('foo[bar]=coffee,tee', { comma: true }), { foo: { bar: ['coffee', 'tee'] } }); + st.deepEqual(qs.parse('foo=', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true, strictNullHandling: true }), { foo: null }); + st.end(); + }); + + t.test('parses values with comma as array divider', function (st) { + st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: false }), { foo: 'bar,tee' }); + st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: true }), { foo: ['bar', 'tee'] }); + st.end(); + }); + + t.test('use number decoder, parses string that has one number with comma option enabled', function (st) { + var decoder = function (str, defaultDecoder, charset, type) { + if (!isNaN(Number(str))) { + return parseFloat(str); + } + return defaultDecoder(str, defaultDecoder, charset, type); + }; + + st.deepEqual(qs.parse('foo=1', { comma: true, decoder: decoder }), { foo: 1 }); + st.deepEqual(qs.parse('foo=0', { comma: true, decoder: decoder }), { foo: 0 }); + + st.end(); + }); + + t.test('parses brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=', { comma: true }), { foo: [['1', '2', '3'], ''] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] }); + + st.end(); + }); + + t.test('parses comma delimited array while having percent-encoded comma treated as normal text', function (st) { + st.deepEqual(qs.parse('foo=a%2Cb', { comma: true }), { foo: 'a,b' }); + st.deepEqual(qs.parse('foo=a%2C%20b,d', { comma: true }), { foo: ['a, b', 'd'] }); + st.deepEqual(qs.parse('foo=a%2C%20b,c%2C%20d', { comma: true }), { foo: ['a, b', 'c, d'] }); + + st.end(); + }); + + t.test('parses an object in dot notation', function (st) { + var input = { + 'user.name': { 'pop[bob]': 3 }, + 'user.email.': null + }; + + var expected = { + user: { + name: { 'pop[bob]': 3 }, + email: null + } + }; + + var result = qs.parse(input, { allowDots: true }); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('parses an object and not child values', function (st) { + var input = { + 'user[name]': { 'pop[bob]': { test: 3 } }, + 'user[email]': null + }; + + var expected = { + user: { + name: { 'pop[bob]': { test: 3 } }, + email: null + } + }; + + var result = qs.parse(input); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('does not blow up when Buffer global is missing', function (st) { + var tempBuffer = global.Buffer; + delete global.Buffer; + var result = qs.parse('a=b&c=d'); + global.Buffer = tempBuffer; + st.deepEqual(result, { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('does not crash when parsing circular references', function (st) { + var a = {}; + a.b = a; + + var parsed; + + st.doesNotThrow(function () { + parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); + }); + + st.equal('foo' in parsed, true, 'parsed has "foo" property'); + st.equal('bar' in parsed.foo, true); + st.equal('baz' in parsed.foo, true); + st.equal(parsed.foo.bar, 'baz'); + st.deepEqual(parsed.foo.baz, a); + st.end(); + }); + + t.test('does not crash when parsing deep objects', function (st) { + var parsed; + var str = 'foo'; + + for (var i = 0; i < 5000; i++) { + str += '[p]'; + } + + str += '=bar'; + + st.doesNotThrow(function () { + parsed = qs.parse(str, { depth: 5000 }); + }); + + st.equal('foo' in parsed, true, 'parsed has "foo" property'); + + var depth = 0; + var ref = parsed.foo; + while ((ref = ref.p)) { + depth += 1; + } + + st.equal(depth, 5000, 'parsed is 5000 properties deep'); + + st.end(); + }); + + t.test('parses null objects correctly', { skip: !Object.create }, function (st) { + var a = Object.create(null); + a.b = 'c'; + + st.deepEqual(qs.parse(a), { b: 'c' }); + var result = qs.parse({ a: a }); + st.equal('a' in result, true, 'result has "a" property'); + st.deepEqual(result.a, a); + st.end(); + }); + + t.test('parses dates correctly', function (st) { + var now = new Date(); + st.deepEqual(qs.parse({ a: now }), { a: now }); + st.end(); + }); + + t.test('parses regular expressions correctly', function (st) { + var re = /^test$/; + st.deepEqual(qs.parse({ a: re }), { a: re }); + st.end(); + }); + + t.test('does not allow overwriting prototype properties', function (st) { + st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {}); + st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {}); + + st.deepEqual( + qs.parse('toString', { allowPrototypes: false }), + {}, + 'bare "toString" results in {}' + ); + + st.end(); + }); + + t.test('can allow overwriting prototype properties', function (st) { + st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }); + st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }); + + st.deepEqual( + qs.parse('toString', { allowPrototypes: true }), + { toString: '' }, + 'bare "toString" results in { toString: "" }' + ); + + st.end(); + }); + + t.test('params starting with a closing bracket', function (st) { + st.deepEqual(qs.parse(']=toString'), { ']': 'toString' }); + st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' }); + st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' }); + st.end(); + }); + + t.test('params starting with a starting bracket', function (st) { + st.deepEqual(qs.parse('[=toString'), { '[': 'toString' }); + st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' }); + st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' }); + st.end(); + }); + + t.test('add keys to objects', function (st) { + st.deepEqual( + qs.parse('a[b]=c&a=d'), + { a: { b: 'c', d: true } }, + 'can add keys to objects' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString'), + { a: { b: 'c' } }, + 'can not overwrite prototype' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString', { allowPrototypes: true }), + { a: { b: 'c', toString: true } }, + 'can overwrite prototype with allowPrototypes true' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString', { plainObjects: true }), + { __proto__: null, a: { __proto__: null, b: 'c', toString: true } }, + 'can overwrite prototype with plainObjects true' + ); + + st.end(); + }); + + t.test('dunder proto is ignored', function (st) { + var payload = 'categories[__proto__]=login&categories[__proto__]&categories[length]=42'; + var result = qs.parse(payload, { allowPrototypes: true }); + + st.deepEqual( + result, + { + categories: { + length: '42' + } + }, + 'silent [[Prototype]] payload' + ); + + var plainResult = qs.parse(payload, { allowPrototypes: true, plainObjects: true }); + + st.deepEqual( + plainResult, + { + __proto__: null, + categories: { + __proto__: null, + length: '42' + } + }, + 'silent [[Prototype]] payload: plain objects' + ); + + var query = qs.parse('categories[__proto__]=cats&categories[__proto__]=dogs&categories[some][json]=toInject', { allowPrototypes: true }); + + st.notOk(Array.isArray(query.categories), 'is not an array'); + st.notOk(query.categories instanceof Array, 'is not instanceof an array'); + st.deepEqual(query.categories, { some: { json: 'toInject' } }); + st.equal(JSON.stringify(query.categories), '{"some":{"json":"toInject"}}', 'stringifies as a non-array'); + + st.deepEqual( + qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true }), + { + foo: { + bar: 'stuffs' + } + }, + 'hidden values' + ); + + st.deepEqual( + qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true, plainObjects: true }), + { + __proto__: null, + foo: { + __proto__: null, + bar: 'stuffs' + } + }, + 'hidden values: plain objects' + ); + + st.end(); + }); + + t.test('can return null objects', { skip: !Object.create }, function (st) { + var expected = Object.create(null); + expected.a = Object.create(null); + expected.a.b = 'c'; + expected.a.hasOwnProperty = 'd'; + st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected); + st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null)); + var expectedArray = Object.create(null); + expectedArray.a = Object.create(null); + expectedArray.a[0] = 'b'; + expectedArray.a.c = 'd'; + st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray); + st.end(); + }); + + t.test('can parse with custom encoding', function (st) { + st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', { + decoder: function (str) { + var reg = /%([0-9A-F]{2})/ig; + var result = []; + var parts = reg.exec(str); + while (parts) { + result.push(parseInt(parts[1], 16)); + parts = reg.exec(str); + } + return String(iconv.decode(SaferBuffer.from(result), 'shift_jis')); + } + }), { 鐪: '澶ч槳搴' }); + st.end(); + }); + + t.test('receives the default decoder as a second argument', function (st) { + st.plan(1); + qs.parse('a', { + decoder: function (str, defaultDecoder) { + st.equal(defaultDecoder, utils.decode); + } + }); + st.end(); + }); + + t.test('throws error with wrong decoder', function (st) { + st['throws'](function () { + qs.parse({}, { decoder: 'string' }); + }, new TypeError('Decoder has to be a function.')); + st.end(); + }); + + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.parse('a[b]=true', options); + st.deepEqual(options, {}); + st.end(); + }); + + t.test('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.parse('a=b', { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('parses an iso-8859-1 string if asked to', function (st) { + st.deepEqual(qs.parse('%A2=%BD', { charset: 'iso-8859-1' }), { '垄': '陆' }); + st.end(); + }); + + var urlEncodedCheckmarkInUtf8 = '%E2%9C%93'; + var urlEncodedOSlashInUtf8 = '%C3%B8'; + var urlEncodedNumCheckmark = '%26%2310003%3B'; + var urlEncodedNumSmiley = '%26%239786%3B'; + + t.test('prefers an utf-8 charset specified by the utf8 sentinel to a default charset of iso-8859-1', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'iso-8859-1' }), { 酶: '酶' }); + st.end(); + }); + + t.test('prefers an iso-8859-1 charset specified by the utf8 sentinel to a default charset of utf-8', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { '脙赂': '脙赂' }); + st.end(); + }); + + t.test('does not require the utf8 sentinel to be defined before the parameters whose decoding it affects', function (st) { + st.deepEqual(qs.parse('a=' + urlEncodedOSlashInUtf8 + '&utf8=' + urlEncodedNumCheckmark, { charsetSentinel: true, charset: 'utf-8' }), { a: '脙赂' }); + st.end(); + }); + + t.test('should ignore an utf8 sentinel with an unknown value', function (st) { + st.deepEqual(qs.parse('utf8=foo&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { 酶: '酶' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to utf-8 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { 酶: '酶' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to iso-8859-1 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { '脙赂': '脙赂' }); + st.end(); + }); + + t.test('interprets numeric entities in iso-8859-1 when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1', interpretNumericEntities: true }), { foo: '鈽' }); + st.end(); + }); + + t.test('handles a custom decoder returning `null`, in the `iso-8859-1` charset, when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=&bar=' + urlEncodedNumSmiley, { + charset: 'iso-8859-1', + decoder: function (str, defaultDecoder, charset) { + return str ? defaultDecoder(str, defaultDecoder, charset) : null; + }, + interpretNumericEntities: true + }), { foo: null, bar: '鈽' }); + st.end(); + }); + + t.test('does not interpret numeric entities in iso-8859-1 when `interpretNumericEntities` is absent', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1' }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret numeric entities when the charset is utf-8, even when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'utf-8', interpretNumericEntities: true }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret %uXXXX syntax in iso-8859-1 mode', function (st) { + st.deepEqual(qs.parse('%u263A=%u263A', { charset: 'iso-8859-1' }), { '%u263A': '%u263A' }); + st.end(); + }); + + t.test('allows for decoding keys and values differently', function (st) { + var decoder = function (str, defaultDecoder, charset, type) { + if (type === 'key') { + return defaultDecoder(str, defaultDecoder, charset, type).toLowerCase(); + } + if (type === 'value') { + return defaultDecoder(str, defaultDecoder, charset, type).toUpperCase(); + } + throw 'this should never happen! type: ' + type; + }; + + st.deepEqual(qs.parse('KeY=vAlUe', { decoder: decoder }), { key: 'VALUE' }); + st.end(); + }); + + t.end(); +}); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/stringify.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/stringify.js" new file mode 100644 index 0000000000000000000000000000000000000000..f761fb358b06de5d1ea568043d1c39c0ccb5bd8c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/stringify.js" @@ -0,0 +1,804 @@ +'use strict'; + +var test = require('tape'); +var qs = require('../'); +var utils = require('../lib/utils'); +var iconv = require('iconv-lite'); +var SaferBuffer = require('safer-buffer').Buffer; +var hasSymbols = require('has-symbols'); +var hasBigInt = typeof BigInt === 'function'; + +test('stringify()', function (t) { + t.test('stringifies a querystring object', function (st) { + st.equal(qs.stringify({ a: 'b' }), 'a=b'); + st.equal(qs.stringify({ a: 1 }), 'a=1'); + st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2'); + st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z'); + st.equal(qs.stringify({ a: '鈧' }), 'a=%E2%82%AC'); + st.equal(qs.stringify({ a: '顎' }), 'a=%EE%80%80'); + st.equal(qs.stringify({ a: '讗' }), 'a=%D7%90'); + st.equal(qs.stringify({ a: '饜惙' }), 'a=%F0%90%90%B7'); + st.end(); + }); + + t.test('stringifies falsy values', function (st) { + st.equal(qs.stringify(undefined), ''); + st.equal(qs.stringify(null), ''); + st.equal(qs.stringify(null, { strictNullHandling: true }), ''); + st.equal(qs.stringify(false), ''); + st.equal(qs.stringify(0), ''); + st.end(); + }); + + t.test('stringifies symbols', { skip: !hasSymbols() }, function (st) { + st.equal(qs.stringify(Symbol.iterator), ''); + st.equal(qs.stringify([Symbol.iterator]), '0=Symbol%28Symbol.iterator%29'); + st.equal(qs.stringify({ a: Symbol.iterator }), 'a=Symbol%28Symbol.iterator%29'); + st.equal( + qs.stringify({ a: [Symbol.iterator] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[]=Symbol%28Symbol.iterator%29' + ); + st.end(); + }); + + t.test('stringifies bigints', { skip: !hasBigInt }, function (st) { + var three = BigInt(3); + var encodeWithN = function (value, defaultEncoder, charset) { + var result = defaultEncoder(value, defaultEncoder, charset); + return typeof value === 'bigint' ? result + 'n' : result; + }; + st.equal(qs.stringify(three), ''); + st.equal(qs.stringify([three]), '0=3'); + st.equal(qs.stringify([three], { encoder: encodeWithN }), '0=3n'); + st.equal(qs.stringify({ a: three }), 'a=3'); + st.equal(qs.stringify({ a: three }, { encoder: encodeWithN }), 'a=3n'); + st.equal( + qs.stringify({ a: [three] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[]=3' + ); + st.equal( + qs.stringify({ a: [three] }, { encodeValuesOnly: true, encoder: encodeWithN, arrayFormat: 'brackets' }), + 'a[]=3n' + ); + st.end(); + }); + + t.test('adds query prefix', function (st) { + st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b'); + st.end(); + }); + + t.test('with query prefix, outputs blank string given an empty object', function (st) { + st.equal(qs.stringify({}, { addQueryPrefix: true }), ''); + st.end(); + }); + + t.test('stringifies nested falsy values', function (st) { + st.equal(qs.stringify({ a: { b: { c: null } } }), 'a%5Bb%5D%5Bc%5D='); + st.equal(qs.stringify({ a: { b: { c: null } } }, { strictNullHandling: true }), 'a%5Bb%5D%5Bc%5D'); + st.equal(qs.stringify({ a: { b: { c: false } } }), 'a%5Bb%5D%5Bc%5D=false'); + st.end(); + }); + + t.test('stringifies a nested object', function (st) { + st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); + st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); + st.end(); + }); + + t.test('stringifies a nested object with dots notation', function (st) { + st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c'); + st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e'); + st.end(); + }); + + t.test('stringifies an array value', function (st) { + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }), + 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }), + 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma' }), + 'a=b%2Cc%2Cd', + 'comma => comma' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }), + 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', + 'default => indices' + ); + st.end(); + }); + + t.test('omits nulls when asked', function (st) { + st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b'); + st.end(); + }); + + t.test('omits nested nulls when asked', function (st) { + st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('omits array indices when asked', function (st) { + st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d'); + st.end(); + }); + + t.test('stringifies a nested array value', function (st) { + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[b][0]=c&a[b][1]=d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[b][]=c&a[b][]=d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a[b]=c,d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true }), 'a[b][0]=c&a[b][1]=d'); + st.end(); + }); + + t.test('stringifies a nested array value with dots notation', function (st) { + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'indices' } + ), + 'a.b[0]=c&a.b[1]=d', + 'indices: stringifies with dots + indices' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'brackets' } + ), + 'a.b[]=c&a.b[]=d', + 'brackets: stringifies with dots + brackets' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'comma' } + ), + 'a.b=c,d', + 'comma: stringifies with dots + comma' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true } + ), + 'a.b[0]=c&a.b[1]=d', + 'default: stringifies with dots + indices' + ); + st.end(); + }); + + t.test('stringifies an object inside an array', function (st) { + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }), + 'a%5B0%5D%5Bb%5D=c', // a[0][b]=c + 'indices => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }), + 'a%5B%5D%5Bb%5D=c', // a[][b]=c + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }), + 'a%5B0%5D%5Bb%5D=c', + 'default => indices' + ); + + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }), + 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', + 'indices => indices' + ); + + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }), + 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1', + 'brackets => brackets' + ); + + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }), + 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', + 'default => indices' + ); + + st.end(); + }); + + t.test('stringifies an array with mixed objects and primitives', function (st) { + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), + 'a[0][b]=1&a[1]=2&a[2]=3', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[][b]=1&a[]=2&a[]=3', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), + '???', + 'brackets => brackets', + { skip: 'TODO: figure out what this should do' } + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true }), + 'a[0][b]=1&a[1]=2&a[2]=3', + 'default => indices' + ); + + st.end(); + }); + + t.test('stringifies an object inside an array with dots notation', function (st) { + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false, arrayFormat: 'indices' } + ), + 'a[0].b=c', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false, arrayFormat: 'brackets' } + ), + 'a[].b=c', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false } + ), + 'a[0].b=c', + 'default => indices' + ); + + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false, arrayFormat: 'indices' } + ), + 'a[0].b.c[0]=1', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false, arrayFormat: 'brackets' } + ), + 'a[].b.c[]=1', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false } + ), + 'a[0].b.c[0]=1', + 'default => indices' + ); + + st.end(); + }); + + t.test('does not omit object keys when indices = false', function (st) { + st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when indices=true', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c'); + st.end(); + }); + + t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c'); + st.end(); + }); + + t.test('stringifies a complicated object', function (st) { + st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e'); + st.end(); + }); + + t.test('stringifies an empty value', function (st) { + st.equal(qs.stringify({ a: '' }), 'a='); + st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a'); + + st.equal(qs.stringify({ a: '', b: '' }), 'a=&b='); + st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b='); + + st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D='); + st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D'); + st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D='); + + st.end(); + }); + + t.test('stringifies an empty array in different arrayFormat', function (st) { + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false }), 'b[0]=&c=c'); + // arrayFormat default + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices' }), 'b[0]=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets' }), 'b[]=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat' }), 'b=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma' }), 'b=&c=c'); + // with strictNullHandling + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', strictNullHandling: true }), 'b[0]&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', strictNullHandling: true }), 'b[]&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', strictNullHandling: true }), 'b&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', strictNullHandling: true }), 'b&c=c'); + // with skipNulls + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', skipNulls: true }), 'c=c'); + + st.end(); + }); + + t.test('stringifies a null object', { skip: !Object.create }, function (st) { + var obj = Object.create(null); + obj.a = 'b'; + st.equal(qs.stringify(obj), 'a=b'); + st.end(); + }); + + t.test('returns an empty string for invalid input', function (st) { + st.equal(qs.stringify(undefined), ''); + st.equal(qs.stringify(false), ''); + st.equal(qs.stringify(null), ''); + st.equal(qs.stringify(''), ''); + st.end(); + }); + + t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) { + var obj = { a: Object.create(null) }; + + obj.a.b = 'c'; + st.equal(qs.stringify(obj), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('drops keys with a value of undefined', function (st) { + st.equal(qs.stringify({ a: undefined }), ''); + + st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D'); + st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D='); + st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D='); + st.end(); + }); + + t.test('url encodes values', function (st) { + st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); + st.end(); + }); + + t.test('stringifies a date', function (st) { + var now = new Date(); + var str = 'a=' + encodeURIComponent(now.toISOString()); + st.equal(qs.stringify({ a: now }), str); + st.end(); + }); + + t.test('stringifies the weird object from qs', function (st) { + st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); + st.end(); + }); + + t.test('skips properties that are part of the object prototype', function (st) { + Object.prototype.crash = 'test'; + st.equal(qs.stringify({ a: 'b' }), 'a=b'); + st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); + delete Object.prototype.crash; + st.end(); + }); + + t.test('stringifies boolean values', function (st) { + st.equal(qs.stringify({ a: true }), 'a=true'); + st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true'); + st.equal(qs.stringify({ b: false }), 'b=false'); + st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false'); + st.end(); + }); + + t.test('stringifies buffer values', function (st) { + st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test'); + st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test'); + st.end(); + }); + + t.test('stringifies an object using an alternative delimiter', function (st) { + st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); + st.end(); + }); + + t.test('doesn\'t blow up when Buffer global is missing', function (st) { + var tempBuffer = global.Buffer; + delete global.Buffer; + var result = qs.stringify({ a: 'b', c: 'd' }); + global.Buffer = tempBuffer; + st.equal(result, 'a=b&c=d'); + st.end(); + }); + + t.test('selects properties when filter=array', function (st) { + st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b'); + st.equal(qs.stringify({ a: 1 }, { filter: [] }), ''); + + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' } + ), + 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' } + ), + 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2] } + ), + 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', + 'default => indices' + ); + + st.end(); + }); + + t.test('supports custom representations when filter=function', function (st) { + var calls = 0; + var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; + var filterFunc = function (prefix, value) { + calls += 1; + if (calls === 1) { + st.equal(prefix, '', 'prefix is empty'); + st.equal(value, obj); + } else if (prefix === 'c') { + return void 0; + } else if (value instanceof Date) { + st.equal(prefix, 'e[f]'); + return value.getTime(); + } + return value; + }; + + st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000'); + st.equal(calls, 5); + st.end(); + }); + + t.test('can disable uri encoding', function (st) { + st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b'); + st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c'); + st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c'); + st.end(); + }); + + t.test('can sort the keys', function (st) { + var sort = function (a, b) { + return a.localeCompare(b); + }; + st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y'); + st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a'); + st.end(); + }); + + t.test('can sort the keys at depth 3 or more too', function (st) { + var sort = function (a, b) { + return a.localeCompare(b); + }; + st.equal( + qs.stringify( + { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, + { sort: sort, encode: false } + ), + 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb' + ); + st.equal( + qs.stringify( + { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, + { sort: null, encode: false } + ), + 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b' + ); + st.end(); + }); + + t.test('can stringify with custom encoding', function (st) { + st.equal(qs.stringify({ 鐪: '澶ч槳搴', '': '' }, { + encoder: function (str) { + if (str.length === 0) { + return ''; + } + var buf = iconv.encode(str, 'shiftjis'); + var result = []; + for (var i = 0; i < buf.length; ++i) { + result.push(buf.readUInt8(i).toString(16)); + } + return '%' + result.join('%'); + } + }), '%8c%a7=%91%e5%8d%e3%95%7b&='); + st.end(); + }); + + t.test('receives the default encoder as a second argument', function (st) { + st.plan(2); + qs.stringify({ a: 1 }, { + encoder: function (str, defaultEncoder) { + st.equal(defaultEncoder, utils.encode); + } + }); + st.end(); + }); + + t.test('throws error with wrong encoder', function (st) { + st['throws'](function () { + qs.stringify({}, { encoder: 'string' }); + }, new TypeError('Encoder has to be a function.')); + st.end(); + }); + + t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) { + st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, { + encoder: function (buffer) { + if (typeof buffer === 'string') { + return buffer; + } + return String.fromCharCode(buffer.readUInt8(0) + 97); + } + }), 'a=b'); + + st.equal(qs.stringify({ a: SaferBuffer.from('a b') }, { + encoder: function (buffer) { + return buffer; + } + }), 'a=a b'); + st.end(); + }); + + t.test('serializeDate option', function (st) { + var date = new Date(); + st.equal( + qs.stringify({ a: date }), + 'a=' + date.toISOString().replace(/:/g, '%3A'), + 'default is toISOString' + ); + + var mutatedDate = new Date(); + mutatedDate.toISOString = function () { + throw new SyntaxError(); + }; + st['throws'](function () { + mutatedDate.toISOString(); + }, SyntaxError); + st.equal( + qs.stringify({ a: mutatedDate }), + 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'), + 'toISOString works even when method is not locally present' + ); + + var specificDate = new Date(6); + st.equal( + qs.stringify( + { a: specificDate }, + { serializeDate: function (d) { return d.getTime() * 7; } } + ), + 'a=42', + 'custom serializeDate function called' + ); + + st.equal( + qs.stringify( + { a: [date] }, + { + serializeDate: function (d) { return d.getTime(); }, + arrayFormat: 'comma' + } + ), + 'a=' + date.getTime(), + 'works with arrayFormat comma' + ); + + st.end(); + }); + + t.test('RFC 1738 serialization', function (st) { + st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c'); + st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC1738 }), 'a+b=a+b'); + + st.equal(qs.stringify({ 'foo(ref)': 'bar' }, { format: qs.formats.RFC1738 }), 'foo(ref)=bar'); + + st.end(); + }); + + t.test('RFC 3986 spaces serialization', function (st) { + st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c'); + st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC3986 }), 'a%20b=a%20b'); + + st.end(); + }); + + t.test('Backward compatibility to RFC 3986', function (st) { + st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }), 'a%20b=a%20b'); + + st.end(); + }); + + t.test('Edge cases and unknown formats', function (st) { + ['UFO1234', false, 1234, null, {}, []].forEach( + function (format) { + st['throws']( + function () { + qs.stringify({ a: 'b c' }, { format: format }); + }, + new TypeError('Unknown format option provided.') + ); + } + ); + st.end(); + }); + + t.test('encodeValuesOnly', function (st) { + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true } + ), + 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h' + ); + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] } + ), + 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h' + ); + st.end(); + }); + + t.test('encodeValuesOnly - strictNullHandling', function (st) { + st.equal( + qs.stringify( + { a: { b: null } }, + { encodeValuesOnly: true, strictNullHandling: true } + ), + 'a[b]' + ); + st.end(); + }); + + t.test('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.stringify({ a: 'b' }, { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('respects a charset of iso-8859-1', function (st) { + st.equal(qs.stringify({ 忙: '忙' }, { charset: 'iso-8859-1' }), '%E6=%E6'); + st.end(); + }); + + t.test('encodes unrepresentable chars as numeric entities in iso-8859-1 mode', function (st) { + st.equal(qs.stringify({ a: '鈽' }, { charset: 'iso-8859-1' }), 'a=%26%239786%3B'); + st.end(); + }); + + t.test('respects an explicit charset of utf-8 (the default)', function (st) { + st.equal(qs.stringify({ a: '忙' }, { charset: 'utf-8' }), 'a=%C3%A6'); + st.end(); + }); + + t.test('adds the right sentinel when instructed to and the charset is utf-8', function (st) { + st.equal(qs.stringify({ a: '忙' }, { charsetSentinel: true, charset: 'utf-8' }), 'utf8=%E2%9C%93&a=%C3%A6'); + st.end(); + }); + + t.test('adds the right sentinel when instructed to and the charset is iso-8859-1', function (st) { + st.equal(qs.stringify({ a: '忙' }, { charsetSentinel: true, charset: 'iso-8859-1' }), 'utf8=%26%2310003%3B&a=%E6'); + st.end(); + }); + + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.stringify({}, options); + st.deepEqual(options, {}); + st.end(); + }); + + t.test('strictNullHandling works with custom filter', function (st) { + var filter = function (prefix, value) { + return value; + }; + + var options = { strictNullHandling: true, filter: filter }; + st.equal(qs.stringify({ key: null }, options), 'key'); + st.end(); + }); + + t.test('strictNullHandling works with null serializeDate', function (st) { + var serializeDate = function () { + return null; + }; + var options = { strictNullHandling: true, serializeDate: serializeDate }; + var date = new Date(); + st.equal(qs.stringify({ key: date }, options), 'key'); + st.end(); + }); + + t.test('allows for encoding keys and values differently', function (st) { + var encoder = function (str, defaultEncoder, charset, type) { + if (type === 'key') { + return defaultEncoder(str, defaultEncoder, charset, type).toLowerCase(); + } + if (type === 'value') { + return defaultEncoder(str, defaultEncoder, charset, type).toUpperCase(); + } + throw 'this should never happen! type: ' + type; + }; + + st.deepEqual(qs.stringify({ KeY: 'vAlUe' }, { encoder: encoder }), 'key=VALUE'); + st.end(); + }); + + t.test('objects inside arrays', function (st) { + var obj = { a: { b: { c: 'd', e: 'f' } } }; + var withArray = { a: { b: [{ c: 'd', e: 'f' }] } }; + + st.equal(qs.stringify(obj, { encode: false }), 'a[b][c]=d&a[b][e]=f', 'no array, no arrayFormat'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'bracket' }), 'a[b][c]=d&a[b][e]=f', 'no array, bracket'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'indices' }), 'a[b][c]=d&a[b][e]=f', 'no array, indices'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'comma' }), 'a[b][c]=d&a[b][e]=f', 'no array, comma'); + + st.equal(qs.stringify(withArray, { encode: false }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, no arrayFormat'); + st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'bracket' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, bracket'); + st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'indices' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, indices'); + st.equal( + qs.stringify(withArray, { encode: false, arrayFormat: 'comma' }), + '???', + 'array, comma', + { skip: 'TODO: figure out what this should do' } + ); + + st.end(); + }); + + t.end(); +}); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/utils.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/utils.js" new file mode 100644 index 0000000000000000000000000000000000000000..aa84dfdc62beb79b5b980fca5d6ba40c19caa123 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/qs/test/utils.js" @@ -0,0 +1,136 @@ +'use strict'; + +var test = require('tape'); +var inspect = require('object-inspect'); +var SaferBuffer = require('safer-buffer').Buffer; +var forEach = require('for-each'); +var utils = require('../lib/utils'); + +test('merge()', function (t) { + t.deepEqual(utils.merge(null, true), [null, true], 'merges true into null'); + + t.deepEqual(utils.merge(null, [42]), [null, 42], 'merges null into an array'); + + t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); + + var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } }); + t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array'); + + var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } }); + t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array'); + + var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' }); + t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array'); + + var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] }); + t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] }); + + var noOptionsNonObjectSource = utils.merge({ foo: 'baz' }, 'bar'); + t.deepEqual(noOptionsNonObjectSource, { foo: 'baz', bar: true }); + + t.test( + 'avoids invoking array setters unnecessarily', + { skip: typeof Object.defineProperty !== 'function' }, + function (st) { + var setCount = 0; + var getCount = 0; + var observed = []; + Object.defineProperty(observed, 0, { + get: function () { + getCount += 1; + return { bar: 'baz' }; + }, + set: function () { setCount += 1; } + }); + utils.merge(observed, [null]); + st.equal(setCount, 0); + st.equal(getCount, 1); + observed[0] = observed[0]; // eslint-disable-line no-self-assign + st.equal(setCount, 1); + st.equal(getCount, 2); + st.end(); + } + ); + + t.end(); +}); + +test('assign()', function (t) { + var target = { a: 1, b: 2 }; + var source = { b: 3, c: 4 }; + var result = utils.assign(target, source); + + t.equal(result, target, 'returns the target'); + t.deepEqual(target, { a: 1, b: 3, c: 4 }, 'target and source are merged'); + t.deepEqual(source, { b: 3, c: 4 }, 'source is untouched'); + + t.end(); +}); + +test('combine()', function (t) { + t.test('both arrays', function (st) { + var a = [1]; + var b = [2]; + var combined = utils.combine(a, b); + + st.deepEqual(a, [1], 'a is not mutated'); + st.deepEqual(b, [2], 'b is not mutated'); + st.notEqual(a, combined, 'a !== combined'); + st.notEqual(b, combined, 'b !== combined'); + st.deepEqual(combined, [1, 2], 'combined is a + b'); + + st.end(); + }); + + t.test('one array, one non-array', function (st) { + var aN = 1; + var a = [aN]; + var bN = 2; + var b = [bN]; + + var combinedAnB = utils.combine(aN, b); + st.deepEqual(b, [bN], 'b is not mutated'); + st.notEqual(aN, combinedAnB, 'aN + b !== aN'); + st.notEqual(a, combinedAnB, 'aN + b !== a'); + st.notEqual(bN, combinedAnB, 'aN + b !== bN'); + st.notEqual(b, combinedAnB, 'aN + b !== b'); + st.deepEqual([1, 2], combinedAnB, 'first argument is array-wrapped when not an array'); + + var combinedABn = utils.combine(a, bN); + st.deepEqual(a, [aN], 'a is not mutated'); + st.notEqual(aN, combinedABn, 'a + bN !== aN'); + st.notEqual(a, combinedABn, 'a + bN !== a'); + st.notEqual(bN, combinedABn, 'a + bN !== bN'); + st.notEqual(b, combinedABn, 'a + bN !== b'); + st.deepEqual([1, 2], combinedABn, 'second argument is array-wrapped when not an array'); + + st.end(); + }); + + t.test('neither is an array', function (st) { + var combined = utils.combine(1, 2); + st.notEqual(1, combined, '1 + 2 !== 1'); + st.notEqual(2, combined, '1 + 2 !== 2'); + st.deepEqual([1, 2], combined, 'both arguments are array-wrapped when not an array'); + + st.end(); + }); + + t.end(); +}); + +test('isBuffer()', function (t) { + forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], function () {}, /a/g], function (x) { + t.equal(utils.isBuffer(x), false, inspect(x) + ' is not a buffer'); + }); + + var fakeBuffer = { constructor: Buffer }; + t.equal(utils.isBuffer(fakeBuffer), false, 'fake buffer is not a buffer'); + + var saferBuffer = SaferBuffer.from('abc'); + t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer'); + + var buffer = Buffer.from && Buffer.alloc ? Buffer.from('abc') : new Buffer('abc'); + t.equal(utils.isBuffer(buffer), true, 'real Buffer instance is a buffer'); + t.end(); +}); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..70a973d800ef108fda6ee25ad76ec626594b656d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/HISTORY.md" @@ -0,0 +1,56 @@ +1.2.1 / 2019-05-10 +================== + + * Improve error when `str` is not a string + +1.2.0 / 2016-06-01 +================== + + * Add `combine` option to combine overlapping ranges + +1.1.0 / 2016-05-13 +================== + + * Fix incorrectly returning -1 when there is at least one valid range + * perf: remove internal function + +1.0.3 / 2015-10-29 +================== + + * perf: enable strict mode + +1.0.2 / 2014-09-08 +================== + + * Support Node.js 0.6 + +1.0.1 / 2014-09-07 +================== + + * Move repository to jshttp + +1.0.0 / 2013-12-11 +================== + + * Add repository to package.json + * Add MIT license + +0.0.4 / 2012-06-17 +================== + + * Change ret -1 for unsatisfiable and -2 when invalid + +0.0.3 / 2012-06-17 +================== + + * Fix last-byte-pos default to len - 1 + +0.0.2 / 2012-06-14 +================== + + * Add `.type` + +0.0.1 / 2012-06-11 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..359995436311ca2c69c0d05c1b7ad389aa63e9b9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +```js +var parseRange = require('range-parser') +``` + +### parseRange(size, header, options) + +Parse the given `header` string where `size` is the maximum size of the resource. +An array of ranges will be returned or negative numbers indicating an error parsing. + + * `-2` signals a malformed header string + * `-1` signals an unsatisfiable range + + + +```js +// parse header from request +var range = parseRange(size, req.headers.range) + +// the type of the range +if (range.type === 'bytes') { + // the ranges + range.forEach(function (r) { + // do something with r.start and r.end + }) +} +``` + +#### Options + +These properties are accepted in the options object. + +##### combine + +Specifies if overlapping & adjacent ranges should be combined, defaults to `false`. +When `true`, ranges will be combined and returned as if they were specified that +way in the header. + + + +```js +parseRange(100, 'bytes=50-55,0-10,5-10,56-60', { combine: true }) +// => [ +// { start: 0, end: 10 }, +// { start: 50, end: 60 } +// ] +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/range-parser/master +[coveralls-url]: https://coveralls.io/r/jshttp/range-parser?branch=master +[node-image]: https://badgen.net/npm/node/range-parser +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/range-parser +[npm-url]: https://npmjs.org/package/range-parser +[npm-version-image]: https://badgen.net/npm/v/range-parser +[travis-image]: https://badgen.net/travis/jshttp/range-parser/master +[travis-url]: https://travis-ci.org/jshttp/range-parser diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..b7dc5c0f15fe00172c496cae3bc48f238a3a8469 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/index.js" @@ -0,0 +1,162 @@ +/*! + * range-parser + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = rangeParser + +/** + * Parse "Range" header `str` relative to the given file `size`. + * + * @param {Number} size + * @param {String} str + * @param {Object} [options] + * @return {Array} + * @public + */ + +function rangeParser (size, str, options) { + if (typeof str !== 'string') { + throw new TypeError('argument str must be a string') + } + + var index = str.indexOf('=') + + if (index === -1) { + return -2 + } + + // split the range string + var arr = str.slice(index + 1).split(',') + var ranges = [] + + // add ranges type + ranges.type = str.slice(0, index) + + // parse all ranges + for (var i = 0; i < arr.length; i++) { + var range = arr[i].split('-') + var start = parseInt(range[0], 10) + var end = parseInt(range[1], 10) + + // -nnn + if (isNaN(start)) { + start = size - end + end = size - 1 + // nnn- + } else if (isNaN(end)) { + end = size - 1 + } + + // limit last-byte-pos to current length + if (end > size - 1) { + end = size - 1 + } + + // invalid or unsatisifiable + if (isNaN(start) || isNaN(end) || start > end || start < 0) { + continue + } + + // add range + ranges.push({ + start: start, + end: end + }) + } + + if (ranges.length < 1) { + // unsatisifiable + return -1 + } + + return options && options.combine + ? combineRanges(ranges) + : ranges +} + +/** + * Combine overlapping & adjacent ranges. + * @private + */ + +function combineRanges (ranges) { + var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart) + + for (var j = 0, i = 1; i < ordered.length; i++) { + var range = ordered[i] + var current = ordered[j] + + if (range.start > current.end + 1) { + // next range + ordered[++j] = range + } else if (range.end > current.end) { + // extend range + current.end = range.end + current.index = Math.min(current.index, range.index) + } + } + + // trim ordered array + ordered.length = j + 1 + + // generate combined range + var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex) + + // copy ranges type + combined.type = ranges.type + + return combined +} + +/** + * Map function to add index value to ranges. + * @private + */ + +function mapWithIndex (range, index) { + return { + start: range.start, + end: range.end, + index: index + } +} + +/** + * Map function to remove index value from ranges. + * @private + */ + +function mapWithoutIndex (range) { + return { + start: range.start, + end: range.end + } +} + +/** + * Sort function to sort ranges by index. + * @private + */ + +function sortByRangeIndex (a, b) { + return a.index - b.index +} + +/** + * Sort function to sort ranges by start position. + * @private + */ + +function sortByRangeStart (a, b) { + return a.start - b.start +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..cfc3c7f912145d9532a656bc2fdf8b7bbf228cfa --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/range-parser/package.json" @@ -0,0 +1,91 @@ +{ + "_from": "range-parser@~1.2.1", + "_id": "range-parser@1.2.1", + "_inBundle": false, + "_integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "_location": "/range-parser", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "range-parser@~1.2.1", + "name": "range-parser", + "escapedName": "range-parser", + "rawSpec": "~1.2.1", + "saveSpec": null, + "fetchSpec": "~1.2.1" + }, + "_requiredBy": [ + "/express", + "/send" + ], + "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "_shasum": "3cf37023d199e1c24d1a55b84800c2f3e6468031", + "_spec": "range-parser@~1.2.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/jshttp/range-parser/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "wyatt.cready@lanetix.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "Range header field string parser", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.1.1" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/jshttp/range-parser#readme", + "keywords": [ + "range", + "parser", + "http" + ], + "license": "MIT", + "name": "range-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/range-parser.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "version": "1.2.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..2659c4d752cf5b626c729a04793d284cc4573254 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/HISTORY.md" @@ -0,0 +1,289 @@ +2.4.3 / 2022-02-14 +================== + + * deps: bytes@3.1.2 + +2.4.2 / 2021-11-16 +================== + + * deps: bytes@3.1.1 + * deps: http-errors@1.8.1 + - deps: setprototypeof@1.2.0 + - deps: toidentifier@1.0.1 + +2.4.1 / 2019-06-25 +================== + + * deps: http-errors@1.7.3 + - deps: inherits@2.0.4 + +2.4.0 / 2019-04-17 +================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + +2.3.3 / 2018-05-08 +================== + + * deps: http-errors@1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + +2.3.2 / 2017-09-09 +================== + + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + +2.3.1 / 2017-09-07 +================== + + * deps: bytes@3.0.0 + * deps: http-errors@1.6.2 + - deps: depd@1.1.1 + * perf: skip buffer decoding on overage chunk + +2.3.0 / 2017-08-04 +================== + + * Add TypeScript definitions + * Use `http-errors` for standard emitted errors + * deps: bytes@2.5.0 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + +2.2.0 / 2017-01-02 +================== + + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + +2.1.7 / 2016-06-19 +================== + + * deps: bytes@2.4.0 + * perf: remove double-cleanup on happy path + +2.1.6 / 2016-03-07 +================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + +2.1.5 / 2015-11-30 +================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + +2.1.4 / 2015-09-27 +================== + + * Fix masking critical errors from `iconv-lite` + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + +2.1.3 / 2015-09-12 +================== + + * Fix sync callback when attaching data listener causes sync read + - Node.js 0.10 compatibility issue + +2.1.2 / 2015-07-05 +================== + + * Fix error stack traces to skip `makeError` + * deps: iconv-lite@0.4.11 + - Add encoding CESU-8 + +2.1.1 / 2015-06-14 +================== + + * Use `unpipe` module for unpiping requests + +2.1.0 / 2015-05-28 +================== + + * deps: iconv-lite@0.4.10 + - Improved UTF-16 endianness detection + - Leading BOM is now removed when decoding + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + +2.0.2 / 2015-05-21 +================== + + * deps: bytes@2.1.0 + - Slight optimizations + +2.0.1 / 2015-05-10 +================== + + * Fix a false-positive when unpiping in Node.js 0.8 + +2.0.0 / 2015-05-08 +================== + + * Return a promise without callback instead of thunk + * deps: bytes@2.0.1 + - units no longer case sensitive when parsing + +1.3.4 / 2015-04-15 +================== + + * Fix hanging callback if request aborts during read + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + +1.3.3 / 2015-02-08 +================== + + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + +1.3.2 / 2015-01-20 +================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + +1.3.1 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + +1.3.0 / 2014-07-20 +================== + + * Fully unpipe the stream on error + - Fixes `Cannot switch to old mode now` error on Node.js 0.10+ + +1.2.3 / 2014-07-20 +================== + + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + +1.2.2 / 2014-06-19 +================== + + * Send invalid encoding error to callback + +1.2.1 / 2014-06-15 +================== + + * deps: iconv-lite@0.4.3 + - Added encodings UTF-16BE and UTF-16 with BOM + +1.2.0 / 2014-06-13 +================== + + * Passing string as `options` interpreted as encoding + * Support all encodings from `iconv-lite` + +1.1.7 / 2014-06-12 +================== + + * use `string_decoder` module from npm + +1.1.6 / 2014-05-27 +================== + + * check encoding for old streams1 + * support node.js < 0.10.6 + +1.1.5 / 2014-05-14 +================== + + * bump bytes + +1.1.4 / 2014-04-19 +================== + + * allow true as an option + * bump bytes + +1.1.3 / 2014-03-02 +================== + + * fix case when length=null + +1.1.2 / 2013-12-01 +================== + + * be less strict on state.encoding check + +1.1.1 / 2013-11-27 +================== + + * add engines + +1.1.0 / 2013-11-27 +================== + + * add err.statusCode and err.type + * allow for encoding option to be true + * pause the stream instead of dumping on error + * throw if the stream's encoding is set + +1.0.1 / 2013-11-19 +================== + + * dont support streams1, throw if dev set encoding + +1.0.0 / 2013-11-17 +================== + + * rename `expected` option to `length` + +0.2.0 / 2013-11-15 +================== + + * republish + +0.1.1 / 2013-11-15 +================== + + * use bytes + +0.1.0 / 2013-11-11 +================== + + * generator support + +0.0.3 / 2013-10-10 +================== + + * update repo + +0.0.2 / 2013-09-14 +================== + + * dump stream on bad headers + * listen to events after defining received and buffers + +0.0.1 / 2013-09-14 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..d695c8fd666d9ffc533167fba7c8295ca04d8e6b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/LICENSE" @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2013-2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0d0e6fbe969a22827c28c03056b00b3bd048912 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/README.md" @@ -0,0 +1,219 @@ +# raw-body + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build status][github-actions-ci-image]][github-actions-ci-url] +[![Test coverage][coveralls-image]][coveralls-url] + +Gets the entire buffer of a stream either as a `Buffer` or a string. +Validates the stream's length against an expected length and maximum limit. +Ideal for parsing request bodies. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install raw-body +``` + +### TypeScript + +This module includes a [TypeScript](https://www.typescriptlang.org/) +declaration file to enable auto complete in compatible editors and type +information for TypeScript projects. This module depends on the Node.js +types, so install `@types/node`: + +```sh +$ npm install @types/node +``` + +## API + +```js +var getRawBody = require('raw-body') +``` + +### getRawBody(stream, [options], [callback]) + +**Returns a promise if no callback specified and global `Promise` exists.** + +Options: + +- `length` - The length of the stream. + If the contents of the stream do not add up to this length, + an `400` error code is returned. +- `limit` - The byte limit of the body. + This is the number of bytes or any string format supported by + [bytes](https://www.npmjs.com/package/bytes), + for example `1000`, `'500kb'` or `'3mb'`. + If the body ends up being larger than this limit, + a `413` error code is returned. +- `encoding` - The encoding to use to decode the body into a string. + By default, a `Buffer` instance will be returned when no encoding is specified. + Most likely, you want `utf-8`, so setting `encoding` to `true` will decode as `utf-8`. + You can use any type of encoding supported by [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme). + +You can also pass a string in place of options to just specify the encoding. + +If an error occurs, the stream will be paused, everything unpiped, +and you are responsible for correctly disposing the stream. +For HTTP requests, you may need to finish consuming the stream if +you want to keep the socket open for future requests. For streams +that use file descriptors, you should `stream.destroy()` or +`stream.close()` to prevent leaks. + +## Errors + +This module creates errors depending on the error condition during reading. +The error may be an error from the underlying Node.js implementation, but is +otherwise an error created by this module, which has the following attributes: + + * `limit` - the limit in bytes + * `length` and `expected` - the expected length of the stream + * `received` - the received bytes + * `encoding` - the invalid encoding + * `status` and `statusCode` - the corresponding status code for the error + * `type` - the error type + +### Types + +The errors from this module have a `type` property which allows for the programmatic +determination of the type of error returned. + +#### encoding.unsupported + +This error will occur when the `encoding` option is specified, but the value does +not map to an encoding supported by the [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme) +module. + +#### entity.too.large + +This error will occur when the `limit` option is specified, but the stream has +an entity that is larger. + +#### request.aborted + +This error will occur when the request stream is aborted by the client before +reading the body has finished. + +#### request.size.invalid + +This error will occur when the `length` option is specified, but the stream has +emitted more bytes. + +#### stream.encoding.set + +This error will occur when the given stream has an encoding set on it, making it +a decoded stream. The stream should not have an encoding set and is expected to +emit `Buffer` objects. + +## Examples + +### Simple Express example + +```js +var contentType = require('content-type') +var express = require('express') +var getRawBody = require('raw-body') + +var app = express() + +app.use(function (req, res, next) { + getRawBody(req, { + length: req.headers['content-length'], + limit: '1mb', + encoding: contentType.parse(req).parameters.charset + }, function (err, string) { + if (err) return next(err) + req.text = string + next() + }) +}) + +// now access req.text +``` + +### Simple Koa example + +```js +var contentType = require('content-type') +var getRawBody = require('raw-body') +var koa = require('koa') + +var app = koa() + +app.use(function * (next) { + this.text = yield getRawBody(this.req, { + length: this.req.headers['content-length'], + limit: '1mb', + encoding: contentType.parse(this.req).parameters.charset + }) + yield next +}) + +// now access this.text +``` + +### Using as a promise + +To use this library as a promise, simply omit the `callback` and a promise is +returned, provided that a global `Promise` is defined. + +```js +var getRawBody = require('raw-body') +var http = require('http') + +var server = http.createServer(function (req, res) { + getRawBody(req) + .then(function (buf) { + res.statusCode = 200 + res.end(buf.length + ' bytes submitted') + }) + .catch(function (err) { + res.statusCode = 500 + res.end(err.message) + }) +}) + +server.listen(3000) +``` + +### Using with TypeScript + +```ts +import * as getRawBody from 'raw-body'; +import * as http from 'http'; + +const server = http.createServer((req, res) => { + getRawBody(req) + .then((buf) => { + res.statusCode = 200; + res.end(buf.length + ' bytes submitted'); + }) + .catch((err) => { + res.statusCode = err.statusCode; + res.end(err.message); + }); +}); + +server.listen(3000); +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/raw-body.svg +[npm-url]: https://npmjs.org/package/raw-body +[node-version-image]: https://img.shields.io/node/v/raw-body.svg +[node-version-url]: https://nodejs.org/en/download/ +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/raw-body/master.svg +[coveralls-url]: https://coveralls.io/r/stream-utils/raw-body?branch=master +[downloads-image]: https://img.shields.io/npm/dm/raw-body.svg +[downloads-url]: https://npmjs.org/package/raw-body +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/stream-utils/raw-body/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/stream-utils/raw-body?query=workflow%3Aci diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/index.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/index.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..dcbbebd4c8f3a6f2cc12c4f862d90b8f2e4eaa28 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/index.d.ts" @@ -0,0 +1,87 @@ +import { Readable } from 'stream'; + +declare namespace getRawBody { + export type Encoding = string | true; + + export interface Options { + /** + * The expected length of the stream. + */ + length?: number | string | null; + /** + * The byte limit of the body. This is the number of bytes or any string + * format supported by `bytes`, for example `1000`, `'500kb'` or `'3mb'`. + */ + limit?: number | string | null; + /** + * The encoding to use to decode the body into a string. By default, a + * `Buffer` instance will be returned when no encoding is specified. Most + * likely, you want `utf-8`, so setting encoding to `true` will decode as + * `utf-8`. You can use any type of encoding supported by `iconv-lite`. + */ + encoding?: Encoding | null; + } + + export interface RawBodyError extends Error { + /** + * The limit in bytes. + */ + limit?: number; + /** + * The expected length of the stream. + */ + length?: number; + expected?: number; + /** + * The received bytes. + */ + received?: number; + /** + * The encoding. + */ + encoding?: string; + /** + * The corresponding status code for the error. + */ + status: number; + statusCode: number; + /** + * The error type. + */ + type: string; + } +} + +/** + * Gets the entire buffer of a stream either as a `Buffer` or a string. + * Validates the stream's length against an expected length and maximum + * limit. Ideal for parsing request bodies. + */ +declare function getRawBody( + stream: Readable, + callback: (err: getRawBody.RawBodyError, body: Buffer) => void +): void; + +declare function getRawBody( + stream: Readable, + options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding, + callback: (err: getRawBody.RawBodyError, body: string) => void +): void; + +declare function getRawBody( + stream: Readable, + options: getRawBody.Options, + callback: (err: getRawBody.RawBodyError, body: Buffer) => void +): void; + +declare function getRawBody( + stream: Readable, + options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding +): Promise; + +declare function getRawBody( + stream: Readable, + options?: getRawBody.Options +): Promise; + +export = getRawBody; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..7fe818604a85f81b678cda3be59f6a80c132954d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/index.js" @@ -0,0 +1,286 @@ +/*! + * raw-body + * Copyright(c) 2013-2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var createError = require('http-errors') +var iconv = require('iconv-lite') +var unpipe = require('unpipe') + +/** + * Module exports. + * @public + */ + +module.exports = getRawBody + +/** + * Module variables. + * @private + */ + +var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: / + +/** + * Get the decoder for a given encoding. + * + * @param {string} encoding + * @private + */ + +function getDecoder (encoding) { + if (!encoding) return null + + try { + return iconv.getDecoder(encoding) + } catch (e) { + // error getting decoder + if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e + + // the encoding was not found + throw createError(415, 'specified encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } +} + +/** + * Get the raw body of a stream (typically HTTP). + * + * @param {object} stream + * @param {object|string|function} [options] + * @param {function} [callback] + * @public + */ + +function getRawBody (stream, options, callback) { + var done = callback + var opts = options || {} + + if (options === true || typeof options === 'string') { + // short cut for encoding + opts = { + encoding: options + } + } + + if (typeof options === 'function') { + done = options + opts = {} + } + + // validate callback is a function, if provided + if (done !== undefined && typeof done !== 'function') { + throw new TypeError('argument callback must be a function') + } + + // require the callback without promises + if (!done && !global.Promise) { + throw new TypeError('argument callback is required') + } + + // get encoding + var encoding = opts.encoding !== true + ? opts.encoding + : 'utf-8' + + // convert the limit to an integer + var limit = bytes.parse(opts.limit) + + // convert the expected length to an integer + var length = opts.length != null && !isNaN(opts.length) + ? parseInt(opts.length, 10) + : null + + if (done) { + // classic callback style + return readStream(stream, encoding, length, limit, done) + } + + return new Promise(function executor (resolve, reject) { + readStream(stream, encoding, length, limit, function onRead (err, buf) { + if (err) return reject(err) + resolve(buf) + }) + }) +} + +/** + * Halt a stream. + * + * @param {Object} stream + * @private + */ + +function halt (stream) { + // unpipe everything from the stream + unpipe(stream) + + // pause stream + if (typeof stream.pause === 'function') { + stream.pause() + } +} + +/** + * Read the data from the stream. + * + * @param {object} stream + * @param {string} encoding + * @param {number} length + * @param {number} limit + * @param {function} callback + * @public + */ + +function readStream (stream, encoding, length, limit, callback) { + var complete = false + var sync = true + + // check the length and limit options. + // note: we intentionally leave the stream paused, + // so users should handle the stream themselves. + if (limit !== null && length !== null && length > limit) { + return done(createError(413, 'request entity too large', { + expected: length, + length: length, + limit: limit, + type: 'entity.too.large' + })) + } + + // streams1: assert request encoding is buffer. + // streams2+: assert the stream encoding is buffer. + // stream._decoder: streams1 + // state.encoding: streams2 + // state.decoder: streams2, specifically < 0.10.6 + var state = stream._readableState + if (stream._decoder || (state && (state.encoding || state.decoder))) { + // developer error + return done(createError(500, 'stream encoding should not be set', { + type: 'stream.encoding.set' + })) + } + + var received = 0 + var decoder + + try { + decoder = getDecoder(encoding) + } catch (err) { + return done(err) + } + + var buffer = decoder + ? '' + : [] + + // attach listeners + stream.on('aborted', onAborted) + stream.on('close', cleanup) + stream.on('data', onData) + stream.on('end', onEnd) + stream.on('error', onEnd) + + // mark sync section complete + sync = false + + function done () { + var args = new Array(arguments.length) + + // copy arguments + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + // mark complete + complete = true + + if (sync) { + process.nextTick(invokeCallback) + } else { + invokeCallback() + } + + function invokeCallback () { + cleanup() + + if (args[0]) { + // halt the stream on error + halt(stream) + } + + callback.apply(null, args) + } + } + + function onAborted () { + if (complete) return + + done(createError(400, 'request aborted', { + code: 'ECONNABORTED', + expected: length, + length: length, + received: received, + type: 'request.aborted' + })) + } + + function onData (chunk) { + if (complete) return + + received += chunk.length + + if (limit !== null && received > limit) { + done(createError(413, 'request entity too large', { + limit: limit, + received: received, + type: 'entity.too.large' + })) + } else if (decoder) { + buffer += decoder.write(chunk) + } else { + buffer.push(chunk) + } + } + + function onEnd (err) { + if (complete) return + if (err) return done(err) + + if (length !== null && received !== length) { + done(createError(400, 'request size did not match content length', { + expected: length, + length: length, + received: received, + type: 'request.size.invalid' + })) + } else { + var string = decoder + ? buffer + (decoder.end() || '') + : Buffer.concat(buffer) + done(null, string) + } + } + + function cleanup () { + buffer = null + + stream.removeListener('aborted', onAborted) + stream.removeListener('data', onData) + stream.removeListener('end', onEnd) + stream.removeListener('error', onEnd) + stream.removeListener('close', cleanup) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..082ebf232a633872ac9e31e6264ec862628da90b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/raw-body/package.json" @@ -0,0 +1,90 @@ +{ + "_from": "raw-body@2.4.3", + "_id": "raw-body@2.4.3", + "_inBundle": false, + "_integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "_location": "/raw-body", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "raw-body@2.4.3", + "name": "raw-body", + "escapedName": "raw-body", + "rawSpec": "2.4.3", + "saveSpec": null, + "fetchSpec": "2.4.3" + }, + "_requiredBy": [ + "/body-parser" + ], + "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "_shasum": "8f80305d11c2a0a545c2d9d89d7a0286fcead43c", + "_spec": "raw-body@2.4.3", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\body-parser", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/raw-body/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Raynos", + "email": "raynos2@gmail.com" + } + ], + "dependencies": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "deprecated": false, + "description": "Get and validate the raw body of a readable stream.", + "devDependencies": { + "bluebird": "3.7.2", + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.0", + "nyc": "15.1.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.d.ts", + "index.js" + ], + "homepage": "https://github.com/stream-utils/raw-body#readme", + "license": "MIT", + "name": "raw-body", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/raw-body.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "2.4.3" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/.travis.yml" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/.travis.yml" new file mode 100644 index 0000000000000000000000000000000000000000..f62cdac0686da613ecdbf214fb2b43a828cb6ce9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/.travis.yml" @@ -0,0 +1,34 @@ +sudo: false +language: node_js +before_install: + - (test $NPM_LEGACY && npm install -g npm@2 && npm install -g npm@3) || true +notifications: + email: false +matrix: + fast_finish: true + include: + - node_js: '0.8' + env: NPM_LEGACY=true + - node_js: '0.10' + env: NPM_LEGACY=true + - node_js: '0.11' + env: NPM_LEGACY=true + - node_js: '0.12' + env: NPM_LEGACY=true + - node_js: 1 + env: NPM_LEGACY=true + - node_js: 2 + env: NPM_LEGACY=true + - node_js: 3 + env: NPM_LEGACY=true + - node_js: 4 + - node_js: 5 + - node_js: 6 + - node_js: 7 + - node_js: 8 + - node_js: 9 +script: "npm run test" +env: + global: + - secure: rE2Vvo7vnjabYNULNyLFxOyt98BoJexDqsiOnfiD6kLYYsiQGfr/sbZkPMOFm9qfQG7pjqx+zZWZjGSswhTt+626C0t/njXqug7Yps4c3dFblzGfreQHp7wNX5TFsvrxd6dAowVasMp61sJcRnB2w8cUzoe3RAYUDHyiHktwqMc= + - secure: g9YINaKAdMatsJ28G9jCGbSaguXCyxSTy+pBO6Ch0Cf57ZLOTka3HqDj8p3nV28LUIHZ3ut5WO43CeYKwt4AUtLpBS3a0dndHdY6D83uY6b2qh5hXlrcbeQTq2cvw2y95F7hm4D1kwrgZ7ViqaKggRcEupAL69YbJnxeUDKWEdI= diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/CONTRIBUTING.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/CONTRIBUTING.md" new file mode 100644 index 0000000000000000000000000000000000000000..f478d58dca85b2c396e2da8a2251be0071c4e9e0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/CONTRIBUTING.md" @@ -0,0 +1,38 @@ +# Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +* (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +* (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +* (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +* (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +## Moderation Policy + +The [Node.js Moderation Policy] applies to this WG. + +## Code of Conduct + +The [Node.js Code of Conduct][] applies to this WG. + +[Node.js Code of Conduct]: +https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md +[Node.js Moderation Policy]: +https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/GOVERNANCE.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/GOVERNANCE.md" new file mode 100644 index 0000000000000000000000000000000000000000..16ffb93f24bece9519cc4a220a0c1d3c91481453 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/GOVERNANCE.md" @@ -0,0 +1,136 @@ +### Streams Working Group + +The Node.js Streams is jointly governed by a Working Group +(WG) +that is responsible for high-level guidance of the project. + +The WG has final authority over this project including: + +* Technical direction +* Project governance and process (including this policy) +* Contribution policy +* GitHub repository hosting +* Conduct guidelines +* Maintaining the list of additional Collaborators + +For the current list of WG members, see the project +[README.md](./README.md#current-project-team-members). + +### Collaborators + +The readable-stream GitHub repository is +maintained by the WG and additional Collaborators who are added by the +WG on an ongoing basis. + +Individuals making significant and valuable contributions are made +Collaborators and given commit-access to the project. These +individuals are identified by the WG and their addition as +Collaborators is discussed during the WG meeting. + +_Note:_ If you make a significant contribution and are not considered +for commit-access log an issue or contact a WG member directly and it +will be brought up in the next WG meeting. + +Modifications of the contents of the readable-stream repository are +made on +a collaborative basis. Anybody with a GitHub account may propose a +modification via pull request and it will be considered by the project +Collaborators. All pull requests must be reviewed and accepted by a +Collaborator with sufficient expertise who is able to take full +responsibility for the change. In the case of pull requests proposed +by an existing Collaborator, an additional Collaborator is required +for sign-off. Consensus should be sought if additional Collaborators +participate and there is disagreement around a particular +modification. See _Consensus Seeking Process_ below for further detail +on the consensus model used for governance. + +Collaborators may opt to elevate significant or controversial +modifications, or modifications that have not found consensus to the +WG for discussion by assigning the ***WG-agenda*** tag to a pull +request or issue. The WG should serve as the final arbiter where +required. + +For the current list of Collaborators, see the project +[README.md](./README.md#members). + +### WG Membership + +WG seats are not time-limited. There is no fixed size of the WG. +However, the expected target is between 6 and 12, to ensure adequate +coverage of important areas of expertise, balanced with the ability to +make decisions efficiently. + +There is no specific set of requirements or qualifications for WG +membership beyond these rules. + +The WG may add additional members to the WG by unanimous consensus. + +A WG member may be removed from the WG by voluntary resignation, or by +unanimous consensus of all other WG members. + +Changes to WG membership should be posted in the agenda, and may be +suggested as any other agenda item (see "WG Meetings" below). + +If an addition or removal is proposed during a meeting, and the full +WG is not in attendance to participate, then the addition or removal +is added to the agenda for the subsequent meeting. This is to ensure +that all members are given the opportunity to participate in all +membership decisions. If a WG member is unable to attend a meeting +where a planned membership decision is being made, then their consent +is assumed. + +No more than 1/3 of the WG members may be affiliated with the same +employer. If removal or resignation of a WG member, or a change of +employment by a WG member, creates a situation where more than 1/3 of +the WG membership shares an employer, then the situation must be +immediately remedied by the resignation or removal of one or more WG +members affiliated with the over-represented employer(s). + +### WG Meetings + +The WG meets occasionally on a Google Hangout On Air. A designated moderator +approved by the WG runs the meeting. Each meeting should be +published to YouTube. + +Items are added to the WG agenda that are considered contentious or +are modifications of governance, contribution policy, WG membership, +or release process. + +The intention of the agenda is not to approve or review all patches; +that should happen continuously on GitHub and be handled by the larger +group of Collaborators. + +Any community member or contributor can ask that something be added to +the next meeting's agenda by logging a GitHub Issue. Any Collaborator, +WG member or the moderator can add the item to the agenda by adding +the ***WG-agenda*** tag to the issue. + +Prior to each WG meeting the moderator will share the Agenda with +members of the WG. WG members can add any items they like to the +agenda at the beginning of each meeting. The moderator and the WG +cannot veto or remove items. + +The WG may invite persons or representatives from certain projects to +participate in a non-voting capacity. + +The moderator is responsible for summarizing the discussion of each +agenda item and sends it as a pull request after the meeting. + +### Consensus Seeking Process + +The WG follows a +[Consensus +Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +decision-making model. + +When an agenda item has appeared to reach a consensus the moderator +will ask "Does anyone object?" as a final call for dissent from the +consensus. + +If an agenda item cannot reach a consensus a WG member can call for +either a closing vote or a vote to table the issue to the next +meeting. The call for a vote must be seconded by a majority of the WG +or else the discussion will continue. Simple majority wins. + +Note that changes to WG membership require a majority consensus. See +"WG Membership" above. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..2873b3b2e595072e66330369d83e8af46655970c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/LICENSE" @@ -0,0 +1,47 @@ +Node.js is licensed for use as follows: + +""" +Copyright Node.js contributors. All rights reserved. + +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node contributors. All rights reserved. +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. +""" diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..23fe3f3e3009a2c63c3791738299504d40ebbca9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/README.md" @@ -0,0 +1,58 @@ +# readable-stream + +***Node-core v8.11.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) + + +[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) +[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/) + + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/readable-stream.svg)](https://saucelabs.com/u/readable-stream) + +```bash +npm install --save readable-stream +``` + +***Node-core streams for userland*** + +This package is a mirror of the Streams2 and Streams3 implementations in +Node-core. + +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.11.1/docs/api/stream.html). + +If you want to guarantee a stable streams base, regardless of what version of +Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). + +As of version 2.0.0 **readable-stream** uses semantic versioning. + +# Streams Working Group + +`readable-stream` is maintained by the Streams Working Group, which +oversees the development and maintenance of the Streams API within +Node.js. The responsibilities of the Streams Working Group include: + +* Addressing stream issues on the Node.js issue tracker. +* Authoring and editing stream documentation within the Node.js project. +* Reviewing changes to stream subclasses within the Node.js project. +* Redirecting changes to streams from the Node.js project to this + project. +* Assisting in the implementation of stream providers within Node.js. +* Recommending versions of `readable-stream` to be included in Node.js. +* Messaging about the future of streams to give the community advance + notice of changes. + + +## Team Members + +* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com> + - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B +* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com> + - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242 +* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org> + - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D +* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com> +* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com> +* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me> +* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) <matteo.collina@gmail.com> + - Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E +* **Irina Shestak** ([@lrlna](https://github.com/lrlna)) <shestak.irina@gmail.com> diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md" new file mode 100644 index 0000000000000000000000000000000000000000..83275f192e4077d32942525aaf510fa449a7c417 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md" @@ -0,0 +1,60 @@ +# streams WG Meeting 2015-01-30 + +## Links + +* **Google Hangouts Video**: http://www.youtube.com/watch?v=I9nDOSGfwZg +* **GitHub Issue**: https://github.com/iojs/readable-stream/issues/106 +* **Original Minutes Google Doc**: https://docs.google.com/document/d/17aTgLnjMXIrfjgNaTUnHQO7m3xgzHR2VXBTmi03Qii4/ + +## Agenda + +Extracted from https://github.com/iojs/readable-stream/labels/wg-agenda prior to meeting. + +* adopt a charter [#105](https://github.com/iojs/readable-stream/issues/105) +* release and versioning strategy [#101](https://github.com/iojs/readable-stream/issues/101) +* simpler stream creation [#102](https://github.com/iojs/readable-stream/issues/102) +* proposal: deprecate implicit flowing of streams [#99](https://github.com/iojs/readable-stream/issues/99) + +## Minutes + +### adopt a charter + +* group: +1's all around + +### What versioning scheme should be adopted? +* group: +1鈥檚 3.0.0 +* domenic+group: pulling in patches from other sources where appropriate +* mikeal: version independently, suggesting versions for io.js +* mikeal+domenic: work with TC to notify in advance of changes +simpler stream creation + +### streamline creation of streams +* sam: streamline creation of streams +* domenic: nice simple solution posted + but, we lose the opportunity to change the model + may not be backwards incompatible (double check keys) + + **action item:** domenic will check + +### remove implicit flowing of streams on(鈥榙ata鈥) +* add isFlowing / isPaused +* mikeal: worrying that we鈥檙e documenting polyfill methods 鈥 confuses users +* domenic: more reflective API is probably good, with warning labels for users +* new section for mad scientists (reflective stream access) +* calvin: name the 鈥渢hird state鈥 +* mikeal: maybe borrow the name from whatwg? +* domenic: we鈥檙e missing the 鈥渢hird state鈥 +* consensus: kind of difficult to name the third state +* mikeal: figure out differences in states / compat +* mathias: always flow on data 鈥 eliminates third state + * explore what it breaks + +**action items:** +* ask isaac for ability to list packages by what public io.js APIs they use (esp. Stream) +* ask rod/build for infrastructure +* **chris**: explore the 鈥渇low on data鈥 approach +* add isPaused/isFlowing +* add new docs section +* move isPaused to that section + + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/duplex-browser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/duplex-browser.js" new file mode 100644 index 0000000000000000000000000000000000000000..f8b2db83dbe733d7720264a9840202e29ebeffbd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/duplex-browser.js" @@ -0,0 +1 @@ +module.exports = require('./lib/_stream_duplex.js'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/duplex.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/duplex.js" new file mode 100644 index 0000000000000000000000000000000000000000..46924cbfdf53871b574d3f6f5b4bc6064b824aaa --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/duplex.js" @@ -0,0 +1 @@ +module.exports = require('./readable').Duplex diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_duplex.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_duplex.js" new file mode 100644 index 0000000000000000000000000000000000000000..57003c32d256c0a1fe20dadd279abef2d463074f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_duplex.js" @@ -0,0 +1,131 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + keys.push(key); + }return keys; +}; +/**/ + +module.exports = Duplex; + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +util.inherits(Duplex, Readable); + +{ + // avoid scope creep, the keys array can then be collected + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} + +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) this.readable = false; + + if (options && options.writable === false) this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + + this.once('end', onend); +} + +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._writableState.highWaterMark; + } +}); + +// the no-half-open enforcer +function onend() { + // if we allow half-open state, or if the writable side ended, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + pna.nextTick(onEndNT, this); +} + +function onEndNT(self) { + self.end(); +} + +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + pna.nextTick(cb, err); +}; \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_passthrough.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_passthrough.js" new file mode 100644 index 0000000000000000000000000000000000000000..612edb4d8b443fabc4ddac619da420bad62fc5b0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_passthrough.js" @@ -0,0 +1,47 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +'use strict'; + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); +} + +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_readable.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_readable.js" new file mode 100644 index 0000000000000000000000000000000000000000..0f807646b0f67d8ab98c46ca516478c2684b70b1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_readable.js" @@ -0,0 +1,1019 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +module.exports = Readable; + +/**/ +var isArray = require('isarray'); +/**/ + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = require('events').EventEmitter; + +var EElistenerCount = function (emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ + +var Buffer = require('safe-buffer').Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +/**/ +var debugUtil = require('util'); +var debug = void 0; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function () {}; +} +/**/ + +var BufferList = require('./internal/streams/BufferList'); +var destroyImpl = require('./internal/streams/destroy'); +var StringDecoder; + +util.inherits(Readable, Stream); + +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} + +function ReadableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + var hwm = options.highWaterMark; + var readableHwm = options.readableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +function Readable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + if (!(this instanceof Readable)) return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + if (options) { + if (typeof options.read === 'function') this._read = options.read; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + + Stream.call(this); +} + +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); + +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; + +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + } + } + + return needMoreData(state); +} + +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); +} + +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; +}; + +// Don't raise the hwm > 8MB +var MAX_HWM = 0x800000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } + + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + + if (ret !== null) this.emit('data', ret); + + return ret; +}; + +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); + } +} + +function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + pna.nextTick(maybeReadMore_, stream, state); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); +}; + +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} + +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, unpipeInfo); + }return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + + dest.emit('unpipe', this, unpipeInfo); + + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + pna.nextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); + } + return this; +}; + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + pna.nextTick(resume_, stream, state); + } +} + +function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } + + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} + +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + return this; +}; + +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + + var state = this._readableState; + var paused = false; + + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + + _this.push(null); + }); + + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + + return this; +}; + +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._readableState.highWaterMark; + } +}); + +// exposed for testing purposes only. +Readable._fromList = fromList; + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } + + return ret; +} + +// Extracts only enough buffered data to satisfy the amount requested. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; +} + +// Copies a specified amount of characters from the list of buffered data +// chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +// Copies a specified amount of bytes from the list of buffered data chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); + + if (!state.endEmitted) { + state.ended = true; + pna.nextTick(endReadableNT, state, stream); + } +} + +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } +} + +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_transform.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_transform.js" new file mode 100644 index 0000000000000000000000000000000000000000..fcfc105af8e9a124bea4b82011f6cb7d6d2a7158 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_transform.js" @@ -0,0 +1,214 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + +'use strict'; + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +util.inherits(Transform, Duplex); + +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) { + return this.emit('error', new Error('write callback called multiple times')); + } + + ts.writechunk = null; + ts.writecb = null; + + if (data != null) // single equals check for both `null` and `undefined` + this.push(data); + + cb(er); + + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} + +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + Duplex.call(this, options); + + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} + +function prefinish() { + var _this = this; + + if (typeof this._flush === 'function') { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +Transform.prototype._destroy = function (err, cb) { + var _this2 = this; + + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this2.emit('close'); + }); +}; + +function done(stream, er, data) { + if (er) return stream.emit('error', er); + + if (data != null) // single equals check for both `null` and `undefined` + stream.push(data); + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); + + if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); + + return stream.push(null); +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_writable.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_writable.js" new file mode 100644 index 0000000000000000000000000000000000000000..b0b02200cd72336c17fe871bb7f3ec3872dd802d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/_stream_writable.js" @@ -0,0 +1,687 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; +/**/ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +/**/ +var internalUtil = { + deprecate: require('util-deprecate') +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ + +var Buffer = require('safe-buffer').Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +var destroyImpl = require('./internal/streams/destroy'); + +util.inherits(Writable, Stream); + +function nop() {} + +function WritableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + var hwm = options.highWaterMark; + var writableHwm = options.writableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} + +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; + +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function () { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function (object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function (object) { + return object instanceof this; + }; +} + +function Writable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + if (options) { + if (typeof options.write === 'function') this._write = options.write; + + if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; + } + + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); +}; + +function writeAfterEnd(stream, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + pna.nextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; + + if (chunk === null) { + er = new TypeError('May not write null values to stream'); + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + if (er) { + stream.emit('error', er); + pna.nextTick(cb, er); + valid = false; + } + return valid; +} + +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + + if (typeof cb !== 'function') cb = nop; + + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + + return ret; +}; + +Writable.prototype.cork = function () { + var state = this._writableState; + + state.corked++; +}; + +Writable.prototype.uncork = function () { + var state = this._writableState; + + if (state.corked) { + state.corked--; + + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; + +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} + +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._writableState.highWaterMark; + } +}); + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + + state.length += len; + + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + + return ret; +} + +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + pna.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + pna.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} + +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + + onwriteStateUpdate(state); + + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state); + + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + + if (sync) { + /**/ + asyncWrite(afterWrite, stream, state, finished, cb); + /**/ + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + + if (entry === null) state.lastBufferedRequest = null; + } + + state.bufferedRequest = entry; + state.bufferProcessing = false; +} + +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new Error('_write() is not implemented')); +}; + +Writable.prototype._writev = null; + +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) endWritable(this, state, cb); +}; + +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + pna.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} + +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + } + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} + +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } +} + +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/BufferList.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/BufferList.js" new file mode 100644 index 0000000000000000000000000000000000000000..aefc68bd90b9c2bd7da278323bcd42a7aad8b853 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/BufferList.js" @@ -0,0 +1,79 @@ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Buffer = require('safe-buffer').Buffer; +var util = require('util'); + +function copyBuffer(src, target, offset) { + src.copy(target, offset); +} + +module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); + + this.head = null; + this.tail = null; + this.length = 0; + } + + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; + + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; + + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; + + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; + + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + + return BufferList; +}(); + +if (util && util.inspect && util.inspect.custom) { + module.exports.prototype[util.inspect.custom] = function () { + var obj = util.inspect({ length: this.length }); + return this.constructor.name + ' ' + obj; + }; +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/destroy.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/destroy.js" new file mode 100644 index 0000000000000000000000000000000000000000..5a0a0d88cec6f30f054f14ba6253d4359d86c434 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/destroy.js" @@ -0,0 +1,74 @@ +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + pna.nextTick(emitErrorNT, this, err); + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + + this._destroy(err || null, function (err) { + if (!cb && err) { + pna.nextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); + + return this; +} + +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} + +function emitErrorNT(self, err) { + self.emit('error', err); +} + +module.exports = { + destroy: destroy, + undestroy: undestroy +}; \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/stream-browser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/stream-browser.js" new file mode 100644 index 0000000000000000000000000000000000000000..9332a3fdae7060505c0a081614e697fa6cb56dc0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/stream-browser.js" @@ -0,0 +1 @@ +module.exports = require('events').EventEmitter; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/stream.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/stream.js" new file mode 100644 index 0000000000000000000000000000000000000000..ce2ad5b6ee57f4778a1f4838f7970093c7941c1c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/lib/internal/streams/stream.js" @@ -0,0 +1 @@ +module.exports = require('stream'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..0c068ceecbd48fc4e8279e6451793fec2bf12178 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/LICENSE" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..e9a81afd0406f030ba21169f0c7a1dba70b3a93b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/README.md" @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a t茅st'); +console.log(buf1.toString()); + // prints: this is a t茅st +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a t茅st +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/index.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/index.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..e9fed809a5ab515658d6e71f7ba5f631be769be4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/index.d.ts" @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..22438dabbbceef6954a1a7a68038f8c440a90c79 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/index.js" @@ -0,0 +1,62 @@ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..0e2c176e1d6c9adb420005d7dab80cfb41961402 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/node_modules/safe-buffer/package.json" @@ -0,0 +1,62 @@ +{ + "_from": "safe-buffer@~5.1.1", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "_location": "/readable-stream/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "safe-buffer@~5.1.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "~5.1.1", + "saveSpec": null, + "fetchSpec": "~5.1.1" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", + "_spec": "safe-buffer@~5.1.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\readable-stream", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..4054fcdd72d79b1d82d2302a9f5fc1fe5f825c2b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/package.json" @@ -0,0 +1,81 @@ +{ + "_from": "readable-stream@2.3.7", + "_id": "readable-stream@2.3.7", + "_inBundle": false, + "_integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "_location": "/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readable-stream@2.3.7", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "2.3.7", + "saveSpec": null, + "fetchSpec": "2.3.7" + }, + "_requiredBy": [ + "/mysql" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "_shasum": "1eca1cf711aef814c04f62252a36a62f6cb23b57", + "_spec": "readable-stream@2.3.7", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\mysql", + "browser": { + "util": false, + "./readable.js": "./readable-browser.js", + "./writable.js": "./writable-browser.js", + "./duplex.js": "./duplex-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" + }, + "bundleDependencies": false, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "deprecated": false, + "description": "Streams3, a user-land copy of the stream library from Node.js", + "devDependencies": { + "assert": "^1.4.0", + "babel-polyfill": "^6.9.1", + "buffer": "^4.9.0", + "lolex": "^2.3.2", + "nyc": "^6.4.0", + "tap": "^0.7.0", + "tape": "^4.8.0" + }, + "homepage": "https://github.com/nodejs/readable-stream#readme", + "keywords": [ + "readable", + "stream", + "pipe" + ], + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", + "nyc": { + "include": [ + "lib/**.js" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js" + }, + "version": "2.3.7" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/passthrough.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/passthrough.js" new file mode 100644 index 0000000000000000000000000000000000000000..ffd791d7ff275a58d537ea89153175a23edee5fb --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/passthrough.js" @@ -0,0 +1 @@ +module.exports = require('./readable').PassThrough diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/readable-browser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/readable-browser.js" new file mode 100644 index 0000000000000000000000000000000000000000..e50372592ee6c63a7fc43cb912dd9639e3fa7eb1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/readable-browser.js" @@ -0,0 +1,7 @@ +exports = module.exports = require('./lib/_stream_readable.js'); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = require('./lib/_stream_writable.js'); +exports.Duplex = require('./lib/_stream_duplex.js'); +exports.Transform = require('./lib/_stream_transform.js'); +exports.PassThrough = require('./lib/_stream_passthrough.js'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/readable.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/readable.js" new file mode 100644 index 0000000000000000000000000000000000000000..ec89ec53306497adae0014c4a8aba6d51d1aff6c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/readable.js" @@ -0,0 +1,19 @@ +var Stream = require('stream'); +if (process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream; + exports = module.exports = Stream.Readable; + exports.Readable = Stream.Readable; + exports.Writable = Stream.Writable; + exports.Duplex = Stream.Duplex; + exports.Transform = Stream.Transform; + exports.PassThrough = Stream.PassThrough; + exports.Stream = Stream; +} else { + exports = module.exports = require('./lib/_stream_readable.js'); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = require('./lib/_stream_writable.js'); + exports.Duplex = require('./lib/_stream_duplex.js'); + exports.Transform = require('./lib/_stream_transform.js'); + exports.PassThrough = require('./lib/_stream_passthrough.js'); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/transform.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/transform.js" new file mode 100644 index 0000000000000000000000000000000000000000..b1baba26da03dc8bbc5d9da33cd55f3f88c99115 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/transform.js" @@ -0,0 +1 @@ +module.exports = require('./readable').Transform diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/writable-browser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/writable-browser.js" new file mode 100644 index 0000000000000000000000000000000000000000..ebdde6a85dcb19bfdbfc2ec2e34b13a54c0e5bf0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/writable-browser.js" @@ -0,0 +1 @@ +module.exports = require('./lib/_stream_writable.js'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/writable.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/writable.js" new file mode 100644 index 0000000000000000000000000000000000000000..3211a6f80d1abc9db7099cd1e8fa200ad2ccfdbe --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/readable-stream/writable.js" @@ -0,0 +1,8 @@ +var Stream = require("stream") +var Writable = require("./lib/_stream_writable.js") + +if (process.env.READABLE_STREAM === 'disable') { + module.exports = Stream && Stream.Writable || Writable +} else { + module.exports = Writable +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..0c068ceecbd48fc4e8279e6451793fec2bf12178 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/LICENSE" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..e9a81afd0406f030ba21169f0c7a1dba70b3a93b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/README.md" @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a t茅st'); +console.log(buf1.toString()); + // prints: this is a t茅st +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a t茅st +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/index.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/index.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..e9fed809a5ab515658d6e71f7ba5f631be769be4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/index.d.ts" @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..f8d3ec98852f449b44b7d89fc82bae737c69f3fc --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/index.js" @@ -0,0 +1,65 @@ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.prototype = Object.create(Buffer.prototype) + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..08499cb2f608a2d78bdbfce437b9396516636077 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safe-buffer/package.json" @@ -0,0 +1,77 @@ +{ + "_from": "safe-buffer@5.2.1", + "_id": "safe-buffer@5.2.1", + "_inBundle": false, + "_integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.2.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.2.1", + "saveSpec": null, + "fetchSpec": "5.2.1" + }, + "_requiredBy": [ + "/content-disposition", + "/express" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "_shasum": "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6", + "_spec": "safe-buffer@5.2.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^5.0.0" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.2.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..4fe9e6f10036e619c2407f08ead54802bbfbcbd1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/LICENSE" @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Nikita Skovoroda + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/Porting-Buffer.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/Porting-Buffer.md" new file mode 100644 index 0000000000000000000000000000000000000000..68d86bab032fabc624b2e312ec3a87666a12b07c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/Porting-Buffer.md" @@ -0,0 +1,268 @@ +# Porting to the Buffer.from/Buffer.alloc API + + +## Overview + +- [Variant 1: Drop support for Node.js 鈮 4.4.x and 5.0.0 鈥 5.9.x.](#variant-1) (*recommended*) +- [Variant 2: Use a polyfill](#variant-2) +- [Variant 3: manual detection, with safeguards](#variant-3) + +### Finding problematic bits of code using grep + +Just run `grep -nrE '[^a-zA-Z](Slow)?Buffer\s*\(' --exclude-dir node_modules`. + +It will find all the potentially unsafe places in your own code (with some considerably unlikely +exceptions). + +### Finding problematic bits of code using Node.js 8 + +If you鈥檙e using Node.js 鈮 8.0.0 (which is recommended), Node.js exposes multiple options that help with finding the relevant pieces of code: + +- `--trace-warnings` will make Node.js show a stack trace for this warning and other warnings that are printed by Node.js. +- `--trace-deprecation` does the same thing, but only for deprecation warnings. +- `--pending-deprecation` will show more types of deprecation warnings. In particular, it will show the `Buffer()` deprecation warning, even on Node.js 8. + +You can set these flags using an environment variable: + +```console +$ export NODE_OPTIONS='--trace-warnings --pending-deprecation' +$ cat example.js +'use strict'; +const foo = new Buffer('foo'); +$ node example.js +(node:7147) [DEP0005] DeprecationWarning: The Buffer() and new Buffer() constructors are not recommended for use due to security and usability concerns. Please use the new Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() construction methods instead. + at showFlaggedDeprecation (buffer.js:127:13) + at new Buffer (buffer.js:148:3) + at Object. (/path/to/example.js:2:13) + [... more stack trace lines ...] +``` + +### Finding problematic bits of code using linters + +Eslint rules [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +also find calls to deprecated `Buffer()` API. Those rules are included in some pre-sets. + +There is a drawback, though, that it doesn't always +[work correctly](https://github.com/chalker/safer-buffer#why-not-safe-buffer) when `Buffer` is +overriden e.g. with a polyfill, so recommended is a combination of this and some other method +described above. + + +## Variant 1: Drop support for Node.js 鈮 4.4.x and 5.0.0 鈥 5.9.x. + +This is the recommended solution nowadays that would imply only minimal overhead. + +The Node.js 5.x release line has been unsupported since July 2016, and the Node.js 4.x release line reaches its End of Life in April 2018 (鈫 [Schedule](https://github.com/nodejs/Release#release-schedule)). This means that these versions of Node.js will *not* receive any updates, even in case of security issues, so using these release lines should be avoided, if at all possible. + +What you would do in this case is to convert all `new Buffer()` or `Buffer()` calls to use `Buffer.alloc()` or `Buffer.from()`, in the following way: + +- For `new Buffer(number)`, replace it with `Buffer.alloc(number)`. +- For `new Buffer(string)` (or `new Buffer(string, encoding)`), replace it with `Buffer.from(string)` (or `Buffer.from(string, encoding)`). +- For all other combinations of arguments (these are much rarer), also replace `new Buffer(...arguments)` with `Buffer.from(...arguments)`. + +Note that `Buffer.alloc()` is also _faster_ on the current Node.js versions than +`new Buffer(size).fill(0)`, which is what you would otherwise need to ensure zero-filling. + +Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +is recommended to avoid accidential unsafe Buffer API usage. + +There is also a [JSCodeshift codemod](https://github.com/joyeecheung/node-dep-codemod#dep005) +for automatically migrating Buffer constructors to `Buffer.alloc()` or `Buffer.from()`. +Note that it currently only works with cases where the arguments are literals or where the +constructor is invoked with two arguments. + +_If you currently support those older Node.js versions and dropping them would be a semver-major change +for you, or if you support older branches of your packages, consider using [Variant 2](#variant-2) +or [Variant 3](#variant-3) on older branches, so people using those older branches will also receive +the fix. That way, you will eradicate potential issues caused by unguarded Buffer API usage and +your users will not observe a runtime deprecation warning when running your code on Node.js 10._ + + +## Variant 2: Use a polyfill + +Utilize [safer-buffer](https://www.npmjs.com/package/safer-buffer) as a polyfill to support older +Node.js versions. + +You would take exacly the same steps as in [Variant 1](#variant-1), but with a polyfill +`const Buffer = require('safer-buffer').Buffer` in all files where you use the new `Buffer` api. + +Make sure that you do not use old `new Buffer` API 鈥 in any files where the line above is added, +using old `new Buffer()` API will _throw_. It will be easy to notice that in CI, though. + +Alternatively, you could use [buffer-from](https://www.npmjs.com/package/buffer-from) and/or +[buffer-alloc](https://www.npmjs.com/package/buffer-alloc) [ponyfills](https://ponyfill.com/) 鈥 +those are great, the only downsides being 4 deps in the tree and slightly more code changes to +migrate off them (as you would be using e.g. `Buffer.from` under a different name). If you need only +`Buffer.from` polyfilled 鈥 `buffer-from` alone which comes with no extra dependencies. + +_Alternatively, you could use [safe-buffer](https://www.npmjs.com/package/safe-buffer) 鈥 it also +provides a polyfill, but takes a different approach which has +[it's drawbacks](https://github.com/chalker/safer-buffer#why-not-safe-buffer). It will allow you +to also use the older `new Buffer()` API in your code, though 鈥 but that's arguably a benefit, as +it is problematic, can cause issues in your code, and will start emitting runtime deprecation +warnings starting with Node.js 10._ + +Note that in either case, it is important that you also remove all calls to the old Buffer +API manually 鈥 just throwing in `safe-buffer` doesn't fix the problem by itself, it just provides +a polyfill for the new API. I have seen people doing that mistake. + +Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +is recommended. + +_Don't forget to drop the polyfill usage once you drop support for Node.js < 4.5.0._ + + +## Variant 3 鈥 manual detection, with safeguards + +This is useful if you create Buffer instances in only a few places (e.g. one), or you have your own +wrapper around them. + +### Buffer(0) + +This special case for creating empty buffers can be safely replaced with `Buffer.concat([])`, which +returns the same result all the way down to Node.js 0.8.x. + +### Buffer(notNumber) + +Before: + +```js +var buf = new Buffer(notNumber, encoding); +``` + +After: + +```js +var buf; +if (Buffer.from && Buffer.from !== Uint8Array.from) { + buf = Buffer.from(notNumber, encoding); +} else { + if (typeof notNumber === 'number') + throw new Error('The "size" argument must be of type number.'); + buf = new Buffer(notNumber, encoding); +} +``` + +`encoding` is optional. + +Note that the `typeof notNumber` before `new Buffer` is required (for cases when `notNumber` argument is not +hard-coded) and _is not caused by the deprecation of Buffer constructor_ 鈥 it's exactly _why_ the +Buffer constructor is deprecated. Ecosystem packages lacking this type-check caused numereous +security issues 鈥 situations when unsanitized user input could end up in the `Buffer(arg)` create +problems ranging from DoS to leaking sensitive information to the attacker from the process memory. + +When `notNumber` argument is hardcoded (e.g. literal `"abc"` or `[0,1,2]`), the `typeof` check can +be omitted. + +Also note that using TypeScript does not fix this problem for you 鈥 when libs written in +`TypeScript` are used from JS, or when user input ends up there 鈥 it behaves exactly as pure JS, as +all type checks are translation-time only and are not present in the actual JS code which TS +compiles to. + +### Buffer(number) + +For Node.js 0.10.x (and below) support: + +```js +var buf; +if (Buffer.alloc) { + buf = Buffer.alloc(number); +} else { + buf = new Buffer(number); + buf.fill(0); +} +``` + +Otherwise (Node.js 鈮 0.12.x): + +```js +const buf = Buffer.alloc ? Buffer.alloc(number) : new Buffer(number).fill(0); +``` + +## Regarding Buffer.allocUnsafe + +Be extra cautious when using `Buffer.allocUnsafe`: + * Don't use it if you don't have a good reason to + * e.g. you probably won't ever see a performance difference for small buffers, in fact, those + might be even faster with `Buffer.alloc()`, + * if your code is not in the hot code path 鈥 you also probably won't notice a difference, + * keep in mind that zero-filling minimizes the potential risks. + * If you use it, make sure that you never return the buffer in a partially-filled state, + * if you are writing to it sequentially 鈥 always truncate it to the actuall written length + +Errors in handling buffers allocated with `Buffer.allocUnsafe` could result in various issues, +ranged from undefined behaviour of your code to sensitive data (user input, passwords, certs) +leaking to the remote attacker. + +_Note that the same applies to `new Buffer` usage without zero-filling, depending on the Node.js +version (and lacking type checks also adds DoS to the list of potential problems)._ + + +## FAQ + + +### What is wrong with the `Buffer` constructor? + +The `Buffer` constructor could be used to create a buffer in many different ways: + +- `new Buffer(42)` creates a `Buffer` of 42 bytes. Before Node.js 8, this buffer contained + *arbitrary memory* for performance reasons, which could include anything ranging from + program source code to passwords and encryption keys. +- `new Buffer('abc')` creates a `Buffer` that contains the UTF-8-encoded version of + the string `'abc'`. A second argument could specify another encoding: For example, + `new Buffer(string, 'base64')` could be used to convert a Base64 string into the original + sequence of bytes that it represents. +- There are several other combinations of arguments. + +This meant that, in code like `var buffer = new Buffer(foo);`, *it is not possible to tell +what exactly the contents of the generated buffer are* without knowing the type of `foo`. + +Sometimes, the value of `foo` comes from an external source. For example, this function +could be exposed as a service on a web server, converting a UTF-8 string into its Base64 form: + +``` +function stringToBase64(req, res) { + // The request body should have the format of `{ string: 'foobar' }` + const rawBytes = new Buffer(req.body.string) + const encoded = rawBytes.toString('base64') + res.end({ encoded: encoded }) +} +``` + +Note that this code does *not* validate the type of `req.body.string`: + +- `req.body.string` is expected to be a string. If this is the case, all goes well. +- `req.body.string` is controlled by the client that sends the request. +- If `req.body.string` is the *number* `50`, the `rawBytes` would be 50 bytes: + - Before Node.js 8, the content would be uninitialized + - After Node.js 8, the content would be `50` bytes with the value `0` + +Because of the missing type check, an attacker could intentionally send a number +as part of the request. Using this, they can either: + +- Read uninitialized memory. This **will** leak passwords, encryption keys and other + kinds of sensitive information. (Information leak) +- Force the program to allocate a large amount of memory. For example, when specifying + `500000000` as the input value, each request will allocate 500MB of memory. + This can be used to either exhaust the memory available of a program completely + and make it crash, or slow it down significantly. (Denial of Service) + +Both of these scenarios are considered serious security issues in a real-world +web server context. + +when using `Buffer.from(req.body.string)` instead, passing a number will always +throw an exception instead, giving a controlled behaviour that can always be +handled by the program. + + +### The `Buffer()` constructor has been deprecated for a while. Is this really an issue? + +Surveys of code in the `npm` ecosystem have shown that the `Buffer()` constructor is still +widely used. This includes new code, and overall usage of such code has actually been +*increasing*. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/Readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/Readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..14b0822909320ff4ffafb1526212866f159470c5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/Readme.md" @@ -0,0 +1,156 @@ +# safer-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![javascript style guide][standard-image]][standard-url] [![Security Responsible Disclosure][secuirty-image]][secuirty-url] + +[travis-image]: https://travis-ci.org/ChALkeR/safer-buffer.svg?branch=master +[travis-url]: https://travis-ci.org/ChALkeR/safer-buffer +[npm-image]: https://img.shields.io/npm/v/safer-buffer.svg +[npm-url]: https://npmjs.org/package/safer-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com +[secuirty-image]: https://img.shields.io/badge/Security-Responsible%20Disclosure-green.svg +[secuirty-url]: https://github.com/nodejs/security-wg/blob/master/processes/responsible_disclosure_template.md + +Modern Buffer API polyfill without footguns, working on Node.js from 0.8 to current. + +## How to use? + +First, port all `Buffer()` and `new Buffer()` calls to `Buffer.alloc()` and `Buffer.from()` API. + +Then, to achieve compatibility with outdated Node.js versions (`<4.5.0` and 5.x `<5.9.0`), use +`const Buffer = require('safer-buffer').Buffer` in all files where you make calls to the new +Buffer API. _Use `var` instead of `const` if you need that for your Node.js version range support._ + +Also, see the +[porting Buffer](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) guide. + +## Do I need it? + +Hopefully, not 鈥 dropping support for outdated Node.js versions should be fine nowdays, and that +is the recommended path forward. You _do_ need to port to the `Buffer.alloc()` and `Buffer.from()` +though. + +See the [porting guide](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) +for a better description. + +## Why not [safe-buffer](https://npmjs.com/safe-buffer)? + +_In short: while `safe-buffer` serves as a polyfill for the new API, it allows old API usage and +itself contains footguns._ + +`safe-buffer` could be used safely to get the new API while still keeping support for older +Node.js versions (like this module), but while analyzing ecosystem usage of the old Buffer API +I found out that `safe-buffer` is itself causing problems in some cases. + +For example, consider the following snippet: + +```console +$ cat example.unsafe.js +console.log(Buffer(20)) +$ ./node-v6.13.0-linux-x64/bin/node example.unsafe.js + +$ standard example.unsafe.js +standard: Use JavaScript Standard Style (https://standardjs.com) + /home/chalker/repo/safer-buffer/example.unsafe.js:2:13: 'Buffer()' was deprecated since v6. Use 'Buffer.alloc()' or 'Buffer.from()' (use 'https://www.npmjs.com/package/safe-buffer' for '<4.5.0') instead. +``` + +This is allocates and writes to console an uninitialized chunk of memory. +[standard](https://www.npmjs.com/package/standard) linter (among others) catch that and warn people +to avoid using unsafe API. + +Let's now throw in `safe-buffer`! + +```console +$ cat example.safe-buffer.js +const Buffer = require('safe-buffer').Buffer +console.log(Buffer(20)) +$ standard example.safe-buffer.js +$ ./node-v6.13.0-linux-x64/bin/node example.safe-buffer.js + +``` + +See the problem? Adding in `safe-buffer` _magically removes the lint warning_, but the behavior +remains identi褋al to what we had before, and when launched on Node.js 6.x LTS 鈥 this dumps out +chunks of uninitialized memory. +_And this code will still emit runtime warnings on Node.js 10.x and above._ + +That was done by design. I first considered changing `safe-buffer`, prohibiting old API usage or +emitting warnings on it, but that significantly diverges from `safe-buffer` design. After some +discussion, it was decided to move my approach into a separate package, and _this is that separate +package_. + +This footgun is not imaginary 鈥 I observed top-downloaded packages doing that kind of thing, +芦fixing禄 the lint warning by blindly including `safe-buffer` without any actual changes. + +Also in some cases, even if the API _was_ migrated to use of safe Buffer API 鈥 a random pull request +can bring unsafe Buffer API usage back to the codebase by adding new calls 鈥 and that could go +unnoticed even if you have a linter prohibiting that (becase of the reason stated above), and even +pass CI. _I also observed that being done in popular packages._ + +Some examples: + * [webdriverio](https://github.com/webdriverio/webdriverio/commit/05cbd3167c12e4930f09ef7cf93b127ba4effae4#diff-124380949022817b90b622871837d56cR31) + (a module with 548 759 downloads/month), + * [websocket-stream](https://github.com/maxogden/websocket-stream/commit/c9312bd24d08271687d76da0fe3c83493871cf61) + (218 288 d/m, fix in [maxogden/websocket-stream#142](https://github.com/maxogden/websocket-stream/pull/142)), + * [node-serialport](https://github.com/node-serialport/node-serialport/commit/e8d9d2b16c664224920ce1c895199b1ce2def48c) + (113 138 d/m, fix in [node-serialport/node-serialport#1510](https://github.com/node-serialport/node-serialport/pull/1510)), + * [karma](https://github.com/karma-runner/karma/commit/3d94b8cf18c695104ca195334dc75ff054c74eec) + (3 973 193 d/m, fix in [karma-runner/karma#2947](https://github.com/karma-runner/karma/pull/2947)), + * [spdy-transport](https://github.com/spdy-http2/spdy-transport/commit/5375ac33f4a62a4f65bcfc2827447d42a5dbe8b1) + (5 970 727 d/m, fix in [spdy-http2/spdy-transport#53](https://github.com/spdy-http2/spdy-transport/pull/53)). + * And there are a lot more over the ecosystem. + +I filed a PR at +[mysticatea/eslint-plugin-node#110](https://github.com/mysticatea/eslint-plugin-node/pull/110) to +partially fix that (for cases when that lint rule is used), but it is a semver-major change for +linter rules and presets, so it would take significant time for that to reach actual setups. +_It also hasn't been released yet (2018-03-20)._ + +Also, `safer-buffer` discourages the usage of `.allocUnsafe()`, which is often done by a mistake. +It still supports it with an explicit concern barier, by placing it under +`require('safer-buffer/dangereous')`. + +## But isn't throwing bad? + +Not really. It's an error that could be noticed and fixed early, instead of causing havoc later like +unguarded `new Buffer()` calls that end up receiving user input can do. + +This package affects only the files where `var Buffer = require('safer-buffer').Buffer` was done, so +it is really simple to keep track of things and make sure that you don't mix old API usage with that. +Also, CI should hint anything that you might have missed. + +New commits, if tested, won't land new usage of unsafe Buffer API this way. +_Node.js 10.x also deals with that by printing a runtime depecation warning._ + +### Would it affect third-party modules? + +No, unless you explicitly do an awful thing like monkey-patching or overriding the built-in `Buffer`. +Don't do that. + +### But I don't want throwing鈥 + +That is also fine! + +Also, it could be better in some cases when you don't comprehensive enough test coverage. + +In that case 鈥 just don't override `Buffer` and use +`var SaferBuffer = require('safer-buffer').Buffer` instead. + +That way, everything using `Buffer` natively would still work, but there would be two drawbacks: + +* `Buffer.from`/`Buffer.alloc` won't be polyfilled 鈥 use `SaferBuffer.from` and + `SaferBuffer.alloc` instead. +* You are still open to accidentally using the insecure deprecated API 鈥 use a linter to catch that. + +Note that using a linter to catch accidential `Buffer` constructor usage in this case is strongly +recommended. `Buffer` is not overriden in this usecase, so linters won't get confused. + +## 芦Without footguns禄? + +Well, it is still possible to do _some_ things with `Buffer` API, e.g. accessing `.buffer` property +on older versions and duping things from there. You shouldn't do that in your code, probabably. + +The intention is to remove the most significant footguns that affect lots of packages in the +ecosystem, and to do it in the proper way. + +Also, this package doesn't protect against security issues affecting some Node.js versions, so for +usage in your own production code, it is still recommended to update to a Node.js version +[supported by upstream](https://github.com/nodejs/release#release-schedule). diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/dangerous.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/dangerous.js" new file mode 100644 index 0000000000000000000000000000000000000000..ca41fdc549b6553e811d35e44730a51bec68be99 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/dangerous.js" @@ -0,0 +1,58 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var buffer = require('buffer') +var Buffer = buffer.Buffer +var safer = require('./safer.js') +var Safer = safer.Buffer + +var dangerous = {} + +var key + +for (key in safer) { + if (!safer.hasOwnProperty(key)) continue + dangerous[key] = safer[key] +} + +var Dangereous = dangerous.Buffer = {} + +// Copy Safer API +for (key in Safer) { + if (!Safer.hasOwnProperty(key)) continue + Dangereous[key] = Safer[key] +} + +// Copy those missing unsafe methods, if they are present +for (key in Buffer) { + if (!Buffer.hasOwnProperty(key)) continue + if (Dangereous.hasOwnProperty(key)) continue + Dangereous[key] = Buffer[key] +} + +if (!Dangereous.allocUnsafe) { + Dangereous.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + return Buffer(size) + } +} + +if (!Dangereous.allocUnsafeSlow) { + Dangereous.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + return buffer.SlowBuffer(size) + } +} + +module.exports = dangerous diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..289f3e0c7f5b5086eaa69753b8622def81ce279f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/package.json" @@ -0,0 +1,60 @@ +{ + "_from": "safer-buffer@>= 2.1.2 < 3", + "_id": "safer-buffer@2.1.2", + "_inBundle": false, + "_integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "_location": "/safer-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "safer-buffer@>= 2.1.2 < 3", + "name": "safer-buffer", + "escapedName": "safer-buffer", + "rawSpec": ">= 2.1.2 < 3", + "saveSpec": null, + "fetchSpec": ">= 2.1.2 < 3" + }, + "_requiredBy": [ + "/iconv-lite" + ], + "_resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "_shasum": "44fa161b0187b9549dd84bb91802f9bd8385cd6a", + "_spec": "safer-buffer@>= 2.1.2 < 3", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\iconv-lite", + "author": { + "name": "Nikita Skovoroda", + "email": "chalkerx@gmail.com", + "url": "https://github.com/ChALkeR" + }, + "bugs": { + "url": "https://github.com/ChALkeR/safer-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Modern Buffer API polyfill without footguns", + "devDependencies": { + "standard": "^11.0.1", + "tape": "^4.9.0" + }, + "files": [ + "Porting-Buffer.md", + "Readme.md", + "tests.js", + "dangerous.js", + "safer.js" + ], + "homepage": "https://github.com/ChALkeR/safer-buffer#readme", + "license": "MIT", + "main": "safer.js", + "name": "safer-buffer", + "repository": { + "type": "git", + "url": "git+https://github.com/ChALkeR/safer-buffer.git" + }, + "scripts": { + "browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js", + "test": "standard && tape tests.js" + }, + "version": "2.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/safer.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/safer.js" new file mode 100644 index 0000000000000000000000000000000000000000..37c7e1aa6cbd4effd94ee28bd7b0655756b80cea --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/safer.js" @@ -0,0 +1,77 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var buffer = require('buffer') +var Buffer = buffer.Buffer + +var safer = {} + +var key + +for (key in buffer) { + if (!buffer.hasOwnProperty(key)) continue + if (key === 'SlowBuffer' || key === 'Buffer') continue + safer[key] = buffer[key] +} + +var Safer = safer.Buffer = {} +for (key in Buffer) { + if (!Buffer.hasOwnProperty(key)) continue + if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue + Safer[key] = Buffer[key] +} + +safer.Buffer.prototype = Buffer.prototype + +if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function (value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value) + } + if (value && typeof value.length === 'undefined') { + throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value) + } + return Buffer(value, encodingOrOffset, length) + } +} + +if (!Safer.alloc) { + Safer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + var buf = Buffer(size) + if (!fill || fill.length === 0) { + buf.fill(0) + } else if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + return buf + } +} + +if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding('buffer').kStringMaxLength + } catch (e) { + // we can't determine kStringMaxLength in environments where process.binding + // is unsupported, so let's not set it + } +} + +if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + } + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength + } +} + +module.exports = safer diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/tests.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/tests.js" new file mode 100644 index 0000000000000000000000000000000000000000..7ed2777c92a7991807c516027d5f73d0b47e781b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/safer-buffer/tests.js" @@ -0,0 +1,406 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var test = require('tape') + +var buffer = require('buffer') + +var index = require('./') +var safer = require('./safer') +var dangerous = require('./dangerous') + +/* Inheritance tests */ + +test('Default is Safer', function (t) { + t.equal(index, safer) + t.notEqual(safer, dangerous) + t.notEqual(index, dangerous) + t.end() +}) + +test('Is not a function', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(typeof impl, 'object') + t.equal(typeof impl.Buffer, 'object') + }); + [buffer].forEach(function (impl) { + t.equal(typeof impl, 'object') + t.equal(typeof impl.Buffer, 'function') + }) + t.end() +}) + +test('Constructor throws', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.throws(function () { impl.Buffer() }) + t.throws(function () { impl.Buffer(0) }) + t.throws(function () { impl.Buffer('a') }) + t.throws(function () { impl.Buffer('a', 'utf-8') }) + t.throws(function () { return new impl.Buffer() }) + t.throws(function () { return new impl.Buffer(0) }) + t.throws(function () { return new impl.Buffer('a') }) + t.throws(function () { return new impl.Buffer('a', 'utf-8') }) + }) + t.end() +}) + +test('Safe methods exist', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(typeof impl.Buffer.alloc, 'function', 'alloc') + t.equal(typeof impl.Buffer.from, 'function', 'from') + }) + t.end() +}) + +test('Unsafe methods exist only in Dangerous', function (t) { + [index, safer].forEach(function (impl) { + t.equal(typeof impl.Buffer.allocUnsafe, 'undefined') + t.equal(typeof impl.Buffer.allocUnsafeSlow, 'undefined') + }); + [dangerous].forEach(function (impl) { + t.equal(typeof impl.Buffer.allocUnsafe, 'function') + t.equal(typeof impl.Buffer.allocUnsafeSlow, 'function') + }) + t.end() +}) + +test('Generic methods/properties are defined and equal', function (t) { + ['poolSize', 'isBuffer', 'concat', 'byteLength'].forEach(function (method) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], buffer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Built-in buffer static methods/properties are inherited', function (t) { + Object.keys(buffer).forEach(function (method) { + if (method === 'SlowBuffer' || method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], buffer[method], method) + t.notEqual(typeof impl[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Built-in Buffer static methods/properties are inherited', function (t) { + Object.keys(buffer.Buffer).forEach(function (method) { + if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], buffer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('.prototype property of Buffer is inherited', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.prototype, buffer.Buffer.prototype, 'prototype') + t.notEqual(typeof impl.Buffer.prototype, 'undefined', 'prototype') + }) + t.end() +}) + +test('All Safer methods are present in Dangerous', function (t) { + Object.keys(safer).forEach(function (method) { + if (method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], safer[method], method) + if (method !== 'kStringMaxLength') { + t.notEqual(typeof impl[method], 'undefined', method) + } + }) + }) + Object.keys(safer.Buffer).forEach(function (method) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], safer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Safe methods from Dangerous methods are present in Safer', function (t) { + Object.keys(dangerous).forEach(function (method) { + if (method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], dangerous[method], method) + if (method !== 'kStringMaxLength') { + t.notEqual(typeof impl[method], 'undefined', method) + } + }) + }) + Object.keys(dangerous.Buffer).forEach(function (method) { + if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], dangerous.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +/* Behaviour tests */ + +test('Methods return Buffers', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 10))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 'a'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10, 'x'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(9, 'ab'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(''))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string', 'utf-8'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([0, 42, 3]))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(new Uint8Array([0, 42, 3])))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([]))) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](0))) + t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](10))) + }) + t.end() +}) + +test('Constructor is buffer.Buffer', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.alloc(0).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(0, 10).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(0, 'a').constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(10).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(10, 'x').constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(9, 'ab').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('string').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('string', 'utf-8').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').constructor, buffer.Buffer) + t.equal(impl.Buffer.from([0, 42, 3]).constructor, buffer.Buffer) + t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).constructor, buffer.Buffer) + t.equal(impl.Buffer.from([]).constructor, buffer.Buffer) + }); + [0, 10, 100].forEach(function (arg) { + t.equal(dangerous.Buffer.allocUnsafe(arg).constructor, buffer.Buffer) + t.equal(dangerous.Buffer.allocUnsafeSlow(arg).constructor, buffer.SlowBuffer(0).constructor) + }) + t.end() +}) + +test('Invalid calls throw', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.throws(function () { impl.Buffer.from(0) }) + t.throws(function () { impl.Buffer.from(10) }) + t.throws(function () { impl.Buffer.from(10, 'utf-8') }) + t.throws(function () { impl.Buffer.from('string', 'invalid encoding') }) + t.throws(function () { impl.Buffer.from(-10) }) + t.throws(function () { impl.Buffer.from(1e90) }) + t.throws(function () { impl.Buffer.from(Infinity) }) + t.throws(function () { impl.Buffer.from(-Infinity) }) + t.throws(function () { impl.Buffer.from(NaN) }) + t.throws(function () { impl.Buffer.from(null) }) + t.throws(function () { impl.Buffer.from(undefined) }) + t.throws(function () { impl.Buffer.from() }) + t.throws(function () { impl.Buffer.from({}) }) + t.throws(function () { impl.Buffer.alloc('') }) + t.throws(function () { impl.Buffer.alloc('string') }) + t.throws(function () { impl.Buffer.alloc('string', 'utf-8') }) + t.throws(function () { impl.Buffer.alloc('b25ldHdvdGhyZWU=', 'base64') }) + t.throws(function () { impl.Buffer.alloc(-10) }) + t.throws(function () { impl.Buffer.alloc(1e90) }) + t.throws(function () { impl.Buffer.alloc(2 * (1 << 30)) }) + t.throws(function () { impl.Buffer.alloc(Infinity) }) + t.throws(function () { impl.Buffer.alloc(-Infinity) }) + t.throws(function () { impl.Buffer.alloc(null) }) + t.throws(function () { impl.Buffer.alloc(undefined) }) + t.throws(function () { impl.Buffer.alloc() }) + t.throws(function () { impl.Buffer.alloc([]) }) + t.throws(function () { impl.Buffer.alloc([0, 42, 3]) }) + t.throws(function () { impl.Buffer.alloc({}) }) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.throws(function () { dangerous.Buffer[method]('') }) + t.throws(function () { dangerous.Buffer[method]('string') }) + t.throws(function () { dangerous.Buffer[method]('string', 'utf-8') }) + t.throws(function () { dangerous.Buffer[method](2 * (1 << 30)) }) + t.throws(function () { dangerous.Buffer[method](Infinity) }) + if (dangerous.Buffer[method] === buffer.Buffer.allocUnsafe) { + t.skip('Skipping, older impl of allocUnsafe coerced negative sizes to 0') + } else { + t.throws(function () { dangerous.Buffer[method](-10) }) + t.throws(function () { dangerous.Buffer[method](-1e90) }) + t.throws(function () { dangerous.Buffer[method](-Infinity) }) + } + t.throws(function () { dangerous.Buffer[method](null) }) + t.throws(function () { dangerous.Buffer[method](undefined) }) + t.throws(function () { dangerous.Buffer[method]() }) + t.throws(function () { dangerous.Buffer[method]([]) }) + t.throws(function () { dangerous.Buffer[method]([0, 42, 3]) }) + t.throws(function () { dangerous.Buffer[method]({}) }) + }) + t.end() +}) + +test('Buffers have appropriate lengths', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.alloc(0).length, 0) + t.equal(impl.Buffer.alloc(10).length, 10) + t.equal(impl.Buffer.from('').length, 0) + t.equal(impl.Buffer.from('string').length, 6) + t.equal(impl.Buffer.from('string', 'utf-8').length, 6) + t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').length, 11) + t.equal(impl.Buffer.from([0, 42, 3]).length, 3) + t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).length, 3) + t.equal(impl.Buffer.from([]).length, 0) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.equal(dangerous.Buffer[method](0).length, 0) + t.equal(dangerous.Buffer[method](10).length, 10) + }) + t.end() +}) + +test('Buffers have appropriate lengths (2)', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true; + [ safer.Buffer.alloc, + dangerous.Buffer.allocUnsafe, + dangerous.Buffer.allocUnsafeSlow + ].forEach(function (method) { + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 1e5) + var buf = method(length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + } + }) + t.ok(ok) + t.end() +}) + +test('.alloc(size) is zero-filled and has correct length', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var buf = index.Buffer.alloc(length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + var j + for (j = 0; j < length; j++) { + if (buf[j] !== 0) ok = false + } + buf.fill(1) + for (j = 0; j < length; j++) { + if (buf[j] !== 1) ok = false + } + } + t.ok(ok) + t.end() +}) + +test('.allocUnsafe / .allocUnsafeSlow are fillable and have correct lengths', function (t) { + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var buf = dangerous.Buffer[method](length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + buf.fill(0, 0, length) + var j + for (j = 0; j < length; j++) { + if (buf[j] !== 0) ok = false + } + buf.fill(1, 0, length) + for (j = 0; j < length; j++) { + if (buf[j] !== 1) ok = false + } + } + t.ok(ok, method) + }) + t.end() +}) + +test('.alloc(size, fill) is `fill`-filled', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var fill = Math.round(Math.random() * 255) + var buf = index.Buffer.alloc(length, fill) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + for (var j = 0; j < length; j++) { + if (buf[j] !== fill) ok = false + } + } + t.ok(ok) + t.end() +}) + +test('.alloc(size, fill) is `fill`-filled', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var fill = Math.round(Math.random() * 255) + var buf = index.Buffer.alloc(length, fill) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + for (var j = 0; j < length; j++) { + if (buf[j] !== fill) ok = false + } + } + t.ok(ok) + t.deepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 97)) + t.notDeepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 98)) + + var tmp = new buffer.Buffer(2) + tmp.fill('ok') + if (tmp[1] === tmp[0]) { + // Outdated Node.js + t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('ooooo')) + } else { + t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('okoko')) + } + t.notDeepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('kokok')) + + t.end() +}) + +test('safer.Buffer.from returns results same as Buffer constructor', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.deepEqual(impl.Buffer.from(''), new buffer.Buffer('')) + t.deepEqual(impl.Buffer.from('string'), new buffer.Buffer('string')) + t.deepEqual(impl.Buffer.from('string', 'utf-8'), new buffer.Buffer('string', 'utf-8')) + t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), new buffer.Buffer('b25ldHdvdGhyZWU=', 'base64')) + t.deepEqual(impl.Buffer.from([0, 42, 3]), new buffer.Buffer([0, 42, 3])) + t.deepEqual(impl.Buffer.from(new Uint8Array([0, 42, 3])), new buffer.Buffer(new Uint8Array([0, 42, 3]))) + t.deepEqual(impl.Buffer.from([]), new buffer.Buffer([])) + }) + t.end() +}) + +test('safer.Buffer.from returns consistent results', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.deepEqual(impl.Buffer.from(''), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from([]), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from(new Uint8Array([])), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from('string', 'utf-8'), impl.Buffer.from('string')) + t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from([115, 116, 114, 105, 110, 103])) + t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from(impl.Buffer.from('string'))) + t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), impl.Buffer.from('onetwothree')) + t.notDeepEqual(impl.Buffer.from('b25ldHdvdGhyZWU='), impl.Buffer.from('onetwothree')) + }) + t.end() +}) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..8aa3ab34ff43b5a0c25ef777cdf501f739a51448 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/HISTORY.md" @@ -0,0 +1,506 @@ +0.17.2 / 2021-12-11 +=================== + + * pref: ignore empty http tokens + * deps: http-errors@1.8.1 + - deps: inherits@2.0.4 + - deps: toidentifier@1.0.1 + - deps: setprototypeof@1.2.0 + * deps: ms@2.1.3 + +0.17.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect & error responses + * deps: range-parser@~1.2.1 + +0.17.0 / 2019-05-03 +=================== + + * deps: http-errors@~1.7.2 + - Set constructor name when possible + - Use `toidentifier` module to make class names + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: mime@1.6.0 + - Add extensions for JPEG-2000 images + - Add new `font/*` types from IANA + - Add WASM mapping + - Update `.bdoc` to `application/bdoc` + - Update `.bmp` to `image/bmp` + - Update `.m4a` to `audio/mp4` + - Update `.rtf` to `application/rtf` + - Update `.wav` to `audio/wav` + - Update `.xml` to `application/xml` + - Update generic extensions to `application/octet-stream`: + `.deb`, `.dll`, `.dmg`, `.exe`, `.iso`, `.msi` + - Use mime-score module to resolve extension conflicts + * deps: ms@2.1.1 + - Add `week`/`w` support + - Fix negative number handling + * deps: statuses@~1.5.0 + * perf: remove redundant `path.normalize` call + +0.16.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in default error & redirects + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: statuses@~1.4.0 + +0.16.1 / 2017-09-29 +=================== + + * Fix regression in edge-case behavior for empty `path` + +0.16.0 / 2017-09-27 +=================== + + * Add `immutable` option + * Fix missing `` in default error & redirects + * Use instance methods on steam to check for listeners + * deps: mime@1.4.1 + - Add 70 new types for file extensions + - Set charset as "UTF-8" for .js and .json + * perf: improve path validation speed + +0.15.6 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: improve `If-Match` token parsing + +0.15.5 / 2017-09-20 +=================== + + * deps: etag@~1.8.1 + - perf: replace regular expression with substring + * deps: fresh@0.5.2 + - Fix handling of modified headers with invalid dates + - perf: improve ETag match loop + - perf: improve `If-None-Match` token parsing + +0.15.4 / 2017-08-05 +=================== + + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + +0.15.3 / 2017-05-16 +=================== + + * deps: debug@2.6.7 + - deps: ms@2.0.0 + * deps: ms@2.0.0 + +0.15.2 / 2017-04-26 +=================== + + * deps: debug@2.6.4 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@0.7.3 + * deps: ms@1.0.0 + +0.15.1 / 2017-03-04 +=================== + + * Fix issue when `Date.parse` does not return `NaN` on invalid date + * Fix strict violation in broken environments + +0.15.0 / 2017-02-25 +=================== + + * Support `If-Match` and `If-Unmodified-Since` headers + * Add `res` and `path` arguments to `directory` event + * Remove usage of `res._headers` private field + - Improves compatibility with Node.js 8 nightly + * Send complete HTML document in redirect & error responses + * Set default CSP header in redirect & error responses + * Use `res.getHeaderNames()` when available + * Use `res.headersSent` when available + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: etag@~1.8.0 + * deps: fresh@0.5.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - perf: delay reading header values until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove duplicate conditional + - perf: remove unnecessary boolean coercions + - perf: skip checking modified time if ETag check failed + - perf: skip parsing `If-None-Match` when no `ETag` header + - perf: use `Date.parse` instead of `new Date` + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + +0.14.2 / 2017-01-23 +=================== + + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: ms@0.7.2 + * deps: statuses@~1.3.1 + +0.14.1 / 2016-06-09 +=================== + + * Fix redirect error when `path` contains raw non-URL characters + * Fix redirect when `path` starts with multiple forward slashes + +0.14.0 / 2016-06-06 +=================== + + * Add `acceptRanges` option + * Add `cacheControl` option + * Attempt to combine multiple ranges into single range + * Correctly inherit from `Stream` class + * Fix `Content-Range` header in 416 responses when using `start`/`end` options + * Fix `Content-Range` header missing from default 416 responses + * Ignore non-byte `Range` headers + * deps: http-errors@~1.5.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - Support new code `421 Misdirected Request` + - Use `setprototypeof` module to replace `__proto__` setting + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: range-parser@~1.2.0 + - Fix incorrectly returning -1 when there is at least one valid range + - perf: remove internal function + * deps: statuses@~1.3.0 + - Add `421 Misdirected Request` + - perf: enable strict mode + * perf: remove argument reassignment + +0.13.2 / 2016-03-05 +=================== + + * Fix invalid `Content-Type` header when `send.mime.default_type` unset + +0.13.1 / 2016-01-16 +=================== + + * deps: depd@~1.1.0 + - Support web browser loading + - perf: enable strict mode + * deps: destroy@~1.0.4 + - perf: enable strict mode + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: range-parser@~1.0.3 + - perf: enable strict mode + +0.13.0 / 2015-06-16 +=================== + + * Allow Node.js HTTP server to set `Date` response header + * Fix incorrectly removing `Content-Location` on 304 response + * Improve the default redirect response headers + * Send appropriate headers on default error response + * Use `http-errors` for standard emitted errors + * Use `statuses` instead of `http` module for status messages + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Improve stat performance by removing hashing + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * perf: enable strict mode + * perf: remove unnecessary array allocations + +0.12.3 / 2015-05-13 +=================== + + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: etag@~1.6.0 + - Improve support for JXcore + - Support "fake" stats objects in environments without `fs` + * deps: ms@0.7.1 + - Prevent extraordinarily long inputs + * deps: on-finished@~2.2.1 + +0.12.2 / 2015-03-13 +=================== + + * Throw errors early for invalid `extensions` or `index` options + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + +0.12.1 / 2015-02-17 +=================== + + * Fix regression sending zero-length files + +0.12.0 / 2015-02-16 +=================== + + * Always read the stat size from the file + * Fix mutating passed-in `options` + * deps: mime@1.3.4 + +0.11.1 / 2015-01-20 +=================== + + * Fix `root` path disclosure + +0.11.0 / 2015-01-05 +=================== + + * deps: debug@~2.1.1 + * deps: etag@~1.5.1 + - deps: crc@3.2.1 + * deps: ms@0.7.0 + - Add `milliseconds` + - Add `msecs` + - Add `secs` + - Add `mins` + - Add `hrs` + - Add `yrs` + * deps: on-finished@~2.2.0 + +0.10.1 / 2014-10-22 +=================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + +0.10.0 / 2014-10-15 +=================== + + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: etag@~1.5.0 + - Improve string performance + - Slightly improve speed for weak ETags over 1KB + +0.9.3 / 2014-09-24 +================== + + * deps: etag@~1.4.0 + - Support "fake" stats objects + +0.9.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + * deps: etag@~1.3.1 + * deps: range-parser@~1.0.2 + +0.9.1 / 2014-09-07 +================== + + * deps: fresh@0.2.4 + +0.9.0 / 2014-09-07 +================== + + * Add `lastModified` option + * Use `etag` to generate `ETag` header + * deps: debug@~2.0.0 + +0.8.5 / 2014-09-04 +================== + + * Fix malicious path detection for empty string path + +0.8.4 / 2014-09-04 +================== + + * Fix a path traversal issue when using `root` + +0.8.3 / 2014-08-16 +================== + + * deps: destroy@1.0.3 + - renamed from dethroy + * deps: on-finished@2.1.0 + +0.8.2 / 2014-08-14 +================== + + * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + * deps: dethroy@1.0.2 + +0.8.1 / 2014-08-05 +================== + + * Fix `extensions` behavior when file already has extension + +0.8.0 / 2014-08-05 +================== + + * Add `extensions` option + +0.7.4 / 2014-08-04 +================== + + * Fix serving index files without root dir + +0.7.3 / 2014-07-29 +================== + + * Fix incorrect 403 on Windows and Node.js 0.11 + +0.7.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +0.7.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +0.7.0 / 2014-07-20 +================== + + * Deprecate `hidden` option; use `dotfiles` option + * Add `dotfiles` option + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + +0.6.0 / 2014-07-11 +================== + + * Deprecate `from` option; use `root` option + * Deprecate `send.etag()` -- use `etag` in `options` + * Deprecate `send.hidden()` -- use `hidden` in `options` + * Deprecate `send.index()` -- use `index` in `options` + * Deprecate `send.maxage()` -- use `maxAge` in `options` + * Deprecate `send.root()` -- use `root` in `options` + * Cap `maxAge` value to 1 year + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + +0.5.0 / 2014-06-28 +================== + + * Accept string for `maxAge` (converted by `ms`) + * Add `headers` event + * Include link in default redirect response + * Use `EventEmitter.listenerCount` to count listeners + +0.4.3 / 2014-06-11 +================== + + * Do not throw un-catchable error on file open race condition + * Use `escape-html` for HTML escaping + * deps: debug@1.0.2 + - fix some debugging output colors on node.js 0.8 + * deps: finished@1.2.2 + * deps: fresh@0.2.2 + +0.4.2 / 2014-06-09 +================== + + * fix "event emitter leak" warnings + * deps: debug@1.0.1 + * deps: finished@1.2.1 + +0.4.1 / 2014-06-02 +================== + + * Send `max-age` in `Cache-Control` in correct format + +0.4.0 / 2014-05-27 +================== + + * Calculate ETag with md5 for reduced collisions + * Fix wrong behavior when index file matches directory + * Ignore stream errors after request ends + - Goodbye `EBADF, read` + * Skip directories in index file search + * deps: debug@0.8.1 + +0.3.0 / 2014-04-24 +================== + + * Fix sending files with dots without root set + * Coerce option types + * Accept API options in options object + * Set etags to "weak" + * Include file path in etag + * Make "Can't set headers after they are sent." catchable + * Send full entity-body for multi range requests + * Default directory access to 403 when index disabled + * Support multiple index paths + * Support "If-Range" header + * Control whether to generate etags + * deps: mime@1.2.11 + +0.2.0 / 2014-01-29 +================== + + * update range-parser and fresh + +0.1.4 / 2013-08-11 +================== + + * update fresh + +0.1.3 / 2013-07-08 +================== + + * Revert "Fix fd leak" + +0.1.2 / 2013-07-03 +================== + + * Fix fd leak + +0.1.0 / 2012-08-25 +================== + + * add options parameter to send() that is passed to fs.createReadStream() [kanongil] + +0.0.4 / 2012-08-16 +================== + + * allow custom "Accept-Ranges" definition + +0.0.3 / 2012-07-16 +================== + + * fix normalization of the root directory. Closes #3 + +0.0.2 / 2012-07-09 +================== + + * add passing of req explicitly for now (YUCK) + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..4aa69e83dad61f336221bf2888d29d3705777935 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..fc1d3a143e119989386581746dabc82964495cbc --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/README.md" @@ -0,0 +1,327 @@ +# send + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][github-actions-ci-image]][github-actions-ci-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Send is a library for streaming files from the file system as a http response +supporting partial responses (Ranges), conditional-GET negotiation (If-Match, +If-Unmodified-Since, If-None-Match, If-Modified-Since), high test coverage, +and granular events which may be leveraged to take appropriate actions in your +application or framework. + +Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static). + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install send +``` + +## API + +```js +var send = require('send') +``` + +### send(req, path, [options]) + +Create a new `SendStream` for the given path to send to a `res`. The `req` is +the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded, +not the actual file-system path). + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + +Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Send a 403 for any request for a dotfile. + - `'ignore'` Pretend like the dotfile does not exist and 404. + +The default value is _similar_ to `'ignore'`, with the exception that +this default will not ignore the files within a directory that begins +with a dot, for backward-compatibility. + +##### end + +Byte offset at which the stream ends, defaults to the length of the file +minus 1. The end is inclusive in the stream, meaning `end: 3` will include +the 4th byte in the stream. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +If a given file doesn't exist, try appending one of the given extensions, +in the given order. By default, this is disabled (set to `false`). An +example value that will serve extension-less HTML files: `['html', 'htm']`. +This is skipped if the requested file already has an extension. + +##### immutable + +Enable or disable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default send supports "index.html" files, to disable this +set `false` or to supply a new index pass a string or an array +in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. +This can also be a string accepted by the +[ms](https://www.npmjs.org/package/ms#readme) module. + +##### root + +Serve files relative to `path`. + +##### start + +Byte offset at which the stream starts, defaults to 0. The start is inclusive, +meaning `start: 2` will include the 3rd byte in the stream. + +#### Events + +The `SendStream` is an event emitter and will emit the following events: + + - `error` an error occurred `(err)` + - `directory` a directory was requested `(res, path)` + - `file` a file was requested `(path, stat)` + - `headers` the headers are about to be set on a file `(res, path, stat)` + - `stream` file streaming has started `(stream)` + - `end` streaming has completed + +#### .pipe + +The `pipe` method is used to pipe the response into the Node.js HTTP response +object, typically `send(req, path, options).pipe(res)`. + +### .mime + +The `mime` export is the global instance of of the +[`mime` npm module](https://www.npmjs.com/package/mime). + +This is used to configure the MIME types that are associated with file extensions +as well as other options for how to resolve the MIME type of a file (like the +default type to use for an unknown file extension). + +## Error-handling + +By default when no `error` listeners are present an automatic response will be +made, otherwise you have full control over the response, aka you may show a 5xx +page etc. + +## Caching + +It does _not_ perform internal caching, you should use a reverse proxy cache +such as Varnish for this, or those fancy things called CDNs. If your +application is small enough that it would benefit from single-node memory +caching, it's small enough that it does not need caching at all ;). + +## Debugging + +To enable `debug()` instrumentation output export __DEBUG__: + +``` +$ DEBUG=send node app +``` + +## Running tests + +``` +$ npm install +$ npm test +``` + +## Examples + +### Serve a specific file + +This simple example will send a specific file to all requests. + +```js +var http = require('http') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, '/path/to/index.html') + .pipe(res) +}) + +server.listen(3000) +``` + +### Serve all files from a directory + +This simple example will just serve up all the files in a +given directory as the top-level. For example, a request +`GET /foo.txt` will send back `/www/public/foo.txt`. + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom file types + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +// Default unknown types to text/plain +send.mime.default_type = 'text/plain' + +// Add a custom type +send.mime.define({ + 'application/x-my-type': ['x-mt', 'x-mtt'] +}) + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom directory index view + +This is a example of serving up a structure of directories with a +custom function to render a listing of a directory. + +```js +var http = require('http') +var fs = require('fs') +var parseUrl = require('parseurl') +var send = require('send') + +// Transfer arbitrary files from within /www/example.com/public/* +// with a custom handler for directory listing +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { index: false, root: '/www/public' }) + .once('directory', directory) + .pipe(res) +}) + +server.listen(3000) + +// Custom directory handler +function directory (res, path) { + var stream = this + + // redirect to trailing slash for consistent url + if (!stream.hasTrailingSlash()) { + return stream.redirect(path) + } + + // get directory list + fs.readdir(path, function onReaddir (err, list) { + if (err) return stream.error(err) + + // render an index for the directory + res.setHeader('Content-Type', 'text/plain; charset=UTF-8') + res.end(list.join('\n') + '\n') + }) +} +``` + +### Serving from a root directory with custom error-handling + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + // your custom error-handling logic: + function error (err) { + res.statusCode = err.status || 500 + res.end(err.message) + } + + // your custom headers + function headers (res, path, stat) { + // serve all files for download + res.setHeader('Content-Disposition', 'attachment') + } + + // your custom directory handling logic: + function redirect () { + res.statusCode = 301 + res.setHeader('Location', req.url + '/') + res.end('Redirecting to ' + req.url + '/') + } + + // transfer arbitrary files from within + // /www/example.com/public/* + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .on('error', error) + .on('directory', redirect) + .on('headers', headers) + .pipe(res) +}) + +server.listen(3000) +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/send/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/send +[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/send/master +[coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/pillarjs/send/master?label=ci +[github-actions-ci-url]: https://github.com/pillarjs/send/actions?query=workflow%3Aci +[node-image]: https://badgen.net/npm/node/send +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/send +[npm-url]: https://npmjs.org/package/send +[npm-version-image]: https://badgen.net/npm/v/send diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..06d75075888800311a3ca9e17cd1981f4700da32 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/index.js" @@ -0,0 +1,1133 @@ +/*! + * send + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('send') +var deprecate = require('depd')('send') +var destroy = require('destroy') +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var etag = require('etag') +var fresh = require('fresh') +var fs = require('fs') +var mime = require('mime') +var ms = require('ms') +var onFinished = require('on-finished') +var parseRange = require('range-parser') +var path = require('path') +var statuses = require('statuses') +var Stream = require('stream') +var util = require('util') + +/** + * Path function references. + * @private + */ + +var extname = path.extname +var join = path.join +var normalize = path.normalize +var resolve = path.resolve +var sep = path.sep + +/** + * Regular expression for identifying a bytes Range header. + * @private + */ + +var BYTES_RANGE_REGEXP = /^ *bytes=/ + +/** + * Maximum value allowed for the max age. + * @private + */ + +var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1000 // 1 year + +/** + * Regular expression to match a path with a directory up component. + * @private + */ + +var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/ + +/** + * Module exports. + * @public + */ + +module.exports = send +module.exports.mime = mime + +/** + * Return a `SendStream` for `req` and `path`. + * + * @param {object} req + * @param {string} path + * @param {object} [options] + * @return {SendStream} + * @public + */ + +function send (req, path, options) { + return new SendStream(req, path, options) +} + +/** + * Initialize a `SendStream` with the given `path`. + * + * @param {Request} req + * @param {String} path + * @param {object} [options] + * @private + */ + +function SendStream (req, path, options) { + Stream.call(this) + + var opts = options || {} + + this.options = opts + this.path = path + this.req = req + + this._acceptRanges = opts.acceptRanges !== undefined + ? Boolean(opts.acceptRanges) + : true + + this._cacheControl = opts.cacheControl !== undefined + ? Boolean(opts.cacheControl) + : true + + this._etag = opts.etag !== undefined + ? Boolean(opts.etag) + : true + + this._dotfiles = opts.dotfiles !== undefined + ? opts.dotfiles + : 'ignore' + + if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') { + throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"') + } + + this._hidden = Boolean(opts.hidden) + + if (opts.hidden !== undefined) { + deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead') + } + + // legacy support + if (opts.dotfiles === undefined) { + this._dotfiles = undefined + } + + this._extensions = opts.extensions !== undefined + ? normalizeList(opts.extensions, 'extensions option') + : [] + + this._immutable = opts.immutable !== undefined + ? Boolean(opts.immutable) + : false + + this._index = opts.index !== undefined + ? normalizeList(opts.index, 'index option') + : ['index.html'] + + this._lastModified = opts.lastModified !== undefined + ? Boolean(opts.lastModified) + : true + + this._maxage = opts.maxAge || opts.maxage + this._maxage = typeof this._maxage === 'string' + ? ms(this._maxage) + : Number(this._maxage) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + + this._root = opts.root + ? resolve(opts.root) + : null + + if (!this._root && opts.from) { + this.from(opts.from) + } +} + +/** + * Inherits from `Stream`. + */ + +util.inherits(SendStream, Stream) + +/** + * Enable or disable etag generation. + * + * @param {Boolean} val + * @return {SendStream} + * @api public + */ + +SendStream.prototype.etag = deprecate.function(function etag (val) { + this._etag = Boolean(val) + debug('etag %s', this._etag) + return this +}, 'send.etag: pass etag as option') + +/** + * Enable or disable "hidden" (dot) files. + * + * @param {Boolean} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.hidden = deprecate.function(function hidden (val) { + this._hidden = Boolean(val) + this._dotfiles = undefined + debug('hidden %s', this._hidden) + return this +}, 'send.hidden: use dotfiles option') + +/** + * Set index `paths`, set to a falsy + * value to disable index support. + * + * @param {String|Boolean|Array} paths + * @return {SendStream} + * @api public + */ + +SendStream.prototype.index = deprecate.function(function index (paths) { + var index = !paths ? [] : normalizeList(paths, 'paths argument') + debug('index %o', paths) + this._index = index + return this +}, 'send.index: pass index as option') + +/** + * Set root `path`. + * + * @param {String} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.root = function root (path) { + this._root = resolve(String(path)) + debug('root %s', this._root) + return this +} + +SendStream.prototype.from = deprecate.function(SendStream.prototype.root, + 'send.from: pass root as option') + +SendStream.prototype.root = deprecate.function(SendStream.prototype.root, + 'send.root: pass root as option') + +/** + * Set max-age to `maxAge`. + * + * @param {Number} maxAge + * @return {SendStream} + * @api public + */ + +SendStream.prototype.maxage = deprecate.function(function maxage (maxAge) { + this._maxage = typeof maxAge === 'string' + ? ms(maxAge) + : Number(maxAge) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + debug('max-age %d', this._maxage) + return this +}, 'send.maxage: pass maxAge as option') + +/** + * Emit error with `status`. + * + * @param {number} status + * @param {Error} [err] + * @private + */ + +SendStream.prototype.error = function error (status, err) { + // emit if listeners instead of responding + if (hasListeners(this, 'error')) { + return this.emit('error', createError(status, err, { + expose: false + })) + } + + var res = this.res + var msg = statuses[status] || String(status) + var doc = createHtmlDocument('Error', escapeHtml(msg)) + + // clear existing headers + clearHeaders(res) + + // add error headers + if (err && err.headers) { + setHeaders(res, err.headers) + } + + // send basic response + res.statusCode = status + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.end(doc) +} + +/** + * Check if the pathname ends with "/". + * + * @return {boolean} + * @private + */ + +SendStream.prototype.hasTrailingSlash = function hasTrailingSlash () { + return this.path[this.path.length - 1] === '/' +} + +/** + * Check if this is a conditional GET request. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isConditionalGET = function isConditionalGET () { + return this.req.headers['if-match'] || + this.req.headers['if-unmodified-since'] || + this.req.headers['if-none-match'] || + this.req.headers['if-modified-since'] +} + +/** + * Check if the request preconditions failed. + * + * @return {boolean} + * @private + */ + +SendStream.prototype.isPreconditionFailure = function isPreconditionFailure () { + var req = this.req + var res = this.res + + // if-match + var match = req.headers['if-match'] + if (match) { + var etag = res.getHeader('ETag') + return !etag || (match !== '*' && parseTokenList(match).every(function (match) { + return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag + })) + } + + // if-unmodified-since + var unmodifiedSince = parseHttpDate(req.headers['if-unmodified-since']) + if (!isNaN(unmodifiedSince)) { + var lastModified = parseHttpDate(res.getHeader('Last-Modified')) + return isNaN(lastModified) || lastModified > unmodifiedSince + } + + return false +} + +/** + * Strip content-* header fields. + * + * @private + */ + +SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields () { + var res = this.res + var headers = getHeaderNames(res) + + for (var i = 0; i < headers.length; i++) { + var header = headers[i] + if (header.substr(0, 8) === 'content-' && header !== 'content-location') { + res.removeHeader(header) + } + } +} + +/** + * Respond with 304 not modified. + * + * @api private + */ + +SendStream.prototype.notModified = function notModified () { + var res = this.res + debug('not modified') + this.removeContentHeaderFields() + res.statusCode = 304 + res.end() +} + +/** + * Raise error that headers already sent. + * + * @api private + */ + +SendStream.prototype.headersAlreadySent = function headersAlreadySent () { + var err = new Error('Can\'t set headers after they are sent.') + debug('headers already sent') + this.error(500, err) +} + +/** + * Check if the request is cacheable, aka + * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}). + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isCachable = function isCachable () { + var statusCode = this.res.statusCode + return (statusCode >= 200 && statusCode < 300) || + statusCode === 304 +} + +/** + * Handle stat() error. + * + * @param {Error} error + * @private + */ + +SendStream.prototype.onStatError = function onStatError (error) { + switch (error.code) { + case 'ENAMETOOLONG': + case 'ENOENT': + case 'ENOTDIR': + this.error(404, error) + break + default: + this.error(500, error) + break + } +} + +/** + * Check if the cache is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isFresh = function isFresh () { + return fresh(this.req.headers, { + etag: this.res.getHeader('ETag'), + 'last-modified': this.res.getHeader('Last-Modified') + }) +} + +/** + * Check if the range is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isRangeFresh = function isRangeFresh () { + var ifRange = this.req.headers['if-range'] + + if (!ifRange) { + return true + } + + // if-range as etag + if (ifRange.indexOf('"') !== -1) { + var etag = this.res.getHeader('ETag') + return Boolean(etag && ifRange.indexOf(etag) !== -1) + } + + // if-range as modified date + var lastModified = this.res.getHeader('Last-Modified') + return parseHttpDate(lastModified) <= parseHttpDate(ifRange) +} + +/** + * Redirect to path. + * + * @param {string} path + * @private + */ + +SendStream.prototype.redirect = function redirect (path) { + var res = this.res + + if (hasListeners(this, 'directory')) { + this.emit('directory', res, path) + return + } + + if (this.hasTrailingSlash()) { + this.error(403) + return + } + + var loc = encodeUrl(collapseLeadingSlashes(this.path + '/')) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + + escapeHtml(loc) + '') + + // redirect + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) +} + +/** + * Pipe to `res. + * + * @param {Stream} res + * @return {Stream} res + * @api public + */ + +SendStream.prototype.pipe = function pipe (res) { + // root path + var root = this._root + + // references + this.res = res + + // decode the path + var path = decode(this.path) + if (path === -1) { + this.error(400) + return res + } + + // null byte(s) + if (~path.indexOf('\0')) { + this.error(400) + return res + } + + var parts + if (root !== null) { + // normalize + if (path) { + path = normalize('.' + sep + path) + } + + // malicious path + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = path.split(sep) + + // join / normalize from optional root dir + path = normalize(join(root, path)) + } else { + // ".." is malicious without "root" + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = normalize(path).split(sep) + + // resolve the path + path = resolve(path) + } + + // dotfile handling + if (containsDotFile(parts)) { + var access = this._dotfiles + + // legacy support + if (access === undefined) { + access = parts[parts.length - 1][0] === '.' + ? (this._hidden ? 'allow' : 'ignore') + : 'allow' + } + + debug('%s dotfile "%s"', access, path) + switch (access) { + case 'allow': + break + case 'deny': + this.error(403) + return res + case 'ignore': + default: + this.error(404) + return res + } + } + + // index file support + if (this._index.length && this.hasTrailingSlash()) { + this.sendIndex(path) + return res + } + + this.sendFile(path) + return res +} + +/** + * Transfer `path`. + * + * @param {String} path + * @api public + */ + +SendStream.prototype.send = function send (path, stat) { + var len = stat.size + var options = this.options + var opts = {} + var res = this.res + var req = this.req + var ranges = req.headers.range + var offset = options.start || 0 + + if (headersSent(res)) { + // impossible to send now + this.headersAlreadySent() + return + } + + debug('pipe "%s"', path) + + // set header fields + this.setHeader(path, stat) + + // set content-type + this.type(path) + + // conditional GET support + if (this.isConditionalGET()) { + if (this.isPreconditionFailure()) { + this.error(412) + return + } + + if (this.isCachable() && this.isFresh()) { + this.notModified() + return + } + } + + // adjust len to start/end options + len = Math.max(0, len - offset) + if (options.end !== undefined) { + var bytes = options.end - offset + 1 + if (len > bytes) len = bytes + } + + // Range support + if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) { + // parse + ranges = parseRange(len, ranges, { + combine: true + }) + + // If-Range support + if (!this.isRangeFresh()) { + debug('range stale') + ranges = -2 + } + + // unsatisfiable + if (ranges === -1) { + debug('range unsatisfiable') + + // Content-Range + res.setHeader('Content-Range', contentRange('bytes', len)) + + // 416 Requested Range Not Satisfiable + return this.error(416, { + headers: { 'Content-Range': res.getHeader('Content-Range') } + }) + } + + // valid (syntactically invalid/multiple ranges are treated as a regular response) + if (ranges !== -2 && ranges.length === 1) { + debug('range %j', ranges) + + // Content-Range + res.statusCode = 206 + res.setHeader('Content-Range', contentRange('bytes', len, ranges[0])) + + // adjust for requested range + offset += ranges[0].start + len = ranges[0].end - ranges[0].start + 1 + } + } + + // clone options + for (var prop in options) { + opts[prop] = options[prop] + } + + // set read options + opts.start = offset + opts.end = Math.max(offset, offset + len - 1) + + // content-length + res.setHeader('Content-Length', len) + + // HEAD support + if (req.method === 'HEAD') { + res.end() + return + } + + this.stream(path, opts) +} + +/** + * Transfer file for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendFile = function sendFile (path) { + var i = 0 + var self = this + + debug('stat "%s"', path) + fs.stat(path, function onstat (err, stat) { + if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) { + // not found, check extensions + return next(err) + } + if (err) return self.onStatError(err) + if (stat.isDirectory()) return self.redirect(path) + self.emit('file', path, stat) + self.send(path, stat) + }) + + function next (err) { + if (self._extensions.length <= i) { + return err + ? self.onStatError(err) + : self.error(404) + } + + var p = path + '.' + self._extensions[i++] + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } +} + +/** + * Transfer index for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendIndex = function sendIndex (path) { + var i = -1 + var self = this + + function next (err) { + if (++i >= self._index.length) { + if (err) return self.onStatError(err) + return self.error(404) + } + + var p = join(path, self._index[i]) + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } + + next() +} + +/** + * Stream `path` to the response. + * + * @param {String} path + * @param {Object} options + * @api private + */ + +SendStream.prototype.stream = function stream (path, options) { + // TODO: this is all lame, refactor meeee + var finished = false + var self = this + var res = this.res + + // pipe + var stream = fs.createReadStream(path, options) + this.emit('stream', stream) + stream.pipe(res) + + // response finished, done with the fd + onFinished(res, function onfinished () { + finished = true + destroy(stream) + }) + + // error handling code-smell + stream.on('error', function onerror (err) { + // request already finished + if (finished) return + + // clean up stream + finished = true + destroy(stream) + + // error + self.onStatError(err) + }) + + // end + stream.on('end', function onend () { + self.emit('end') + }) +} + +/** + * Set content-type based on `path` + * if it hasn't been explicitly set. + * + * @param {String} path + * @api private + */ + +SendStream.prototype.type = function type (path) { + var res = this.res + + if (res.getHeader('Content-Type')) return + + var type = mime.lookup(path) + + if (!type) { + debug('no content-type') + return + } + + var charset = mime.charsets.lookup(type) + + debug('content-type %s', type) + res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : '')) +} + +/** + * Set response header fields, most + * fields may be pre-defined. + * + * @param {String} path + * @param {Object} stat + * @api private + */ + +SendStream.prototype.setHeader = function setHeader (path, stat) { + var res = this.res + + this.emit('headers', res, path, stat) + + if (this._acceptRanges && !res.getHeader('Accept-Ranges')) { + debug('accept ranges') + res.setHeader('Accept-Ranges', 'bytes') + } + + if (this._cacheControl && !res.getHeader('Cache-Control')) { + var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000) + + if (this._immutable) { + cacheControl += ', immutable' + } + + debug('cache-control %s', cacheControl) + res.setHeader('Cache-Control', cacheControl) + } + + if (this._lastModified && !res.getHeader('Last-Modified')) { + var modified = stat.mtime.toUTCString() + debug('modified %s', modified) + res.setHeader('Last-Modified', modified) + } + + if (this._etag && !res.getHeader('ETag')) { + var val = etag(stat) + debug('etag %s', val) + res.setHeader('ETag', val) + } +} + +/** + * Clear all headers from a response. + * + * @param {object} res + * @private + */ + +function clearHeaders (res) { + var headers = getHeaderNames(res) + + for (var i = 0; i < headers.length; i++) { + res.removeHeader(headers[i]) + } +} + +/** + * Collapse all leading slashes into a single slash + * + * @param {string} str + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str[i] !== '/') { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Determine if path parts contain a dotfile. + * + * @api private + */ + +function containsDotFile (parts) { + for (var i = 0; i < parts.length; i++) { + var part = parts[i] + if (part.length > 1 && part[0] === '.') { + return true + } + } + + return false +} + +/** + * Create a Content-Range header. + * + * @param {string} type + * @param {number} size + * @param {array} [range] + */ + +function contentRange (type, size, range) { + return type + ' ' + (range ? range.start + '-' + range.end : '*') + '/' + size +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
    ' + body + '
    \n' + + '\n' + + '\n' +} + +/** + * decodeURIComponent. + * + * Allows V8 to only deoptimize this fn instead of all + * of send(). + * + * @param {String} path + * @api private + */ + +function decode (path) { + try { + return decodeURIComponent(path) + } catch (err) { + return -1 + } +} + +/** + * Get the header names on a respnse. + * + * @param {object} res + * @returns {array[string]} + * @private + */ + +function getHeaderNames (res) { + return typeof res.getHeaderNames !== 'function' + ? Object.keys(res._headers || {}) + : res.getHeaderNames() +} + +/** + * Determine if emitter has listeners of a given type. + * + * The way to do this check is done three different ways in Node.js >= 0.8 + * so this consolidates them into a minimal set using instance methods. + * + * @param {EventEmitter} emitter + * @param {string} type + * @returns {boolean} + * @private + */ + +function hasListeners (emitter, type) { + var count = typeof emitter.listenerCount !== 'function' + ? emitter.listeners(type).length + : emitter.listenerCount(type) + + return count > 0 +} + +/** + * Determine if the response headers have been sent. + * + * @param {object} res + * @returns {boolean} + * @private + */ + +function headersSent (res) { + return typeof res.headersSent !== 'boolean' + ? Boolean(res._header) + : res.headersSent +} + +/** + * Normalize the index option into an array. + * + * @param {boolean|string|array} val + * @param {string} name + * @private + */ + +function normalizeList (val, name) { + var list = [].concat(val || []) + + for (var i = 0; i < list.length; i++) { + if (typeof list[i] !== 'string') { + throw new TypeError(name + ' must be array of strings or false') + } + } + + return list +} + +/** + * Parse an HTTP Date into a number. + * + * @param {string} date + * @private + */ + +function parseHttpDate (date) { + var timestamp = date && Date.parse(date) + + return typeof timestamp === 'number' + ? timestamp + : NaN +} + +/** + * Parse a HTTP token list. + * + * @param {string} str + * @private + */ + +function parseTokenList (str) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + if (start !== end) { + list.push(str.substring(start, end)) + } + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + if (start !== end) { + list.push(str.substring(start, end)) + } + + return list +} + +/** + * Set an object of headers on a response. + * + * @param {object} res + * @param {object} headers + * @private + */ + +function setHeaders (res, headers) { + var keys = Object.keys(headers) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + res.setHeader(key, headers[key]) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..ea734fb73820316ed1c0f6a2f6e96dce0e3eb6f0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/index.js" @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/license.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/license.md" new file mode 100644 index 0000000000000000000000000000000000000000..fa5d39b6213f8a5e142b643575f99d9149cc71c6 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/license.md" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 Vercel, Inc. + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..d4348bb78042bcbfa738e223af01cee8876268a4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/package.json" @@ -0,0 +1,70 @@ +{ + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "_location": "/send/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "_shasum": "574c8138ce1d2b5861f0b44579dbadd60c6615b2", + "_spec": "ms@2.1.3", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\send", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.18.2", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1", + "prettier": "2.0.5" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/readme.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/readme.md" new file mode 100644 index 0000000000000000000000000000000000000000..0fc1abb3b8e30a3ab97023d243127c75b1b3a4d7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/node_modules/ms/readme.md" @@ -0,0 +1,59 @@ +# ms + +![CI](https://github.com/vercel/ms/workflows/CI/badge.svg) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..59946613092351920d2bd8b045bdde8a697ccc51 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/send/package.json" @@ -0,0 +1,106 @@ +{ + "_from": "send@0.17.2", + "_id": "send@0.17.2", + "_inBundle": false, + "_integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "_location": "/send", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "send@0.17.2", + "name": "send", + "escapedName": "send", + "rawSpec": "0.17.2", + "saveSpec": null, + "fetchSpec": "0.17.2" + }, + "_requiredBy": [ + "/express", + "/serve-static" + ], + "_resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "_shasum": "926622f76601c41808012c8bf1688fe3906f7820", + "_spec": "send@0.17.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/pillarjs/send/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "jcready@gmail.com" + }, + { + "name": "Jes煤s Legan茅s Combarro", + "email": "piranna@gmail.com" + } + ], + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "deprecated": false, + "description": "Better streaming static file server with Range and conditional-GET support", + "devDependencies": { + "after": "0.8.2", + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.1.3", + "nyc": "15.1.0", + "supertest": "6.1.6" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/pillarjs/send#readme", + "keywords": [ + "static", + "file", + "server" + ], + "license": "MIT", + "name": "send", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/send.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec --bail", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "0.17.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..eafa750046e3678a516d5d02c7a849f52e7e61f7 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/HISTORY.md" @@ -0,0 +1,459 @@ +1.14.2 / 2021-12-15 +=================== + + * deps: send@0.17.2 + - deps: http-errors@1.8.1 + - deps: ms@2.1.3 + - pref: ignore empty http tokens + +1.14.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect response + * deps: send@0.17.1 + - deps: range-parser@~1.2.1 + +1.14.0 / 2019-05-07 +=================== + + * deps: parseurl@~1.3.3 + * deps: send@0.17.0 + - deps: http-errors@~1.7.2 + - deps: mime@1.6.0 + - deps: ms@2.1.1 + - deps: statuses@~1.5.0 + - perf: remove redundant `path.normalize` call + +1.13.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in redirects + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: send@0.16.2 + - deps: depd@~1.1.2 + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + +1.13.1 / 2017-09-29 +=================== + + * Fix regression when `root` is incorrectly set to a file + * deps: send@0.16.1 + +1.13.0 / 2017-09-27 +=================== + + * deps: send@0.16.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Fix missing `` in default error & redirects + - Set charset as "UTF-8" for .js and .json + - Use instance methods on steam to check for listeners + - deps: mime@1.4.1 + - perf: improve path validation speed + +1.12.6 / 2017-09-22 +=================== + + * deps: send@0.15.6 + - deps: debug@2.6.9 + - perf: improve `If-Match` token parsing + * perf: improve slash collapsing + +1.12.5 / 2017-09-21 +=================== + + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + * deps: send@0.15.5 + - Fix handling of modified headers with invalid dates + - deps: etag@~1.8.1 + - deps: fresh@0.5.2 + +1.12.4 / 2017-08-05 +=================== + + * deps: send@0.15.4 + - deps: debug@2.6.8 + - deps: depd@~1.1.1 + - deps: http-errors@~1.6.2 + +1.12.3 / 2017-05-16 +=================== + + * deps: send@0.15.3 + - deps: debug@2.6.7 + +1.12.2 / 2017-04-26 +=================== + + * deps: send@0.15.2 + - deps: debug@2.6.4 + +1.12.1 / 2017-03-04 +=================== + + * deps: send@0.15.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - Fix strict violation in broken environments + +1.12.0 / 2017-02-25 +=================== + + * Send complete HTML document in redirect response + * Set default CSP header in redirect response + * deps: send@0.15.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: debug@2.6.1 + - deps: etag@~1.8.0 + - deps: fresh@0.5.0 + - deps: http-errors@~1.6.1 + +1.11.2 / 2017-01-23 +=================== + + * deps: send@0.14.2 + - deps: http-errors@~1.5.1 + - deps: ms@0.7.2 + - deps: statuses@~1.3.1 + +1.11.1 / 2016-06-10 +=================== + + * Fix redirect error when `req.url` contains raw non-URL characters + * deps: send@0.14.1 + +1.11.0 / 2016-06-07 +=================== + + * Use status code 301 for redirects + * deps: send@0.14.0 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Correctly inherit from `Stream` class + - Fix `Content-Range` header in 416 responses when using `start`/`end` options + - Fix `Content-Range` header missing from default 416 responses + - Ignore non-byte `Range` headers + - deps: http-errors@~1.5.0 + - deps: range-parser@~1.2.0 + - deps: statuses@~1.3.0 + - perf: remove argument reassignment + +1.10.3 / 2016-05-30 +=================== + + * deps: send@0.13.2 + - Fix invalid `Content-Type` header when `send.mime.default_type` unset + +1.10.2 / 2016-01-19 +=================== + + * deps: parseurl@~1.3.1 + - perf: enable strict mode + +1.10.1 / 2016-01-16 +=================== + + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: send@0.13.1 + - deps: depd@~1.1.0 + - deps: destroy@~1.0.4 + - deps: escape-html@~1.0.3 + - deps: range-parser@~1.0.3 + +1.10.0 / 2015-06-17 +=================== + + * Add `fallthrough` option + - Allows declaring this middleware is the final destination + - Provides better integration with Express patterns + * Fix reading options from options prototype + * Improve the default redirect response headers + * deps: escape-html@1.0.2 + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + * perf: enable strict mode + * perf: remove argument reassignment + +1.9.3 / 2015-05-14 +================== + + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + +1.9.2 / 2015-03-14 +================== + + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + +1.9.1 / 2015-02-17 +================== + + * deps: send@0.12.1 + - Fix regression sending zero-length files + +1.9.0 / 2015-02-16 +================== + + * deps: send@0.12.0 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + +1.8.1 / 2015-01-20 +================== + + * Fix redirect loop in Node.js 0.11.14 + * deps: send@0.11.1 + - Fix root path disclosure + +1.8.0 / 2015-01-05 +================== + + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + +1.7.2 / 2015-01-02 +================== + + * Fix potential open redirect when mounted at root + +1.7.1 / 2014-10-22 +================== + + * deps: send@0.10.1 + - deps: on-finished@~2.1.1 + +1.7.0 / 2014-10-15 +================== + + * deps: send@0.10.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + +1.6.5 / 2015-02-04 +================== + + * Fix potential open redirect when mounted at root + - Back-ported from v1.7.2 + +1.6.4 / 2014-10-08 +================== + + * Fix redirect loop when index file serving disabled + +1.6.3 / 2014-09-24 +================== + + * deps: send@0.9.3 + - deps: etag@~1.4.0 + +1.6.2 / 2014-09-15 +================== + + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + +1.6.1 / 2014-09-07 +================== + + * deps: send@0.9.1 + - deps: fresh@0.2.4 + +1.6.0 / 2014-09-07 +================== + + * deps: send@0.9.0 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + +1.5.4 / 2014-09-04 +================== + + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + +1.5.3 / 2014-08-17 +================== + + * deps: send@0.8.3 + +1.5.2 / 2014-08-14 +================== + + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + +1.5.1 / 2014-08-09 +================== + + * Fix parsing of weird `req.originalUrl` values + * deps: parseurl@~1.3.0 + * deps: utils-merge@1.0.0 + +1.5.0 / 2014-08-05 +================== + + * deps: send@0.8.1 + - Add `extensions` option + +1.4.4 / 2014-08-04 +================== + + * deps: send@0.7.4 + - Fix serving index files without root dir + +1.4.3 / 2014-07-29 +================== + + * deps: send@0.7.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + +1.4.2 / 2014-07-27 +================== + + * deps: send@0.7.2 + - deps: depd@0.4.4 + +1.4.1 / 2014-07-26 +================== + + * deps: send@0.7.1 + - deps: depd@0.4.3 + +1.4.0 / 2014-07-21 +================== + + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - deps: debug@1.0.4 + - deps: depd@0.4.2 + +1.3.2 / 2014-07-11 +================== + + * deps: send@0.6.0 + - Cap `maxAge` value to 1 year + - deps: debug@1.0.3 + +1.3.1 / 2014-07-09 +================== + + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + +1.3.0 / 2014-06-28 +================== + + * Add `setHeaders` option + * Include HTML link in redirect response + * deps: send@0.5.0 + - Accept string for `maxAge` (converted by `ms`) + +1.2.3 / 2014-06-11 +================== + + * deps: send@0.4.3 + - Do not throw un-catchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + +1.2.2 / 2014-06-09 +================== + + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: debug@1.0.1 + - deps: finished@1.2.1 + +1.2.1 / 2014-06-02 +================== + + * use `escape-html` for escaping + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + +1.2.0 / 2014-05-29 +================== + + * deps: send@0.4.0 + - Calculate ETag with md5 for reduced collisions + - Fix wrong behavior when index file matches directory + - Ignore stream errors after request ends + - Skip directories in index file search + - deps: debug@0.8.1 + +1.1.0 / 2014-04-24 +================== + + * Accept options directly to `send` module + * deps: send@0.3.0 + +1.0.4 / 2014-04-07 +================== + + * Resolve relative paths at middleware setup + * Use parseurl to parse the URL from request + +1.0.3 / 2014-03-20 +================== + + * Do not rely on connect-like environments + +1.0.2 / 2014-03-06 +================== + + * deps: send@0.2.0 + +1.0.1 / 2014-03-05 +================== + + * Add mime export for back-compat + +1.0.0 / 2014-03-05 +================== + + * Genesis from `connect` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..cbe62e8e7f20b6aa70e4d138b1503837ae4e5f95 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/LICENSE" @@ -0,0 +1,25 @@ +(The MIT License) + +Copyright (c) 2010 Sencha Inc. +Copyright (c) 2011 LearnBoost +Copyright (c) 2011 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..aa943414dd3129acc4cc2e6ba2919817e5383dd9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/README.md" @@ -0,0 +1,257 @@ +# serve-static + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][github-actions-ci-image]][github-actions-ci-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install serve-static +``` + +## API + +```js +var serveStatic = require('serve-static') +``` + +### serveStatic(root, options) + +Create a new middleware function to serve files from within a given root +directory. The file to serve will be determined by combining `req.url` +with the provided root directory. When a file is not found, instead of +sending a 404 response, this module will instead call `next()` to move on +to the next middleware, allowing for stacking and fall-backs. + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + + Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Deny a request for a dotfile and 403/`next()`. + - `'ignore'` Pretend like the dotfile does not exist and 404/`next()`. + +The default value is similar to `'ignore'`, with the exception that this +default will not ignore the files within a directory that begins with a dot. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +Set file extension fallbacks. When set, if a file is not found, the given +extensions will be added to the file name and search for. The first that +exists will be served. Example: `['html', 'htm']`. + +The default value is `false`. + +##### fallthrough + +Set the middleware to have client errors fall-through as just unhandled +requests, otherwise forward a client error. The difference is that client +errors like a bad request or a request to a non-existent file will cause +this middleware to simply `next()` to your next middleware when this value +is `true`. When this value is `false`, these errors (even 404s), will invoke +`next(err)`. + +Typically `true` is desired such that multiple physical directories can be +mapped to the same web address or for routes to fill in non-existent files. + +The value `false` can be used if this middleware is mounted at a path that +is designed to be strictly a single file system directory, which allows for +short-circuiting 404s for less overhead. This middleware will also reply to +all methods. + +The default value is `true`. + +##### immutable + +Enable or disable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default this module will send "index.html" files in response to a request +on a directory. To disable this set `false` or to supply a new index pass a +string or an array in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. This +can also be a string accepted by the [ms](https://www.npmjs.org/package/ms#readme) +module. + +##### redirect + +Redirect to trailing "/" when the pathname is a dir. Defaults to `true`. + +##### setHeaders + +Function to set custom headers on response. Alterations to the headers need to +occur synchronously. The function is called as `fn(res, path, stat)`, where +the arguments are: + + - `res` the response object + - `path` the file path that is being sent + - `stat` the stat object of the file that is being sent + +## Examples + +### Serve files with vanilla node.js http server + +```js +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { index: ['index.html', 'index.htm'] }) + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serve all files as downloads + +```js +var contentDisposition = require('content-disposition') +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { + index: false, + setHeaders: setHeaders +}) + +// Set header to force download +function setHeaders (res, path) { + res.setHeader('Content-Disposition', contentDisposition(path)) +} + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serving using express + +#### Simple + +This is a simple example of using Express. + +```js +var express = require('express') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic('public/ftp', { index: ['default.html', 'default.htm'] })) +app.listen(3000) +``` + +#### Multiple roots + +This example shows a simple way to search through multiple directories. +Files are searched for in `public-optimized/` first, then `public/` second +as a fallback. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public-optimized'))) +app.use(serveStatic(path.join(__dirname, 'public'))) +app.listen(3000) +``` + +#### Different settings for paths + +This example shows how to set a different max age depending on the served +file type. In this example, HTML files are not cached, while everything else +is for 1 day. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public'), { + maxAge: '1d', + setHeaders: setCustomCacheControl +})) + +app.listen(3000) + +function setCustomCacheControl (res, path) { + if (serveStatic.mime.lookup(path) === 'text/html') { + // Custom Cache-Control for HTML files + res.setHeader('Cache-Control', 'public, max-age=0') + } +} +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/serve-static/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/serve-static +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/serve-static/master +[coveralls-url]: https://coveralls.io/r/expressjs/serve-static?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/expressjs/serve-static/master?label=linux +[github-actions-ci-url]: https://github.com/expressjs/serve-static/actions?query=workflow%3Aci +[node-image]: https://badgen.net/npm/node/serve-static +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/serve-static +[npm-url]: https://npmjs.org/package/serve-static +[npm-version-image]: https://badgen.net/npm/v/serve-static diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..b7d3984c447992f39583ddf4d8ecf01ffbb5b6db --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/index.js" @@ -0,0 +1,210 @@ +/*! + * serve-static + * Copyright(c) 2010 Sencha Inc. + * Copyright(c) 2011 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var parseUrl = require('parseurl') +var resolve = require('path').resolve +var send = require('send') +var url = require('url') + +/** + * Module exports. + * @public + */ + +module.exports = serveStatic +module.exports.mime = send.mime + +/** + * @param {string} root + * @param {object} [options] + * @return {function} + * @public + */ + +function serveStatic (root, options) { + if (!root) { + throw new TypeError('root path required') + } + + if (typeof root !== 'string') { + throw new TypeError('root path must be a string') + } + + // copy options object + var opts = Object.create(options || null) + + // fall-though + var fallthrough = opts.fallthrough !== false + + // default redirect + var redirect = opts.redirect !== false + + // headers listener + var setHeaders = opts.setHeaders + + if (setHeaders && typeof setHeaders !== 'function') { + throw new TypeError('option setHeaders must be function') + } + + // setup options for send + opts.maxage = opts.maxage || opts.maxAge || 0 + opts.root = resolve(root) + + // construct directory listener + var onDirectory = redirect + ? createRedirectDirectoryListener() + : createNotFoundDirectoryListener() + + return function serveStatic (req, res, next) { + if (req.method !== 'GET' && req.method !== 'HEAD') { + if (fallthrough) { + return next() + } + + // method not allowed + res.statusCode = 405 + res.setHeader('Allow', 'GET, HEAD') + res.setHeader('Content-Length', '0') + res.end() + return + } + + var forwardError = !fallthrough + var originalUrl = parseUrl.original(req) + var path = parseUrl(req).pathname + + // make sure redirect occurs at mount + if (path === '/' && originalUrl.pathname.substr(-1) !== '/') { + path = '' + } + + // create send stream + var stream = send(req, path, opts) + + // add directory handler + stream.on('directory', onDirectory) + + // add headers listener + if (setHeaders) { + stream.on('headers', setHeaders) + } + + // add file listener for fallthrough + if (fallthrough) { + stream.on('file', function onFile () { + // once file is determined, always forward error + forwardError = true + }) + } + + // forward errors + stream.on('error', function error (err) { + if (forwardError || !(err.statusCode < 500)) { + next(err) + return + } + + next() + }) + + // pipe + stream.pipe(res) + } +} + +/** + * Collapse all leading slashes into a single slash + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) !== 0x2f /* / */) { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
    ' + body + '
    \n' + + '\n' + + '\n' +} + +/** + * Create a directory listener that just 404s. + * @private + */ + +function createNotFoundDirectoryListener () { + return function notFound () { + this.error(404) + } +} + +/** + * Create a directory listener that performs a redirect. + * @private + */ + +function createRedirectDirectoryListener () { + return function redirect (res) { + if (this.hasTrailingSlash()) { + this.error(404) + return + } + + // get original URL + var originalUrl = parseUrl.original(this.req) + + // append trailing slash + originalUrl.path = null + originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/') + + // reformat the URL + var loc = encodeUrl(url.format(originalUrl)) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + + escapeHtml(loc) + '') + + // send redirect response + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..d45bd1558189e1eb860e983011ffd790d82ccd80 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/serve-static/package.json" @@ -0,0 +1,77 @@ +{ + "_from": "serve-static@1.14.2", + "_id": "serve-static@1.14.2", + "_inBundle": false, + "_integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "_location": "/serve-static", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "serve-static@1.14.2", + "name": "serve-static", + "escapedName": "serve-static", + "rawSpec": "1.14.2", + "saveSpec": null, + "fetchSpec": "1.14.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "_shasum": "722d6294b1d62626d41b43a013ece4598d292bfa", + "_spec": "serve-static@1.14.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/expressjs/serve-static/issues" + }, + "bundleDependencies": false, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "deprecated": false, + "description": "Serve static files", + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.1.3", + "nyc": "15.1.0", + "safe-buffer": "5.2.1", + "supertest": "6.1.6" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/expressjs/serve-static#readme", + "license": "MIT", + "name": "serve-static", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/serve-static.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "1.14.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..61afa2f18532ecd749469c7d9bdd15940a852f5f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/LICENSE" @@ -0,0 +1,13 @@ +Copyright (c) 2015, Wes Todd + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..791eeff0c094d51fc53009527cd13884666987ef --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/README.md" @@ -0,0 +1,31 @@ +# Polyfill for `Object.setPrototypeOf` + +[![NPM Version](https://img.shields.io/npm/v/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![NPM Downloads](https://img.shields.io/npm/dm/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/standard/standard) + +A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. + +## Usage: + +``` +$ npm install --save setprototypeof +``` + +```javascript +var setPrototypeOf = require('setprototypeof') + +var obj = {} +setPrototypeOf(obj, { + foo: function () { + return 'bar' + } +}) +obj.foo() // bar +``` + +TypeScript is also supported: + +```typescript +import setPrototypeOf from 'setprototypeof' +``` diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/index.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/index.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..f108ecd0a8ca1ec609529d3a0b76106c48e418a0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/index.d.ts" @@ -0,0 +1,2 @@ +declare function setPrototypeOf(o: any, proto: object | null): any; +export = setPrototypeOf; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..c5270551e93921ccd9eda9ce2b33e54490e57f05 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/index.js" @@ -0,0 +1,17 @@ +'use strict' +/* eslint no-proto: 0 */ +module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) + +function setProtoOf (obj, proto) { + obj.__proto__ = proto + return obj +} + +function mixinProperties (obj, proto) { + for (var prop in proto) { + if (!Object.prototype.hasOwnProperty.call(obj, prop)) { + obj[prop] = proto[prop] + } + } + return obj +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..8da13781a7e153558755460dd384be7976635d47 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/package.json" @@ -0,0 +1,66 @@ +{ + "_from": "setprototypeof@1.2.0", + "_id": "setprototypeof@1.2.0", + "_inBundle": false, + "_integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "_location": "/setprototypeof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "setprototypeof@1.2.0", + "name": "setprototypeof", + "escapedName": "setprototypeof", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/express", + "/http-errors" + ], + "_resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "_shasum": "66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424", + "_spec": "setprototypeof@1.2.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Wes Todd" + }, + "bugs": { + "url": "https://github.com/wesleytodd/setprototypeof/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A small polyfill for Object.setprototypeof", + "devDependencies": { + "mocha": "^6.1.4", + "standard": "^13.0.2" + }, + "homepage": "https://github.com/wesleytodd/setprototypeof", + "keywords": [ + "polyfill", + "object", + "setprototypeof" + ], + "license": "ISC", + "main": "index.js", + "name": "setprototypeof", + "repository": { + "type": "git", + "url": "git+https://github.com/wesleytodd/setprototypeof.git" + }, + "scripts": { + "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion", + "node11": "NODE_VER=11 npm run testversion", + "node4": "NODE_VER=4 npm run testversion", + "node6": "NODE_VER=6 npm run testversion", + "node9": "NODE_VER=9 npm run testversion", + "postpublish": "git push origin && git push origin --tags", + "prepublishOnly": "npm t", + "test": "standard && mocha", + "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11", + "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t" + }, + "typings": "index.d.ts", + "version": "1.2.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/test/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/test/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..afeb4ddb2921824491502d0f68a0a3a44cf28aa1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/setprototypeof/test/index.js" @@ -0,0 +1,24 @@ +'use strict' +/* eslint-env mocha */ +/* eslint no-proto: 0 */ +var assert = require('assert') +var setPrototypeOf = require('..') + +describe('setProtoOf(obj, proto)', function () { + it('should merge objects', function () { + var obj = { a: 1, b: 2 } + var proto = { b: 3, c: 4 } + var mergeObj = setPrototypeOf(obj, proto) + + if (Object.getPrototypeOf) { + assert.strictEqual(Object.getPrototypeOf(obj), proto) + } else if ({ __proto__: [] } instanceof Array) { + assert.strictEqual(obj.__proto__, proto) + } else { + assert.strictEqual(obj.a, 1) + assert.strictEqual(obj.b, 2) + assert.strictEqual(obj.c, 4) + } + assert.strictEqual(mergeObj, obj) + }) +}) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..e2c7e51fdcc2045d77d879ff7d21a8bb528f44a1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/HISTORY.md" @@ -0,0 +1,43 @@ +2.3.1 / 2018-02-24 +================== + + * Fix incorrectly replacing non-placeholders in SQL + +2.3.0 / 2017-10-01 +================== + + * Add `.toSqlString()` escape overriding + * Add `raw` method to wrap raw strings for escape overriding + * Small performance improvement on `escapeId` + +2.2.0 / 2016-11-01 +================== + + * Escape invalid `Date` objects as `NULL` + +2.1.0 / 2016-09-26 +================== + + * Accept numbers and other value types in `escapeId` + * Run `buffer.toString()` through escaping + +2.0.1 / 2016-06-06 +================== + + * Fix npm package to include missing `lib/` directory + +2.0.0 / 2016-06-06 +================== + + * Bring repository up-to-date with `mysql` module changes + * Support Node.js 0.6.x + +1.0.0 / 2014-11-09 +================== + + * Support Node.js 0.8.x + +0.0.1 / 2014-02-25 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..c7ff12a2f8af2e2c57f39da1754409c25b35f46a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/LICENSE" @@ -0,0 +1,19 @@ +Copyright (c) 2012 Felix Geisend枚rfer (felix@debuggable.com) and contributors + + 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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..fafe6f4b58addfeff1c6bb48a3ea0e1c9c8e95ec --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/README.md" @@ -0,0 +1,206 @@ +# sqlstring + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Simple SQL escape and format for MySQL + +## Install + +```sh +$ npm install sqlstring +``` + +## Usage + + + +```js +var SqlString = require('sqlstring'); +``` + +### Escaping query values + +**Caution** These methods of escaping values only works when the +[NO_BACKSLASH_ESCAPES](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_backslash_escapes) +SQL mode is disabled (which is the default state for MySQL servers). + +In order to avoid SQL Injection attacks, you should always escape any user +provided data before using it inside a SQL query. You can do so using the +`SqlString.escape()` method: + +```js +var userId = 'some user provided value'; +var sql = 'SELECT * FROM users WHERE id = ' + SqlString.escape(userId); +console.log(sql); // SELECT * FROM users WHERE id = 'some user provided value' +``` + +Alternatively, you can use `?` characters as placeholders for values you would +like to have escaped like this: + +```js +var userId = 1; +var sql = SqlString.format('SELECT * FROM users WHERE id = ?', [userId]); +console.log(sql); // SELECT * FROM users WHERE id = 1 +``` + +Multiple placeholders are mapped to values in the same order as passed. For example, +in the following query `foo` equals `a`, `bar` equals `b`, `baz` equals `c`, and +`id` will be `userId`: + +```js +var userId = 1; +var sql = SqlString.format('UPDATE users SET foo = ?, bar = ?, baz = ? WHERE id = ?', + ['a', 'b', 'c', userId]); +console.log(sql); // UPDATE users SET foo = 'a', bar = 'b', baz = 'c' WHERE id = 1 +``` + +This looks similar to prepared statements in MySQL, however it really just uses +the same `SqlString.escape()` method internally. + +**Caution** This also differs from prepared statements in that all `?` are +replaced, even those contained in comments and strings. + +Different value types are escaped differently, here is how: + +* Numbers are left untouched +* Booleans are converted to `true` / `false` +* Date objects are converted to `'YYYY-mm-dd HH:ii:ss'` strings +* Buffers are converted to hex strings, e.g. `X'0fa5'` +* Strings are safely escaped +* Arrays are turned into list, e.g. `['a', 'b']` turns into `'a', 'b'` +* Nested arrays are turned into grouped lists (for bulk inserts), e.g. `[['a', + 'b'], ['c', 'd']]` turns into `('a', 'b'), ('c', 'd')` +* Objects that have a `toSqlString` method will have `.toSqlString()` called + and the returned value is used as the raw SQL. +* Objects are turned into `key = 'val'` pairs for each enumerable property on + the object. If the property's value is a function, it is skipped; if the + property's value is an object, toString() is called on it and the returned + value is used. +* `undefined` / `null` are converted to `NULL` +* `NaN` / `Infinity` are left as-is. MySQL does not support these, and trying + to insert them as values will trigger MySQL errors until they implement + support. + +You may have noticed that this escaping allows you to do neat things like this: + +```js +var post = {id: 1, title: 'Hello MySQL'}; +var sql = SqlString.format('INSERT INTO posts SET ?', post); +console.log(sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL' +``` + +And the `toSqlString` method allows you to form complex queries with functions: + +```js +var CURRENT_TIMESTAMP = { toSqlString: function() { return 'CURRENT_TIMESTAMP()'; } }; +var sql = SqlString.format('UPDATE posts SET modified = ? WHERE id = ?', [CURRENT_TIMESTAMP, 42]); +console.log(sql); // UPDATE posts SET modified = CURRENT_TIMESTAMP() WHERE id = 42 +``` + +To generate objects with a `toSqlString` method, the `SqlString.raw()` method can +be used. This creates an object that will be left un-touched when using in a `?` +placeholder, useful for using functions as dynamic values: + +**Caution** The string provided to `SqlString.raw()` will skip all escaping +functions when used, so be careful when passing in unvalidated input. + +```js +var CURRENT_TIMESTAMP = SqlString.raw('CURRENT_TIMESTAMP()'); +var sql = SqlString.format('UPDATE posts SET modified = ? WHERE id = ?', [CURRENT_TIMESTAMP, 42]); +console.log(sql); // UPDATE posts SET modified = CURRENT_TIMESTAMP() WHERE id = 42 +``` + +If you feel the need to escape queries by yourself, you can also use the escaping +function directly: + +```js +var sql = 'SELECT * FROM posts WHERE title=' + SqlString.escape('Hello MySQL'); +console.log(sql); // SELECT * FROM posts WHERE title='Hello MySQL' +``` + +### Escaping query identifiers + +If you can't trust an SQL identifier (database / table / column name) because it is +provided by a user, you should escape it with `SqlString.escapeId(identifier)` like this: + +```js +var sorter = 'date'; +var sql = 'SELECT * FROM posts ORDER BY ' + SqlString.escapeId(sorter); +console.log(sql); // SELECT * FROM posts ORDER BY `date` +``` + +It also supports adding qualified identifiers. It will escape both parts. + +```js +var sorter = 'date'; +var sql = 'SELECT * FROM posts ORDER BY ' + SqlString.escapeId('posts.' + sorter); +console.log(sql); // SELECT * FROM posts ORDER BY `posts`.`date` +``` + +If you do not want to treat `.` as qualified identifiers, you can set the second +argument to `true` in order to keep the string as a literal identifier: + +```js +var sorter = 'date.2'; +var sql = 'SELECT * FROM posts ORDER BY ' + SqlString.escapeId(sorter, true); +console.log(sql); // SELECT * FROM posts ORDER BY `date.2` +``` + +Alternatively, you can use `??` characters as placeholders for identifiers you would +like to have escaped like this: + +```js +var userId = 1; +var columns = ['username', 'email']; +var sql = SqlString.format('SELECT ?? FROM ?? WHERE id = ?', [columns, 'users', userId]); +console.log(sql); // SELECT `username`, `email` FROM `users` WHERE id = 1 +``` +**Please note that this last character sequence is experimental and syntax might change** + +When you pass an Object to `.escape()` or `.format()`, `.escapeId()` is used to avoid SQL injection in object keys. + +### Formatting queries + +You can use `SqlString.format` to prepare a query with multiple insertion points, +utilizing the proper escaping for ids and values. A simple example of this follows: + +```js +var userId = 1; +var inserts = ['users', 'id', userId]; +var sql = SqlString.format('SELECT * FROM ?? WHERE ?? = ?', inserts); +console.log(sql); // SELECT * FROM `users` WHERE `id` = 1 +``` + +Following this you then have a valid, escaped query that you can then send to the database safely. +This is useful if you are looking to prepare the query before actually sending it to the database. +You also have the option (but are not required) to pass in `stringifyObject` and `timeZone`, +allowing you provide a custom means of turning objects into strings, as well as a +location-specific/timezone-aware `Date`. + +This can be further combined with the `SqlString.raw()` helper to generate SQL +that includes MySQL functions as dynamic vales: + +```js +var userId = 1; +var data = { email: 'foobar@example.com', modified: SqlString.raw('NOW()') }; +var sql = SqlString.format('UPDATE ?? SET ? WHERE `id` = ?', ['users', data, userId]); +console.log(sql); // UPDATE `users` SET `email` = 'foobar@example.com', `modified` = NOW() WHERE `id` = 1 +``` + +## License + +[MIT](LICENSE) + +[npm-version-image]: https://img.shields.io/npm/v/sqlstring.svg +[npm-downloads-image]: https://img.shields.io/npm/dm/sqlstring.svg +[npm-url]: https://npmjs.org/package/sqlstring +[travis-image]: https://img.shields.io/travis/mysqljs/sqlstring/master.svg +[travis-url]: https://travis-ci.org/mysqljs/sqlstring +[coveralls-image]: https://img.shields.io/coveralls/mysqljs/sqlstring/master.svg +[coveralls-url]: https://coveralls.io/r/mysqljs/sqlstring?branch=master +[node-image]: https://img.shields.io/node/v/sqlstring.svg +[node-url]: https://nodejs.org/en/download diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..4ef5944ef471391f9e82627b9e395b394fae8ea4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/index.js" @@ -0,0 +1 @@ +module.exports = require('./lib/SqlString'); diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/lib/SqlString.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/lib/SqlString.js" new file mode 100644 index 0000000000000000000000000000000000000000..419adec0d787c96832b47b94ecde884c89585206 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/lib/SqlString.js" @@ -0,0 +1,237 @@ +var SqlString = exports; + +var ID_GLOBAL_REGEXP = /`/g; +var QUAL_GLOBAL_REGEXP = /\./g; +var CHARS_GLOBAL_REGEXP = /[\0\b\t\n\r\x1a\"\'\\]/g; // eslint-disable-line no-control-regex +var CHARS_ESCAPE_MAP = { + '\0' : '\\0', + '\b' : '\\b', + '\t' : '\\t', + '\n' : '\\n', + '\r' : '\\r', + '\x1a' : '\\Z', + '"' : '\\"', + '\'' : '\\\'', + '\\' : '\\\\' +}; + +SqlString.escapeId = function escapeId(val, forbidQualified) { + if (Array.isArray(val)) { + var sql = ''; + + for (var i = 0; i < val.length; i++) { + sql += (i === 0 ? '' : ', ') + SqlString.escapeId(val[i], forbidQualified); + } + + return sql; + } else if (forbidQualified) { + return '`' + String(val).replace(ID_GLOBAL_REGEXP, '``') + '`'; + } else { + return '`' + String(val).replace(ID_GLOBAL_REGEXP, '``').replace(QUAL_GLOBAL_REGEXP, '`.`') + '`'; + } +}; + +SqlString.escape = function escape(val, stringifyObjects, timeZone) { + if (val === undefined || val === null) { + return 'NULL'; + } + + switch (typeof val) { + case 'boolean': return (val) ? 'true' : 'false'; + case 'number': return val + ''; + case 'object': + if (val instanceof Date) { + return SqlString.dateToString(val, timeZone || 'local'); + } else if (Array.isArray(val)) { + return SqlString.arrayToList(val, timeZone); + } else if (Buffer.isBuffer(val)) { + return SqlString.bufferToString(val); + } else if (typeof val.toSqlString === 'function') { + return String(val.toSqlString()); + } else if (stringifyObjects) { + return escapeString(val.toString()); + } else { + return SqlString.objectToValues(val, timeZone); + } + default: return escapeString(val); + } +}; + +SqlString.arrayToList = function arrayToList(array, timeZone) { + var sql = ''; + + for (var i = 0; i < array.length; i++) { + var val = array[i]; + + if (Array.isArray(val)) { + sql += (i === 0 ? '' : ', ') + '(' + SqlString.arrayToList(val, timeZone) + ')'; + } else { + sql += (i === 0 ? '' : ', ') + SqlString.escape(val, true, timeZone); + } + } + + return sql; +}; + +SqlString.format = function format(sql, values, stringifyObjects, timeZone) { + if (values == null) { + return sql; + } + + if (!(values instanceof Array || Array.isArray(values))) { + values = [values]; + } + + var chunkIndex = 0; + var placeholdersRegex = /\?+/g; + var result = ''; + var valuesIndex = 0; + var match; + + while (valuesIndex < values.length && (match = placeholdersRegex.exec(sql))) { + var len = match[0].length; + + if (len > 2) { + continue; + } + + var value = len === 2 + ? SqlString.escapeId(values[valuesIndex]) + : SqlString.escape(values[valuesIndex], stringifyObjects, timeZone); + + result += sql.slice(chunkIndex, match.index) + value; + chunkIndex = placeholdersRegex.lastIndex; + valuesIndex++; + } + + if (chunkIndex === 0) { + // Nothing was replaced + return sql; + } + + if (chunkIndex < sql.length) { + return result + sql.slice(chunkIndex); + } + + return result; +}; + +SqlString.dateToString = function dateToString(date, timeZone) { + var dt = new Date(date); + + if (isNaN(dt.getTime())) { + return 'NULL'; + } + + var year; + var month; + var day; + var hour; + var minute; + var second; + var millisecond; + + if (timeZone === 'local') { + year = dt.getFullYear(); + month = dt.getMonth() + 1; + day = dt.getDate(); + hour = dt.getHours(); + minute = dt.getMinutes(); + second = dt.getSeconds(); + millisecond = dt.getMilliseconds(); + } else { + var tz = convertTimezone(timeZone); + + if (tz !== false && tz !== 0) { + dt.setTime(dt.getTime() + (tz * 60000)); + } + + year = dt.getUTCFullYear(); + month = dt.getUTCMonth() + 1; + day = dt.getUTCDate(); + hour = dt.getUTCHours(); + minute = dt.getUTCMinutes(); + second = dt.getUTCSeconds(); + millisecond = dt.getUTCMilliseconds(); + } + + // YYYY-MM-DD HH:mm:ss.mmm + var str = zeroPad(year, 4) + '-' + zeroPad(month, 2) + '-' + zeroPad(day, 2) + ' ' + + zeroPad(hour, 2) + ':' + zeroPad(minute, 2) + ':' + zeroPad(second, 2) + '.' + + zeroPad(millisecond, 3); + + return escapeString(str); +}; + +SqlString.bufferToString = function bufferToString(buffer) { + return 'X' + escapeString(buffer.toString('hex')); +}; + +SqlString.objectToValues = function objectToValues(object, timeZone) { + var sql = ''; + + for (var key in object) { + var val = object[key]; + + if (typeof val === 'function') { + continue; + } + + sql += (sql.length === 0 ? '' : ', ') + SqlString.escapeId(key) + ' = ' + SqlString.escape(val, true, timeZone); + } + + return sql; +}; + +SqlString.raw = function raw(sql) { + if (typeof sql !== 'string') { + throw new TypeError('argument sql must be a string'); + } + + return { + toSqlString: function toSqlString() { return sql; } + }; +}; + +function escapeString(val) { + var chunkIndex = CHARS_GLOBAL_REGEXP.lastIndex = 0; + var escapedVal = ''; + var match; + + while ((match = CHARS_GLOBAL_REGEXP.exec(val))) { + escapedVal += val.slice(chunkIndex, match.index) + CHARS_ESCAPE_MAP[match[0]]; + chunkIndex = CHARS_GLOBAL_REGEXP.lastIndex; + } + + if (chunkIndex === 0) { + // Nothing was escaped + return "'" + val + "'"; + } + + if (chunkIndex < val.length) { + return "'" + escapedVal + val.slice(chunkIndex) + "'"; + } + + return "'" + escapedVal + "'"; +} + +function zeroPad(number, length) { + number = number.toString(); + while (number.length < length) { + number = '0' + number; + } + + return number; +} + +function convertTimezone(tz) { + if (tz === 'Z') { + return 0; + } + + var m = tz.match(/([\+\-\s])(\d\d):?(\d\d)?/); + if (m) { + return (m[1] === '-' ? -1 : 1) * (parseInt(m[2], 10) + ((m[3] ? parseInt(m[3], 10) : 0) / 60)) * 60; + } + return false; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..2b89edc1c5e4e89c642ed14141d84e21b426cb45 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/sqlstring/package.json" @@ -0,0 +1,98 @@ +{ + "_from": "sqlstring@2.3.1", + "_id": "sqlstring@2.3.1", + "_inBundle": false, + "_integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=", + "_location": "/sqlstring", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sqlstring@2.3.1", + "name": "sqlstring", + "escapedName": "sqlstring", + "rawSpec": "2.3.1", + "saveSpec": null, + "fetchSpec": "2.3.1" + }, + "_requiredBy": [ + "/mysql" + ], + "_resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "_shasum": "475393ff9e91479aea62dcaf0ca3d14983a7fb40", + "_spec": "sqlstring@2.3.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\mysql", + "bugs": { + "url": "https://github.com/mysqljs/sqlstring/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Adri Van Houdt", + "email": "adri.van.houdt@gmail.com" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "fengmk2", + "email": "fengmk2@gmail.com", + "url": "http://fengmk2.github.com" + }, + { + "name": "Kevin Jose Martin", + "email": "kevin@tiliq.com" + }, + { + "name": "Nathan Woltman", + "email": "nwoltman@outlook.com" + }, + { + "name": "Sergej Sintschilin", + "email": "seregpie@gmail.com" + } + ], + "deprecated": false, + "description": "Simple SQL escape and format for MySQL", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "4.18.1", + "eslint-plugin-markdown": "1.0.0-beta.6", + "nyc": "10.3.2", + "urun": "0.0.8", + "utest": "0.0.8" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "lib/", + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/mysqljs/sqlstring#readme", + "keywords": [ + "sqlstring", + "sql", + "escape", + "sql escape" + ], + "license": "MIT", + "name": "sqlstring", + "repository": { + "type": "git", + "url": "git+https://github.com/mysqljs/sqlstring.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "node test/run.js", + "test-ci": "nyc --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "2.3.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..a1977b297d754b7926ed31eb4434b536c0dc1a8d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/HISTORY.md" @@ -0,0 +1,65 @@ +1.5.0 / 2018-03-27 +================== + + * Add `103 Early Hints` + +1.4.0 / 2017-10-20 +================== + + * Add `STATUS_CODES` export + +1.3.1 / 2016-11-11 +================== + + * Fix return type in JSDoc + +1.3.0 / 2016-05-17 +================== + + * Add `421 Misdirected Request` + * perf: enable strict mode + +1.2.1 / 2015-02-01 +================== + + * Fix message for status 451 + - `451 Unavailable For Legal Reasons` + +1.2.0 / 2014-09-28 +================== + + * Add `208 Already Repored` + * Add `226 IM Used` + * Add `306 (Unused)` + * Add `415 Unable For Legal Reasons` + * Add `508 Loop Detected` + +1.1.1 / 2014-09-24 +================== + + * Add missing 308 to `codes.json` + +1.1.0 / 2014-09-21 +================== + + * Add `codes.json` for universal support + +1.0.4 / 2014-08-20 +================== + + * Package cleanup + +1.0.3 / 2014-06-08 +================== + + * Add 308 to `.redirect` category + +1.0.2 / 2014-03-13 +================== + + * Add `.retry` category + +1.0.1 / 2014-03-12 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..28a31618205d7dbeed5b966fe9d2c682bd9367f5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/LICENSE" @@ -0,0 +1,23 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2016 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..0fe5720dbee18484942ab0f3a81782c8275abc48 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/README.md" @@ -0,0 +1,127 @@ +# Statuses + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +HTTP status utility for node. + +This module provides a list of status codes and messages sourced from +a few different projects: + + * The [IANA Status Code Registry](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) + * The [Node.js project](https://nodejs.org/) + * The [NGINX project](https://www.nginx.com/) + * The [Apache HTTP Server project](https://httpd.apache.org/) + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install statuses +``` + +## API + + + +```js +var status = require('statuses') +``` + +### var code = status(Integer || String) + +If `Integer` or `String` is a valid HTTP code or status message, then the +appropriate `code` will be returned. Otherwise, an error will be thrown. + + + +```js +status(403) // => 403 +status('403') // => 403 +status('forbidden') // => 403 +status('Forbidden') // => 403 +status(306) // throws, as it's not supported by node.js +``` + +### status.STATUS_CODES + +Returns an object which maps status codes to status messages, in +the same format as the +[Node.js http module](https://nodejs.org/dist/latest/docs/api/http.html#http_http_status_codes). + +### status.codes + +Returns an array of all the status codes as `Integer`s. + +### var msg = status[code] + +Map of `code` to `status message`. `undefined` for invalid `code`s. + + + +```js +status[404] // => 'Not Found' +``` + +### var code = status[msg] + +Map of `status message` to `code`. `msg` can either be title-cased or +lower-cased. `undefined` for invalid `status message`s. + + + +```js +status['not found'] // => 404 +status['Not Found'] // => 404 +``` + +### status.redirect[code] + +Returns `true` if a status code is a valid redirect status. + + + +```js +status.redirect[200] // => undefined +status.redirect[301] // => true +``` + +### status.empty[code] + +Returns `true` if a status code expects an empty body. + + + +```js +status.empty[200] // => undefined +status.empty[204] // => true +status.empty[304] // => true +``` + +### status.retry[code] + +Returns `true` if you should retry the rest. + + + +```js +status.retry[501] // => undefined +status.retry[503] // => true +``` + +[npm-image]: https://img.shields.io/npm/v/statuses.svg +[npm-url]: https://npmjs.org/package/statuses +[node-version-image]: https://img.shields.io/node/v/statuses.svg +[node-version-url]: https://nodejs.org/en/download +[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg +[travis-url]: https://travis-ci.org/jshttp/statuses +[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg +[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master +[downloads-image]: https://img.shields.io/npm/dm/statuses.svg +[downloads-url]: https://npmjs.org/package/statuses diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/codes.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/codes.json" new file mode 100644 index 0000000000000000000000000000000000000000..a09283a2784dbbfd1f6b6c8270e2498f8cf82817 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/codes.json" @@ -0,0 +1,66 @@ +{ + "100": "Continue", + "101": "Switching Protocols", + "102": "Processing", + "103": "Early Hints", + "200": "OK", + "201": "Created", + "202": "Accepted", + "203": "Non-Authoritative Information", + "204": "No Content", + "205": "Reset Content", + "206": "Partial Content", + "207": "Multi-Status", + "208": "Already Reported", + "226": "IM Used", + "300": "Multiple Choices", + "301": "Moved Permanently", + "302": "Found", + "303": "See Other", + "304": "Not Modified", + "305": "Use Proxy", + "306": "(Unused)", + "307": "Temporary Redirect", + "308": "Permanent Redirect", + "400": "Bad Request", + "401": "Unauthorized", + "402": "Payment Required", + "403": "Forbidden", + "404": "Not Found", + "405": "Method Not Allowed", + "406": "Not Acceptable", + "407": "Proxy Authentication Required", + "408": "Request Timeout", + "409": "Conflict", + "410": "Gone", + "411": "Length Required", + "412": "Precondition Failed", + "413": "Payload Too Large", + "414": "URI Too Long", + "415": "Unsupported Media Type", + "416": "Range Not Satisfiable", + "417": "Expectation Failed", + "418": "I'm a teapot", + "421": "Misdirected Request", + "422": "Unprocessable Entity", + "423": "Locked", + "424": "Failed Dependency", + "425": "Unordered Collection", + "426": "Upgrade Required", + "428": "Precondition Required", + "429": "Too Many Requests", + "431": "Request Header Fields Too Large", + "451": "Unavailable For Legal Reasons", + "500": "Internal Server Error", + "501": "Not Implemented", + "502": "Bad Gateway", + "503": "Service Unavailable", + "504": "Gateway Timeout", + "505": "HTTP Version Not Supported", + "506": "Variant Also Negotiates", + "507": "Insufficient Storage", + "508": "Loop Detected", + "509": "Bandwidth Limit Exceeded", + "510": "Not Extended", + "511": "Network Authentication Required" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..4df469a05d1a293ac67077f149f17b24ff49d2b1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/index.js" @@ -0,0 +1,113 @@ +/*! + * statuses + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var codes = require('./codes.json') + +/** + * Module exports. + * @public + */ + +module.exports = status + +// status code to message map +status.STATUS_CODES = codes + +// array of status codes +status.codes = populateStatusesMap(status, codes) + +// status codes for redirects +status.redirect = { + 300: true, + 301: true, + 302: true, + 303: true, + 305: true, + 307: true, + 308: true +} + +// status codes for empty bodies +status.empty = { + 204: true, + 205: true, + 304: true +} + +// status codes for when you should retry the request +status.retry = { + 502: true, + 503: true, + 504: true +} + +/** + * Populate the statuses map for given codes. + * @private + */ + +function populateStatusesMap (statuses, codes) { + var arr = [] + + Object.keys(codes).forEach(function forEachCode (code) { + var message = codes[code] + var status = Number(code) + + // Populate properties + statuses[status] = message + statuses[message] = status + statuses[message.toLowerCase()] = status + + // Add to array + arr.push(status) + }) + + return arr +} + +/** + * Get the status code. + * + * Given a number, this will throw if it is not a known status + * code, otherwise the code will be returned. Given a string, + * the string will be parsed for a number and return the code + * if valid, otherwise will lookup the code assuming this is + * the status message. + * + * @param {string|number} code + * @returns {number} + * @public + */ + +function status (code) { + if (typeof code === 'number') { + if (!status[code]) throw new Error('invalid status code: ' + code) + return code + } + + if (typeof code !== 'string') { + throw new TypeError('code must be a number or string') + } + + // '403' + var n = parseInt(code, 10) + if (!isNaN(n)) { + if (!status[n]) throw new Error('invalid status code: ' + n) + return n + } + + n = status[code.toLowerCase()] + if (!n) throw new Error('invalid status message: "' + code + '"') + return n +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..cb60722d91d396d8ba13215b1e72591a1fb4a34f --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/statuses/package.json" @@ -0,0 +1,90 @@ +{ + "_from": "statuses@~1.5.0", + "_id": "statuses@1.5.0", + "_inBundle": false, + "_integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "_location": "/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "statuses@~1.5.0", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "~1.5.0", + "saveSpec": null, + "fetchSpec": "~1.5.0" + }, + "_requiredBy": [ + "/express", + "/finalhandler", + "/http-errors", + "/send" + ], + "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "_shasum": "161c7dac177659fd9811f43771fa99381478628c", + "_spec": "statuses@~1.5.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "HTTP status utility", + "devDependencies": { + "csv-parse": "1.2.4", + "eslint": "4.19.1", + "eslint-config-standard": "11.0.0", + "eslint-plugin-import": "2.9.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "1.21.5", + "raw-body": "2.3.2", + "stream-to-array": "2.3.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, + "scripts": { + "build": "node scripts/build.js", + "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "update": "npm run fetch && npm run build" + }, + "version": "1.5.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/.travis.yml" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/.travis.yml" new file mode 100644 index 0000000000000000000000000000000000000000..3347a7254650582da5339323466f84fe079fc270 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/.travis.yml" @@ -0,0 +1,50 @@ +sudo: false +language: node_js +before_install: + - npm install -g npm@2 + - test $NPM_LEGACY && npm install -g npm@latest-3 || npm install npm -g +notifications: + email: false +matrix: + fast_finish: true + include: + - node_js: '0.8' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: '0.10' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: '0.11' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: '0.12' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 1 + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 2 + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 3 + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 4 + env: TASK=test + - node_js: 5 + env: TASK=test + - node_js: 6 + env: TASK=test + - node_js: 7 + env: TASK=test + - node_js: 8 + env: TASK=test + - node_js: 9 + env: TASK=test diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..778edb20730ef48c01002248f4d51e7752c13487 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/LICENSE" @@ -0,0 +1,48 @@ +Node.js is licensed for use as follows: + +""" +Copyright Node.js contributors. All rights reserved. + +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node contributors. All rights reserved. +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. +""" + diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..5fd58315ed588027742dde690a31cd0a2610649d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/README.md" @@ -0,0 +1,47 @@ +# string_decoder + +***Node-core v8.9.4 string_decoder for userland*** + + +[![NPM](https://nodei.co/npm/string_decoder.png?downloads=true&downloadRank=true)](https://nodei.co/npm/string_decoder/) +[![NPM](https://nodei.co/npm-dl/string_decoder.png?&months=6&height=3)](https://nodei.co/npm/string_decoder/) + + +```bash +npm install --save string_decoder +``` + +***Node-core string_decoder for userland*** + +This package is a mirror of the string_decoder implementation in Node-core. + +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.9.4/docs/api/). + +As of version 1.0.0 **string_decoder** uses semantic versioning. + +## Previous versions + +Previous version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. + +## Update + +The *build/* directory contains a build script that will scrape the source from the [nodejs/node](https://github.com/nodejs/node) repo given a specific Node version. + +## Streams Working Group + +`string_decoder` is maintained by the Streams Working Group, which +oversees the development and maintenance of the Streams API within +Node.js. The responsibilities of the Streams Working Group include: + +* Addressing stream issues on the Node.js issue tracker. +* Authoring and editing stream documentation within the Node.js project. +* Reviewing changes to stream subclasses within the Node.js project. +* Redirecting changes to streams from the Node.js project to this + project. +* Assisting in the implementation of stream providers within Node.js. +* Recommending versions of `readable-stream` to be included in Node.js. +* Messaging about the future of streams to give the community advance + notice of changes. + +See [readable-stream](https://github.com/nodejs/readable-stream) for +more details. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/lib/string_decoder.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/lib/string_decoder.js" new file mode 100644 index 0000000000000000000000000000000000000000..2e89e63f7933e42b8ba543ede35d2a8fa3e4f100 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/lib/string_decoder.js" @@ -0,0 +1,296 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +'use strict'; + +/**/ + +var Buffer = require('safe-buffer').Buffer; +/**/ + +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': + return true; + default: + return false; + } +}; + +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } +}; + +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; +} + +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.StringDecoder = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); +} + +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; + +StringDecoder.prototype.end = utf8End; + +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; + +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; +}; + +// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a +// continuation byte. If an invalid byte is detected, -2 is returned. +function utf8CheckByte(byte) { + if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return byte >> 6 === 0x02 ? -1 : -2; +} + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; + } + return 0; +} + +// Validates as many continuation bytes for a multi-byte UTF-8 character as +// needed or are available. If we see a non-continuation byte where we expect +// one, we "replace" the validated continuation bytes we've seen so far with +// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding +// behavior. The continuation byte check is included three times in the case +// where all of the continuation bytes for a character exist in the same buffer. +// It is also done this way as a slight performance increase instead of using a +// loop. +function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return '\ufffd'; + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'; + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'; + } + } + } +} + +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character is added when ending on a partial +// character. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'; + return r; +} + +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); +} + +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; +} + +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString('base64', i, buf.length - n); +} + +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; +} + +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} + +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..0c068ceecbd48fc4e8279e6451793fec2bf12178 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/LICENSE" @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..e9a81afd0406f030ba21169f0c7a1dba70b3a93b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/README.md" @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a t茅st'); +console.log(buf1.toString()); + // prints: this is a t茅st +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a t茅st +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts" new file mode 100644 index 0000000000000000000000000000000000000000..e9fed809a5ab515658d6e71f7ba5f631be769be4 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts" @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..22438dabbbceef6954a1a7a68038f8c440a90c79 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/index.js" @@ -0,0 +1,62 @@ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..a8c31598b51f7136840487a8062de3469893379c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/node_modules/safe-buffer/package.json" @@ -0,0 +1,62 @@ +{ + "_from": "safe-buffer@~5.1.0", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "_location": "/string_decoder/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "safe-buffer@~5.1.0", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "~5.1.0", + "saveSpec": null, + "fetchSpec": "~5.1.0" + }, + "_requiredBy": [ + "/string_decoder" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", + "_spec": "safe-buffer@~5.1.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\string_decoder", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..fb17744693ef6261b23116aba790be96fd768fce --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/string_decoder/package.json" @@ -0,0 +1,59 @@ +{ + "_from": "string_decoder@~1.1.1", + "_id": "string_decoder@1.1.1", + "_inBundle": false, + "_integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "_location": "/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "string_decoder@~1.1.1", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "~1.1.1", + "saveSpec": null, + "fetchSpec": "~1.1.1" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "_shasum": "9cf1611ba62685d7030ae9e4ba34149c3af03fc8", + "_spec": "string_decoder@~1.1.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\readable-stream", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, + "bundleDependencies": false, + "dependencies": { + "safe-buffer": "~5.1.0" + }, + "deprecated": false, + "description": "The string_decoder module from Node core", + "devDependencies": { + "babel-polyfill": "^6.23.0", + "core-util-is": "^1.0.2", + "inherits": "^2.0.3", + "tap": "~0.4.8" + }, + "homepage": "https://github.com/nodejs/string_decoder", + "keywords": [ + "string", + "decoder", + "browser", + "browserify" + ], + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.1.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..cb7cc8927a64ac5d213480e3fba1b0d3dcbba3f6 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/HISTORY.md" @@ -0,0 +1,9 @@ +1.0.1 / 2021-11-14 +================== + + * pref: enable strict mode + +1.0.0 / 2018-07-09 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..de22d1597600c04a9a62ffa597463413baf741fb --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/LICENSE" @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..57e8a78ab5218e7d424eabde5b6865997a14f500 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/README.md" @@ -0,0 +1,61 @@ +# toidentifier + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][codecov-image]][codecov-url] + +> Convert a string of words to a JavaScript identifier + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install toidentifier +``` + +## Example + +```js +var toIdentifier = require('toidentifier') + +console.log(toIdentifier('Bad Request')) +// => "BadRequest" +``` + +## API + +This CommonJS module exports a single default function: `toIdentifier`. + +### toIdentifier(string) + +Given a string as the argument, it will be transformed according to +the following rules and the new string will be returned: + +1. Split into words separated by space characters (`0x20`). +2. Upper case the first character of each word. +3. Join the words together with no separator. +4. Remove all non-word (`[0-9a-z_]`) characters. + +## License + +[MIT](LICENSE) + +[codecov-image]: https://img.shields.io/codecov/c/github/component/toidentifier.svg +[codecov-url]: https://codecov.io/gh/component/toidentifier +[downloads-image]: https://img.shields.io/npm/dm/toidentifier.svg +[downloads-url]: https://npmjs.org/package/toidentifier +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/component/toidentifier/ci/master?label=ci +[github-actions-ci-url]: https://github.com/component/toidentifier?query=workflow%3Aci +[npm-image]: https://img.shields.io/npm/v/toidentifier.svg +[npm-url]: https://npmjs.org/package/toidentifier + + +## + +[npm]: https://www.npmjs.com/ + +[yarn]: https://yarnpkg.com/ diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..9295d024a8c94ee27b3e2b437769599ac5f2b65d --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/index.js" @@ -0,0 +1,32 @@ +/*! + * toidentifier + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = toIdentifier + +/** + * Trasform the given string into a JavaScript identifier + * + * @param {string} str + * @returns {string} + * @public + */ + +function toIdentifier (str) { + return str + .split(' ') + .map(function (token) { + return token.slice(0, 1).toUpperCase() + token.slice(1) + }) + .join('') + .replace(/[^ _0-9a-z]/gi, '') +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..a32040b7e87f12c2292859eab94b10daffba7fc5 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/toidentifier/package.json" @@ -0,0 +1,80 @@ +{ + "_from": "toidentifier@1.0.1", + "_id": "toidentifier@1.0.1", + "_inBundle": false, + "_integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "_location": "/toidentifier", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "toidentifier@1.0.1", + "name": "toidentifier", + "escapedName": "toidentifier", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/http-errors" + ], + "_resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "_shasum": "3be34321a88a820ed1bd80dfaa33e479fbb8dd35", + "_spec": "toidentifier@1.0.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\http-errors", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/component/toidentifier/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Nick Baugh", + "email": "niftylettuce@gmail.com", + "url": "http://niftylettuce.com/" + } + ], + "deprecated": false, + "description": "Convert a string of words to a JavaScript identifier", + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.1.3", + "nyc": "15.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/component/toidentifier#readme", + "license": "MIT", + "name": "toidentifier", + "repository": { + "type": "git", + "url": "git+https://github.com/component/toidentifier.git" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "1.0.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..8de21f7ae6f8de94d8c8b00fbf8c3017247077ff --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/HISTORY.md" @@ -0,0 +1,259 @@ +1.6.18 / 2019-04-26 +=================== + + * Fix regression passing request object to `typeis.is` + +1.6.17 / 2019-04-25 +=================== + + * deps: mime-types@~2.1.24 + - Add Apple file extensions from IANA + - Add extension `.csl` to `application/vnd.citationstyles.style+xml` + - Add extension `.es` to `application/ecmascript` + - Add extension `.nq` to `application/n-quads` + - Add extension `.nt` to `application/n-triples` + - Add extension `.owl` to `application/rdf+xml` + - Add extensions `.siv` and `.sieve` to `application/sieve` + - Add extensions from IANA for `image/*` types + - Add extensions from IANA for `model/*` types + - Add extensions to HEIC image types + - Add new mime types + - Add `text/mdx` with extension `.mdx` + * perf: prevent internal `throw` on invalid type + +1.6.16 / 2018-02-16 +=================== + + * deps: mime-types@~2.1.18 + - Add `application/raml+yaml` with extension `.raml` + - Add `application/wasm` with extension `.wasm` + - Add `text/shex` with extension `.shex` + - Add extensions for JPEG-2000 images + - Add extensions from IANA for `message/*` types + - Add extension `.mjs` to `application/javascript` + - Add extension `.wadl` to `application/vnd.sun.wadl+xml` + - Add extension `.gz` to `application/gzip` + - Add glTF types and extensions + - Add new mime types + - Update extensions `.md` and `.markdown` to be `text/markdown` + - Update font MIME types + - Update `text/hjson` to registered `application/hjson` + +1.6.15 / 2017-03-31 +=================== + + * deps: mime-types@~2.1.15 + - Add new mime types + +1.6.14 / 2016-11-18 +=================== + + * deps: mime-types@~2.1.13 + - Add new mime types + +1.6.13 / 2016-05-18 +=================== + + * deps: mime-types@~2.1.11 + - Add new mime types + +1.6.12 / 2016-02-28 +=================== + + * deps: mime-types@~2.1.10 + - Add new mime types + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + +1.6.11 / 2016-01-29 +=================== + + * deps: mime-types@~2.1.9 + - Add new mime types + +1.6.10 / 2015-12-01 +=================== + + * deps: mime-types@~2.1.8 + - Add new mime types + +1.6.9 / 2015-09-27 +================== + + * deps: mime-types@~2.1.7 + - Add new mime types + +1.6.8 / 2015-09-04 +================== + + * deps: mime-types@~2.1.6 + - Add new mime types + +1.6.7 / 2015-08-20 +================== + + * Fix type error when given invalid type to match against + * deps: mime-types@~2.1.5 + - Add new mime types + +1.6.6 / 2015-07-31 +================== + + * deps: mime-types@~2.1.4 + - Add new mime types + +1.6.5 / 2015-07-16 +================== + + * deps: mime-types@~2.1.3 + - Add new mime types + +1.6.4 / 2015-07-01 +================== + + * deps: mime-types@~2.1.2 + - Add new mime types + * perf: enable strict mode + * perf: remove argument reassignment + +1.6.3 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - Add new mime types + * perf: reduce try block size + * perf: remove bitwise operations + +1.6.2 / 2015-05-10 +================== + + * deps: mime-types@~2.0.11 + - Add new mime types + +1.6.1 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - Add new mime types + +1.6.0 / 2015-02-12 +================== + + * fix false-positives in `hasBody` `Transfer-Encoding` check + * support wildcard for both type and subtype (`*/*`) + +1.5.7 / 2015-02-09 +================== + + * fix argument reassignment + * deps: mime-types@~2.0.9 + - Add new mime types + +1.5.6 / 2015-01-29 +================== + + * deps: mime-types@~2.0.8 + - Add new mime types + +1.5.5 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - Add new mime types + - Fix missing extensions + - Fix various invalid MIME type entries + - Remove example template MIME types + - deps: mime-db@~1.5.0 + +1.5.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - Add new mime types + - deps: mime-db@~1.3.0 + +1.5.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - Add new mime types + - deps: mime-db@~1.2.0 + +1.5.2 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - Add new mime types + - deps: mime-db@~1.1.0 + +1.5.1 / 2014-09-07 +================== + + * Support Node.js 0.6 + * deps: media-typer@0.3.0 + * deps: mime-types@~2.0.1 + - Support Node.js 0.6 + +1.5.0 / 2014-09-05 +================== + + * fix `hasbody` to be true for `content-length: 0` + +1.4.0 / 2014-09-02 +================== + + * update mime-types + +1.3.2 / 2014-06-24 +================== + + * use `~` range on mime-types + +1.3.1 / 2014-06-19 +================== + + * fix global variable leak + +1.3.0 / 2014-06-19 +================== + + * improve type parsing + + - invalid media type never matches + - media type not case-sensitive + - extra LWS does not affect results + +1.2.2 / 2014-06-19 +================== + + * fix behavior on unknown type argument + +1.2.1 / 2014-06-03 +================== + + * switch dependency from `mime` to `mime-types@1.0.0` + +1.2.0 / 2014-05-11 +================== + + * support suffix matching: + + - `+json` matches `application/vnd+json` + - `*/vnd+json` matches `application/vnd+json` + - `application/*+json` matches `application/vnd+json` + +1.1.0 / 2014-04-12 +================== + + * add non-array values support + * expose internal utilities: + + - `.is()` + - `.hasBody()` + - `.normalize()` + - `.match()` + +1.0.1 / 2014-03-30 +================== + + * add `multipart` as a shorthand diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..386b7b6946e47bc46f8138791049b4e6a7cef889 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/LICENSE" @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..b85ef8f78ff14113fe26b3a04bf82c3d07f88a73 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/README.md" @@ -0,0 +1,170 @@ +# type-is + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Infer the content-type of a request. + +### Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install type-is +``` + +## API + +```js +var http = require('http') +var typeis = require('type-is') + +http.createServer(function (req, res) { + var istext = typeis(req, ['text/*']) + res.end('you ' + (istext ? 'sent' : 'did not send') + ' me text') +}) +``` + +### typeis(request, types) + +Checks if the `request` is one of the `types`. If the request has no body, +even if there is a `Content-Type` header, then `null` is returned. If the +`Content-Type` header is invalid or does not matches any of the `types`, then +`false` is returned. Otherwise, a string of the type that matched is returned. + +The `request` argument is expected to be a Node.js HTTP request. The `types` +argument is an array of type strings. + +Each type in the `types` array can be one of the following: + +- A file extension name such as `json`. This name will be returned if matched. +- A mime type such as `application/json`. +- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. + The full mime type will be returned if matched. +- A suffix such as `+json`. This can be combined with a wildcard such as + `*/vnd+json` or `application/*+json`. The full mime type will be returned + if matched. + +Some examples to illustrate the inputs and returned value: + + + +```js +// req.headers.content-type = 'application/json' + +typeis(req, ['json']) // => 'json' +typeis(req, ['html', 'json']) // => 'json' +typeis(req, ['application/*']) // => 'application/json' +typeis(req, ['application/json']) // => 'application/json' + +typeis(req, ['html']) // => false +``` + +### typeis.hasBody(request) + +Returns a Boolean if the given `request` has a body, regardless of the +`Content-Type` header. + +Having a body has no relation to how large the body is (it may be 0 bytes). +This is similar to how file existence works. If a body does exist, then this +indicates that there is data to read from the Node.js request stream. + + + +```js +if (typeis.hasBody(req)) { + // read the body, since there is one + + req.on('data', function (chunk) { + // ... + }) +} +``` + +### typeis.is(mediaType, types) + +Checks if the `mediaType` is one of the `types`. If the `mediaType` is invalid +or does not matches any of the `types`, then `false` is returned. Otherwise, a +string of the type that matched is returned. + +The `mediaType` argument is expected to be a +[media type](https://tools.ietf.org/html/rfc6838) string. The `types` argument +is an array of type strings. + +Each type in the `types` array can be one of the following: + +- A file extension name such as `json`. This name will be returned if matched. +- A mime type such as `application/json`. +- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. + The full mime type will be returned if matched. +- A suffix such as `+json`. This can be combined with a wildcard such as + `*/vnd+json` or `application/*+json`. The full mime type will be returned + if matched. + +Some examples to illustrate the inputs and returned value: + + + +```js +var mediaType = 'application/json' + +typeis.is(mediaType, ['json']) // => 'json' +typeis.is(mediaType, ['html', 'json']) // => 'json' +typeis.is(mediaType, ['application/*']) // => 'application/json' +typeis.is(mediaType, ['application/json']) // => 'application/json' + +typeis.is(mediaType, ['html']) // => false +``` + +## Examples + +### Example body parser + +```js +var express = require('express') +var typeis = require('type-is') + +var app = express() + +app.use(function bodyParser (req, res, next) { + if (!typeis.hasBody(req)) { + return next() + } + + switch (typeis(req, ['urlencoded', 'json', 'multipart'])) { + case 'urlencoded': + // parse urlencoded body + throw new Error('implement urlencoded body parsing') + case 'json': + // parse json body + throw new Error('implement json body parsing') + case 'multipart': + // parse multipart body + throw new Error('implement multipart body parsing') + default: + // 415 error code + res.statusCode = 415 + res.end() + break + } +}) +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/type-is/master +[coveralls-url]: https://coveralls.io/r/jshttp/type-is?branch=master +[node-version-image]: https://badgen.net/npm/node/type-is +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/type-is +[npm-url]: https://npmjs.org/package/type-is +[npm-version-image]: https://badgen.net/npm/v/type-is +[travis-image]: https://badgen.net/travis/jshttp/type-is/master +[travis-url]: https://travis-ci.org/jshttp/type-is diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..890ad76c7eb990c75e4601becab263df961318fb --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/index.js" @@ -0,0 +1,266 @@ +/*! + * type-is + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var typer = require('media-typer') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = typeofrequest +module.exports.is = typeis +module.exports.hasBody = hasbody +module.exports.normalize = normalize +module.exports.match = mimeMatch + +/** + * Compare a `value` content-type with `types`. + * Each `type` can be an extension like `html`, + * a special shortcut like `multipart` or `urlencoded`, + * or a mime type. + * + * If no types match, `false` is returned. + * Otherwise, the first `type` that matches is returned. + * + * @param {String} value + * @param {Array} types + * @public + */ + +function typeis (value, types_) { + var i + var types = types_ + + // remove parameters and normalize + var val = tryNormalizeType(value) + + // no type or invalid + if (!val) { + return false + } + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1) + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1] + } + } + + // no types, return the content type + if (!types || !types.length) { + return val + } + + var type + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === '+' || type.indexOf('*') !== -1 + ? val + : type + } + } + + // no matches + return false +} + +/** + * Check if a request has a request body. + * A request with a body __must__ either have `transfer-encoding` + * or `content-length` headers set. + * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3 + * + * @param {Object} request + * @return {Boolean} + * @public + */ + +function hasbody (req) { + return req.headers['transfer-encoding'] !== undefined || + !isNaN(req.headers['content-length']) +} + +/** + * Check if the incoming request contains the "Content-Type" + * header field, and it contains any of the give mime `type`s. + * If there is no request body, `null` is returned. + * If there is no content type, `false` is returned. + * Otherwise, it returns the first `type` that matches. + * + * Examples: + * + * // With Content-Type: text/html; charset=utf-8 + * this.is('html'); // => 'html' + * this.is('text/html'); // => 'text/html' + * this.is('text/*', 'application/json'); // => 'text/html' + * + * // When Content-Type is application/json + * this.is('json', 'urlencoded'); // => 'json' + * this.is('application/json'); // => 'application/json' + * this.is('html', 'application/*'); // => 'application/json' + * + * this.is('html'); // => false + * + * @param {String|Array} types... + * @return {String|false|null} + * @public + */ + +function typeofrequest (req, types_) { + var types = types_ + + // no body + if (!hasbody(req)) { + return null + } + + // support flattened arguments + if (arguments.length > 2) { + types = new Array(arguments.length - 1) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i + 1] + } + } + + // request content type + var value = req.headers['content-type'] + + return typeis(value, types) +} + +/** + * Normalize a mime type. + * If it's a shorthand, expand it to a valid mime type. + * + * In general, you probably want: + * + * var type = is(req, ['urlencoded', 'json', 'multipart']); + * + * Then use the appropriate body parsers. + * These three are the most common request body types + * and are thus ensured to work. + * + * @param {String} type + * @private + */ + +function normalize (type) { + if (typeof type !== 'string') { + // invalid type + return false + } + + switch (type) { + case 'urlencoded': + return 'application/x-www-form-urlencoded' + case 'multipart': + return 'multipart/*' + } + + if (type[0] === '+') { + // "+json" -> "*/*+json" expando + return '*/*' + type + } + + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if `expected` mime type + * matches `actual` mime type with + * wildcard and +suffix support. + * + * @param {String} expected + * @param {String} actual + * @return {Boolean} + * @private + */ + +function mimeMatch (expected, actual) { + // invalid type + if (expected === false) { + return false + } + + // split types + var actualParts = actual.split('/') + var expectedParts = expected.split('/') + + // invalid format + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false + } + + // validate type + if (expectedParts[0] !== '*' && expectedParts[0] !== actualParts[0]) { + return false + } + + // validate suffix wildcard + if (expectedParts[1].substr(0, 2) === '*+') { + return expectedParts[1].length <= actualParts[1].length + 1 && + expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length) + } + + // validate subtype + if (expectedParts[1] !== '*' && expectedParts[1] !== actualParts[1]) { + return false + } + + return true +} + +/** + * Normalize a type and remove parameters. + * + * @param {string} value + * @return {string} + * @private + */ + +function normalizeType (value) { + // parse the type + var type = typer.parse(value) + + // remove the parameters + type.parameters = undefined + + // reformat it + return typer.format(type) +} + +/** + * Try to normalize a type and remove parameters. + * + * @param {string} value + * @return {string} + * @private + */ + +function tryNormalizeType (value) { + if (!value) { + return null + } + + try { + return normalizeType(value) + } catch (err) { + return null + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..0531d22fd4ddfa28ea8daa1bb2556703961b12c1 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/type-is/package.json" @@ -0,0 +1,85 @@ +{ + "_from": "type-is@~1.6.18", + "_id": "type-is@1.6.18", + "_inBundle": false, + "_integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "_location": "/type-is", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "type-is@~1.6.18", + "name": "type-is", + "escapedName": "type-is", + "rawSpec": "~1.6.18", + "saveSpec": null, + "fetchSpec": "~1.6.18" + }, + "_requiredBy": [ + "/body-parser", + "/express" + ], + "_resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "_shasum": "4e552cd05df09467dcbc4ef739de89f2cf37c131", + "_spec": "type-is@~1.6.18", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/type-is/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "deprecated": false, + "description": "Infer the content-type of a request.", + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.0.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/type-is#readme", + "keywords": [ + "content", + "type", + "checking" + ], + "license": "MIT", + "name": "type-is", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/type-is.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "version": "1.6.18" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..85e0f8d747dc2a960e1ae6640c8bf081631ac0ec --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/HISTORY.md" @@ -0,0 +1,4 @@ +1.0.0 / 2015-06-14 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..aed0138278a940d6e7b2d43903e04eee233b957e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..e536ad2c045bba26e9d1f93202a44833656adfad --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/README.md" @@ -0,0 +1,43 @@ +# unpipe + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Unpipe a stream from all destinations. + +## Installation + +```sh +$ npm install unpipe +``` + +## API + +```js +var unpipe = require('unpipe') +``` + +### unpipe(stream) + +Unpipes all destinations from a given stream. With stream 2+, this is +equivalent to `stream.unpipe()`. When used with streams 1 style streams +(typically Node.js 0.8 and below), this module attempts to undo the +actions done in `stream.pipe(dest)`. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/unpipe.svg +[npm-url]: https://npmjs.org/package/unpipe +[node-image]: https://img.shields.io/node/v/unpipe.svg +[node-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg +[travis-url]: https://travis-ci.org/stream-utils/unpipe +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg +[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master +[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg +[downloads-url]: https://npmjs.org/package/unpipe diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..15c3d97a12b484c2a1c9735e24c952c3079876d0 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/index.js" @@ -0,0 +1,69 @@ +/*! + * unpipe + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = unpipe + +/** + * Determine if there are Node.js pipe-like data listeners. + * @private + */ + +function hasPipeDataListeners(stream) { + var listeners = stream.listeners('data') + + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].name === 'ondata') { + return true + } + } + + return false +} + +/** + * Unpipe a stream from all destinations. + * + * @param {object} stream + * @public + */ + +function unpipe(stream) { + if (!stream) { + throw new TypeError('argument stream is required') + } + + if (typeof stream.unpipe === 'function') { + // new-style + stream.unpipe() + return + } + + // Node.js 0.8 hack + if (!hasPipeDataListeners(stream)) { + return + } + + var listener + var listeners = stream.listeners('close') + + for (var i = 0; i < listeners.length; i++) { + listener = listeners[i] + + if (listener.name !== 'cleanup' && listener.name !== 'onclose') { + continue + } + + // invoke the listener + listener.call(stream) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..b5d5bb32963b6425d8a2f5fa59243611dde39fb9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/unpipe/package.json" @@ -0,0 +1,63 @@ +{ + "_from": "unpipe@1.0.0", + "_id": "unpipe@1.0.0", + "_inBundle": false, + "_integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "_location": "/unpipe", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unpipe@1.0.0", + "name": "unpipe", + "escapedName": "unpipe", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/finalhandler", + "/raw-body" + ], + "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", + "_spec": "unpipe@1.0.0", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\raw-body", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/unpipe/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Unpipe a stream from all destinations", + "devDependencies": { + "istanbul": "0.3.15", + "mocha": "2.2.5", + "readable-stream": "1.1.13" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/stream-utils/unpipe#readme", + "license": "MIT", + "name": "unpipe", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/unpipe.git" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.0.0" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/History.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/History.md" new file mode 100644 index 0000000000000000000000000000000000000000..acc8675372e980824723cfcfec09c0ba43a3195a --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/History.md" @@ -0,0 +1,16 @@ + +1.0.2 / 2015-10-07 +================== + + * use try/catch when checking `localStorage` (#3, @kumavis) + +1.0.1 / 2014-11-25 +================== + + * browser: use `console.warn()` for deprecation calls + * browser: more jsdocs + +1.0.0 / 2014-04-30 +================== + + * initial commit diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..6a60e8c225c9baca25907f87c74b428e5d85de0c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/LICENSE" @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2014 Nathan Rajlich + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..75622fa7c250a6605f4778d9dffe97bf60291d17 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/README.md" @@ -0,0 +1,53 @@ +util-deprecate +============== +### The Node.js `util.deprecate()` function with browser support + +In Node.js, this module simply re-exports the `util.deprecate()` function. + +In the web browser (i.e. via browserify), a browser-specific implementation +of the `util.deprecate()` function is used. + + +## API + +A `deprecate()` function is the only thing exposed by this module. + +``` javascript +// setup: +exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead'); + + +// users see: +foo(); +// foo() is deprecated, use bar() instead +foo(); +foo(); +``` + + +## License + +(The MIT License) + +Copyright (c) 2014 Nathan Rajlich + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/browser.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/browser.js" new file mode 100644 index 0000000000000000000000000000000000000000..549ae2f065ea5add2c4b3667e412a9d0e7d2b1af --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/browser.js" @@ -0,0 +1,67 @@ + +/** + * Module exports. + */ + +module.exports = deprecate; + +/** + * Mark that a method should not be used. + * Returns a modified function which warns once by default. + * + * If `localStorage.noDeprecation = true` is set, then it is a no-op. + * + * If `localStorage.throwDeprecation = true` is set, then deprecated functions + * will throw an Error when invoked. + * + * If `localStorage.traceDeprecation = true` is set, then deprecated functions + * will invoke `console.trace()` instead of `console.error()`. + * + * @param {Function} fn - the function to deprecate + * @param {String} msg - the string to print to the console when `fn` is invoked + * @returns {Function} a new "deprecated" version of `fn` + * @api public + */ + +function deprecate (fn, msg) { + if (config('noDeprecation')) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (config('throwDeprecation')) { + throw new Error(msg); + } else if (config('traceDeprecation')) { + console.trace(msg); + } else { + console.warn(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +} + +/** + * Checks `localStorage` for boolean values for the given `name`. + * + * @param {String} name + * @returns {Boolean} + * @api private + */ + +function config (name) { + // accessing global.localStorage can trigger a DOMException in sandboxed iframes + try { + if (!global.localStorage) return false; + } catch (_) { + return false; + } + var val = global.localStorage[name]; + if (null == val) return false; + return String(val).toLowerCase() === 'true'; +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/node.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/node.js" new file mode 100644 index 0000000000000000000000000000000000000000..5e6fcff5ddd3fbf8bdda6310c224114d30b7509e --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/node.js" @@ -0,0 +1,6 @@ + +/** + * For Node.js, simply re-export the core `util.deprecate` function. + */ + +module.exports = require('util').deprecate; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..871ba60e84c9584559d355685dcac0c61ba17810 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/util-deprecate/package.json" @@ -0,0 +1,56 @@ +{ + "_from": "util-deprecate@~1.0.1", + "_id": "util-deprecate@1.0.2", + "_inBundle": false, + "_integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "_location": "/util-deprecate", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "util-deprecate@~1.0.1", + "name": "util-deprecate", + "escapedName": "util-deprecate", + "rawSpec": "~1.0.1", + "saveSpec": null, + "fetchSpec": "~1.0.1" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "_shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "_spec": "util-deprecate@~1.0.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\readable-stream", + "author": { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io/" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/TooTallNate/util-deprecate/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "The Node.js `util.deprecate()` function with browser support", + "homepage": "https://github.com/TooTallNate/util-deprecate", + "keywords": [ + "util", + "deprecate", + "browserify", + "browser", + "node" + ], + "license": "MIT", + "main": "node.js", + "name": "util-deprecate", + "repository": { + "type": "git", + "url": "git://github.com/TooTallNate/util-deprecate.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/.npmignore" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/.npmignore" new file mode 100644 index 0000000000000000000000000000000000000000..3e53844186447e50779e1a5d63835e7fb7b134ce --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/.npmignore" @@ -0,0 +1,9 @@ +CONTRIBUTING.md +Makefile +docs/ +examples/ +reports/ +test/ + +.jshintrc +.travis.yml diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..76f6d083db5f4d381a91b89f6ff437e10d1a0fb8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/LICENSE" @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013-2017 Jared Hanson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..0cb71171255f78b087185dba6e09f7bb6a74dd98 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/README.md" @@ -0,0 +1,34 @@ +# utils-merge + +[![Version](https://img.shields.io/npm/v/utils-merge.svg?label=version)](https://www.npmjs.com/package/utils-merge) +[![Build](https://img.shields.io/travis/jaredhanson/utils-merge.svg)](https://travis-ci.org/jaredhanson/utils-merge) +[![Quality](https://img.shields.io/codeclimate/github/jaredhanson/utils-merge.svg?label=quality)](https://codeclimate.com/github/jaredhanson/utils-merge) +[![Coverage](https://img.shields.io/coveralls/jaredhanson/utils-merge.svg)](https://coveralls.io/r/jaredhanson/utils-merge) +[![Dependencies](https://img.shields.io/david/jaredhanson/utils-merge.svg)](https://david-dm.org/jaredhanson/utils-merge) + + +Merges the properties from a source object into a destination object. + +## Install + +```bash +$ npm install utils-merge +``` + +## Usage + +```javascript +var a = { foo: 'bar' } + , b = { bar: 'baz' }; + +merge(a, b); +// => { foo: 'bar', bar: 'baz' } +``` + +## License + +[The MIT License](http://opensource.org/licenses/MIT) + +Copyright (c) 2013-2017 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> + + Sponsor diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..4265c694fec6f4eb174612ee434c3ab7da8e40fa --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/index.js" @@ -0,0 +1,23 @@ +/** + * Merge object b with object a. + * + * var a = { foo: 'bar' } + * , b = { bar: 'baz' }; + * + * merge(a, b); + * // => { foo: 'bar', bar: 'baz' } + * + * @param {Object} a + * @param {Object} b + * @return {Object} + * @api public + */ + +exports = module.exports = function(a, b){ + if (a && b) { + for (var key in b) { + a[key] = b[key]; + } + } + return a; +}; diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..abb03e9613016e8b195a58472e6e4b36218fad31 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/utils-merge/package.json" @@ -0,0 +1,66 @@ +{ + "_from": "utils-merge@1.0.1", + "_id": "utils-merge@1.0.1", + "_inBundle": false, + "_integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "_location": "/utils-merge", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "utils-merge@1.0.1", + "name": "utils-merge", + "escapedName": "utils-merge", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "_shasum": "9f95710f50a267947b2ccc124741c1028427e713", + "_spec": "utils-merge@1.0.1", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Jared Hanson", + "email": "jaredhanson@gmail.com", + "url": "http://www.jaredhanson.net/" + }, + "bugs": { + "url": "http://github.com/jaredhanson/utils-merge/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "merge() utility function", + "devDependencies": { + "chai": "1.x.x", + "make-node": "0.3.x", + "mocha": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + }, + "homepage": "https://github.com/jaredhanson/utils-merge#readme", + "keywords": [ + "util" + ], + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "http://opensource.org/licenses/MIT" + } + ], + "main": "./index", + "name": "utils-merge", + "repository": { + "type": "git", + "url": "git://github.com/jaredhanson/utils-merge.git" + }, + "scripts": { + "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js" + }, + "version": "1.0.1" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/HISTORY.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/HISTORY.md" new file mode 100644 index 0000000000000000000000000000000000000000..f6cbcf7f9be9d45391c5e4e14d02541f59087351 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/HISTORY.md" @@ -0,0 +1,39 @@ +1.1.2 / 2017-09-23 +================== + + * perf: improve header token parsing speed + +1.1.1 / 2017-03-20 +================== + + * perf: hoist regular expression + +1.1.0 / 2015-09-29 +================== + + * Only accept valid field names in the `field` argument + - Ensures the resulting string is a valid HTTP header value + +1.0.1 / 2015-07-08 +================== + + * Fix setting empty header from empty `field` + * perf: enable strict mode + * perf: remove argument reassignments + +1.0.0 / 2014-08-10 +================== + + * Accept valid `Vary` header string as `field` + * Add `vary.append` for low-level string manipulation + * Move to `jshttp` orgainzation + +0.1.0 / 2014-06-05 +================== + + * Support array of fields to set + +0.0.0 / 2014-06-04 +================== + + * Initial release diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/LICENSE" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/LICENSE" new file mode 100644 index 0000000000000000000000000000000000000000..84441fbb5709262c2bfc9b5ff0166ad4f024a1b8 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/LICENSE" @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +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. diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/README.md" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/README.md" new file mode 100644 index 0000000000000000000000000000000000000000..cc000b34684a1d0b03d4c4cb4fac3e1094a81eec --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/README.md" @@ -0,0 +1,101 @@ +# vary + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Manipulate the HTTP Vary header + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install vary +``` + +## API + + + +```js +var vary = require('vary') +``` + +### vary(res, field) + +Adds the given header `field` to the `Vary` response header of `res`. +This can be a string of a single field, a string of a valid `Vary` +header, or an array of multiple fields. + +This will append the header if not already listed, otherwise leaves +it listed in the current location. + + + +```js +// Append "Origin" to the Vary header of the response +vary(res, 'Origin') +``` + +### vary.append(header, field) + +Adds the given header `field` to the `Vary` response header string `header`. +This can be a string of a single field, a string of a valid `Vary` header, +or an array of multiple fields. + +This will append the header if not already listed, otherwise leaves +it listed in the current location. The new header string is returned. + + + +```js +// Get header string appending "Origin" to "Accept, User-Agent" +vary.append('Accept, User-Agent', 'Origin') +``` + +## Examples + +### Updating the Vary header when content is based on it + +```js +var http = require('http') +var vary = require('vary') + +http.createServer(function onRequest (req, res) { + // about to user-agent sniff + vary(res, 'User-Agent') + + var ua = req.headers['user-agent'] || '' + var isMobile = /mobi|android|touch|mini/i.test(ua) + + // serve site, depending on isMobile + res.setHeader('Content-Type', 'text/html') + res.end('You are (probably) ' + (isMobile ? '' : 'not ') + 'a mobile user') +}) +``` + +## Testing + +```sh +$ npm test +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/vary.svg +[npm-url]: https://npmjs.org/package/vary +[node-version-image]: https://img.shields.io/node/v/vary.svg +[node-version-url]: https://nodejs.org/en/download +[travis-image]: https://img.shields.io/travis/jshttp/vary/master.svg +[travis-url]: https://travis-ci.org/jshttp/vary +[coveralls-image]: https://img.shields.io/coveralls/jshttp/vary/master.svg +[coveralls-url]: https://coveralls.io/r/jshttp/vary +[downloads-image]: https://img.shields.io/npm/dm/vary.svg +[downloads-url]: https://npmjs.org/package/vary diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/index.js" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..5b5e741279d4b800b0c408c5efbac8de6ece450b --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/index.js" @@ -0,0 +1,149 @@ +/*! + * vary + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + */ + +module.exports = vary +module.exports.append = append + +/** + * RegExp to match field-name in RFC 7230 sec 3.2 + * + * field-name = token + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + */ + +var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/ + +/** + * Append a field to a vary header. + * + * @param {String} header + * @param {String|Array} field + * @return {String} + * @public + */ + +function append (header, field) { + if (typeof header !== 'string') { + throw new TypeError('header argument is required') + } + + if (!field) { + throw new TypeError('field argument is required') + } + + // get fields array + var fields = !Array.isArray(field) + ? parse(String(field)) + : field + + // assert on invalid field names + for (var j = 0; j < fields.length; j++) { + if (!FIELD_NAME_REGEXP.test(fields[j])) { + throw new TypeError('field argument contains an invalid header name') + } + } + + // existing, unspecified vary + if (header === '*') { + return header + } + + // enumerate current values + var val = header + var vals = parse(header.toLowerCase()) + + // unspecified vary + if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) { + return '*' + } + + for (var i = 0; i < fields.length; i++) { + var fld = fields[i].toLowerCase() + + // append value (case-preserving) + if (vals.indexOf(fld) === -1) { + vals.push(fld) + val = val + ? val + ', ' + fields[i] + : fields[i] + } + } + + return val +} + +/** + * Parse a vary header into an array. + * + * @param {String} header + * @return {Array} + * @private + */ + +function parse (header) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = header.length; i < len; i++) { + switch (header.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + list.push(header.substring(start, end)) + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + list.push(header.substring(start, end)) + + return list +} + +/** + * Mark that a request is varied on a header field. + * + * @param {Object} res + * @param {String|Array} field + * @public + */ + +function vary (res, field) { + if (!res || !res.getHeader || !res.setHeader) { + // quack quack + throw new TypeError('res argument is required') + } + + // get existing header + var val = res.getHeader('Vary') || '' + var header = Array.isArray(val) + ? val.join(', ') + : String(val) + + // set new header + if ((val = append(header, field))) { + res.setHeader('Vary', val) + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..47247168f9d0973f92191d7066ca031f6f3a9bb6 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/node_modules/vary/package.json" @@ -0,0 +1,78 @@ +{ + "_from": "vary@~1.1.2", + "_id": "vary@1.1.2", + "_inBundle": false, + "_integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "_location": "/vary", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "vary@~1.1.2", + "name": "vary", + "escapedName": "vary", + "rawSpec": "~1.1.2", + "saveSpec": null, + "fetchSpec": "~1.1.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "_shasum": "2299f02c6ded30d4a5961b0b9f74524a18f634fc", + "_spec": "vary@~1.1.2", + "_where": "C:\\Users\\Administrator\\Desktop\\鐧诲綍椤甸潰\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/vary/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Manipulate the HTTP Vary header", + "devDependencies": { + "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", + "eslint": "3.19.0", + "eslint-config-standard": "10.2.1", + "eslint-plugin-import": "2.7.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "5.1.1", + "eslint-plugin-promise": "3.5.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "2.5.3", + "supertest": "1.1.0" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/vary#readme", + "keywords": [ + "http", + "res", + "vary" + ], + "license": "MIT", + "name": "vary", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/vary.git" + }, + "scripts": { + "bench": "node benchmark/index.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.1.2" +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/package-lock.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/package-lock.json" new file mode 100644 index 0000000000000000000000000000000000000000..cf3738348b5b473786738fe9f2e7e4681d1bfa1c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/package-lock.json" @@ -0,0 +1,458 @@ +{ + "name": "a", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "requires": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/package.json" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..3131a256043c13d3ae270fffe42a31684beb3712 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/js/package.json" @@ -0,0 +1,15 @@ +{ + "name": "a", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "express": "^4.17.3", + "mysql": "^2.18.1" + } +} diff --git "a/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/massage.sql" "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/massage.sql" new file mode 100644 index 0000000000000000000000000000000000000000..b9abac59c6c22a288bee212b5bf6bca63f77efd2 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\231\273\345\275\225\351\241\265\351\235\2423.31/\347\231\273\345\275\225\351\241\265\351\235\242/massage.sql" @@ -0,0 +1,34 @@ +/* +Navicat MySQL Data Transfer + +Source Server : yanyan +Source Server Version : 50730 +Source Host : 127.0.0.1:3306 +Source Database : students + +Target Server Type : MYSQL +Target Server Version : 50730 +File Encoding : 65001 + +Date: 2022-03-20 15:55:56 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for massage +-- ---------------------------- +DROP TABLE IF EXISTS `massage`; +CREATE TABLE `massage` ( + `id` int(255) NOT NULL, + `username` varchar(255) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of massage +-- ---------------------------- +INSERT INTO `massage` VALUES ('1', '寮犱笁', '123456'); +INSERT INTO `massage` VALUES ('2', '鏉庡洓', '456789'); +INSERT INTO `massage` VALUES ('3', '鐜嬩簲', '123789'); diff --git "a/\344\275\234\344\270\232/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232 3.28/demo01.html" "b/\344\275\234\344\270\232/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232 3.28/demo01.html" new file mode 100644 index 0000000000000000000000000000000000000000..094974df64c459c88ab8361374367fb2aa9bb631 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232 3.28/demo01.html" @@ -0,0 +1,33 @@ + + + + + + Document + + + + +
    +
    +

    {{message}}

    +

    {{message2}}

    + +
    +
    + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232 \350\207\252\345\256\232\344\271\211\346\214\207\344\273\2444.9/demo01.html" "b/\344\275\234\344\270\232/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232 \350\207\252\345\256\232\344\271\211\346\214\207\344\273\2444.9/demo01.html" new file mode 100644 index 0000000000000000000000000000000000000000..5b560f36be8bb2ed824c5198418a73aaf224a6a9 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232 \350\207\252\345\256\232\344\271\211\346\214\207\344\273\2444.9/demo01.html" @@ -0,0 +1,40 @@ + + + + + + Document + + + + +
    +
    +
    + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232 \345\206\231\344\270\200\344\270\252\351\241\265\351\235\2423.30/\347\231\273\345\275\225\351\241\265\351\235\242/demo.html" "b/\344\275\234\344\270\232/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232 \345\206\231\344\270\200\344\270\252\351\241\265\351\235\2423.30/\347\231\273\345\275\225\351\241\265\351\235\242/demo.html" new file mode 100644 index 0000000000000000000000000000000000000000..74b03a84aab6070c5f91667ae3e8605610a52b02 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232 \345\206\231\344\270\200\344\270\252\351\241\265\351\235\2423.30/\347\231\273\345\275\225\351\241\265\351\235\242/demo.html" @@ -0,0 +1,62 @@ + + + + + + + Document + + + + + + +
    +

    鏃ヨ

    + 浠婂ぉ鏄熸湡{{data1}} + 澶╂皵{{sky}} + 鏃ユ湡{{data2}} +

          鏄ョ殑濡╁獨銆佺鐨勬垚鐔熴佸啲鐨勫惈钃勶紝缁堢┒姣斾笉浜嗗鐨勭儹鎯呫 + 浼寸潃鍑犲0铦夐福锛岀儹鎯呯殑澶忓濞橈紝鎮勬倓鍦版潵浜嗐 + 澶忎箣澹 + 涔℃潙璺笂锛岀敯閲庨噷锛屽澶勬湁闈掕洐鈥滃懕鍛扁濈殑澹伴煶锛屽湴閲岀殑鏄嗚櫕浠篃鎵囧姩缈呰唨鈥滃棥鍡♀濆湴鍝嶅簲鐫锛岀珯鍦ㄧɑ鑽 + 浜鸿偐涓婄殑涔岄甫涔熷弬涓庤繘鏉ワ紝鍙戝嚭鈥滃挄鍜曗濈殑澹伴煶閰嶅悎鐫澶忕殑涔愮珷銆傜敯鍦伴噷锛屽嚑浣嶅啘姘戞鍦ㄨ緵鍕ゅ湴鑰曡橈紝涓虹澶 + 鐨勪赴鏀跺仛鍑嗗锛屽啘姘戜集浼滑杈涜嫤鑰屽張婊¤冻鐨勫0闊冲洖鑽″湪鐢伴噹閲屸滃鍔姏鍔姏锛岀澶╂垜浠皢杩庢潵澶т赴鏀垛濄 + 澶忎箣鑹 + 澶忓濞樻嬁鐫缁胯壊鐨勭敾绗旓紝娴撳ⅷ閲嶅僵鍦版秱鎶圭潃澶忕殑琛h3銆 + 鐢伴噹涓婏紝楹﹁嫍缁跨豢鐨勩傚井椋庢媯杩囷紝楹︾敯杞昏交缈绘粴锛屽涓鐗囩豢鑹茬殑娴锋磱銆傚ぇ灞变笂鐨勬爲绱х揣杩炲湪涓璧凤紝灞傚肠鍙 + 宥傘侀儊閮佽懕钁便 + 澶忓ぉ鐨勬箹锛屾竻婢堣搴曘佹亶濡傛槑闀溿傛櫄椋庡惞杩囷紝纰ф尝鑽℃季锛屼笉灏忓績鎯婂姩浜嗘按涓殑楸肩兢锛屽畠浠憜鍔ㄧ潃鐏垫椿鐨勫熬 + 宸达紝鍥涘閫冪獪銆傛按闈笂鐨勫掑奖纰庝簡锛屾垜鎹ц捣鏈堜寒娈嬬己鑰屾磥鐧界殑鍊掑奖锛屾暦鍦ㄨ劯涓婏紝濂借垝鏈嶃 + 澶忎箣姘 + 娓呴寰愭潵锛岃嵎濉橀鏉ラ樀闃垫竻棣欍傚倣鏅氾紝浜轰滑鍦ㄦ睜杈硅亰澶╋紝涓闃靛井椋庡惞鏉ワ紝浜轰滑娌愭荡鐫娓呴锛岀敱琛峰湴璧炵編鑽 + 棣欎笌椋庡噳锛屽績鏃风鎬° + 澶忎箣澹般佸涔嬭壊銆佸涔嬫皵锛屾椿鍔涗笌鐑儏鐨勮薄寰併"

    +
    + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/a.html" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/a.html" new file mode 100644 index 0000000000000000000000000000000000000000..e6ee464a8c796437ec327dab663114a2196b3238 --- /dev/null +++ "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/a.html" @@ -0,0 +1,36 @@ + + + + + + Document + + + +
    + +
    + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/1.png" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/1.png" new file mode 100644 index 0000000000000000000000000000000000000000..41d11c7a3862292fab645e96d907785147042a52 Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/1.png" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/2.png" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/2.png" new file mode 100644 index 0000000000000000000000000000000000000000..8579f8770334be7cf78e25ad1f210b928682f97a Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/2.png" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/3.png" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/3.png" new file mode 100644 index 0000000000000000000000000000000000000000..36217e99958dd7b5ab0a991bbebe9641f1a175ff Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/3.png" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/4.webp" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/4.webp" new file mode 100644 index 0000000000000000000000000000000000000000..4dfb4d43ff07ad99f92cf9b6faedb96f295cf270 Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/4.webp" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/5.webp" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/5.webp" new file mode 100644 index 0000000000000000000000000000000000000000..c9370c40463f66342040807e3c93106368dcf87b Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/5.webp" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/6.webp" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/6.webp" new file mode 100644 index 0000000000000000000000000000000000000000..52125888b7bf8e9195c23bbfc02e82c4e9154c18 Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/6.webp" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/7.webp" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/7.webp" new file mode 100644 index 0000000000000000000000000000000000000000..cf7f3c3d15b0debbb4e843e01cc6159594411230 Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/7.webp" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/8.webp" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/8.webp" new file mode 100644 index 0000000000000000000000000000000000000000..009a3f8ad4e6cc81ed5b92ab67f08e775be94ab5 Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/8.webp" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/9.png" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/9.png" new file mode 100644 index 0000000000000000000000000000000000000000..2688097a7d7cfcafdde2fccdfb8d6ae222139a34 Binary files /dev/null and "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/img/9.png" differ diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/index.html" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/index.html" new file mode 100644 index 0000000000000000000000000000000000000000..360036b53f88cbe2e81f1867b636d0f68714396c --- /dev/null +++ "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/index.html" @@ -0,0 +1,99 @@ + + + + + + + + + 缁勪欢鐨勫祵濂 + + + +
    + + + + +
    + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/vuejs/vue.js" "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/vuejs/vue.js" new file mode 100644 index 0000000000000000000000000000000000000000..d800532ab6931d2ab130927113cffb2d451cc0fd --- /dev/null +++ "b/\344\275\234\344\270\232/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232 \347\273\204\344\273\266\345\265\214\345\245\2274.14/\347\273\204\344\273\266\347\232\204\345\265\214\345\245\227/vuejs/vue.js" @@ -0,0 +1,12014 @@ +/*! + * Vue.js v2.6.14 + * (c) 2014-2021 Evan You + * Released under the MIT License. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Vue = factory()); +}(this, function () { 'use strict'; + + /* */ + + var emptyObject = Object.freeze({}); + + // These helpers produce better VM code in JS engines due to their + // explicitness and function inlining. + function isUndef (v) { + return v === undefined || v === null + } + + function isDef (v) { + return v !== undefined && v !== null + } + + function isTrue (v) { + return v === true + } + + function isFalse (v) { + return v === false + } + + /** + * Check if value is primitive. + */ + function isPrimitive (value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean' + ) + } + + /** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ + function isObject (obj) { + return obj !== null && typeof obj === 'object' + } + + /** + * Get the raw type string of a value, e.g., [object Object]. + */ + var _toString = Object.prototype.toString; + + function toRawType (value) { + return _toString.call(value).slice(8, -1) + } + + /** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ + function isPlainObject (obj) { + return _toString.call(obj) === '[object Object]' + } + + function isRegExp (v) { + return _toString.call(v) === '[object RegExp]' + } + + /** + * Check if val is a valid array index. + */ + function isValidArrayIndex (val) { + var n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val) + } + + function isPromise (val) { + return ( + isDef(val) && + typeof val.then === 'function' && + typeof val.catch === 'function' + ) + } + + /** + * Convert a value to a string that is actually rendered. + */ + function toString (val) { + return val == null + ? '' + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) + ? JSON.stringify(val, null, 2) + : String(val) + } + + /** + * Convert an input value to a number for persistence. + * If the conversion fails, return original string. + */ + function toNumber (val) { + var n = parseFloat(val); + return isNaN(n) ? val : n + } + + /** + * Make a map and return a function for checking if a key + * is in that map. + */ + function makeMap ( + str, + expectsLowerCase + ) { + var map = Object.create(null); + var list = str.split(','); + for (var i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase + ? function (val) { return map[val.toLowerCase()]; } + : function (val) { return map[val]; } + } + + /** + * Check if a tag is a built-in tag. + */ + var isBuiltInTag = makeMap('slot,component', true); + + /** + * Check if an attribute is a reserved attribute. + */ + var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); + + /** + * Remove an item from an array. + */ + function remove (arr, item) { + if (arr.length) { + var index = arr.indexOf(item); + if (index > -1) { + return arr.splice(index, 1) + } + } + } + + /** + * Check whether an object has the property. + */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + function hasOwn (obj, key) { + return hasOwnProperty.call(obj, key) + } + + /** + * Create a cached version of a pure function. + */ + function cached (fn) { + var cache = Object.create(null); + return (function cachedFn (str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)) + }) + } + + /** + * Camelize a hyphen-delimited string. + */ + var camelizeRE = /-(\w)/g; + var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) + }); + + /** + * Capitalize a string. + */ + var capitalize = cached(function (str) { + return str.charAt(0).toUpperCase() + str.slice(1) + }); + + /** + * Hyphenate a camelCase string. + */ + var hyphenateRE = /\B([A-Z])/g; + var hyphenate = cached(function (str) { + return str.replace(hyphenateRE, '-$1').toLowerCase() + }); + + /** + * Simple bind polyfill for environments that do not support it, + * e.g., PhantomJS 1.x. Technically, we don't need this anymore + * since native bind is now performant enough in most browsers. + * But removing it would mean breaking code that was able to run in + * PhantomJS 1.x, so this must be kept for backward compatibility. + */ + + /* istanbul ignore next */ + function polyfillBind (fn, ctx) { + function boundFn (a) { + var l = arguments.length; + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + + boundFn._length = fn.length; + return boundFn + } + + function nativeBind (fn, ctx) { + return fn.bind(ctx) + } + + var bind = Function.prototype.bind + ? nativeBind + : polyfillBind; + + /** + * Convert an Array-like object to a real Array. + */ + function toArray (list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret + } + + /** + * Mix properties into target object. + */ + function extend (to, _from) { + for (var key in _from) { + to[key] = _from[key]; + } + return to + } + + /** + * Merge an Array of Objects into a single Object. + */ + function toObject (arr) { + var res = {}; + for (var i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res + } + + /* eslint-disable no-unused-vars */ + + /** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). + */ + function noop (a, b, c) {} + + /** + * Always return false. + */ + var no = function (a, b, c) { return false; }; + + /* eslint-enable no-unused-vars */ + + /** + * Return the same value. + */ + var identity = function (_) { return _; }; + + /** + * Generate a string containing static keys from compiler modules. + */ + function genStaticKeys (modules) { + return modules.reduce(function (keys, m) { + return keys.concat(m.staticKeys || []) + }, []).join(',') + } + + /** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ + function looseEqual (a, b) { + if (a === b) { return true } + var isObjectA = isObject(a); + var isObjectB = isObject(b); + if (isObjectA && isObjectB) { + try { + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (a instanceof Date && b instanceof Date) { + return a.getTime() === b.getTime() + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } + } + + /** + * Return the first index at which a loosely equal value can be + * found in the array (if value is a plain object, the array must + * contain an object of the same shape), or -1 if it is not present. + */ + function looseIndexOf (arr, val) { + for (var i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) { return i } + } + return -1 + } + + /** + * Ensure a function is called only once. + */ + function once (fn) { + var called = false; + return function () { + if (!called) { + called = true; + fn.apply(this, arguments); + } + } + } + + var SSR_ATTR = 'data-server-rendered'; + + var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' + ]; + + var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured', + 'serverPrefetch' + ]; + + /* */ + + + + var config = ({ + /** + * Option merge strategies (used in core/util/options) + */ + // $flow-disable-line + optionMergeStrategies: Object.create(null), + + /** + * Whether to suppress warnings. + */ + silent: false, + + /** + * Show production mode tip message on boot? + */ + productionTip: "development" !== 'production', + + /** + * Whether to enable devtools + */ + devtools: "development" !== 'production', + + /** + * Whether to record perf + */ + performance: false, + + /** + * Error handler for watcher errors + */ + errorHandler: null, + + /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** + * Ignore certain custom elements + */ + ignoredElements: [], + + /** + * Custom user key aliases for v-on + */ + // $flow-disable-line + keyCodes: Object.create(null), + + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + + /** + * Perform updates asynchronously. Intended to be used by Vue Test Utils + * This will significantly reduce performance if set to false. + */ + async: true, + + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS + }); + + /* */ + + /** + * unicode letters used for parsing html tags, component names and property paths. + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS + */ + var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; + + /** + * Check if a string starts with $ or _ + */ + function isReserved (str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F + } + + /** + * Define a property. + */ + function def (obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); + } + + /** + * Parse simple path. + */ + var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); + function parsePath (path) { + if (bailRE.test(path)) { + return + } + var segments = path.split('.'); + return function (obj) { + for (var i = 0; i < segments.length; i++) { + if (!obj) { return } + obj = obj[segments[i]]; + } + return obj + } + } + + /* */ + + // can we use __proto__? + var hasProto = '__proto__' in {}; + + // Browser environment sniffing + var inBrowser = typeof window !== 'undefined'; + var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; + var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); + var UA = inBrowser && window.navigator.userAgent.toLowerCase(); + var isIE = UA && /msie|trident/.test(UA); + var isIE9 = UA && UA.indexOf('msie 9.0') > 0; + var isEdge = UA && UA.indexOf('edge/') > 0; + var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); + var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); + var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; + var isPhantomJS = UA && /phantomjs/.test(UA); + var isFF = UA && UA.match(/firefox\/(\d+)/); + + // Firefox has a "watch" function on Object.prototype... + var nativeWatch = ({}).watch; + + var supportsPassive = false; + if (inBrowser) { + try { + var opts = {}; + Object.defineProperty(opts, 'passive', ({ + get: function get () { + /* istanbul ignore next */ + supportsPassive = true; + } + })); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } catch (e) {} + } + + // this needs to be lazy-evaled because vue may be required before + // vue-server-renderer can set VUE_ENV + var _isServer; + var isServerRendering = function () { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && !inWeex && typeof global !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; + } else { + _isServer = false; + } + } + return _isServer + }; + + // detect devtools + var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + + /* istanbul ignore next */ + function isNative (Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) + } + + var hasSymbol = + typeof Symbol !== 'undefined' && isNative(Symbol) && + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); + + var _Set; + /* istanbul ignore if */ // $flow-disable-line + if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; + } else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = /*@__PURE__*/(function () { + function Set () { + this.set = Object.create(null); + } + Set.prototype.has = function has (key) { + return this.set[key] === true + }; + Set.prototype.add = function add (key) { + this.set[key] = true; + }; + Set.prototype.clear = function clear () { + this.set = Object.create(null); + }; + + return Set; + }()); + } + + /* */ + + var warn = noop; + var tip = noop; + var generateComponentTrace = (noop); // work around flow check + var formatComponentName = (noop); + + { + var hasConsole = typeof console !== 'undefined'; + var classifyRE = /(?:^|[-_])(\w)/g; + var classify = function (str) { return str + .replace(classifyRE, function (c) { return c.toUpperCase(); }) + .replace(/[-_]/g, ''); }; + + warn = function (msg, vm) { + var trace = vm ? generateComponentTrace(vm) : ''; + + if (config.warnHandler) { + config.warnHandler.call(null, msg, vm, trace); + } else if (hasConsole && (!config.silent)) { + console.error(("[Vue warn]: " + msg + trace)); + } + }; + + tip = function (msg, vm) { + if (hasConsole && (!config.silent)) { + console.warn("[Vue tip]: " + msg + ( + vm ? generateComponentTrace(vm) : '' + )); + } + }; + + formatComponentName = function (vm, includeFile) { + if (vm.$root === vm) { + return '' + } + var options = typeof vm === 'function' && vm.cid != null + ? vm.options + : vm._isVue + ? vm.$options || vm.constructor.options + : vm; + var name = options.name || options._componentTag; + var file = options.__file; + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return ( + (name ? ("<" + (classify(name)) + ">") : "") + + (file && includeFile !== false ? (" at " + file) : '') + ) + }; + + var repeat = function (str, n) { + var res = ''; + while (n) { + if (n % 2 === 1) { res += str; } + if (n > 1) { str += str; } + n >>= 1; + } + return res + }; + + generateComponentTrace = function (vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + while (vm) { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + tree.push(vm); + vm = vm.$parent; + } + return '\n\nfound in\n\n' + tree + .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") + : formatComponentName(vm))); }) + .join('\n') + } else { + return ("\n\n(found in " + (formatComponentName(vm)) + ")") + } + }; + } + + /* */ + + var uid = 0; + + /** + * A dep is an observable that can have multiple + * directives subscribing to it. + */ + var Dep = function Dep () { + this.id = uid++; + this.subs = []; + }; + + Dep.prototype.addSub = function addSub (sub) { + this.subs.push(sub); + }; + + Dep.prototype.removeSub = function removeSub (sub) { + remove(this.subs, sub); + }; + + Dep.prototype.depend = function depend () { + if (Dep.target) { + Dep.target.addDep(this); + } + }; + + Dep.prototype.notify = function notify () { + // stabilize the subscriber list first + var subs = this.subs.slice(); + if (!config.async) { + // subs aren't sorted in scheduler if not running async + // we need to sort them now to make sure they fire in correct + // order + subs.sort(function (a, b) { return a.id - b.id; }); + } + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } + }; + + // The current target watcher being evaluated. + // This is globally unique because only one watcher + // can be evaluated at a time. + Dep.target = null; + var targetStack = []; + + function pushTarget (target) { + targetStack.push(target); + Dep.target = target; + } + + function popTarget () { + targetStack.pop(); + Dep.target = targetStack[targetStack.length - 1]; + } + + /* */ + + var VNode = function VNode ( + tag, + data, + children, + text, + elm, + context, + componentOptions, + asyncFactory + ) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.fnContext = undefined; + this.fnOptions = undefined; + this.fnScopeId = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; + }; + + var prototypeAccessors = { child: { configurable: true } }; + + // DEPRECATED: alias for componentInstance for backwards compat. + /* istanbul ignore next */ + prototypeAccessors.child.get = function () { + return this.componentInstance + }; + + Object.defineProperties( VNode.prototype, prototypeAccessors ); + + var createEmptyVNode = function (text) { + if ( text === void 0 ) text = ''; + + var node = new VNode(); + node.text = text; + node.isComment = true; + return node + }; + + function createTextVNode (val) { + return new VNode(undefined, undefined, undefined, String(val)) + } + + // optimized shallow clone + // used for static nodes and slot nodes because they may be reused across + // multiple renders, cloning them avoids errors when DOM manipulations rely + // on their elm reference. + function cloneVNode (vnode) { + var cloned = new VNode( + vnode.tag, + vnode.data, + // #7975 + // clone children array to avoid mutating original in case of cloning + // a child. + vnode.children && vnode.children.slice(), + vnode.text, + vnode.elm, + vnode.context, + vnode.componentOptions, + vnode.asyncFactory + ); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.fnContext = vnode.fnContext; + cloned.fnOptions = vnode.fnOptions; + cloned.fnScopeId = vnode.fnScopeId; + cloned.asyncMeta = vnode.asyncMeta; + cloned.isCloned = true; + return cloned + } + + /* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ + + var arrayProto = Array.prototype; + var arrayMethods = Object.create(arrayProto); + + var methodsToPatch = [ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' + ]; + + /** + * Intercept mutating methods and emit events + */ + methodsToPatch.forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break + case 'splice': + inserted = args.slice(2); + break + } + if (inserted) { ob.observeArray(inserted); } + // notify change + ob.dep.notify(); + return result + }); + }); + + /* */ + + var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + + /** + * In some cases we may want to disable observation inside a component's + * update computation. + */ + var shouldObserve = true; + + function toggleObserving (value) { + shouldObserve = value; + } + + /** + * Observer class that is attached to each observed + * object. Once attached, the observer converts the target + * object's property keys into getter/setters that + * collect dependencies and dispatch updates. + */ + var Observer = function Observer (value) { + this.value = value; + this.dep = new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (Array.isArray(value)) { + if (hasProto) { + protoAugment(value, arrayMethods); + } else { + copyAugment(value, arrayMethods, arrayKeys); + } + this.observeArray(value); + } else { + this.walk(value); + } + }; + + /** + * Walk through all properties and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ + Observer.prototype.walk = function walk (obj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + defineReactive$$1(obj, keys[i]); + } + }; + + /** + * Observe a list of Array items. + */ + Observer.prototype.observeArray = function observeArray (items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } + }; + + // helpers + + /** + * Augment a target Object or Array by intercepting + * the prototype chain using __proto__ + */ + function protoAugment (target, src) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ + } + + /** + * Augment a target Object or Array by defining + * hidden properties. + */ + /* istanbul ignore next */ + function copyAugment (target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } + } + + /** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ + function observe (value, asRootData) { + if (!isObject(value) || value instanceof VNode) { + return + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if ( + shouldObserve && + !isServerRendering() && + (Array.isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value._isVue + ) { + ob = new Observer(value); + } + if (asRootData && ob) { + ob.vmCount++; + } + return ob + } + + /** + * Define a reactive property on an Object. + */ + function defineReactive$$1 ( + obj, + key, + val, + customSetter, + shallow + ) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + if ((!getter || setter) && arguments.length === 2) { + val = obj[key]; + } + + var childOb = !shallow && observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter () { + var value = getter ? getter.call(obj) : val; + if (Dep.target) { + dep.depend(); + if (childOb) { + childOb.dep.depend(); + if (Array.isArray(value)) { + dependArray(value); + } + } + } + return value + }, + set: function reactiveSetter (newVal) { + var value = getter ? getter.call(obj) : val; + /* eslint-disable no-self-compare */ + if (newVal === value || (newVal !== newVal && value !== value)) { + return + } + /* eslint-enable no-self-compare */ + if (customSetter) { + customSetter(); + } + // #7981: for accessor properties without setter + if (getter && !setter) { return } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = !shallow && observe(newVal); + dep.notify(); + } + }); + } + + /** + * Set a property on an object. Adds the new property and + * triggers change notification if the property doesn't + * already exist. + */ + function set (target, key, val) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val + } + if (key in target && !(key in Object.prototype)) { + target[key] = val; + return val + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid adding reactive properties to a Vue instance or its root $data ' + + 'at runtime - declare it upfront in the data option.' + ); + return val + } + if (!ob) { + target[key] = val; + return val + } + defineReactive$$1(ob.value, key, val); + ob.dep.notify(); + return val + } + + /** + * Delete a property and trigger change if necessary. + */ + function del (target, key) { + if (isUndef(target) || isPrimitive(target) + ) { + warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); + } + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.splice(key, 1); + return + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + warn( + 'Avoid deleting properties on a Vue instance or its root $data ' + + '- just set it to null.' + ); + return + } + if (!hasOwn(target, key)) { + return + } + delete target[key]; + if (!ob) { + return + } + ob.dep.notify(); + } + + /** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ + function dependArray (value) { + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + if (Array.isArray(e)) { + dependArray(e); + } + } + } + + /* */ + + /** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ + var strats = config.optionMergeStrategies; + + /** + * Options with restrictions + */ + { + strats.el = strats.propsData = function (parent, child, vm, key) { + if (!vm) { + warn( + "option \"" + key + "\" can only be used during instance " + + 'creation with the `new` keyword.' + ); + } + return defaultStrat(parent, child) + }; + } + + /** + * Helper that recursively merges two data objects together. + */ + function mergeData (to, from) { + if (!from) { return to } + var key, toVal, fromVal; + + var keys = hasSymbol + ? Reflect.ownKeys(from) + : Object.keys(from); + + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + // in case the object is already observed... + if (key === '__ob__') { continue } + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if ( + toVal !== fromVal && + isPlainObject(toVal) && + isPlainObject(fromVal) + ) { + mergeData(toVal, fromVal); + } + } + return to + } + + /** + * Data + */ + function mergeDataOrFn ( + parentVal, + childVal, + vm + ) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal + } + if (!parentVal) { + return childVal + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn () { + return mergeData( + typeof childVal === 'function' ? childVal.call(this, this) : childVal, + typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal + ) + } + } else { + return function mergedInstanceDataFn () { + // instance merge + var instanceData = typeof childVal === 'function' + ? childVal.call(vm, vm) + : childVal; + var defaultData = typeof parentVal === 'function' + ? parentVal.call(vm, vm) + : parentVal; + if (instanceData) { + return mergeData(instanceData, defaultData) + } else { + return defaultData + } + } + } + } + + strats.data = function ( + parentVal, + childVal, + vm + ) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + warn( + 'The "data" option should be a function ' + + 'that returns a per-instance value in component ' + + 'definitions.', + vm + ); + + return parentVal + } + return mergeDataOrFn(parentVal, childVal) + } + + return mergeDataOrFn(parentVal, childVal, vm) + }; + + /** + * Hooks and props are merged as arrays. + */ + function mergeHook ( + parentVal, + childVal + ) { + var res = childVal + ? parentVal + ? parentVal.concat(childVal) + : Array.isArray(childVal) + ? childVal + : [childVal] + : parentVal; + return res + ? dedupeHooks(res) + : res + } + + function dedupeHooks (hooks) { + var res = []; + for (var i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res + } + + LIFECYCLE_HOOKS.forEach(function (hook) { + strats[hook] = mergeHook; + }); + + /** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ + function mergeAssets ( + parentVal, + childVal, + vm, + key + ) { + var res = Object.create(parentVal || null); + if (childVal) { + assertObjectType(key, childVal, vm); + return extend(res, childVal) + } else { + return res + } + } + + ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; + }); + + /** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ + strats.watch = function ( + parentVal, + childVal, + vm, + key + ) { + // work around Firefox's Object.prototype.watch... + if (parentVal === nativeWatch) { parentVal = undefined; } + if (childVal === nativeWatch) { childVal = undefined; } + /* istanbul ignore if */ + if (!childVal) { return Object.create(parentVal || null) } + { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = {}; + extend(ret, parentVal); + for (var key$1 in childVal) { + var parent = ret[key$1]; + var child = childVal[key$1]; + if (parent && !Array.isArray(parent)) { + parent = [parent]; + } + ret[key$1] = parent + ? parent.concat(child) + : Array.isArray(child) ? child : [child]; + } + return ret + }; + + /** + * Other object hashes. + */ + strats.props = + strats.methods = + strats.inject = + strats.computed = function ( + parentVal, + childVal, + vm, + key + ) { + if (childVal && "development" !== 'production') { + assertObjectType(key, childVal, vm); + } + if (!parentVal) { return childVal } + var ret = Object.create(null); + extend(ret, parentVal); + if (childVal) { extend(ret, childVal); } + return ret + }; + strats.provide = mergeDataOrFn; + + /** + * Default strategy. + */ + var defaultStrat = function (parentVal, childVal) { + return childVal === undefined + ? parentVal + : childVal + }; + + /** + * Validate component names + */ + function checkComponents (options) { + for (var key in options.components) { + validateComponentName(key); + } + } + + function validateComponentName (name) { + if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { + warn( + 'Invalid component name: "' + name + '". Component names ' + + 'should conform to valid custom element name in html5 specification.' + ); + } + if (isBuiltInTag(name) || config.isReservedTag(name)) { + warn( + 'Do not use built-in or reserved HTML elements as component ' + + 'id: ' + name + ); + } + } + + /** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ + function normalizeProps (options, vm) { + var props = options.props; + if (!props) { return } + var res = {}; + var i, val, name; + if (Array.isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } else { + warn('props must be strings when using array syntax.'); + } + } + } else if (isPlainObject(props)) { + for (var key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) + ? val + : { type: val }; + } + } else { + warn( + "Invalid value for option \"props\": expected an Array or an Object, " + + "but got " + (toRawType(props)) + ".", + vm + ); + } + options.props = res; + } + + /** + * Normalize all injections into Object-based format + */ + function normalizeInject (options, vm) { + var inject = options.inject; + if (!inject) { return } + var normalized = options.inject = {}; + if (Array.isArray(inject)) { + for (var i = 0; i < inject.length; i++) { + normalized[inject[i]] = { from: inject[i] }; + } + } else if (isPlainObject(inject)) { + for (var key in inject) { + var val = inject[key]; + normalized[key] = isPlainObject(val) + ? extend({ from: key }, val) + : { from: val }; + } + } else { + warn( + "Invalid value for option \"inject\": expected an Array or an Object, " + + "but got " + (toRawType(inject)) + ".", + vm + ); + } + } + + /** + * Normalize raw function directives into object format. + */ + function normalizeDirectives (options) { + var dirs = options.directives; + if (dirs) { + for (var key in dirs) { + var def$$1 = dirs[key]; + if (typeof def$$1 === 'function') { + dirs[key] = { bind: def$$1, update: def$$1 }; + } + } + } + } + + function assertObjectType (name, value, vm) { + if (!isPlainObject(value)) { + warn( + "Invalid value for option \"" + name + "\": expected an Object, " + + "but got " + (toRawType(value)) + ".", + vm + ); + } + } + + /** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ + function mergeOptions ( + parent, + child, + vm + ) { + { + checkComponents(child); + } + + if (typeof child === 'function') { + child = child.options; + } + + normalizeProps(child, vm); + normalizeInject(child, vm); + normalizeDirectives(child); + + // Apply extends and mixins on the child options, + // but only if it is a raw options object that isn't + // the result of another mergeOptions call. + // Only merged options has the _base property. + if (!child._base) { + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + } + + var options = {}; + var key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField (key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options + } + + /** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ + function resolveAsset ( + options, + type, + id, + warnMissing + ) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return + } + var assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) { return assets[id] } + var camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } + var PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } + // fallback to prototype chain + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + if (warnMissing && !res) { + warn( + 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, + options + ); + } + return res + } + + /* */ + + + + function validateProp ( + key, + propOptions, + propsData, + vm + ) { + var prop = propOptions[key]; + var absent = !hasOwn(propsData, key); + var value = propsData[key]; + // boolean casting + var booleanIndex = getTypeIndex(Boolean, prop.type); + if (booleanIndex > -1) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } else if (value === '' || value === hyphenate(key)) { + // only cast empty string / same name to boolean if + // boolean has higher priority + var stringIndex = getTypeIndex(String, prop.type); + if (stringIndex < 0 || booleanIndex < stringIndex) { + value = true; + } + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + var prevShouldObserve = shouldObserve; + toggleObserving(true); + observe(value); + toggleObserving(prevShouldObserve); + } + { + assertProp(prop, key, value, vm, absent); + } + return value + } + + /** + * Get the default value of a prop. + */ + function getPropDefaultValue (vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined + } + var def = prop.default; + // warn against non-factory defaults for Object & Array + if (isObject(def)) { + warn( + 'Invalid default value for prop "' + key + '": ' + + 'Props with type Object/Array must use a factory function ' + + 'to return the default value.', + vm + ); + } + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined + ) { + return vm._props[key] + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return typeof def === 'function' && getType(prop.type) !== 'Function' + ? def.call(vm) + : def + } + + /** + * Assert whether a prop is valid. + */ + function assertProp ( + prop, + name, + value, + vm, + absent + ) { + if (prop.required && absent) { + warn( + 'Missing required prop: "' + name + '"', + vm + ); + return + } + if (value == null && !prop.required) { + return + } + var type = prop.type; + var valid = !type || type === true; + var expectedTypes = []; + if (type) { + if (!Array.isArray(type)) { + type = [type]; + } + for (var i = 0; i < type.length && !valid; i++) { + var assertedType = assertType(value, type[i], vm); + expectedTypes.push(assertedType.expectedType || ''); + valid = assertedType.valid; + } + } + + var haveExpectedTypes = expectedTypes.some(function (t) { return t; }); + if (!valid && haveExpectedTypes) { + warn( + getInvalidTypeMessage(name, value, expectedTypes), + vm + ); + return + } + var validator = prop.validator; + if (validator) { + if (!validator(value)) { + warn( + 'Invalid prop: custom validator check failed for prop "' + name + '".', + vm + ); + } + } + } + + var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/; + + function assertType (value, type, vm) { + var valid; + var expectedType = getType(type); + if (simpleCheckRE.test(expectedType)) { + var t = typeof value; + valid = t === expectedType.toLowerCase(); + // for primitive wrapper objects + if (!valid && t === 'object') { + valid = value instanceof type; + } + } else if (expectedType === 'Object') { + valid = isPlainObject(value); + } else if (expectedType === 'Array') { + valid = Array.isArray(value); + } else { + try { + valid = value instanceof type; + } catch (e) { + warn('Invalid prop type: "' + String(type) + '" is not a constructor', vm); + valid = false; + } + } + return { + valid: valid, + expectedType: expectedType + } + } + + var functionTypeCheckRE = /^\s*function (\w+)/; + + /** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ + function getType (fn) { + var match = fn && fn.toString().match(functionTypeCheckRE); + return match ? match[1] : '' + } + + function isSameType (a, b) { + return getType(a) === getType(b) + } + + function getTypeIndex (type, expectedTypes) { + if (!Array.isArray(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1 + } + for (var i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i + } + } + return -1 + } + + function getInvalidTypeMessage (name, value, expectedTypes) { + var message = "Invalid prop: type check failed for prop \"" + name + "\"." + + " Expected " + (expectedTypes.map(capitalize).join(', ')); + var expectedType = expectedTypes[0]; + var receivedType = toRawType(value); + // check if we need to specify expected value + if ( + expectedTypes.length === 1 && + isExplicable(expectedType) && + isExplicable(typeof value) && + !isBoolean(expectedType, receivedType) + ) { + message += " with value " + (styleValue(value, expectedType)); + } + message += ", got " + receivedType + " "; + // check if we need to specify received value + if (isExplicable(receivedType)) { + message += "with value " + (styleValue(value, receivedType)) + "."; + } + return message + } + + function styleValue (value, type) { + if (type === 'String') { + return ("\"" + value + "\"") + } else if (type === 'Number') { + return ("" + (Number(value))) + } else { + return ("" + value) + } + } + + var EXPLICABLE_TYPES = ['string', 'number', 'boolean']; + function isExplicable (value) { + return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; }) + } + + function isBoolean () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) + } + + /* */ + + function handleError (err, vm, info) { + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. + // See: https://github.com/vuejs/vuex/issues/1505 + pushTarget(); + try { + if (vm) { + var cur = vm; + while ((cur = cur.$parent)) { + var hooks = cur.$options.errorCaptured; + if (hooks) { + for (var i = 0; i < hooks.length; i++) { + try { + var capture = hooks[i].call(cur, err, vm, info) === false; + if (capture) { return } + } catch (e) { + globalHandleError(e, cur, 'errorCaptured hook'); + } + } + } + } + } + globalHandleError(err, vm, info); + } finally { + popTarget(); + } + } + + function invokeWithErrorHandling ( + handler, + context, + args, + vm, + info + ) { + var res; + try { + res = args ? handler.apply(context, args) : handler.call(context); + if (res && !res._isVue && isPromise(res) && !res._handled) { + res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); + // issue #9511 + // avoid catch triggering multiple times when nested calls + res._handled = true; + } + } catch (e) { + handleError(e, vm, info); + } + return res + } + + function globalHandleError (err, vm, info) { + if (config.errorHandler) { + try { + return config.errorHandler.call(null, err, vm, info) + } catch (e) { + // if the user intentionally throws the original error in the handler, + // do not log it twice + if (e !== err) { + logError(e, null, 'config.errorHandler'); + } + } + } + logError(err, vm, info); + } + + function logError (err, vm, info) { + { + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); + } + /* istanbul ignore else */ + if ((inBrowser || inWeex) && typeof console !== 'undefined') { + console.error(err); + } else { + throw err + } + } + + /* */ + + var isUsingMicroTask = false; + + var callbacks = []; + var pending = false; + + function flushCallbacks () { + pending = false; + var copies = callbacks.slice(0); + callbacks.length = 0; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } + } + + // Here we have async deferring wrappers using microtasks. + // In 2.5 we used (macro) tasks (in combination with microtasks). + // However, it has subtle problems when state is changed right before repaint + // (e.g. #6813, out-in transitions). + // Also, using (macro) tasks in event handler would cause some weird behaviors + // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). + // So we now use microtasks everywhere, again. + // A major drawback of this tradeoff is that there are some scenarios + // where microtasks have too high a priority and fire in between supposedly + // sequential events (e.g. #4521, #6690, which have workarounds) + // or even between bubbling of the same event (#6566). + var timerFunc; + + // The nextTick behavior leverages the microtask queue, which can be accessed + // via either native Promise.then or MutationObserver. + // MutationObserver has wider support, however it is seriously bugged in + // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It + // completely stops working after triggering a few times... so, if native + // Promise is available, we will use it: + /* istanbul ignore next, $flow-disable-line */ + if (typeof Promise !== 'undefined' && isNative(Promise)) { + var p = Promise.resolve(); + timerFunc = function () { + p.then(flushCallbacks); + // In problematic UIWebViews, Promise.then doesn't completely break, but + // it can get stuck in a weird state where callbacks are pushed into the + // microtask queue but the queue isn't being flushed, until the browser + // needs to do some other work, e.g. handle a timer. Therefore we can + // "force" the microtask queue to be flushed by adding an empty timer. + if (isIOS) { setTimeout(noop); } + }; + isUsingMicroTask = true; + } else if (!isIE && typeof MutationObserver !== 'undefined' && ( + isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]' + )) { + // Use MutationObserver where native Promise is not available, + // e.g. PhantomJS, iOS7, Android 4.4 + // (#6466 MutationObserver is unreliable in IE11) + var counter = 1; + var observer = new MutationObserver(flushCallbacks); + var textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = String(counter); + }; + isUsingMicroTask = true; + } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { + // Fallback to setImmediate. + // Technically it leverages the (macro) task queue, + // but it is still a better choice than setTimeout. + timerFunc = function () { + setImmediate(flushCallbacks); + }; + } else { + // Fallback to setTimeout. + timerFunc = function () { + setTimeout(flushCallbacks, 0); + }; + } + + function nextTick (cb, ctx) { + var _resolve; + callbacks.push(function () { + if (cb) { + try { + cb.call(ctx); + } catch (e) { + handleError(e, ctx, 'nextTick'); + } + } else if (_resolve) { + _resolve(ctx); + } + }); + if (!pending) { + pending = true; + timerFunc(); + } + // $flow-disable-line + if (!cb && typeof Promise !== 'undefined') { + return new Promise(function (resolve) { + _resolve = resolve; + }) + } + } + + /* */ + + var mark; + var measure; + + { + var perf = inBrowser && window.performance; + /* istanbul ignore if */ + if ( + perf && + perf.mark && + perf.measure && + perf.clearMarks && + perf.clearMeasures + ) { + mark = function (tag) { return perf.mark(tag); }; + measure = function (name, startTag, endTag) { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + // perf.clearMeasures(name) + }; + } + } + + /* not type checking this file because flow doesn't play well with Proxy */ + + var initProxy; + + { + var allowedGlobals = makeMap( + 'Infinity,undefined,NaN,isFinite,isNaN,' + + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' + + 'require' // for Webpack/Browserify + ); + + var warnNonPresent = function (target, key) { + warn( + "Property or method \"" + key + "\" is not defined on the instance but " + + 'referenced during render. Make sure that this property is reactive, ' + + 'either in the data option, or for class-based components, by ' + + 'initializing the property. ' + + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', + target + ); + }; + + var warnReservedPrefix = function (target, key) { + warn( + "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + + 'prevent conflicts with Vue internals. ' + + 'See: https://vuejs.org/v2/api/#data', + target + ); + }; + + var hasProxy = + typeof Proxy !== 'undefined' && isNative(Proxy); + + if (hasProxy) { + var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); + config.keyCodes = new Proxy(config.keyCodes, { + set: function set (target, key, value) { + if (isBuiltInModifier(key)) { + warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); + return false + } else { + target[key] = value; + return true + } + } + }); + } + + var hasHandler = { + has: function has (target, key) { + var has = key in target; + var isAllowed = allowedGlobals(key) || + (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); + if (!has && !isAllowed) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return has || !isAllowed + } + }; + + var getHandler = { + get: function get (target, key) { + if (typeof key === 'string' && !(key in target)) { + if (key in target.$data) { warnReservedPrefix(target, key); } + else { warnNonPresent(target, key); } + } + return target[key] + } + }; + + initProxy = function initProxy (vm) { + if (hasProxy) { + // determine which proxy handler to use + var options = vm.$options; + var handlers = options.render && options.render._withStripped + ? getHandler + : hasHandler; + vm._renderProxy = new Proxy(vm, handlers); + } else { + vm._renderProxy = vm; + } + }; + } + + /* */ + + var seenObjects = new _Set(); + + /** + * Recursively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + */ + function traverse (val) { + _traverse(val, seenObjects); + seenObjects.clear(); + } + + function _traverse (val, seen) { + var i, keys; + var isA = Array.isArray(val); + if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { + return + } + if (val.__ob__) { + var depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return + } + seen.add(depId); + } + if (isA) { + i = val.length; + while (i--) { _traverse(val[i], seen); } + } else { + keys = Object.keys(val); + i = keys.length; + while (i--) { _traverse(val[keys[i]], seen); } + } + } + + /* */ + + var normalizeEvent = cached(function (name) { + var passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first + name = once$$1 ? name.slice(1) : name; + var capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name: name, + once: once$$1, + capture: capture, + passive: passive + } + }); + + function createFnInvoker (fns, vm) { + function invoker () { + var arguments$1 = arguments; + + var fns = invoker.fns; + if (Array.isArray(fns)) { + var cloned = fns.slice(); + for (var i = 0; i < cloned.length; i++) { + invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); + } + } else { + // return handler return value for single handlers + return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") + } + } + invoker.fns = fns; + return invoker + } + + function updateListeners ( + on, + oldOn, + add, + remove$$1, + createOnceHandler, + vm + ) { + var name, def$$1, cur, old, event; + for (name in on) { + def$$1 = cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) { + warn( + "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), + vm + ); + } else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur, vm); + } + if (isTrue(event.once)) { + cur = on[name] = createOnceHandler(event.name, cur, event.capture); + } + add(event.name, cur, event.capture, event.passive, event.params); + } else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove$$1(event.name, oldOn[name], event.capture); + } + } + } + + /* */ + + function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } + var invoker; + var oldHook = def[hookKey]; + + function wrappedHook () { + hook.apply(this, arguments); + // important: remove merged hook to ensure it's called only once + // and prevent memory leak + remove(invoker.fns, wrappedHook); + } + + if (isUndef(oldHook)) { + // no existing hook + invoker = createFnInvoker([wrappedHook]); + } else { + /* istanbul ignore if */ + if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { + // already a merged invoker + invoker = oldHook; + invoker.fns.push(wrappedHook); + } else { + // existing plain hook + invoker = createFnInvoker([oldHook, wrappedHook]); + } + } + + invoker.merged = true; + def[hookKey] = invoker; + } + + /* */ + + function extractPropsFromVNodeData ( + data, + Ctor, + tag + ) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + var propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + return + } + var res = {}; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + { + var keyInLowerCase = key.toLowerCase(); + if ( + key !== keyInLowerCase && + attrs && hasOwn(attrs, keyInLowerCase) + ) { + tip( + "Prop \"" + keyInLowerCase + "\" is passed to component " + + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + + " \"" + key + "\". " + + "Note that HTML attributes are case-insensitive and camelCased " + + "props need to use their kebab-case equivalents when using in-DOM " + + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." + ); + } + } + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + return res + } + + function checkProp ( + res, + hash, + key, + altKey, + preserve + ) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true + } else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true + } + } + return false + } + + /* */ + + // The template compiler attempts to minimize the need for normalization by + // statically analyzing the template at compile time. + // + // For plain HTML markup, normalization can be completely skipped because the + // generated render function is guaranteed to return Array. There are + // two cases where extra normalization is needed: + + // 1. When the children contains components - because a functional component + // may return an Array instead of a single root. In this case, just a simple + // normalization is needed - if any child is an Array, we flatten the whole + // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep + // because functional components already normalize their own children. + function simpleNormalizeChildren (children) { + for (var i = 0; i < children.length; i++) { + if (Array.isArray(children[i])) { + return Array.prototype.concat.apply([], children) + } + } + return children + } + + // 2. When the children contains constructs that always generated nested Arrays, + // e.g.