From 82df79c638ee0201dd8db40fc6806754412af2e3 Mon Sep 17 00:00:00 2001 From: danial Date: Mon, 3 Nov 2025 19:10:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(security):=20=E5=AE=9E=E7=8E=B0x-api-eid-t?= =?UTF-8?q?oken=E7=AE=97=E6=B3=95=E5=8F=8A=E8=BE=85=E5=8A=A9=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增GetXToken函数用于生成x-api-eid-token - 实现HASH类用于计算128位哈希值 - 添加md5函数用于消息摘要计算 - 实现STrEnc函数用于字符串加密 - 添加getLastParameter与splitAndJoin辅助函数 - 构建完整的浏览器指纹对象生成逻辑 - 集成node-fetch与https-proxy-agent支持代理请求 - 实现完整的WebGL与浏览器环境模拟数据结构 --- CipherStash-xToken.js | 747 ++ Dockerfile | 19 + README.md | 5 + api.js | 863 ++ h5st.js | 11074 ++++++++++++++++ node_modules/.package-lock.json | 765 ++ node_modules/accepts/HISTORY.md | 250 + node_modules/accepts/LICENSE | 23 + node_modules/accepts/README.md | 140 + node_modules/accepts/index.js | 238 + node_modules/accepts/package.json | 47 + node_modules/body-parser/HISTORY.md | 731 + node_modules/body-parser/LICENSE | 23 + node_modules/body-parser/README.md | 491 + node_modules/body-parser/index.js | 80 + node_modules/body-parser/lib/read.js | 210 + node_modules/body-parser/lib/types/json.js | 206 + node_modules/body-parser/lib/types/raw.js | 75 + node_modules/body-parser/lib/types/text.js | 80 + .../body-parser/lib/types/urlencoded.js | 177 + node_modules/body-parser/lib/utils.js | 83 + node_modules/body-parser/package.json | 49 + node_modules/bytes/History.md | 97 + node_modules/bytes/LICENSE | 23 + node_modules/bytes/Readme.md | 152 + node_modules/bytes/index.js | 170 + node_modules/bytes/package.json | 42 + .../call-bind-apply-helpers/.eslintrc | 17 + .../.github/FUNDING.yml | 12 + node_modules/call-bind-apply-helpers/.nycrc | 9 + .../call-bind-apply-helpers/CHANGELOG.md | 30 + node_modules/call-bind-apply-helpers/LICENSE | 21 + .../call-bind-apply-helpers/README.md | 62 + .../call-bind-apply-helpers/actualApply.d.ts | 1 + .../call-bind-apply-helpers/actualApply.js | 10 + .../call-bind-apply-helpers/applyBind.d.ts | 19 + .../call-bind-apply-helpers/applyBind.js | 10 + .../functionApply.d.ts | 1 + .../call-bind-apply-helpers/functionApply.js | 4 + .../call-bind-apply-helpers/functionCall.d.ts | 1 + .../call-bind-apply-helpers/functionCall.js | 4 + .../call-bind-apply-helpers/index.d.ts | 64 + node_modules/call-bind-apply-helpers/index.js | 15 + .../call-bind-apply-helpers/package.json | 85 + .../call-bind-apply-helpers/reflectApply.d.ts | 3 + .../call-bind-apply-helpers/reflectApply.js | 4 + .../call-bind-apply-helpers/test/index.js | 63 + .../call-bind-apply-helpers/tsconfig.json | 9 + node_modules/call-bound/.eslintrc | 13 + node_modules/call-bound/.github/FUNDING.yml | 12 + node_modules/call-bound/.nycrc | 9 + node_modules/call-bound/CHANGELOG.md | 42 + node_modules/call-bound/LICENSE | 21 + node_modules/call-bound/README.md | 53 + node_modules/call-bound/index.d.ts | 94 + node_modules/call-bound/index.js | 19 + node_modules/call-bound/package.json | 99 + node_modules/call-bound/test/index.js | 61 + node_modules/call-bound/tsconfig.json | 10 + node_modules/content-disposition/HISTORY.md | 66 + node_modules/content-disposition/LICENSE | 22 + node_modules/content-disposition/README.md | 142 + node_modules/content-disposition/index.js | 459 + node_modules/content-disposition/package.json | 44 + node_modules/content-type/HISTORY.md | 29 + node_modules/content-type/LICENSE | 22 + node_modules/content-type/README.md | 94 + node_modules/content-type/index.js | 225 + node_modules/content-type/package.json | 42 + node_modules/cookie-signature/History.md | 70 + node_modules/cookie-signature/LICENSE | 22 + node_modules/cookie-signature/Readme.md | 23 + node_modules/cookie-signature/index.js | 47 + node_modules/cookie-signature/package.json | 24 + node_modules/cookie/LICENSE | 24 + node_modules/cookie/README.md | 317 + node_modules/cookie/SECURITY.md | 25 + node_modules/cookie/index.js | 335 + node_modules/cookie/package.json | 44 + node_modules/debug/LICENSE | 20 + node_modules/debug/README.md | 481 + node_modules/debug/package.json | 64 + node_modules/debug/src/browser.js | 272 + node_modules/debug/src/common.js | 292 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/node.js | 263 + node_modules/depd/History.md | 103 + node_modules/depd/LICENSE | 22 + node_modules/depd/Readme.md | 280 + node_modules/depd/index.js | 538 + node_modules/depd/lib/browser/index.js | 77 + node_modules/depd/package.json | 45 + node_modules/dunder-proto/.eslintrc | 5 + node_modules/dunder-proto/.github/FUNDING.yml | 12 + node_modules/dunder-proto/.nycrc | 13 + node_modules/dunder-proto/CHANGELOG.md | 24 + node_modules/dunder-proto/LICENSE | 21 + node_modules/dunder-proto/README.md | 54 + node_modules/dunder-proto/get.d.ts | 5 + node_modules/dunder-proto/get.js | 30 + node_modules/dunder-proto/package.json | 76 + node_modules/dunder-proto/set.d.ts | 5 + node_modules/dunder-proto/set.js | 35 + node_modules/dunder-proto/test/get.js | 34 + node_modules/dunder-proto/test/index.js | 4 + node_modules/dunder-proto/test/set.js | 50 + node_modules/dunder-proto/tsconfig.json | 9 + node_modules/ee-first/LICENSE | 22 + node_modules/ee-first/README.md | 80 + node_modules/ee-first/index.js | 95 + node_modules/ee-first/package.json | 29 + node_modules/encodeurl/LICENSE | 22 + node_modules/encodeurl/README.md | 109 + node_modules/encodeurl/index.js | 60 + node_modules/encodeurl/package.json | 40 + node_modules/es-define-property/.eslintrc | 13 + .../es-define-property/.github/FUNDING.yml | 12 + node_modules/es-define-property/.nycrc | 9 + node_modules/es-define-property/CHANGELOG.md | 29 + node_modules/es-define-property/LICENSE | 21 + node_modules/es-define-property/README.md | 49 + node_modules/es-define-property/index.d.ts | 3 + node_modules/es-define-property/index.js | 14 + node_modules/es-define-property/package.json | 81 + node_modules/es-define-property/test/index.js | 56 + node_modules/es-define-property/tsconfig.json | 10 + node_modules/es-errors/.eslintrc | 5 + node_modules/es-errors/.github/FUNDING.yml | 12 + node_modules/es-errors/CHANGELOG.md | 40 + node_modules/es-errors/LICENSE | 21 + node_modules/es-errors/README.md | 55 + node_modules/es-errors/eval.d.ts | 3 + node_modules/es-errors/eval.js | 4 + node_modules/es-errors/index.d.ts | 3 + node_modules/es-errors/index.js | 4 + node_modules/es-errors/package.json | 80 + node_modules/es-errors/range.d.ts | 3 + node_modules/es-errors/range.js | 4 + node_modules/es-errors/ref.d.ts | 3 + node_modules/es-errors/ref.js | 4 + node_modules/es-errors/syntax.d.ts | 3 + node_modules/es-errors/syntax.js | 4 + node_modules/es-errors/test/index.js | 19 + node_modules/es-errors/tsconfig.json | 49 + node_modules/es-errors/type.d.ts | 3 + node_modules/es-errors/type.js | 4 + node_modules/es-errors/uri.d.ts | 3 + node_modules/es-errors/uri.js | 4 + node_modules/es-object-atoms/.eslintrc | 16 + .../es-object-atoms/.github/FUNDING.yml | 12 + node_modules/es-object-atoms/CHANGELOG.md | 37 + node_modules/es-object-atoms/LICENSE | 21 + node_modules/es-object-atoms/README.md | 63 + .../RequireObjectCoercible.d.ts | 3 + .../es-object-atoms/RequireObjectCoercible.js | 11 + node_modules/es-object-atoms/ToObject.d.ts | 7 + node_modules/es-object-atoms/ToObject.js | 10 + node_modules/es-object-atoms/index.d.ts | 3 + node_modules/es-object-atoms/index.js | 4 + node_modules/es-object-atoms/isObject.d.ts | 3 + node_modules/es-object-atoms/isObject.js | 6 + node_modules/es-object-atoms/package.json | 80 + node_modules/es-object-atoms/test/index.js | 38 + node_modules/es-object-atoms/tsconfig.json | 6 + node_modules/escape-html/LICENSE | 24 + node_modules/escape-html/Readme.md | 43 + node_modules/escape-html/index.js | 78 + node_modules/escape-html/package.json | 24 + node_modules/etag/HISTORY.md | 83 + node_modules/etag/LICENSE | 22 + node_modules/etag/README.md | 159 + node_modules/etag/index.js | 131 + node_modules/etag/package.json | 47 + node_modules/express/History.md | 3858 ++++++ node_modules/express/LICENSE | 24 + node_modules/express/Readme.md | 266 + node_modules/express/index.js | 11 + node_modules/express/lib/application.js | 631 + node_modules/express/lib/express.js | 81 + node_modules/express/lib/request.js | 515 + node_modules/express/lib/response.js | 1039 ++ node_modules/express/lib/utils.js | 269 + node_modules/express/lib/view.js | 205 + node_modules/express/package.json | 98 + node_modules/finalhandler/HISTORY.md | 233 + node_modules/finalhandler/LICENSE | 22 + node_modules/finalhandler/README.md | 147 + node_modules/finalhandler/index.js | 293 + node_modules/finalhandler/package.json | 43 + node_modules/forwarded/HISTORY.md | 21 + node_modules/forwarded/LICENSE | 22 + node_modules/forwarded/README.md | 57 + node_modules/forwarded/index.js | 90 + node_modules/forwarded/package.json | 45 + node_modules/fresh/HISTORY.md | 80 + node_modules/fresh/LICENSE | 23 + node_modules/fresh/README.md | 117 + node_modules/fresh/index.js | 136 + node_modules/fresh/package.json | 46 + node_modules/function-bind/.eslintrc | 21 + .../function-bind/.github/FUNDING.yml | 12 + .../function-bind/.github/SECURITY.md | 3 + node_modules/function-bind/.nycrc | 13 + node_modules/function-bind/CHANGELOG.md | 136 + node_modules/function-bind/LICENSE | 20 + node_modules/function-bind/README.md | 46 + node_modules/function-bind/implementation.js | 84 + node_modules/function-bind/index.js | 5 + node_modules/function-bind/package.json | 87 + node_modules/function-bind/test/.eslintrc | 9 + node_modules/function-bind/test/index.js | 252 + node_modules/get-intrinsic/.eslintrc | 42 + .../get-intrinsic/.github/FUNDING.yml | 12 + node_modules/get-intrinsic/.nycrc | 9 + node_modules/get-intrinsic/CHANGELOG.md | 186 + node_modules/get-intrinsic/LICENSE | 21 + node_modules/get-intrinsic/README.md | 71 + node_modules/get-intrinsic/index.js | 378 + node_modules/get-intrinsic/package.json | 97 + .../get-intrinsic/test/GetIntrinsic.js | 274 + node_modules/get-proto/.eslintrc | 10 + node_modules/get-proto/.github/FUNDING.yml | 12 + node_modules/get-proto/.nycrc | 9 + node_modules/get-proto/CHANGELOG.md | 21 + node_modules/get-proto/LICENSE | 21 + .../get-proto/Object.getPrototypeOf.d.ts | 5 + .../get-proto/Object.getPrototypeOf.js | 6 + node_modules/get-proto/README.md | 50 + .../get-proto/Reflect.getPrototypeOf.d.ts | 3 + .../get-proto/Reflect.getPrototypeOf.js | 4 + node_modules/get-proto/index.d.ts | 5 + node_modules/get-proto/index.js | 27 + node_modules/get-proto/package.json | 81 + node_modules/get-proto/test/index.js | 68 + node_modules/get-proto/tsconfig.json | 9 + node_modules/gopd/.eslintrc | 16 + node_modules/gopd/.github/FUNDING.yml | 12 + node_modules/gopd/CHANGELOG.md | 45 + node_modules/gopd/LICENSE | 21 + node_modules/gopd/README.md | 40 + node_modules/gopd/gOPD.d.ts | 1 + node_modules/gopd/gOPD.js | 4 + node_modules/gopd/index.d.ts | 5 + node_modules/gopd/index.js | 15 + node_modules/gopd/package.json | 77 + node_modules/gopd/test/index.js | 36 + node_modules/gopd/tsconfig.json | 9 + node_modules/has-symbols/.eslintrc | 11 + node_modules/has-symbols/.github/FUNDING.yml | 12 + node_modules/has-symbols/.nycrc | 9 + node_modules/has-symbols/CHANGELOG.md | 91 + node_modules/has-symbols/LICENSE | 21 + node_modules/has-symbols/README.md | 46 + node_modules/has-symbols/index.d.ts | 3 + node_modules/has-symbols/index.js | 14 + node_modules/has-symbols/package.json | 111 + node_modules/has-symbols/shams.d.ts | 3 + node_modules/has-symbols/shams.js | 45 + node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 29 + .../test/shams/get-own-property-symbols.js | 29 + node_modules/has-symbols/test/tests.js | 58 + node_modules/has-symbols/tsconfig.json | 10 + node_modules/hasown/.eslintrc | 5 + node_modules/hasown/.github/FUNDING.yml | 12 + node_modules/hasown/.nycrc | 13 + node_modules/hasown/CHANGELOG.md | 40 + node_modules/hasown/LICENSE | 21 + node_modules/hasown/README.md | 40 + node_modules/hasown/index.d.ts | 3 + node_modules/hasown/index.js | 8 + node_modules/hasown/package.json | 92 + node_modules/hasown/tsconfig.json | 6 + node_modules/http-errors/HISTORY.md | 180 + node_modules/http-errors/LICENSE | 23 + node_modules/http-errors/README.md | 169 + node_modules/http-errors/index.js | 289 + .../node_modules/statuses/HISTORY.md | 82 + .../http-errors/node_modules/statuses/LICENSE | 23 + .../node_modules/statuses/README.md | 136 + .../node_modules/statuses/codes.json | 65 + .../node_modules/statuses/index.js | 146 + .../node_modules/statuses/package.json | 49 + node_modules/http-errors/package.json | 50 + .../iconv-lite/.github/dependabot.yml | 11 + .../iconv-lite/.idea/codeStyles/Project.xml | 47 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + node_modules/iconv-lite/.idea/iconv-lite.iml | 12 + .../inspectionProfiles/Project_Default.xml | 6 + node_modules/iconv-lite/.idea/modules.xml | 8 + node_modules/iconv-lite/.idea/vcs.xml | 6 + node_modules/iconv-lite/Changelog.md | 212 + node_modules/iconv-lite/LICENSE | 21 + node_modules/iconv-lite/README.md | 130 + .../iconv-lite/encodings/dbcs-codec.js | 597 + .../iconv-lite/encodings/dbcs-data.js | 188 + node_modules/iconv-lite/encodings/index.js | 23 + node_modules/iconv-lite/encodings/internal.js | 198 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 179 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 56 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + node_modules/iconv-lite/encodings/utf16.js | 197 + node_modules/iconv-lite/encodings/utf32.js | 319 + node_modules/iconv-lite/encodings/utf7.js | 290 + node_modules/iconv-lite/lib/bom-handling.js | 52 + node_modules/iconv-lite/lib/index.d.ts | 41 + node_modules/iconv-lite/lib/index.js | 180 + node_modules/iconv-lite/lib/streams.js | 109 + node_modules/iconv-lite/package.json | 44 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/ipaddr.js/LICENSE | 19 + node_modules/ipaddr.js/README.md | 233 + node_modules/ipaddr.js/ipaddr.min.js | 1 + node_modules/ipaddr.js/lib/ipaddr.js | 673 + node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + node_modules/ipaddr.js/package.json | 35 + node_modules/is-promise/LICENSE | 19 + node_modules/is-promise/index.d.ts | 2 + node_modules/is-promise/index.js | 6 + node_modules/is-promise/index.mjs | 3 + node_modules/is-promise/package.json | 30 + node_modules/is-promise/readme.md | 33 + node_modules/math-intrinsics/.eslintrc | 16 + .../math-intrinsics/.github/FUNDING.yml | 12 + node_modules/math-intrinsics/CHANGELOG.md | 24 + node_modules/math-intrinsics/LICENSE | 21 + node_modules/math-intrinsics/README.md | 50 + node_modules/math-intrinsics/abs.d.ts | 1 + node_modules/math-intrinsics/abs.js | 4 + .../constants/maxArrayLength.d.ts | 3 + .../constants/maxArrayLength.js | 4 + .../constants/maxSafeInteger.d.ts | 3 + .../constants/maxSafeInteger.js | 5 + .../math-intrinsics/constants/maxValue.d.ts | 3 + .../math-intrinsics/constants/maxValue.js | 5 + node_modules/math-intrinsics/floor.d.ts | 1 + node_modules/math-intrinsics/floor.js | 4 + node_modules/math-intrinsics/isFinite.d.ts | 3 + node_modules/math-intrinsics/isFinite.js | 12 + node_modules/math-intrinsics/isInteger.d.ts | 3 + node_modules/math-intrinsics/isInteger.js | 16 + node_modules/math-intrinsics/isNaN.d.ts | 1 + node_modules/math-intrinsics/isNaN.js | 6 + .../math-intrinsics/isNegativeZero.d.ts | 3 + .../math-intrinsics/isNegativeZero.js | 6 + node_modules/math-intrinsics/max.d.ts | 1 + node_modules/math-intrinsics/max.js | 4 + node_modules/math-intrinsics/min.d.ts | 1 + node_modules/math-intrinsics/min.js | 4 + node_modules/math-intrinsics/mod.d.ts | 3 + node_modules/math-intrinsics/mod.js | 9 + node_modules/math-intrinsics/package.json | 86 + node_modules/math-intrinsics/pow.d.ts | 1 + node_modules/math-intrinsics/pow.js | 4 + node_modules/math-intrinsics/round.d.ts | 1 + node_modules/math-intrinsics/round.js | 4 + node_modules/math-intrinsics/sign.d.ts | 3 + node_modules/math-intrinsics/sign.js | 11 + node_modules/math-intrinsics/test/index.js | 192 + node_modules/math-intrinsics/tsconfig.json | 3 + node_modules/media-typer/HISTORY.md | 50 + node_modules/media-typer/LICENSE | 22 + node_modules/media-typer/README.md | 93 + node_modules/media-typer/index.js | 143 + node_modules/media-typer/package.json | 33 + node_modules/merge-descriptors/index.d.ts | 11 + node_modules/merge-descriptors/index.js | 26 + node_modules/merge-descriptors/license | 11 + node_modules/merge-descriptors/package.json | 50 + node_modules/merge-descriptors/readme.md | 55 + node_modules/mime-db/HISTORY.md | 541 + node_modules/mime-db/LICENSE | 23 + node_modules/mime-db/README.md | 109 + node_modules/mime-db/db.json | 9342 +++++++++++++ node_modules/mime-db/index.js | 12 + node_modules/mime-db/package.json | 56 + node_modules/mime-types/HISTORY.md | 421 + node_modules/mime-types/LICENSE | 23 + node_modules/mime-types/README.md | 126 + node_modules/mime-types/index.js | 211 + node_modules/mime-types/mimeScore.js | 52 + node_modules/mime-types/package.json | 45 + node_modules/ms/index.js | 162 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 38 + node_modules/ms/readme.md | 59 + node_modules/negotiator/HISTORY.md | 114 + node_modules/negotiator/LICENSE | 24 + node_modules/negotiator/README.md | 212 + node_modules/negotiator/index.js | 83 + node_modules/negotiator/lib/charset.js | 169 + node_modules/negotiator/lib/encoding.js | 205 + node_modules/negotiator/lib/language.js | 179 + node_modules/negotiator/lib/mediaType.js | 294 + node_modules/negotiator/package.json | 43 + node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + node_modules/object-inspect/.nycrc | 13 + node_modules/object-inspect/CHANGELOG.md | 424 + node_modules/object-inspect/LICENSE | 21 + node_modules/object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + node_modules/object-inspect/index.js | 544 + .../object-inspect/package-support.json | 20 + node_modules/object-inspect/package.json | 105 + node_modules/object-inspect/readme.markdown | 84 + node_modules/object-inspect/test-core-js.js | 26 + node_modules/object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + node_modules/object-inspect/test/circular.js | 16 + node_modules/object-inspect/test/deep.js | 12 + node_modules/object-inspect/test/element.js | 53 + node_modules/object-inspect/test/err.js | 48 + node_modules/object-inspect/test/fakes.js | 29 + node_modules/object-inspect/test/fn.js | 76 + node_modules/object-inspect/test/global.js | 17 + node_modules/object-inspect/test/has.js | 15 + node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + node_modules/object-inspect/test/inspect.js | 139 + node_modules/object-inspect/test/lowbyte.js | 12 + node_modules/object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 26 + .../object-inspect/test/toStringTag.js | 40 + node_modules/object-inspect/test/undef.js | 12 + node_modules/object-inspect/test/values.js | 261 + node_modules/object-inspect/util.inspect.js | 1 + node_modules/on-finished/HISTORY.md | 98 + node_modules/on-finished/LICENSE | 23 + node_modules/on-finished/README.md | 162 + node_modules/on-finished/index.js | 234 + node_modules/on-finished/package.json | 39 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/parseurl/HISTORY.md | 58 + node_modules/parseurl/LICENSE | 24 + node_modules/parseurl/README.md | 133 + node_modules/parseurl/index.js | 158 + node_modules/parseurl/package.json | 40 + node_modules/path-to-regexp/LICENSE | 21 + node_modules/path-to-regexp/Readme.md | 224 + node_modules/path-to-regexp/dist/index.d.ts | 144 + node_modules/path-to-regexp/dist/index.js | 409 + node_modules/path-to-regexp/dist/index.js.map | 1 + node_modules/path-to-regexp/package.json | 64 + node_modules/proxy-addr/HISTORY.md | 161 + node_modules/proxy-addr/LICENSE | 22 + node_modules/proxy-addr/README.md | 139 + node_modules/proxy-addr/index.js | 327 + node_modules/proxy-addr/package.json | 47 + node_modules/qs/.editorconfig | 46 + node_modules/qs/.eslintrc | 39 + node_modules/qs/.github/FUNDING.yml | 12 + node_modules/qs/.nycrc | 13 + node_modules/qs/CHANGELOG.md | 622 + node_modules/qs/LICENSE.md | 29 + node_modules/qs/README.md | 733 + node_modules/qs/dist/qs.js | 141 + node_modules/qs/lib/formats.js | 23 + node_modules/qs/lib/index.js | 11 + node_modules/qs/lib/parse.js | 328 + node_modules/qs/lib/stringify.js | 356 + node_modules/qs/lib/utils.js | 268 + node_modules/qs/package.json | 93 + node_modules/qs/test/empty-keys-cases.js | 267 + node_modules/qs/test/parse.js | 1276 ++ node_modules/qs/test/stringify.js | 1306 ++ node_modules/qs/test/utils.js | 262 + node_modules/range-parser/HISTORY.md | 56 + node_modules/range-parser/LICENSE | 23 + node_modules/range-parser/README.md | 84 + node_modules/range-parser/index.js | 162 + node_modules/range-parser/package.json | 44 + node_modules/raw-body/HISTORY.md | 333 + node_modules/raw-body/LICENSE | 22 + node_modules/raw-body/README.md | 223 + node_modules/raw-body/SECURITY.md | 24 + node_modules/raw-body/index.d.ts | 85 + node_modules/raw-body/index.js | 336 + .../node_modules/iconv-lite/Changelog.md | 236 + .../raw-body/node_modules/iconv-lite/LICENSE | 21 + .../node_modules/iconv-lite/README.md | 138 + .../iconv-lite/encodings/dbcs-codec.js | 532 + .../iconv-lite/encodings/dbcs-data.js | 185 + .../iconv-lite/encodings/index.js | 23 + .../iconv-lite/encodings/internal.js | 218 + .../iconv-lite/encodings/sbcs-codec.js | 75 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 178 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 56 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../iconv-lite/encodings/utf16.js | 187 + .../iconv-lite/encodings/utf32.js | 307 + .../node_modules/iconv-lite/encodings/utf7.js | 283 + .../iconv-lite/lib/bom-handling.js | 48 + .../iconv-lite/lib/helpers/merge-exports.js | 13 + .../node_modules/iconv-lite/lib/index.d.ts | 41 + .../node_modules/iconv-lite/lib/index.js | 183 + .../node_modules/iconv-lite/lib/streams.js | 105 + .../node_modules/iconv-lite/package.json | 59 + node_modules/raw-body/package.json | 50 + node_modules/router/HISTORY.md | 228 + node_modules/router/LICENSE | 23 + node_modules/router/README.md | 416 + node_modules/router/index.js | 748 ++ node_modules/router/lib/layer.js | 247 + node_modules/router/lib/route.js | 242 + node_modules/router/package.json | 44 + node_modules/safe-buffer/LICENSE | 21 + node_modules/safe-buffer/README.md | 584 + node_modules/safe-buffer/index.d.ts | 187 + node_modules/safe-buffer/index.js | 65 + node_modules/safe-buffer/package.json | 51 + node_modules/safer-buffer/LICENSE | 21 + node_modules/safer-buffer/Porting-Buffer.md | 268 + node_modules/safer-buffer/Readme.md | 156 + node_modules/safer-buffer/dangerous.js | 58 + node_modules/safer-buffer/package.json | 34 + node_modules/safer-buffer/safer.js | 77 + node_modules/safer-buffer/tests.js | 406 + node_modules/send/HISTORY.md | 580 + node_modules/send/LICENSE | 23 + node_modules/send/README.md | 317 + node_modules/send/index.js | 997 ++ node_modules/send/package.json | 60 + node_modules/serve-static/HISTORY.md | 516 + node_modules/serve-static/LICENSE | 25 + node_modules/serve-static/README.md | 253 + node_modules/serve-static/index.js | 208 + node_modules/serve-static/package.json | 41 + node_modules/setprototypeof/LICENSE | 13 + node_modules/setprototypeof/README.md | 31 + node_modules/setprototypeof/index.d.ts | 2 + node_modules/setprototypeof/index.js | 17 + node_modules/setprototypeof/package.json | 38 + node_modules/setprototypeof/test/index.js | 24 + node_modules/side-channel-list/.editorconfig | 9 + node_modules/side-channel-list/.eslintrc | 11 + .../side-channel-list/.github/FUNDING.yml | 12 + node_modules/side-channel-list/.nycrc | 13 + node_modules/side-channel-list/CHANGELOG.md | 15 + node_modules/side-channel-list/LICENSE | 21 + node_modules/side-channel-list/README.md | 62 + node_modules/side-channel-list/index.d.ts | 13 + node_modules/side-channel-list/index.js | 113 + node_modules/side-channel-list/list.d.ts | 14 + node_modules/side-channel-list/package.json | 77 + node_modules/side-channel-list/test/index.js | 104 + node_modules/side-channel-list/tsconfig.json | 9 + node_modules/side-channel-map/.editorconfig | 9 + node_modules/side-channel-map/.eslintrc | 11 + .../side-channel-map/.github/FUNDING.yml | 12 + node_modules/side-channel-map/.nycrc | 13 + node_modules/side-channel-map/CHANGELOG.md | 22 + node_modules/side-channel-map/LICENSE | 21 + node_modules/side-channel-map/README.md | 62 + node_modules/side-channel-map/index.d.ts | 15 + node_modules/side-channel-map/index.js | 68 + node_modules/side-channel-map/package.json | 80 + node_modules/side-channel-map/test/index.js | 114 + node_modules/side-channel-map/tsconfig.json | 9 + .../side-channel-weakmap/.editorconfig | 9 + node_modules/side-channel-weakmap/.eslintrc | 12 + .../side-channel-weakmap/.github/FUNDING.yml | 12 + node_modules/side-channel-weakmap/.nycrc | 13 + .../side-channel-weakmap/CHANGELOG.md | 28 + node_modules/side-channel-weakmap/LICENSE | 21 + node_modules/side-channel-weakmap/README.md | 62 + node_modules/side-channel-weakmap/index.d.ts | 15 + node_modules/side-channel-weakmap/index.js | 84 + .../side-channel-weakmap/package.json | 87 + .../side-channel-weakmap/test/index.js | 114 + .../side-channel-weakmap/tsconfig.json | 9 + node_modules/side-channel/.editorconfig | 9 + node_modules/side-channel/.eslintrc | 12 + node_modules/side-channel/.github/FUNDING.yml | 12 + node_modules/side-channel/.nycrc | 13 + node_modules/side-channel/CHANGELOG.md | 110 + node_modules/side-channel/LICENSE | 21 + node_modules/side-channel/README.md | 61 + node_modules/side-channel/index.d.ts | 14 + node_modules/side-channel/index.js | 43 + node_modules/side-channel/package.json | 85 + node_modules/side-channel/test/index.js | 104 + node_modules/side-channel/tsconfig.json | 9 + node_modules/statuses/HISTORY.md | 87 + node_modules/statuses/LICENSE | 23 + node_modules/statuses/README.md | 139 + node_modules/statuses/codes.json | 65 + node_modules/statuses/index.js | 146 + node_modules/statuses/package.json | 49 + node_modules/toidentifier/HISTORY.md | 9 + node_modules/toidentifier/LICENSE | 21 + node_modules/toidentifier/README.md | 61 + node_modules/toidentifier/index.js | 32 + node_modules/toidentifier/package.json | 38 + node_modules/type-is/HISTORY.md | 292 + node_modules/type-is/LICENSE | 23 + node_modules/type-is/README.md | 198 + node_modules/type-is/index.js | 250 + node_modules/type-is/package.json | 47 + node_modules/unpipe/HISTORY.md | 4 + node_modules/unpipe/LICENSE | 22 + node_modules/unpipe/README.md | 43 + node_modules/unpipe/index.js | 69 + node_modules/unpipe/package.json | 27 + node_modules/vary/HISTORY.md | 39 + node_modules/vary/LICENSE | 22 + node_modules/vary/README.md | 101 + node_modules/vary/index.js | 149 + node_modules/vary/package.json | 43 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + package-lock.json | 1299 ++ package.json | 5 + 639 files changed, 86106 insertions(+) create mode 100644 CipherStash-xToken.js create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 api.js create mode 100644 h5st.js create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/accepts/HISTORY.md create mode 100644 node_modules/accepts/LICENSE create mode 100644 node_modules/accepts/README.md create mode 100644 node_modules/accepts/index.js create mode 100644 node_modules/accepts/package.json create mode 100644 node_modules/body-parser/HISTORY.md create mode 100644 node_modules/body-parser/LICENSE create mode 100644 node_modules/body-parser/README.md create mode 100644 node_modules/body-parser/index.js create mode 100644 node_modules/body-parser/lib/read.js create mode 100644 node_modules/body-parser/lib/types/json.js create mode 100644 node_modules/body-parser/lib/types/raw.js create mode 100644 node_modules/body-parser/lib/types/text.js create mode 100644 node_modules/body-parser/lib/types/urlencoded.js create mode 100644 node_modules/body-parser/lib/utils.js create mode 100644 node_modules/body-parser/package.json create mode 100644 node_modules/bytes/History.md create mode 100644 node_modules/bytes/LICENSE create mode 100644 node_modules/bytes/Readme.md create mode 100644 node_modules/bytes/index.js create mode 100644 node_modules/bytes/package.json create mode 100644 node_modules/call-bind-apply-helpers/.eslintrc create mode 100644 node_modules/call-bind-apply-helpers/.github/FUNDING.yml create mode 100644 node_modules/call-bind-apply-helpers/.nycrc create mode 100644 node_modules/call-bind-apply-helpers/CHANGELOG.md create mode 100644 node_modules/call-bind-apply-helpers/LICENSE create mode 100644 node_modules/call-bind-apply-helpers/README.md create mode 100644 node_modules/call-bind-apply-helpers/actualApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/actualApply.js create mode 100644 node_modules/call-bind-apply-helpers/applyBind.d.ts create mode 100644 node_modules/call-bind-apply-helpers/applyBind.js create mode 100644 node_modules/call-bind-apply-helpers/functionApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionApply.js create mode 100644 node_modules/call-bind-apply-helpers/functionCall.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionCall.js create mode 100644 node_modules/call-bind-apply-helpers/index.d.ts create mode 100644 node_modules/call-bind-apply-helpers/index.js create mode 100644 node_modules/call-bind-apply-helpers/package.json create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.js create mode 100644 node_modules/call-bind-apply-helpers/test/index.js create mode 100644 node_modules/call-bind-apply-helpers/tsconfig.json create mode 100644 node_modules/call-bound/.eslintrc create mode 100644 node_modules/call-bound/.github/FUNDING.yml create mode 100644 node_modules/call-bound/.nycrc create mode 100644 node_modules/call-bound/CHANGELOG.md create mode 100644 node_modules/call-bound/LICENSE create mode 100644 node_modules/call-bound/README.md create mode 100644 node_modules/call-bound/index.d.ts create mode 100644 node_modules/call-bound/index.js create mode 100644 node_modules/call-bound/package.json create mode 100644 node_modules/call-bound/test/index.js create mode 100644 node_modules/call-bound/tsconfig.json create mode 100644 node_modules/content-disposition/HISTORY.md create mode 100644 node_modules/content-disposition/LICENSE create mode 100644 node_modules/content-disposition/README.md create mode 100644 node_modules/content-disposition/index.js create mode 100644 node_modules/content-disposition/package.json create mode 100644 node_modules/content-type/HISTORY.md create mode 100644 node_modules/content-type/LICENSE create mode 100644 node_modules/content-type/README.md create mode 100644 node_modules/content-type/index.js create mode 100644 node_modules/content-type/package.json create mode 100644 node_modules/cookie-signature/History.md create mode 100644 node_modules/cookie-signature/LICENSE create mode 100644 node_modules/cookie-signature/Readme.md create mode 100644 node_modules/cookie-signature/index.js create mode 100644 node_modules/cookie-signature/package.json create mode 100644 node_modules/cookie/LICENSE create mode 100644 node_modules/cookie/README.md create mode 100644 node_modules/cookie/SECURITY.md create mode 100644 node_modules/cookie/index.js create mode 100644 node_modules/cookie/package.json create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/common.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/depd/History.md create mode 100644 node_modules/depd/LICENSE create mode 100644 node_modules/depd/Readme.md create mode 100644 node_modules/depd/index.js create mode 100644 node_modules/depd/lib/browser/index.js create mode 100644 node_modules/depd/package.json create mode 100644 node_modules/dunder-proto/.eslintrc create mode 100644 node_modules/dunder-proto/.github/FUNDING.yml create mode 100644 node_modules/dunder-proto/.nycrc create mode 100644 node_modules/dunder-proto/CHANGELOG.md create mode 100644 node_modules/dunder-proto/LICENSE create mode 100644 node_modules/dunder-proto/README.md create mode 100644 node_modules/dunder-proto/get.d.ts create mode 100644 node_modules/dunder-proto/get.js create mode 100644 node_modules/dunder-proto/package.json create mode 100644 node_modules/dunder-proto/set.d.ts create mode 100644 node_modules/dunder-proto/set.js create mode 100644 node_modules/dunder-proto/test/get.js create mode 100644 node_modules/dunder-proto/test/index.js create mode 100644 node_modules/dunder-proto/test/set.js create mode 100644 node_modules/dunder-proto/tsconfig.json create mode 100644 node_modules/ee-first/LICENSE create mode 100644 node_modules/ee-first/README.md create mode 100644 node_modules/ee-first/index.js create mode 100644 node_modules/ee-first/package.json create mode 100644 node_modules/encodeurl/LICENSE create mode 100644 node_modules/encodeurl/README.md create mode 100644 node_modules/encodeurl/index.js create mode 100644 node_modules/encodeurl/package.json create mode 100644 node_modules/es-define-property/.eslintrc create mode 100644 node_modules/es-define-property/.github/FUNDING.yml create mode 100644 node_modules/es-define-property/.nycrc create mode 100644 node_modules/es-define-property/CHANGELOG.md create mode 100644 node_modules/es-define-property/LICENSE create mode 100644 node_modules/es-define-property/README.md create mode 100644 node_modules/es-define-property/index.d.ts create mode 100644 node_modules/es-define-property/index.js create mode 100644 node_modules/es-define-property/package.json create mode 100644 node_modules/es-define-property/test/index.js create mode 100644 node_modules/es-define-property/tsconfig.json create mode 100644 node_modules/es-errors/.eslintrc create mode 100644 node_modules/es-errors/.github/FUNDING.yml create mode 100644 node_modules/es-errors/CHANGELOG.md create mode 100644 node_modules/es-errors/LICENSE create mode 100644 node_modules/es-errors/README.md create mode 100644 node_modules/es-errors/eval.d.ts create mode 100644 node_modules/es-errors/eval.js create mode 100644 node_modules/es-errors/index.d.ts create mode 100644 node_modules/es-errors/index.js create mode 100644 node_modules/es-errors/package.json create mode 100644 node_modules/es-errors/range.d.ts create mode 100644 node_modules/es-errors/range.js create mode 100644 node_modules/es-errors/ref.d.ts create mode 100644 node_modules/es-errors/ref.js create mode 100644 node_modules/es-errors/syntax.d.ts create mode 100644 node_modules/es-errors/syntax.js create mode 100644 node_modules/es-errors/test/index.js create mode 100644 node_modules/es-errors/tsconfig.json create mode 100644 node_modules/es-errors/type.d.ts create mode 100644 node_modules/es-errors/type.js create mode 100644 node_modules/es-errors/uri.d.ts create mode 100644 node_modules/es-errors/uri.js create mode 100644 node_modules/es-object-atoms/.eslintrc create mode 100644 node_modules/es-object-atoms/.github/FUNDING.yml create mode 100644 node_modules/es-object-atoms/CHANGELOG.md create mode 100644 node_modules/es-object-atoms/LICENSE create mode 100644 node_modules/es-object-atoms/README.md create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.d.ts create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.js create mode 100644 node_modules/es-object-atoms/ToObject.d.ts create mode 100644 node_modules/es-object-atoms/ToObject.js create mode 100644 node_modules/es-object-atoms/index.d.ts create mode 100644 node_modules/es-object-atoms/index.js create mode 100644 node_modules/es-object-atoms/isObject.d.ts create mode 100644 node_modules/es-object-atoms/isObject.js create mode 100644 node_modules/es-object-atoms/package.json create mode 100644 node_modules/es-object-atoms/test/index.js create mode 100644 node_modules/es-object-atoms/tsconfig.json create mode 100644 node_modules/escape-html/LICENSE create mode 100644 node_modules/escape-html/Readme.md create mode 100644 node_modules/escape-html/index.js create mode 100644 node_modules/escape-html/package.json create mode 100644 node_modules/etag/HISTORY.md create mode 100644 node_modules/etag/LICENSE create mode 100644 node_modules/etag/README.md create mode 100644 node_modules/etag/index.js create mode 100644 node_modules/etag/package.json create mode 100644 node_modules/express/History.md create mode 100644 node_modules/express/LICENSE create mode 100644 node_modules/express/Readme.md create mode 100644 node_modules/express/index.js create mode 100644 node_modules/express/lib/application.js create mode 100644 node_modules/express/lib/express.js create mode 100644 node_modules/express/lib/request.js create mode 100644 node_modules/express/lib/response.js create mode 100644 node_modules/express/lib/utils.js create mode 100644 node_modules/express/lib/view.js create mode 100644 node_modules/express/package.json create mode 100644 node_modules/finalhandler/HISTORY.md create mode 100644 node_modules/finalhandler/LICENSE create mode 100644 node_modules/finalhandler/README.md create mode 100644 node_modules/finalhandler/index.js create mode 100644 node_modules/finalhandler/package.json create mode 100644 node_modules/forwarded/HISTORY.md create mode 100644 node_modules/forwarded/LICENSE create mode 100644 node_modules/forwarded/README.md create mode 100644 node_modules/forwarded/index.js create mode 100644 node_modules/forwarded/package.json create mode 100644 node_modules/fresh/HISTORY.md create mode 100644 node_modules/fresh/LICENSE create mode 100644 node_modules/fresh/README.md create mode 100644 node_modules/fresh/index.js create mode 100644 node_modules/fresh/package.json create mode 100644 node_modules/function-bind/.eslintrc create mode 100644 node_modules/function-bind/.github/FUNDING.yml create mode 100644 node_modules/function-bind/.github/SECURITY.md create mode 100644 node_modules/function-bind/.nycrc create mode 100644 node_modules/function-bind/CHANGELOG.md create mode 100644 node_modules/function-bind/LICENSE create mode 100644 node_modules/function-bind/README.md create mode 100644 node_modules/function-bind/implementation.js create mode 100644 node_modules/function-bind/index.js create mode 100644 node_modules/function-bind/package.json create mode 100644 node_modules/function-bind/test/.eslintrc create mode 100644 node_modules/function-bind/test/index.js create mode 100644 node_modules/get-intrinsic/.eslintrc create mode 100644 node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 node_modules/get-intrinsic/.nycrc create mode 100644 node_modules/get-intrinsic/CHANGELOG.md create mode 100644 node_modules/get-intrinsic/LICENSE create mode 100644 node_modules/get-intrinsic/README.md create mode 100644 node_modules/get-intrinsic/index.js create mode 100644 node_modules/get-intrinsic/package.json create mode 100644 node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 node_modules/get-proto/.eslintrc create mode 100644 node_modules/get-proto/.github/FUNDING.yml create mode 100644 node_modules/get-proto/.nycrc create mode 100644 node_modules/get-proto/CHANGELOG.md create mode 100644 node_modules/get-proto/LICENSE create mode 100644 node_modules/get-proto/Object.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Object.getPrototypeOf.js create mode 100644 node_modules/get-proto/README.md create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.js create mode 100644 node_modules/get-proto/index.d.ts create mode 100644 node_modules/get-proto/index.js create mode 100644 node_modules/get-proto/package.json create mode 100644 node_modules/get-proto/test/index.js create mode 100644 node_modules/get-proto/tsconfig.json create mode 100644 node_modules/gopd/.eslintrc create mode 100644 node_modules/gopd/.github/FUNDING.yml create mode 100644 node_modules/gopd/CHANGELOG.md create mode 100644 node_modules/gopd/LICENSE create mode 100644 node_modules/gopd/README.md create mode 100644 node_modules/gopd/gOPD.d.ts create mode 100644 node_modules/gopd/gOPD.js create mode 100644 node_modules/gopd/index.d.ts create mode 100644 node_modules/gopd/index.js create mode 100644 node_modules/gopd/package.json create mode 100644 node_modules/gopd/test/index.js create mode 100644 node_modules/gopd/tsconfig.json create mode 100644 node_modules/has-symbols/.eslintrc create mode 100644 node_modules/has-symbols/.github/FUNDING.yml create mode 100644 node_modules/has-symbols/.nycrc create mode 100644 node_modules/has-symbols/CHANGELOG.md create mode 100644 node_modules/has-symbols/LICENSE create mode 100644 node_modules/has-symbols/README.md create mode 100644 node_modules/has-symbols/index.d.ts create mode 100644 node_modules/has-symbols/index.js create mode 100644 node_modules/has-symbols/package.json create mode 100644 node_modules/has-symbols/shams.d.ts create mode 100644 node_modules/has-symbols/shams.js create mode 100644 node_modules/has-symbols/test/index.js create mode 100644 node_modules/has-symbols/test/shams/core-js.js create mode 100644 node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 node_modules/has-symbols/test/tests.js create mode 100644 node_modules/has-symbols/tsconfig.json create mode 100644 node_modules/hasown/.eslintrc create mode 100644 node_modules/hasown/.github/FUNDING.yml create mode 100644 node_modules/hasown/.nycrc create mode 100644 node_modules/hasown/CHANGELOG.md create mode 100644 node_modules/hasown/LICENSE create mode 100644 node_modules/hasown/README.md create mode 100644 node_modules/hasown/index.d.ts create mode 100644 node_modules/hasown/index.js create mode 100644 node_modules/hasown/package.json create mode 100644 node_modules/hasown/tsconfig.json create mode 100644 node_modules/http-errors/HISTORY.md create mode 100644 node_modules/http-errors/LICENSE create mode 100644 node_modules/http-errors/README.md create mode 100644 node_modules/http-errors/index.js create mode 100644 node_modules/http-errors/node_modules/statuses/HISTORY.md create mode 100644 node_modules/http-errors/node_modules/statuses/LICENSE create mode 100644 node_modules/http-errors/node_modules/statuses/README.md create mode 100644 node_modules/http-errors/node_modules/statuses/codes.json create mode 100644 node_modules/http-errors/node_modules/statuses/index.js create mode 100644 node_modules/http-errors/node_modules/statuses/package.json create mode 100644 node_modules/http-errors/package.json create mode 100644 node_modules/iconv-lite/.github/dependabot.yml create mode 100644 node_modules/iconv-lite/.idea/codeStyles/Project.xml create mode 100644 node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml create mode 100644 node_modules/iconv-lite/.idea/iconv-lite.iml create mode 100644 node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml create mode 100644 node_modules/iconv-lite/.idea/modules.xml create mode 100644 node_modules/iconv-lite/.idea/vcs.xml create mode 100644 node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/iconv-lite/LICENSE create mode 100644 node_modules/iconv-lite/README.md create mode 100644 node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/iconv-lite/encodings/utf32.js create mode 100644 node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/iconv-lite/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ipaddr.js/LICENSE create mode 100644 node_modules/ipaddr.js/README.md create mode 100644 node_modules/ipaddr.js/ipaddr.min.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 node_modules/ipaddr.js/package.json create mode 100644 node_modules/is-promise/LICENSE create mode 100644 node_modules/is-promise/index.d.ts create mode 100644 node_modules/is-promise/index.js create mode 100644 node_modules/is-promise/index.mjs create mode 100644 node_modules/is-promise/package.json create mode 100644 node_modules/is-promise/readme.md create mode 100644 node_modules/math-intrinsics/.eslintrc create mode 100644 node_modules/math-intrinsics/.github/FUNDING.yml create mode 100644 node_modules/math-intrinsics/CHANGELOG.md create mode 100644 node_modules/math-intrinsics/LICENSE create mode 100644 node_modules/math-intrinsics/README.md create mode 100644 node_modules/math-intrinsics/abs.d.ts create mode 100644 node_modules/math-intrinsics/abs.js create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.js create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.js create mode 100644 node_modules/math-intrinsics/constants/maxValue.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxValue.js create mode 100644 node_modules/math-intrinsics/floor.d.ts create mode 100644 node_modules/math-intrinsics/floor.js create mode 100644 node_modules/math-intrinsics/isFinite.d.ts create mode 100644 node_modules/math-intrinsics/isFinite.js create mode 100644 node_modules/math-intrinsics/isInteger.d.ts create mode 100644 node_modules/math-intrinsics/isInteger.js create mode 100644 node_modules/math-intrinsics/isNaN.d.ts create mode 100644 node_modules/math-intrinsics/isNaN.js create mode 100644 node_modules/math-intrinsics/isNegativeZero.d.ts create mode 100644 node_modules/math-intrinsics/isNegativeZero.js create mode 100644 node_modules/math-intrinsics/max.d.ts create mode 100644 node_modules/math-intrinsics/max.js create mode 100644 node_modules/math-intrinsics/min.d.ts create mode 100644 node_modules/math-intrinsics/min.js create mode 100644 node_modules/math-intrinsics/mod.d.ts create mode 100644 node_modules/math-intrinsics/mod.js create mode 100644 node_modules/math-intrinsics/package.json create mode 100644 node_modules/math-intrinsics/pow.d.ts create mode 100644 node_modules/math-intrinsics/pow.js create mode 100644 node_modules/math-intrinsics/round.d.ts create mode 100644 node_modules/math-intrinsics/round.js create mode 100644 node_modules/math-intrinsics/sign.d.ts create mode 100644 node_modules/math-intrinsics/sign.js create mode 100644 node_modules/math-intrinsics/test/index.js create mode 100644 node_modules/math-intrinsics/tsconfig.json create mode 100644 node_modules/media-typer/HISTORY.md create mode 100644 node_modules/media-typer/LICENSE create mode 100644 node_modules/media-typer/README.md create mode 100644 node_modules/media-typer/index.js create mode 100644 node_modules/media-typer/package.json create mode 100644 node_modules/merge-descriptors/index.d.ts create mode 100644 node_modules/merge-descriptors/index.js create mode 100644 node_modules/merge-descriptors/license create mode 100644 node_modules/merge-descriptors/package.json create mode 100644 node_modules/merge-descriptors/readme.md create mode 100644 node_modules/mime-db/HISTORY.md create mode 100644 node_modules/mime-db/LICENSE create mode 100644 node_modules/mime-db/README.md create mode 100644 node_modules/mime-db/db.json create mode 100644 node_modules/mime-db/index.js create mode 100644 node_modules/mime-db/package.json create mode 100644 node_modules/mime-types/HISTORY.md create mode 100644 node_modules/mime-types/LICENSE create mode 100644 node_modules/mime-types/README.md create mode 100644 node_modules/mime-types/index.js create mode 100644 node_modules/mime-types/mimeScore.js create mode 100644 node_modules/mime-types/package.json create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/negotiator/HISTORY.md create mode 100644 node_modules/negotiator/LICENSE create mode 100644 node_modules/negotiator/README.md create mode 100644 node_modules/negotiator/index.js create mode 100644 node_modules/negotiator/lib/charset.js create mode 100644 node_modules/negotiator/lib/encoding.js create mode 100644 node_modules/negotiator/lib/language.js create mode 100644 node_modules/negotiator/lib/mediaType.js create mode 100644 node_modules/negotiator/package.json create mode 100644 node_modules/object-inspect/.eslintrc create mode 100644 node_modules/object-inspect/.github/FUNDING.yml create mode 100644 node_modules/object-inspect/.nycrc create mode 100644 node_modules/object-inspect/CHANGELOG.md create mode 100644 node_modules/object-inspect/LICENSE create mode 100644 node_modules/object-inspect/example/all.js create mode 100644 node_modules/object-inspect/example/circular.js create mode 100644 node_modules/object-inspect/example/fn.js create mode 100644 node_modules/object-inspect/example/inspect.js create mode 100644 node_modules/object-inspect/index.js create mode 100644 node_modules/object-inspect/package-support.json create mode 100644 node_modules/object-inspect/package.json create mode 100644 node_modules/object-inspect/readme.markdown create mode 100644 node_modules/object-inspect/test-core-js.js create mode 100644 node_modules/object-inspect/test/bigint.js create mode 100644 node_modules/object-inspect/test/browser/dom.js create mode 100644 node_modules/object-inspect/test/circular.js create mode 100644 node_modules/object-inspect/test/deep.js create mode 100644 node_modules/object-inspect/test/element.js create mode 100644 node_modules/object-inspect/test/err.js create mode 100644 node_modules/object-inspect/test/fakes.js create mode 100644 node_modules/object-inspect/test/fn.js create mode 100644 node_modules/object-inspect/test/global.js create mode 100644 node_modules/object-inspect/test/has.js create mode 100644 node_modules/object-inspect/test/holes.js create mode 100644 node_modules/object-inspect/test/indent-option.js create mode 100644 node_modules/object-inspect/test/inspect.js create mode 100644 node_modules/object-inspect/test/lowbyte.js create mode 100644 node_modules/object-inspect/test/number.js create mode 100644 node_modules/object-inspect/test/quoteStyle.js create mode 100644 node_modules/object-inspect/test/toStringTag.js create mode 100644 node_modules/object-inspect/test/undef.js create mode 100644 node_modules/object-inspect/test/values.js create mode 100644 node_modules/object-inspect/util.inspect.js create mode 100644 node_modules/on-finished/HISTORY.md create mode 100644 node_modules/on-finished/LICENSE create mode 100644 node_modules/on-finished/README.md create mode 100644 node_modules/on-finished/index.js create mode 100644 node_modules/on-finished/package.json create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/parseurl/HISTORY.md create mode 100644 node_modules/parseurl/LICENSE create mode 100644 node_modules/parseurl/README.md create mode 100644 node_modules/parseurl/index.js create mode 100644 node_modules/parseurl/package.json create mode 100644 node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/path-to-regexp/dist/index.d.ts create mode 100644 node_modules/path-to-regexp/dist/index.js create mode 100644 node_modules/path-to-regexp/dist/index.js.map create mode 100644 node_modules/path-to-regexp/package.json create mode 100644 node_modules/proxy-addr/HISTORY.md create mode 100644 node_modules/proxy-addr/LICENSE create mode 100644 node_modules/proxy-addr/README.md create mode 100644 node_modules/proxy-addr/index.js create mode 100644 node_modules/proxy-addr/package.json create mode 100644 node_modules/qs/.editorconfig create mode 100644 node_modules/qs/.eslintrc create mode 100644 node_modules/qs/.github/FUNDING.yml create mode 100644 node_modules/qs/.nycrc create mode 100644 node_modules/qs/CHANGELOG.md create mode 100644 node_modules/qs/LICENSE.md create mode 100644 node_modules/qs/README.md create mode 100644 node_modules/qs/dist/qs.js create mode 100644 node_modules/qs/lib/formats.js create mode 100644 node_modules/qs/lib/index.js create mode 100644 node_modules/qs/lib/parse.js create mode 100644 node_modules/qs/lib/stringify.js create mode 100644 node_modules/qs/lib/utils.js create mode 100644 node_modules/qs/package.json create mode 100644 node_modules/qs/test/empty-keys-cases.js create mode 100644 node_modules/qs/test/parse.js create mode 100644 node_modules/qs/test/stringify.js create mode 100644 node_modules/qs/test/utils.js create mode 100644 node_modules/range-parser/HISTORY.md create mode 100644 node_modules/range-parser/LICENSE create mode 100644 node_modules/range-parser/README.md create mode 100644 node_modules/range-parser/index.js create mode 100644 node_modules/range-parser/package.json create mode 100644 node_modules/raw-body/HISTORY.md create mode 100644 node_modules/raw-body/LICENSE create mode 100644 node_modules/raw-body/README.md create mode 100644 node_modules/raw-body/SECURITY.md create mode 100644 node_modules/raw-body/index.d.ts create mode 100644 node_modules/raw-body/index.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/raw-body/node_modules/iconv-lite/LICENSE create mode 100644 node_modules/raw-body/node_modules/iconv-lite/README.md create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/utf32.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/helpers/merge-exports.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/package.json create mode 100644 node_modules/raw-body/package.json create mode 100644 node_modules/router/HISTORY.md create mode 100644 node_modules/router/LICENSE create mode 100644 node_modules/router/README.md create mode 100644 node_modules/router/index.js create mode 100644 node_modules/router/lib/layer.js create mode 100644 node_modules/router/lib/route.js create mode 100644 node_modules/router/package.json create mode 100644 node_modules/safe-buffer/LICENSE create mode 100644 node_modules/safe-buffer/README.md create mode 100644 node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/safe-buffer/index.js create mode 100644 node_modules/safe-buffer/package.json create mode 100644 node_modules/safer-buffer/LICENSE create mode 100644 node_modules/safer-buffer/Porting-Buffer.md create mode 100644 node_modules/safer-buffer/Readme.md create mode 100644 node_modules/safer-buffer/dangerous.js create mode 100644 node_modules/safer-buffer/package.json create mode 100644 node_modules/safer-buffer/safer.js create mode 100644 node_modules/safer-buffer/tests.js create mode 100644 node_modules/send/HISTORY.md create mode 100644 node_modules/send/LICENSE create mode 100644 node_modules/send/README.md create mode 100644 node_modules/send/index.js create mode 100644 node_modules/send/package.json create mode 100644 node_modules/serve-static/HISTORY.md create mode 100644 node_modules/serve-static/LICENSE create mode 100644 node_modules/serve-static/README.md create mode 100644 node_modules/serve-static/index.js create mode 100644 node_modules/serve-static/package.json create mode 100644 node_modules/setprototypeof/LICENSE create mode 100644 node_modules/setprototypeof/README.md create mode 100644 node_modules/setprototypeof/index.d.ts create mode 100644 node_modules/setprototypeof/index.js create mode 100644 node_modules/setprototypeof/package.json create mode 100644 node_modules/setprototypeof/test/index.js create mode 100644 node_modules/side-channel-list/.editorconfig create mode 100644 node_modules/side-channel-list/.eslintrc create mode 100644 node_modules/side-channel-list/.github/FUNDING.yml create mode 100644 node_modules/side-channel-list/.nycrc create mode 100644 node_modules/side-channel-list/CHANGELOG.md create mode 100644 node_modules/side-channel-list/LICENSE create mode 100644 node_modules/side-channel-list/README.md create mode 100644 node_modules/side-channel-list/index.d.ts create mode 100644 node_modules/side-channel-list/index.js create mode 100644 node_modules/side-channel-list/list.d.ts create mode 100644 node_modules/side-channel-list/package.json create mode 100644 node_modules/side-channel-list/test/index.js create mode 100644 node_modules/side-channel-list/tsconfig.json create mode 100644 node_modules/side-channel-map/.editorconfig create mode 100644 node_modules/side-channel-map/.eslintrc create mode 100644 node_modules/side-channel-map/.github/FUNDING.yml create mode 100644 node_modules/side-channel-map/.nycrc create mode 100644 node_modules/side-channel-map/CHANGELOG.md create mode 100644 node_modules/side-channel-map/LICENSE create mode 100644 node_modules/side-channel-map/README.md create mode 100644 node_modules/side-channel-map/index.d.ts create mode 100644 node_modules/side-channel-map/index.js create mode 100644 node_modules/side-channel-map/package.json create mode 100644 node_modules/side-channel-map/test/index.js create mode 100644 node_modules/side-channel-map/tsconfig.json create mode 100644 node_modules/side-channel-weakmap/.editorconfig create mode 100644 node_modules/side-channel-weakmap/.eslintrc create mode 100644 node_modules/side-channel-weakmap/.github/FUNDING.yml create mode 100644 node_modules/side-channel-weakmap/.nycrc create mode 100644 node_modules/side-channel-weakmap/CHANGELOG.md create mode 100644 node_modules/side-channel-weakmap/LICENSE create mode 100644 node_modules/side-channel-weakmap/README.md create mode 100644 node_modules/side-channel-weakmap/index.d.ts create mode 100644 node_modules/side-channel-weakmap/index.js create mode 100644 node_modules/side-channel-weakmap/package.json create mode 100644 node_modules/side-channel-weakmap/test/index.js create mode 100644 node_modules/side-channel-weakmap/tsconfig.json create mode 100644 node_modules/side-channel/.editorconfig create mode 100644 node_modules/side-channel/.eslintrc create mode 100644 node_modules/side-channel/.github/FUNDING.yml create mode 100644 node_modules/side-channel/.nycrc create mode 100644 node_modules/side-channel/CHANGELOG.md create mode 100644 node_modules/side-channel/LICENSE create mode 100644 node_modules/side-channel/README.md create mode 100644 node_modules/side-channel/index.d.ts create mode 100644 node_modules/side-channel/index.js create mode 100644 node_modules/side-channel/package.json create mode 100644 node_modules/side-channel/test/index.js create mode 100644 node_modules/side-channel/tsconfig.json create mode 100644 node_modules/statuses/HISTORY.md create mode 100644 node_modules/statuses/LICENSE create mode 100644 node_modules/statuses/README.md create mode 100644 node_modules/statuses/codes.json create mode 100644 node_modules/statuses/index.js create mode 100644 node_modules/statuses/package.json create mode 100644 node_modules/toidentifier/HISTORY.md create mode 100644 node_modules/toidentifier/LICENSE create mode 100644 node_modules/toidentifier/README.md create mode 100644 node_modules/toidentifier/index.js create mode 100644 node_modules/toidentifier/package.json create mode 100644 node_modules/type-is/HISTORY.md create mode 100644 node_modules/type-is/LICENSE create mode 100644 node_modules/type-is/README.md create mode 100644 node_modules/type-is/index.js create mode 100644 node_modules/type-is/package.json create mode 100644 node_modules/unpipe/HISTORY.md create mode 100644 node_modules/unpipe/LICENSE create mode 100644 node_modules/unpipe/README.md create mode 100644 node_modules/unpipe/index.js create mode 100644 node_modules/unpipe/package.json create mode 100644 node_modules/vary/HISTORY.md create mode 100644 node_modules/vary/LICENSE create mode 100644 node_modules/vary/README.md create mode 100644 node_modules/vary/index.js create mode 100644 node_modules/vary/package.json create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/CipherStash-xToken.js b/CipherStash-xToken.js new file mode 100644 index 0000000..3977c82 --- /dev/null +++ b/CipherStash-xToken.js @@ -0,0 +1,747 @@ +import fetch from 'node-fetch'; +import { HttpsProxyAgent } from 'https-proxy-agent'; + +/** + * x-api-eid-token 算法(type:11) + * + * @param {*} str ua参数 + * @returns + */ +export async function GetXToken(str, proxy) { + var HASH = function () { + function l(b, f) { + b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535]; + f = [f[0] >>> 16, f[0] & 65535, f[1] >>> 16, f[1] & 65535]; + var c = [0, 0, 0, 0]; + c[3] += b[3] + f[3]; + c[2] += c[3] >>> 16; + c[3] &= 65535; + c[2] += b[2] + f[2]; + c[1] += c[2] >>> 16; + c[2] &= 65535; + c[1] += b[1] + f[1]; + c[0] += c[1] >>> 16; + c[1] &= 65535; + c[0] += b[0] + f[0]; + c[0] &= 65535; + return [c[0] << 16 | c[1], c[2] << 16 | c[3]] + } + + function k(b, f) { + b = [b[0] >>> 16, b[0] & 65535, b[1] >>> 16, b[1] & 65535]; + f = [f[0] >>> 16, f[0] & 65535, f[1] >>> 16, f[1] & 65535]; + var c = [0, 0, 0, 0]; + c[3] += b[3] * f[3]; + c[2] += c[3] >>> 16; + c[3] &= 65535; + c[2] += b[2] * f[3]; + c[1] += c[2] >>> 16; + c[2] &= 65535; + c[2] += b[3] * f[2]; + c[1] += c[2] >>> 16; + c[2] &= 65535; + c[1] += b[1] * f[3]; + c[0] += c[1] >>> 16; + c[1] &= 65535; + c[1] += b[2] * f[2]; + c[0] += c[1] >>> 16; + c[1] &= 65535; + c[1] += b[3] * f[1]; + c[0] += c[1] >>> 16; + c[1] &= 65535; + c[0] += b[0] * f[3] + b[1] * f[2] + b[2] * f[1] + b[3] * f[0]; + c[0] &= 65535; + return [c[0] << 16 | c[1], c[2] << 16 | c[3]] + } + + function e(b, f) { + f %= 64; + if (32 === f) + return [b[1], b[0]]; + if (32 > f) + return [b[0] << f | b[1] >>> 32 - f, b[1] << f | b[0] >>> 32 - f]; + f -= 32; + return [b[1] << f | b[0] >>> 32 - f, b[0] << f | b[1] >>> 32 - f] + } + + function h(b, f) { + f %= 64; + return 0 === f ? b : 32 > f ? [b[0] << f | b[1] >>> 32 - f, b[1] << f] : [b[1] << f - 32, 0] + } + + function d(b, f) { + return [b[0] ^ f[0], b[1] ^ f[1]] + } + + function a(b) { + b = d(b, [0, b[0] >>> 1]); + b = k(b, [4283543511, 3981806797]); + b = d(b, [0, b[0] >>> 1]); + b = k(b, [3301882366, 444984403]); + return b = d(b, [0, b[0] >>> 1]) + } + + return { + hash128: function (b, f) { + b = b || ""; + var c = f || 0; + f = b.length % 16; + var m = b.length - f + , n = [0, c]; + c = [0, c]; + for (var q, p, t = [2277735313, 289559509], u = [1291169091, 658871167], r = 0; r < m; r += 16) + q = [b.charCodeAt(r + 4) & 255 | (b.charCodeAt(r + 5) & 255) << 8 | (b.charCodeAt(r + 6) & 255) << 16 | (b.charCodeAt(r + 7) & 255) << 24, b.charCodeAt(r) & 255 | (b.charCodeAt(r + 1) & 255) << 8 | (b.charCodeAt(r + 2) & 255) << 16 | (b.charCodeAt(r + 3) & 255) << 24], + p = [b.charCodeAt(r + 12) & 255 | (b.charCodeAt(r + 13) & 255) << 8 | (b.charCodeAt(r + 14) & 255) << 16 | (b.charCodeAt(r + 15) & 255) << 24, b.charCodeAt(r + 8) & 255 | (b.charCodeAt(r + 9) & 255) << 8 | (b.charCodeAt(r + 10) & 255) << 16 | (b.charCodeAt(r + 11) & 255) << 24], + q = k(q, t), + q = e(q, 31), + q = k(q, u), + n = d(n, q), + n = e(n, 27), + n = l(n, c), + n = l(k(n, [0, 5]), [0, 1390208809]), + p = k(p, u), + p = e(p, 33), + p = k(p, t), + c = d(c, p), + c = e(c, 31), + c = l(c, n), + c = l(k(c, [0, 5]), [0, 944331445]); + q = [0, 0]; + p = [0, 0]; + switch (f) { + case 15: + p = d(p, h([0, b.charCodeAt(r + 14)], 48)); + case 14: + p = d(p, h([0, b.charCodeAt(r + 13)], 40)); + case 13: + p = d(p, h([0, b.charCodeAt(r + 12)], 32)); + case 12: + p = d(p, h([0, b.charCodeAt(r + 11)], 24)); + case 11: + p = d(p, h([0, b.charCodeAt(r + 10)], 16)); + case 10: + p = d(p, h([0, b.charCodeAt(r + 9)], 8)); + case 9: + p = d(p, [0, b.charCodeAt(r + 8)]), + p = k(p, u), + p = e(p, 33), + p = k(p, t), + c = d(c, p); + case 8: + q = d(q, h([0, b.charCodeAt(r + 7)], 56)); + case 7: + q = d(q, h([0, b.charCodeAt(r + 6)], 48)); + case 6: + q = d(q, h([0, b.charCodeAt(r + 5)], 40)); + case 5: + q = d(q, h([0, b.charCodeAt(r + 4)], 32)); + case 4: + q = d(q, h([0, b.charCodeAt(r + 3)], 24)); + case 3: + q = d(q, h([0, b.charCodeAt(r + 2)], 16)); + case 2: + q = d(q, h([0, b.charCodeAt(r + 1)], 8)); + case 1: + q = d(q, [0, b.charCodeAt(r)]), + q = k(q, t), + q = e(q, 31), + q = k(q, u), + n = d(n, q) + } + n = d(n, [0, b.length]); + c = d(c, [0, b.length]); + n = l(n, c); + c = l(c, n); + n = a(n); + c = a(c); + n = l(n, c); + c = l(c, n); + return ("00000000" + (n[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (n[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (c[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (c[1] >>> 0).toString(16)).slice(-8) + } + } + }(); + + function md5(string) { + // 辅助函数 + function rotateLeft(lValue, iShiftBits) { + return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); + } + + function addUnsigned(lX, lY) { + var lX4, lY4, lX8, lY8, lResult; + lX8 = (lX & 0x80000000); + lY8 = (lY & 0x80000000); + lX4 = (lX & 0x40000000); + lY4 = (lY & 0x40000000); + lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF); + if (lX4 & lY4) { + return (lResult ^ 0x80000000 ^ lX8 ^ lY8); + } + if (lX4 | lY4) { + if (lResult & 0x40000000) { + return (lResult ^ 0xC0000000 ^ lX8 ^ lY8); + } else { + return (lResult ^ 0x40000000 ^ lX8 ^ lY8); + } + } else { + return (lResult ^ lX8 ^ lY8); + } + } + + function F(x, y, z) { + return (x & y) | ((~x) & z); + } + + function G(x, y, z) { + return (x & z) | (y & (~z)); + } + + function H(x, y, z) { + return (x ^ y ^ z); + } + + function I(x, y, z) { + return (y ^ (x | (~z))); + } + + function FF(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + } + + function GG(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + } + + function HH(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + } + + function II(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + } + + function convertToWordArray(string) { + var lWordCount; + var lMessageLength = string.length; + var lNumberOfWords_temp1 = lMessageLength + 8; + var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64; + var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16; + var lWordArray = Array(lNumberOfWords - 1); + var lBytePosition = 0; + var lByteCount = 0; + while (lByteCount < lMessageLength) { + lWordCount = (lByteCount - (lByteCount % 4)) / 4; + lBytePosition = (lByteCount % 4) * 8; + lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition)); + lByteCount++; + } + lWordCount = (lByteCount - (lByteCount % 4)) / 4; + lBytePosition = (lByteCount % 4) * 8; + lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition); + lWordArray[lNumberOfWords - 2] = lMessageLength << 3; + lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29; + return lWordArray; + } + + function wordToHex(lValue) { + var WordToHexValue = "", WordToHexValue_temp = "", lByte, lCount; + for (lCount = 0; lCount <= 3; lCount++) { + lByte = (lValue >>> (lCount * 8)) & 255; + WordToHexValue_temp = "0" + lByte.toString(16); + WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2); + } + return WordToHexValue; + } + + function utf8Encode(string) { + string = string.replace(/\r\n/g, "\n"); + var utftext = ""; + + for (var n = 0; n < string.length; n++) { + var c = string.charCodeAt(n); + + if (c < 128) { + utftext += String.fromCharCode(c); + } else if ((c > 127) && (c < 2048)) { + utftext += String.fromCharCode((c >> 6) | 192); + utftext += String.fromCharCode((c & 63) | 128); + } else { + utftext += String.fromCharCode((c >> 12) | 224); + utftext += String.fromCharCode(((c >> 6) & 63) | 128); + utftext += String.fromCharCode((c & 63) | 128); + } + } + + return utftext; + } + + // 初始化变量 + var x = Array(); + var k, AA, BB, CC, DD, a, b, c, d; + var S11 = 7, S12 = 12, S13 = 17, S14 = 22; + var S21 = 5, S22 = 9, S23 = 14, S24 = 20; + var S31 = 4, S32 = 11, S33 = 16, S34 = 23; + var S41 = 6, S42 = 10, S43 = 15, S44 = 21; + + string = utf8Encode(string); + x = convertToWordArray(string); + + a = 0x67452301; + b = 0xEFCDAB89; + c = 0x98BADCFE; + d = 0x10325476; + + for (k = 0; k < x.length; k += 16) { + AA = a; + BB = b; + CC = c; + DD = d; + a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478); + d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756); + c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB); + b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE); + a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF); + d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A); + c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613); + b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501); + a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8); + d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF); + c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1); + b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE); + a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122); + d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193); + c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E); + b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821); + a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562); + d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340); + c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51); + b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA); + a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D); + d = GG(d, a, b, c, x[k + 10], S22, 0x2441453); + c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681); + b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8); + a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6); + d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6); + c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87); + b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED); + a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905); + d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8); + c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9); + b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A); + a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942); + d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681); + c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122); + b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C); + a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44); + d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9); + c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60); + b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70); + a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6); + d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA); + c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085); + b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05); + a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039); + d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5); + c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8); + b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665); + a = II(a, b, c, d, x[k + 0], S41, 0xF4292244); + d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97); + c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7); + b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039); + a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3); + d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92); + c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D); + b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1); + a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F); + d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0); + c = II(c, d, a, b, x[k + 6], S43, 0xA3014314); + b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1); + a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82); + d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235); + c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB); + b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391); + a = addUnsigned(a, AA); + b = addUnsigned(b, BB); + c = addUnsigned(c, CC); + d = addUnsigned(d, DD); + } + + var temp = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d); + return temp.toLowerCase(); + } + + function STrEnc(l) { + l = JSON.stringify(l); + l = encodeURIComponent(l); + var k = "" + , e = 0; + do { + var h = l.charCodeAt(e++); + var d = l.charCodeAt(e++); + var a = l.charCodeAt(e++); + var b = h >> 2; + h = (h & 3) << 4 | d >> 4; + var f = (d & 15) << 2 | a >> 6; + var c = a & 63; + isNaN(d) ? f = c = 64 : isNaN(a) && (c = 64); + k = k + "23IL { + if (err) { + console.warn(`查无配置文件,将使用默认配置;配置文件名:${defaultConfig.ConfigName}.txt`); + } else { + const lines = data.split('\n'); + if (lines.length >= 2) { + defaultConfig.route = lines[0].trim(); + defaultConfig.port = parseInt(lines[1].trim(), 10) || 6689; + } + } + + app.get(defaultConfig.route, function (req, res) { + /** + * 接口文档 + */ + + const apiDoc = ` + + + + + + + + + + + + + + + +
+

API 加密算法文档

+
+ +
+
+ 重要提示:请勿将这些算法用于任何违法行为 +
+ + + +

请求概览

+ + + + + + + + + +
请求方法POST
表单格式x-www-form-urlencoded
+ +
+

API 接口详情

+
+

1. X-Api-Eid-Token算法

+

用于生成API请求的Eid Token

+ +

请求字段:

+ + + + + + + + + + + + + + + + +
KeyValue说明
type11固定值
strMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36UserAgent参数
+ +

返回结果示例:

+
+ {"code":0,"msg":"成功","data":{"token":"jdd03CGY3XHRBUYYHUESZTTF3NUFTJCY35XFKI3IUEKMFIHWCAB4RFTZRNKR3GWD6UUOGNBMK6AFDAK3KLDJY5BJSBLFKI4AAAAMZ44RCAVAAAAAACRXJASXS2ZLTX4X","eid":"CGY3XHRBUYYHUESZTTF3NUFTJCY35XFKI3IUEKMFIHWCAB4RFTZRNKR3GWD6UUOGNBMK6AFDAK3KLDJY5BJSBLFKI4","gia_d":1,"deMap":null,"ds":120}} +
+
+
+
+ + + + +`; + + // 返回 API 文档 + res.send(apiDoc); + }); + + app.post(defaultConfig.route, async function (req, res) { + try { + let { type, str, proxy } = req.body; + let content = ''; + + console.log(`${new Date().toLocaleString()} --> 客户端:${req.ip} --> 执行算法:${CipherTable[type]}`); + + // 创建对象映射 + const algorithmMap = { + '1': async () => await GetXToken(str, proxy) + }; + + // 匹配对应的对象 + const handler = algorithmMap[type]; + content = handler ? await handler() : '查无此算法'; + + res.send(content); + } catch (e) { + console.log(`${new Date().toLocaleString()} --> 客户端:${req.ip} --> 执行异常:${e}`); + res.send('解析异常,请检查请求参数'); + } + }); +}); + +app.get(`${defaultConfigh5st.route}/apidoc`, (req, res) => { + /** + * 同意异常日志 + * + * @param {*} e + */ + function error(e) { + console.log(`${new Date().toLocaleString()} --> 客户端:${req.ip} --> 解析异常:${e}`); + res.send(defaultConfigh5st.errorStr); + } + + try { + // api 文档 + apiDoc = ` + + + + + + API接口文档 + + + + + + +
+ +
+
+

API 接口文档

+
+
+ + +
+ +
+ + 请勿将本API用于任何违法行为 +
+ + +
+

接口请求模式

+ +
+ + + + + + + + + + + + + + + + + + + + +
请求方法表单格式备注
GET
POSTx-www-form-urlencoded适用于数据量较大的请求
+
+
+ +
+

字段概述

+

参数计算所涉及的字段名(区分大小写)及其描述:

+ +

基础字段

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
字段名描述备注
khd客户端代号(jx、pc、jm、m(不填写默认m))选填接口请求不通可选择对应的平台代号
ai需求的官方接口抓包中的h5st数据进行拆分 - 第3个位置必填原始抓包数据中的h5st参数值中提取
pincookie中pin或者pt_pin字段的属性值可选无需登录则不填
suauser-agent第一个括号内的参数必填注意跟实际的一致(空格允许存在)
+
+ +

官方接口字段(字段名与官方接口一致)- 理论支持所有出现过的字段

+

提示 官方接口有出现对应字段时才需拼接到请求参数

+

示例 appid=xx&functionId=xx 以此类推;未出现字段无需拼接Key、Value

+

注意 区分大小写

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
字段名备注
appid选填
functionId选填
body选填数据过长可使用post模式请求、或者手动进行SHA256进行加密后再次填写 +
clientVersion选填
client选填
t选填
jsonp选填
api选填
appId选填
v选填
metrics选填
outputDimensions选填
filters选填
orderBy选填
pageNum选填
pageSize选填
+
+
+ +
+ + +

API 接口示例

+ + +
+

例子1:jx端获取订单列表数据

+

注意 自行替换正确的IP地址,pin替换实际的参数,sua注意空格

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
字段名示例值
khdjx
ai25f73
pin根据实际填写cookie中pin或者pt_pin字段的属性值
suaWindows NT 10.0; Win64; x64
functionIdlite_newUserAllOrderList
appidjx_h5
t1748489096059
clientVersion1.2.5
clientjxh5
body{"page":1,"pagesize":10,"buid":325,"appCode":"ms0ca95114","time":1748489096059,"signStr":"db3c8b3733006239b535be3975c072ab"} +
+
+ + +
+

GET请求示例

+
+
请求URL:
+
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}?khd=jx&ai=25f73&pin=&sua=Windows NT 10.0; Win64; x64&functionId=lite_newUserAllOrderList&appid=jx_h5&t=1748489096059&clientVersion=1.2.5&client=jxh5&body=
+
+
+ + +
+

POST请求示例 (x-www-form-urlencoded)

+
+
请求URL:
+
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}
+ +
请求头:
+
Content-Type: application/x-www-form-urlencoded
+ +
请求体:
+
khd=jx&ai=25f73&pin=&sua=Windows NT 10.0; Win64; x64&functionId=lite_newUserAllOrderList&appid=jx_h5&t=1748489096059&clientVersion=1.2.5&client=jxh5&body=
+
+

提示 body参数带中文时需要将body属性值进行URL编码

+
+
+ + +
+

例子2:j麦接口

+

注意 自行替换正确的IP地址,body,pin替换实际的参数,sua注意空格

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
字段名示例值
khdjm
ai 0248a
pin根据实际填写cookie中pin或者pt_pin字段的属性值
suaWindows NT 10.0; Win64; x64
apidsm.wareshopv2.ware.wareListService.queryWareList
v1.0
appId3MC69M4R3HFKCQ4S01DN
body{"a": "1"}
+
+ + +
+

GET请求示例

+
+
请求URL:
+
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}?khd=jm&ai=0248a&pin=&sua=Windows NT 10.0; Win64&api=dsm.wareshopv2.ware.wareListService.queryWareList&v=1.0&appId=3MC69M4R3HFKCQ4S01DN&body={"a":"1"}
+
+
+ + +
+

POST请求示例 (x-www-form-urlencoded)

+
+
请求URL:
+
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}
+ +
请求头:
+
Content-Type: application/x-www-form-urlencoded
+ +
请求体:
+
khd=jm&ai=0248a&pin=&sua=Windows NT 10.0; Win64&api=dsm.wareshopv2.ware.wareListService.queryWareList&v=1.0&appId=3MC69M4R3HFKCQ4S01DN&body={"a":"1"}
+
+

提示 body参数带中文时需要将body属性值进行URL编码

+
+
+
+
+ + +` + + res.send(apiDoc); + } catch (e) { + error(e); + } +}); +app.post(defaultConfigh5st.route, (req, res) => handleH5stRequest(req, res, req.body)); +app.get(defaultConfigh5st.route, (req, res) => handleH5stRequest(req, res, req.query)); + +app.listen(defaultConfig.port, '0.0.0.0', () => { + console.log(`${defaultConfig.CipherName}服务端启动成功!!!`); + console.log(`路由:${defaultConfig.route}`); + console.log(`端口:${defaultConfig.port}`) +}); \ No newline at end of file diff --git a/h5st.js b/h5st.js new file mode 100644 index 0000000..bad3d9c --- /dev/null +++ b/h5st.js @@ -0,0 +1,11074 @@ +let window = {} + +export var ParamsSign = function () { + 'use strict'; + + function _4sbu0(s) { + var o = ''; + for (var i = 0; i < s.length;) { + var c = s.charCodeAt(i++); + if (c > 63) + o += String.fromCharCode(c ^ 19); + else if (c == 35) + o += s.charAt(i++); + else + o += String.fromCharCode(c); + } + return o; + } + + var _1tbu0 = ["enc", _4sbu0("Fgz#l`"), _4sbu0("ua|~D|awRaarj"), _4sbu0("pr#l#l"), _4sbu0("ca|g|gjcv"), _4sbu0("cf`{"), _4sbu0("rcc#lj"), _4sbu0("g|D|awRaarj"), _4sbu0("u|a~rg"), _4sbu0("cra`v"), _4sbu0("LvWrgr"), _4sbu0("Lwrgr"), _4sbu0("pr#l#l"), _4sbu0("L}WrgrQjgv`"), _4sbu0("`ztQjgv`"), _4sbu0("pr#l#l"), _4sbu0("[dVpa"), _4sbu0("u#l||a"), _4sbu0("cC_}w"), _4sbu0("CFXFa"), _4sbu0("gyYy#O"), _4sbu0("vxprK"), _4sbu0("p{raP|wvRg"), _4sbu0("cf`{"), _4sbu0("p{raRg"), _4sbu0("y|z}"), "", _4sbu0("pr#l#l"), _4sbu0("iVfkG"), _4sbu0("`fq`ga"), _4sbu0("pr#l#l"), _4sbu0("L`vWrgr1"), "enc", _4sbu0("Fgz#l`"), _4sbu0("ua|~D|awRaarj"), _4sbu0("pr#l#l"), _4sbu0("ca|g|gjcv"), _4sbu0("cf`{"), _4sbu0("rcc#lj"), _4sbu0("jKgac"), _4sbu0("gjqRv"), _4sbu0("g|D|awRaarj"), _4sbu0("`gaz}tzuj1"), _4sbu0("`c#lzg"), "", _4sbu0("y|z}"), _4sbu0("`c#lzg"), "|", "0", "1", "2", "3", "4", "5", _4sbu0("`ztQjgv`"), _4sbu0("av`vg"), _4sbu0("p#l|}v"), _4sbu0("L|Xvj"), _4sbu0("LzXvj"), _4sbu0("d|aw`"), -2195899184, -3009192666, 6754648678, _4sbu0("B#ORXq"), _4sbu0("z}zg"), _4sbu0("L{r`{va"), _4sbu0("fgpWJ"), _4sbu0("cra`v"), _4sbu0("vXvj"), _4sbu0("q#l|px@ziv"), _4sbu0("_RWWU"), _4sbu0("uz}r#lziv"), _4sbu0("p#lr~c"), _4sbu0("`c#lzg"), "", _4sbu0("pr#l#l"), "pop", _4sbu0("p{raP|wvRg"), _4sbu0("ua|~P{raP|wv"), _4sbu0("cf`{"), _4sbu0("y|z}"), _4sbu0("aYv_W"), _4sbu0("Wdj}t"), _4sbu0("@@^_f"), _4sbu0("ar}w|~"), _4sbu0("pvVuw"), _4sbu0("`ziv"), "num", _4sbu0("dDJ#lz"), _4sbu0("ZuV#Or"), _4sbu0("`c#lzg"), "", _4sbu0("pr#l#l"), _4sbu0("cf`{"), _4sbu0("rpDVk"), _4sbu0("Ju@zp"), "pop", _4sbu0("g|@gaz}t"), _4sbu0("a_fzu"), _4sbu0("y|z}"), _4sbu0("qWvdY"), _4sbu0("pr#l#l"), _4sbu0("avc#lrpv"), "", _4sbu0("aYv_W"), _4sbu0("ar}w|~"), _4sbu0("cf`{"), "", _4sbu0("Wdj}t"), _4sbu0("cCp]b"), _4sbu0("`xR{g"), _4sbu0("azZUI"), "tk", _4sbu0("~rtzp"), "05", _4sbu0("eva`z|}"), "w", _4sbu0("c#lrgu|a~"), "41", _4sbu0("vkczav`"), "l", _4sbu0("ca|wfpva"), _4sbu0("vkca"), _4sbu0("pzc{va"), _4sbu0("]]|u_"), _4sbu0("~^PWR"), _4sbu0("g|@gaz}t"), _4sbu0("`fq`ga"), _4sbu0("rw#lva32"), "1", "2", "3", "+", "x", _4sbu0("u#l||a"), _4sbu0("cCp]b"), _4sbu0("ar}w|~"), "", _4sbu0("`xR{g"), _4sbu0("`fq`ga"), _4sbu0("cra`v"), _4sbu0("`gaz}tzuj"), _4sbu0("avc#lrpv"), "\\+", "g", "-", "\\/", "g", "_", "=", "g", _4sbu0("@@^_f"), "", "now", "0a", _4sbu0("`fq`ga"), _4sbu0("azZUI"), _4sbu0("cra`v"), _4sbu0("v}p|wv"), _4sbu0("`c#lzg"), "|", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", _4sbu0("ca|g|gjcv"), _4sbu0("u|aVrp{"), _4sbu0("pr#l#l"), "set", _4sbu0("g|@gaz}t"), _4sbu0("`fq`ga"), _4sbu0("g|D|awRaarj"), _4sbu0("p{raP|wvRg"), _4sbu0("p{raP|wvRg"), _4sbu0("p{raP|wvRg"), _4sbu0("u#l||a"), _4sbu0("aqrI_"), "pow", _4sbu0("`vgFz}g32"), _4sbu0("`vgZ}g16"), _4sbu0("}reztrg|a"), _4sbu0("dvqwazeva"), "wd", _4sbu0("#lr}tfrtv`"), _4sbu0("RPBZF"), "l", _4sbu0("c#lftz}`"), _4sbu0("gQrAt"), "ls", _4sbu0("DBKb~"), _4sbu0("w|pf~v}g"), _4sbu0("B]CR_"), _4sbu0("f`vaRtv}g"), _4sbu0("RAI`}"), _4sbu0("pr#l#l"), _4sbu0("tfPp^"), _4sbu0("erUj["), _4sbu0("|}^[j"), _4sbu0("pr#l#lC{r}g|~"), _4sbu0("Lc{r}g|~"), _4sbu0("EI`pU"), _4sbu0("{r`#Od}Ca|cvagj"), _4sbu0("pbcD`"), "wk", "bu1", _4sbu0("{vrw"), _4sbu0("WJ@vf"), _4sbu0("p{z#lwV#lv~v}gP|f}g"), "bu3", _4sbu0("f}wvuz}vw"), _4sbu0("@P_`b"), _4sbu0("av#lvr`v"), _4sbu0("}r~v"), _4sbu0("eva`z|}`"), _4sbu0("}|wv"), _4sbu0("eva`z|}"), _4sbu0("wv}|"), "get", _4sbu0("g|@gaz}t"), "bu4", _4sbu0("bfvaj@v#lvpg|a"), _4sbu0("`grpx"), "dp1", "dp2", _4sbu0("LLc#lrjdazt{gLLqz}wz}tLL"), _4sbu0("Pjcav``"), _4sbu0("LLPjcav``LL"), "bu5", _4sbu0("q|wj"), _4sbu0("eEQWB"), "bu6", _4sbu0("avc#lrpv"), "\\s", "g", "", _4sbu0("c`Ack"), "\\s", "g", _4sbu0("pavrgvV#lv~v}g"), "bu7", "all", _4sbu0("LLca|g|LL"), _4sbu0("ca|g|gjcv"), "bu8", _4sbu0("ar}w|~"), _4sbu0("tvgGz~vi|}v#Ouu`vg"), _4sbu0("FgAWy"), _4sbu0("qf12"), "", _4sbu0("fW}vB"), _4sbu0("p|}prg"), _4sbu0("pr#l#l"), _4sbu0("`gaz}tzuj"), _4sbu0("cra`v"), _4sbu0("bE]gx"), _4sbu0("Tpyey"), _4sbu0("avc#lrpv"), "-", "g", "+", "_", "g", "/", _4sbu0("~rgp{"), _4sbu0("MH123N(Hk+NH123N)+"), _4sbu0("`c#lzg"), _4sbu0("Lwvurf#lgR#lt|azg{~"), _4sbu0("u|aVrp{"), _4sbu0("Lwvqft"), _4sbu0("PUUbd"), _4sbu0("j^uur"), "+", "x", _4sbu0("pr#l#l"), _4sbu0("#lUkp|"), "", _4sbu0("p|}prg"), _4sbu0("FITRW"), _4sbu0("L$rg~"), "", _4sbu0("Lg|xv}"), _4sbu0("p|}prg"), _4sbu0("LLtv}Xvj"), _4sbu0("Lz`]|a~r#l"), "", _4sbu0("p|}prg"), _4sbu0("Luz}tvacaz}g"), _4sbu0("LrccZw"), _4sbu0("Lz`]|a~r#l"), _4sbu0("Lg|xv}"), _4sbu0("Lwvurf#lgG|xv}"), _4sbu0("Leva`z|}"), _4sbu0("y|z}"), ";", _4sbu0("pr#l#l"), _4sbu0("y|z}"), "&", _4sbu0("g|@gaz}t"), _4sbu0("Lwvqft"), _4sbu0("p|}prg"), _4sbu0("J#O|jU"), "key", ":", _4sbu0("er#lfv"), "d", _4sbu0(":rccz"), "nc", "t", "", _4sbu0(":uf}p"), "Id", _4sbu0("y|z}"), _4sbu0("g|@gaz}t"), _4sbu0("#lPUj{"), _4sbu0("Lwvqft"), _4sbu0("p|}prg"), _4sbu0("pr#l#l"), _4sbu0("`c#lzg"), "|", "0", "1", "2", "3", "4", "5", _4sbu0("L$t`"), _4sbu0("L$t`w"), _4sbu0("pr#l#l"), _4sbu0("y|z}"), ",", _4sbu0("v}p|wv"), _4sbu0("cra`v"), _4sbu0("L$t`c"), _4sbu0("Lwvqft"), "key", _4sbu0("`zt}@ga"), _4sbu0("L`gx"), _4sbu0("L`gv"), _4sbu0("{5`g"), _4sbu0("L|}@zt}"), _4sbu0("p|wv"), _4sbu0("~v``rtv"), _4sbu0("Lg|xv}"), _4sbu0("Lwvurf#lgG|xv}"), _4sbu0("rDD|A"), _4sbu0("Lz`]|a~r#l"), _4sbu0("LLtv}Xvj"), _4sbu0("Luz}tvacaz}g"), _4sbu0("LrccZw"), _4sbu0("Lr#lt|`"), _4sbu0("g|@gaz}t"), "", _4sbu0("L$twx"), "now", "53", "key", _4sbu0("iubep"), _4sbu0("Luz}tvacaz}g"), "fp", "0", "bu4", _4sbu0("Lwvqft"), _4sbu0("p|}prg"), _4sbu0("v}p|wv"), _4sbu0("cra`v"), "now", _4sbu0("L$pc`"), _4sbu0("L$aw`"), _4sbu0("L$p#lg"), _4sbu0("L$~`"), _4sbu0("Lwvqft"), _4sbu0("p|}prg"), "ms", _4sbu0("XXcGX")]; + var _3wmu0 = Function.prototype.call; + var _2z3u0 = [27, 80, 8, 98, 0, 98, 1, 6, 2, 41, 68, 40, 80, 66, 76, 82, 0, 68, 6, 3, 81, 68, 64, 80, 82, 0, 84, 80, 70, 1922, 70, 1654, 4, 70, -3570, 4, 87, 20, 47, 44, 5, 87, 20, 36, 9, 70, -3584, 70, 3504, 4, 70, 86, 4, 56, 80, 50, 98, 4, 98, 5, 6, 6, 83, 31, 76, 66, 76, 87, 68, 6, 3, 87, 70, -5355, 70, -520, 4, 70, 5875, 4, 89, 57, 30, 68, 6, 3, 27, 68, 78, 80, 50, 98, 4, 98, 5, 6, 6, 83, 66, 76, 87, 68, 6, 3, 87, 89, 87, 20, 57, 78, 80, 8, 98, 0, 98, 1, 6, 7, 83, 68, 3, 80, 97, 6, 8, 1, 68, 32, 19, 6, 51, 16, 52, 16, 55, 10, 87, 320, 57, 78, 4, 61, 54, 11, 82, 70, 0, 77, 70, 1, 78, 57, 57, 79, 16, 97, 10, 95, 2, 23, 57, 70, 3, 52, 78, 29, 16, 77, 7, 33, 4, 78, 33, 5, 11, 69, 4, 16, 75, 7, 53, 58, 69, 14, 97, 17, 5, 0, 97, 73, 14, 62, 380, 17, 24, 31, 47, 59, -3947, 59, 9054, 90, 59, -5103, 90, 78, 94, 59, -961, 59, -9108, 90, 59, 10085, 90, 67, 94, 80, 39, 0, 96, 94, 22, 74, 1, 80, 74, 2, 87, 31, 40, 95, 89, 8, 94, 58, 0, 37, 94, 59, 642, 59, 8640, 90, 59, -9282, 90, 29, 94, 73, 112, 59, 8581, 59, 3023, 90, 59, -11604, 90, 97, 94, 12, 16, 91, 3, 94, 12, 80, 74, 3, 40, 59, -9975, 59, -3171, 90, 59, 13147, 90, 95, 52, 34, 12, 16, 80, 74, 4, 87, 31, 40, 95, 90, 73, 2, 16, 93, 94, 59, 1413, 59, 6128, 90, 59, -7541, 90, 38, 94, 73, 26, 80, 74, 5, 6, 44, 95, 86, 94, 23, 87, 31, 72, 5, 9, 14, 87, 74, 6, 23, 89, 90, 97, 94, 2, 94, 44, 21, 72, 46, -29, 14, 68, 91, 97, 94, 54, 74, 7, 15, 74, 8, 80, 74, 4, 14, 15, 31, 95, 89, 89, 94, 81, 94, 12, 40, 72, 46, -115, 87, 54, 74, 9, 10, 10, 89, 90, 77, 24, 11, 21, 1, 47, 2706, 47, -2553, 43, 47, -153, 43, 37, 26, 7, 62, 28, 0, 7, 78, 85, 1, 84, 58, 72, 9, 7, 28, 2, 47, 10, 62, 14, 14, 59, 26, 7, 62, 28, 0, 7, 33, 26, 47, 380, 62, 84, 10, 5, 57, 51, 62, 63, -7566, 63, 6772, 30, 63, 794, 30, 16, 81, 75, 5, 61, 0, 75, 53, 81, 63, 250, 5, 11, 73, 87, 4, 75, 48, 6, 95, 61, 1, 75, 5, 77, 91, 28, 91, 0, 91, 1, 88, 2, 45, 40, 83, 54, 99, 6, 60, 0, 40, 88, 3, 56, 40, 26, 54, 60, 0, 48, 54, 62, 91, 4, 91, 5, 88, 6, 55, 92, 21, 54, 78, -5844, 78, -3038, 30, 78, 8885, 30, 55, 65, 78, -8416, 78, -4259, 30, 78, 12678, 30, 5, 70, 69, 54, 78, -1337, 78, 6904, 30, 78, -5567, 30, 11, 54, 38, 9, 55, 88, 5, 42, 40, 54, 19, 54, 27, 42, 89, 97, -12, 60, 0, 20, 54, 13, 88, 7, 55, 65, 78, -7130, 78, -7671, 30, 78, 14802, 30, 21, 34, 54, 38, 54, 62, 91, 4, 91, 5, 88, 6, 79, 99, 6, 55, 40, 88, 3, 55, 13, 88, 8, 23, 78, -7691, 78, 7575, 30, 78, 118, 30, 21, 23, 78, 7485, 78, 5795, 30, 78, -13279, 30, 30, 93, 21, 54, 23, 78, 583, 78, 1868, 30, 78, -2448, 30, 70, 34, 54, 23, 78, -9757, 78, 7981, 30, 78, 1776, 30, 59, 97, -64, 28, 91, 0, 91, 1, 88, 9, 79, 40, 10, 54, 44, 88, 10, 41, 78, -4730, 78, 4758, 30, 78, -28, 30, 21, 88, 11, 47, 12, 40, 77, 54, 60, 0, 36, 54, 78, -6709, 78, 570, 30, 78, 6139, 30, 37, 54, 38, 52, 29, 54, 62, 91, 4, 91, 5, 88, 6, 98, 76, 6, 99, 6, 49, 40, 88, 3, 49, 2, 2, 78, -5391, 78, 2380, 30, 78, 3015, 30, 30, 93, 72, 40, 88, 3, 29, 40, 21, 54, 2, 78, 4591, 78, 5581, 30, 78, -10168, 30, 30, 37, 54, 2, 49, 65, 89, 97, -56, 98, 88, 13, 47, 12, 40, 4, 64, 11, 31, 27, 28, 37, 18, 514, 58, 55, 0, 81, 1, 58, 91, 27, 18, -4181, 18, 6146, 46, 18, -1965, 46, 33, 27, 79, 194, 95, 94, 30, 63, 187, 6, 2, 14, 3, 29, 4, 31, 5, 113, 6, 144, 7, 163, 14, 97, 68, 12, 8, 12, 8, 27, 2, 55, 9, 36, 27, 79, -34, 79, -36, 2, 45, 55, 10, 36, 12, 11, 21, 27, 2, 45, 55, 10, 36, 12, 12, 39, 27, 14, 51, 13, 92, 27, 97, 51, 13, 9, 27, 18, -6174, 18, 8420, 46, 18, -2246, 46, 66, 27, 79, 33, 73, 83, 26, 30, 81, 14, 81, 15, 46, 81, 16, 46, 7, 49, 27, 82, 83, 26, 30, 18, -464537085, 18, 1115932720, 46, 18, 258126851, 46, 7, 49, 27, 80, 27, 85, 55, 17, 83, 89, 93, 50, -39, 79, -118, 2, 20, 51, 18, 76, 22, 12, 19, 56, 27, 85, 51, 20, 45, 44, 42, 48, 11, 84, 55, 21, 2, 55, 22, 45, 58, 58, 5, 27, 79, -149, 20, 51, 23, 24, 27, 18, -9706, 18, -1661, 46, 18, 11371, 46, 89, 34, 54, 27, 79, -168, 85, 55, 24, 45, 51, 8, 68, 93, 48, 7, 20, 55, 25, 45, 58, 5, 27, 45, 55, 26, 36, 27, 79, -192, 79, 7, 10, 0, 98, 98, 50, -198, 64, 80, 5, 0, 51, 1, 29, 9, 73, 13, 71, 96, 29, 5, 2, 96, 10, -5114, 10, 1125, 63, 10, 3989, 63, 10, 1063, 10, -7095, 63, 10, 6037, 63, 83, 65, 73, 13, 71, 96, 29, 5, 2, 96, 10, -3597, 10, -1573, 63, 10, 5175, 63, 90, 85, 73, 93, 0, 1, 73, 19, 40, 67, 5, 3, 88, 5, 4, 10, 8605, 10, -9651, 63, 10, 1046, 63, 29, 72, 73, 28, 5, 5, 10, -1708, 10, -4257, 63, 10, 6123, 63, 39, 37, 29, 87, 73, 24, 5, 6, 70, 29, 73, 67, 23, 10, 8892, 10, -8561, 63, 10, -331, 63, 40, 58, -51, 98, 71, 24, 29, 5, 2, 24, 74, 90, 1, 5, 7, 51, 1, 29, 15, 47, 7, 27, 66, 61, 88, 11, 0, 37, 11, 1, 89, 66, 32, 54, 36, 140, 65, 44, 66, 28, 97, 40, 36, -2068, 36, -2974, 77, 36, 5046, 77, 14, 24, 66, 96, 22, 2, 36, 9649, 36, 6960, 77, 36, -16599, 77, 3, 22, 3, 21, 14, 36, 5505, 36, 5338, 77, 36, -10843, 77, 25, 1, 66, 23, 97, 40, 29, 14, 58, 66, 96, 22, 4, 64, 54, 61, 31, 11, 5, 68, 11, 6, 65, 29, 14, 96, 22, 7, 64, 61, 96, 22, 8, 36, -3831, 36, 1995, 77, 36, 1848, 77, 31, 74, 36, 9176, 36, -3533, 77, 36, -5642, 77, 14, 11, 5, 68, 11, 6, 14, 77, 31, 77, 22, 9, 5, 10, 65, 83, 66, 72, 54, 90, 65, 22, 11, 90, 36, 4234, 36, -179, 77, 36, -4055, 77, 36, 791, 36, -8624, 77, 36, 7842, 77, 53, 33, 66, 72, 54, 90, 65, 22, 11, 90, 36, 555, 36, 4332, 77, 36, -4878, 77, 14, 60, 66, 26, 0, 82, 66, 57, 46, 2, 22, 12, 96, 22, 13, 36, 6270, 36, -9996, 77, 36, 3761, 77, 96, 22, 14, 99, 63, 22, 15, 21, 36, -8246, 36, 8507, 77, 36, -225, 77, 53, 14, 22, 16, 36, 3801, 36, -5354, 77, 36, 1589, 77, 65, 65, 66, 96, 22, 17, 63, 19, 36, 8774, 36, 7381, 77, 36, -16155, 77, 14, 55, -60, 42, 54, 2, 65, 22, 11, 2, 8, 14, 82, 22, 18, 5, 10, 65, 34, 95, 33, 1728, 33, 8779, 11, 33, -10507, 11, 84, 52, 44, 40, 95, 4, 0, 33, -4853, 33, 1040, 11, 33, 3814, 11, 46, 3, 32, 36, 74, 4, 1, 36, 50, 67, 57, 58, 58, 90, 11, 36, 4, 2, 50, 67, 57, 38, 3, 58, 14, 52, 93, 52, 67, 50, 75, 24, 83, -44, 36, 7, 71, 24, 0, 2, 40, 70, 90, 22, 40, 55, -5573, 55, -6975, 62, 55, 12548, 62, 15, 40, 95, 43, 70, 85, 94, 76, 40, 33, 13, 0, 78, 13, 1, 16, 49, 31, 65, 97, 5, 17, 91, 13, 2, 12, 20, 40, 55, -333, 55, -1402, 62, 55, 1735, 62, 54, 99, 48, 3, 95, 11, 87, 40, 38, 40, 85, 70, 90, 73, 17, -47, 7, 3, 43, 40, 55, -4644, 55, -6039, 62, 55, 10683, 62, 52, 40, 95, 45, 33, 13, 4, 78, 13, 1, 16, 91, 90, 89, 69, 97, 55, -7827, 55, -7508, 62, 55, 15335, 62, 53, 72, 40, 41, 91, 25, 94, 62, 43, 40, 91, 25, 91, 91, 90, 89, 69, 82, 69, 94, 93, 40, 21, 40, 89, 91, 90, 73, 17, -49, 41, 23, 75, 75, 25, 32, 19, 81, 44, 35, 84, 14, 95, 65, 14, 30, 0, 53, 30, 1, 6, 30, 2, 17, 84, 48, 84, 65, 55, 84, 89, 80, 3, 10, 4, 84, 89, 80, 5, 10, 6, 84, 89, 80, 7, 10, 8, 84, 89, 80, 9, 10, 10, 84, 89, 80, 11, 10, 12, 84, 89, 35, 33, 61, 10, 13, 84, 89, 66, 33, 28, 40, 10, 14, 84, 89, 38, 5, 15, 38, 5, 16, 89, 36, 4, 89, 36, 6, 64, 89, 36, 8, 74, 89, 36, 10, 74, 89, 36, 12, 74, 89, 36, 13, 74, 89, 36, 14, 64, 77, 84, 83, 75, 48, 40, 5, 17, 61, 5, 18, 8, -5333, 8, 4949, 74, 8, 384, 74, 8, 6863, 8, 571, 74, 8, -7426, 74, 64, 10, 19, 84, 89, 36, 4, 89, 36, 6, 74, 89, 36, 8, 74, 89, 36, 19, 74, 89, 36, 10, 74, 89, 36, 12, 74, 89, 36, 13, 74, 89, 36, 14, 74, 11, 68, 48, 36, 55, 64, 85, 42, 51, 33, 60, 57, 95, 13, 16, 99, 8427, 99, 1349, 74, 99, -9744, 74, 75, 21, 26, 64, 3, 90, 1, 0, 2, 15, 1, 1, 2, 99, 2, 1, 2, 2, 58, 26, 64, 2, 90, 1, 3, 2, 15, 1, 4, 2, 38, 26, 99, -5695, 99, -6873, 74, 99, 12570, 74, 29, 28, 5, 95, 28, 6, 99, 8970, 99, 1994, 74, 99, -10960, 74, 29, 28, 7, 93, 77, 75, 74, 57, 26, 1, 8, 43, 26, 99, 7121, 99, -1070, 74, 99, -6051, 74, 63, 26, 52, 60, 60, 84, 29, 28, 5, 95, 28, 9, 99, 7323, 99, -5134, 74, 99, -2186, 74, 29, 28, 7, 93, 77, 75, 41, 74, 43, 26, 78, 83, 99, 8702, 99, 8463, 74, 99, -17164, 74, 51, 94, 19, 17, 60, 47, 29, 28, 5, 99, 2, 29, 28, 7, 93, 73, 75, 41, 74, 43, 26, 81, 26, 78, 83, 94, 98, -63, 60, 34, 99, -1415, 99, -5085, 74, 99, 6509, 74, 94, 19, 27, 60, 8, 28, 10, 99, -9260, 99, 356, 74, 99, 8904, 74, 99, -6416, 99, -2366, 74, 99, 8791, 74, 60, 34, 51, 77, 74, 43, 26, 37, 28, 11, 60, 75, 11, 26, 22, 28, 12, 23, 75, 25, 26, 56, 28, 13, 71, 14, 1, 16, 77, 28, 13, 71, 17, 1, 19, 77, 28, 13, 71, 20, 1, 8, 77, 79, 56, 26, 9, 7, 71, 0, 8, 2, 89, 29, 54, 78, 0, 42, 97, 33, 67, 1, 88, 96, 97, 78, 2, 52, 97, 6, 30, 98, 4809, 98, -9583, 16, 98, 4786, 16, 5, 67, 3, 98, 4770, 98, 2857, 16, 98, -7627, 16, 98, -4865, 98, -4371, 16, 98, 9248, 16, 38, 17, 97, 29, 45, 83, 15, 48, 13, 50, 68, 97, 24, 19, 30, 8, 5, 16, 42, 97, 24, 19, 30, 48, 5, 16, 42, 97, 24, 19, 30, 13, 5, 16, 42, 97, 24, 15, 43, 97, 87, 30, 41, 67, 4, 65, 93, 38, 5, 16, 42, 97, 24, 41, 67, 4, 19, 83, 38, 16, 42, 97, 93, 97, 23, 67, 5, 24, 5, 60, 97, 73, 67, 6, 31, 5, 62, 95, 7, 61, 71, 13, 92, 96, 342, 11, 89, 0, 19, 1, 11, 97, 71, 96, -8556, 96, -4925, 44, 96, 13481, 44, 82, 71, 99, 212, 23, 33, 42, 85, 205, 11, 2, 24, 3, 39, 4, 48, 5, 61, 6, 76, 7, 97, 8, 147, 9, 160, 10, 181, 11, 183, 12, 192, 41, 52, 96, 5604, 96, -9754, 44, 96, 4162, 44, 38, 35, 71, 99, -44, 41, 52, 96, 16, 38, 77, 71, 99, -53, 56, 32, 13, 32, 14, 89, 15, 22, 78, 48, 71, 99, -66, 41, 52, 96, 7042, 96, -4670, 44, 96, -2334, 44, 38, 79, 71, 99, -81, 88, 92, 54, 11, 51, 71, 41, 52, 96, -5114, 96, -8536, 44, 96, 13652, 44, 38, 83, 71, 99, -102, 63, 89, 16, 50, 11, 71, 63, 89, 16, 72, 96, 1688, 96, -7979, 44, 96, 6293, 44, 48, 71, 63, 89, 16, 34, 96, 9627, 96, -6820, 44, 96, -2793, 44, 48, 71, 63, 89, 16, 22, 96, 8933, 96, 76, 44, 96, -8987, 44, 48, 71, 99, -152, 56, 32, 13, 32, 14, 89, 15, 50, 40, 48, 71, 99, -165, 26, 92, 98, 11, 89, 17, 27, 89, 18, 96, 4157, 96, -7826, 44, 96, 3669, 44, 96, 8, 48, 74, 99, -188, 60, 89, 19, 63, 11, 37, 71, 99, -197, 56, 32, 13, 32, 14, 89, 15, 72, 4, 48, 71, 99, -210, 99, 7, 47, 0, 45, 45, 36, -216, 70, 97, 79, 55, 64, 0, 79, 96, 38, 31, 15, 10, 21, 46, 41, 0, 21, 15, 53, 9, 4, 65, 2, 57, 88, 0, 2, 24, 11, 81, 82, 2, 17, 38, 68, 97, 67, 3, 0, 80, 3, 1, 13, 67, 3, 2, 49, 745, 49, 2625, 23, 49, -3368, 23, 49, 32, 53, 53, 54, 79, 97, 13, 67, 3, 2, 49, -9307, 49, 6759, 23, 49, 2550, 23, 49, -7901, 49, 2350, 23, 49, 5583, 23, 53, 76, 39, 97, 84, 17, 49, -879, 49, -4690, 23, 49, 5577, 23, 42, 82, 97, 31, 17, 94, 42, 91, 97, 69, 89, 32, 61, 3, 3, 49, 3065, 49, -2236, 23, 49, -829, 23, 5, 69, 70, 97, 61, 3, 3, 49, -389, 49, -9719, 23, 49, 10112, 23, 36, 69, 70, 81, 30, 61, 3, 3, 49, -1017, 49, 6375, 23, 49, -5358, 23, 36, 69, 70, 97, 61, 3, 3, 49, 5000, 49, -7990, 23, 49, 2994, 23, 5, 69, 70, 97, 73, 17, 94, 42, 20, 32, 92, 27, 59, 6572, 59, 6564, 83, 59, -13134, 83, 62, 45, 89, 7, 27, 53, 62, 35, 0, 59, -6312, 59, -7306, 83, 59, 13618, 83, 59, 1914, 59, -8287, 83, 59, 6629, 83, 59, -3934, 59, 2319, 83, 59, 1615, 83, 12, 93, 89, 59, -4483, 59, -54, 83, 59, 4793, 83, 56, 27, 53, 62, 59, 8191, 59, -8408, 83, 59, 217, 83, 11, 91, 65, 2, 33, 58, 87, 88, 87, 59, 87, 10, 87, 54, 87, 24, 87, 25, 87, 53, 87, 8, 1, 87, 29, 4, 28, 0, 28, 1, 71, 11, 68, 6615, 68, 4397, 43, 68, -11011, 43, 39, 9, 68, 2590, 68, -8858, 43, 68, 6268, 43, 9, 2, 87, 29, 6, 28, 3, 84, 17, 20, 40, 4, 68, 5632, 68, -6781, 43, 68, 1149, 43, 6, 28, 3, 36, 57, 71, 11, 68, -9867, 68, 4593, 43, 68, 5274, 43, 39, 9, 68, -8499, 68, 9839, 43, 68, -1339, 43, 9, 5, 87, 29, 73, 6, 28, 6, 66, 99, 85, 15, 20, 40, 7, 68, 4465, 68, 9390, 43, 68, -13855, 43, 82, 88, 57, 71, 12, 68, 7178, 68, 7131, 43, 68, -14309, 43, 82, 39, 3, 88, 36, 85, 10, 68, 8032, 68, 1122, 43, 68, -9153, 43, 18, 9, 8, 87, 68, 5166, 68, -1535, 43, 68, -3631, 43, 83, 87, 20, 28, 9, 4, 89, 85, 17, 62, 73, 68, 458, 11, 4, 89, 85, 8, 62, 73, 68, 340, 11, 4, 89, 84, 12, 45, 68, -3226, 68, -6112, 43, 68, 9339, 43, 56, 83, 87, 62, 73, 68, 231, 11, 4, 28, 10, 89, 85, 8, 20, 28, 11, 4, 28, 10, 89, 84, 12, 45, 68, 6475, 68, 4302, 43, 68, -10775, 43, 56, 83, 87, 6, 28, 12, 84, 40, 68, -3266, 68, 3907, 43, 68, -640, 43, 18, 20, 40, 13, 55, 6, 28, 12, 65, 57, 40, 14, 59, 20, 28, 15, 57, 46, 84, 12, 45, 68, 5412, 68, 7289, 43, 68, -12697, 43, 56, 83, 87, 6, 28, 12, 84, 45, 20, 40, 16, 68, 3643, 68, 4559, 43, 68, -8201, 43, 18, 20, 40, 17, 55, 6, 28, 12, 90, 57, 40, 14, 10, 62, 73, 68, 142, 11, 57, 57, 84, 12, 45, 68, 7355, 68, -3315, 43, 68, -4032, 43, 56, 83, 87, 4, 28, 18, 85, 4, 4, 28, 19, 84, 12, 45, 68, 3075, 68, 7059, 43, 68, -10118, 43, 56, 83, 87, 4, 20, 28, 20, 7, 84, 12, 45, 68, 9931, 68, -1045, 43, 68, -8854, 43, 56, 83, 87, 4, 28, 0, 40, 21, 20, 28, 22, 11, 84, 12, 45, 68, -1382, 68, 4373, 43, 68, -2927, 43, 56, 83, 87, 29, 45, 9, 23, 87, 29, 27, 9, 24, 87, 29, 73, 80, 28, 25, 95, 99, 85, 15, 20, 40, 26, 68, 9286, 68, -2714, 43, 68, -6572, 43, 82, 54, 57, 71, 12, 68, -9400, 68, -8102, 43, 68, 17502, 43, 82, 39, 4, 54, 28, 27, 85, 10, 68, -3494, 68, 3749, 43, 68, -254, 43, 18, 9, 28, 87, 68, -4707, 68, 9058, 43, 68, -4351, 43, 94, 87, 96, 29, 16, 3, 84, 22, 20, 40, 30, 73, 67, 28, 31, 57, 84, 12, 62, 73, 68, 541, 11, 67, 28, 31, 28, 32, 99, 91, 87, 96, 29, 16, 3, 84, 15, 73, 67, 28, 33, 3, 84, 8, 73, 67, 28, 33, 28, 34, 3, 19, 87, 78, 85, 2, 44, 84, 12, 42, 68, -452, 68, -1586, 43, 68, 2039, 43, 56, 94, 87, 96, 29, 76, 3, 84, 44, 68, -5815, 68, -5057, 43, 68, 10872, 43, 82, 38, 28, 35, 46, 84, 29, 68, 2879, 68, 1442, 43, 68, -4321, 43, 82, 38, 28, 35, 28, 36, 46, 84, 12, 42, 68, -4506, 68, -4014, 43, 68, 8522, 43, 56, 94, 87, 96, 29, 26, 3, 84, 12, 42, 68, -1061, 68, -2070, 43, 68, 3135, 43, 56, 94, 87, 68, 84, 68, 4485, 43, 68, -4569, 43, 82, 60, 46, 84, 105, 68, 8274, 68, -4936, 43, 68, -3337, 43, 18, 73, 35, 73, 60, 62, 73, 68, 197, 11, 57, 13, 99, 85, 36, 68, 923, 68, -7089, 43, 68, 6166, 43, 82, 24, 99, 85, 23, 73, 24, 28, 37, 13, 99, 85, 15, 20, 40, 26, 68, 5796, 68, 4370, 43, 68, -10166, 43, 82, 24, 57, 71, 12, 68, 273, 68, -4983, 43, 68, 4710, 43, 82, 39, 20, 20, 40, 13, 55, 24, 40, 38, 15, 98, 57, 40, 14, 25, 62, 73, 68, 289, 11, 57, 99, 84, 12, 42, 68, -3355, 68, -7819, 43, 68, 11182, 43, 56, 94, 87, 29, 42, 9, 39, 87, 68, -9926, 68, 5230, 43, 68, 4696, 43, 61, 87, 63, 73, 62, 73, 68, 377, 11, 8, 57, 52, 87, 2, 28, 40, 37, 87, 77, 84, 37, 68, -1022, 68, -4758, 43, 68, 5781, 43, 18, 55, 73, 77, 11, 40, 14, 77, 62, 73, 68, 167, 11, 57, 46, 84, 12, 30, 68, -7643, 68, -7828, 43, 68, 15472, 43, 56, 61, 87, 77, 84, 37, 68, 5942, 68, 959, 43, 68, -6900, 43, 18, 55, 73, 77, 11, 40, 14, 77, 62, 73, 68, 329, 11, 57, 46, 84, 12, 30, 68, 4722, 68, -3595, 43, 68, -1125, 43, 56, 61, 87, 50, 93, 62, 73, 68, 450, 11, 21, 28, 41, 40, 38, 15, 31, 87, 92, 84, 37, 68, -5948, 68, -4503, 43, 68, 10452, 43, 18, 55, 73, 92, 11, 40, 14, 92, 62, 73, 68, 512, 11, 57, 46, 84, 12, 30, 68, -3634, 68, 8290, 43, 68, -4652, 43, 56, 61, 87, 2, 28, 42, 86, 87, 2, 28, 43, 14, 87, 48, 84, 29, 97, 84, 26, 97, 48, 51, 68, 8370, 68, -6477, 43, 68, -1891, 43, 70, 84, 12, 30, 68, -8223, 68, 6216, 43, 68, 2015, 43, 56, 61, 87, 4, 28, 44, 84, 12, 30, 68, -3453, 68, -4546, 43, 68, 8015, 43, 56, 61, 87, 4, 28, 45, 85, 4, 4, 28, 46, 84, 12, 30, 68, -9361, 68, -9745, 43, 68, 19138, 43, 56, 61, 87, 29, 30, 9, 47, 87, 29, 73, 80, 28, 48, 23, 99, 85, 8, 20, 40, 49, 12, 82, 53, 57, 71, 12, 68, 6458, 68, 3386, 43, 68, -9844, 43, 82, 39, 4, 53, 28, 27, 85, 10, 68, -5109, 68, 236, 43, 68, 4874, 43, 18, 9, 50, 87, 68, 9775, 68, -9721, 43, 68, -54, 43, 34, 87, 47, 32, 85, 25, 47, 40, 38, 15, 32, 85, 18, 62, 73, 68, 339, 11, 47, 40, 38, 15, 40, 51, 5, 52, 96, 54, 57, 46, 84, 12, 72, 68, 7498, 68, -3606, 43, 68, -3891, 43, 56, 34, 87, 47, 84, 45, 47, 28, 38, 84, 40, 47, 28, 38, 28, 38, 84, 33, 47, 28, 38, 28, 38, 40, 38, 15, 84, 23, 20, 40, 26, 20, 28, 55, 47, 28, 38, 28, 38, 40, 38, 15, 40, 51, 5, 56, 96, 54, 57, 57, 32, 84, 12, 72, 68, 787, 68, -105, 43, 68, -680, 43, 56, 34, 87, 4, 84, 12, 4, 28, 10, 84, 7, 80, 84, 4, 80, 28, 58, 32, 84, 12, 72, 68, 4056, 68, 2509, 43, 68, -6561, 43, 56, 34, 87, 29, 72, 9, 59, 87, 74, 87, 68, 3809, 68, 878, 43, 68, -4687, 43, 81, 87, 73, 80, 28, 60, 99, 85, 14, 68, -2546, 68, 7028, 43, 68, -4482, 43, 82, 80, 28, 60, 99, 71, 11, 68, 1922, 68, -498, 43, 68, -1423, 43, 39, 103, 73, 80, 28, 60, 75, 99, 85, 12, 68, 5517, 68, -3618, 43, 68, -1899, 43, 82, 74, 99, 71, 12, 68, -5864, 68, 521, 43, 68, 5343, 43, 82, 39, 5, 74, 96, 61, 7, 22, 28, 62, 99, 71, 53, 68, 6164, 68, 3758, 43, 68, -9922, 43, 82, 80, 28, 60, 46, 71, 28, 73, 80, 28, 60, 70, 71, 11, 68, -2880, 68, -8119, 43, 68, 10999, 43, 39, 9, 68, 7436, 68, -9868, 43, 68, 2436, 43, 39, 9, 68, 5975, 68, 5709, 43, 68, -11681, 43, 39, 9, 68, 5387, 68, 4083, 43, 68, -9468, 43, 81, 87, 29, 64, 9, 63, 87, 29, 79, 73, 68, -5266, 68, -8477, 43, 68, 13753, 43, 11, 9, 64, 87, 69, 93, 41, 40, 65, 15, 49, 87, 29, 20, 40, 66, 68, 4592, 68, 6587, 43, 68, -11179, 43, 17, 57, 71, 11, 68, 2900, 68, 8572, 43, 68, -11472, 43, 39, 11, 17, 68, -1027, 68, 1713, 43, 68, -626, 43, 51, 9, 67, 87, 29, 304, 229, 89, 83, 49, 48, 49, 44, 49, 74, 49, 70, 49, 75, 87, 49, 71, 49, 3, 0, 52, 49, 94, 77, 1, 13, 13, 29, 13, 29, 13, 29, 3, 0, 77, 2, 93, 59, 47, 59, 77, 3, 70, 80, 2, 32, 59, 77, 3, 74, 23, 2, 67, 59, 77, 3, 44, 69, 2, 98, 2, 77, 3, 48, 5, 29, 68, 143, 59, 2, 91, 49, 34, 77, 4, 96, 77, 5, 93, 66, 27, 63, 29, 93, 59, 77, 3, 93, 68, -4247, 68, 4593, 17, 68, -330, 17, 68, -2957, 68, 7050, 17, 68, -4065, 17, 14, 4, 3, 3, 0, 26, 63, 29, 5, 29, 68, 251, 59, 59, 77, 3, 94, 99, 6, 94, 77, 7, 71, 19, 68, -8539, 68, -7170, 17, 68, 15712, 17, 2, 68, -8206, 68, 8447, 17, 68, -237, 17, 64, 2, 17, 77, 8, 33, 9, 3, 11, 2, 77, 8, 33, 12, 3, 14, 2, 59, 59, 53, 49, 82, 77, 15, 61, 16, 59, 40, 49, 92, 66, 32, 92, 68, -8471, 68, 901, 17, 68, 7570, 17, 12, 77, 17, 3, 0, 59, 62, 49, 60, 18, 95, 49, 3, 0, 51, 49, 79, 77, 19, 41, 59, 49, 8, 29, 60, 20, 94, 77, 21, 94, 99, 22, 15, 17, 5, 29, 68, 181, 59, 17, 82, 17, 5, 29, 68, 507, 59, 2, 46, 17, 2, 49, 46, 25, 90, 24, 30, 66, 30, 1, 43, 74, 55, 65, 36, 42, 43, 22, 2, 8, 26, 0, 70, 63, 26, 1, 70, 83, 55, 87, 2, 66, 74, 18, 62, 2748, 62, 5593, 77, 62, -8341, 77, 81, 39, 3, 74, 69, 30, 27, 82, 49, 30, 95, 87, 3, 36, 26, 4, 87, 5, 95, 94, 6, 55, 2, 18, 87, 2, 49, 74, 18, 75, 30, 16, 17, 76, 65, 54, 5, 46, 42, 2, 0, 6, 1, 31, 36, 43, 26, 4, 87, 5, 88, 55, 53, 55, 87, 2, 24, 6, 87, 7, 17, 73, 68, 21, 18, 38, 30, 27, 21, 6, 87, 7, 17, 88, 68, 21, 38, 30, 27, 10, 6, 87, 7, 17, 73, 68, 21, 38, 30, 56, 92, 83, 66, 74, 15, 85, 3, 67, 0, 64, 1, 66, 74, 49, 43, 15, 9, 37, 14, 20, 99, 290, 79, 86, 2, 49, 79, 25, 37, 93, 85, 2, 20, 64, 3, 66, 12, 1, 41, 85, 4, 12, 3, 41, 41, 26, 66, 74, 61, 64, 4, 66, 61, 24, 60, 30, 10, 19, 33, 0, 28, 1, 71, 68, 69, 75, 33, 0, 28, 1, 77, 2, 68, 69, 91, 2, 33, 0, 28, 1, 77, 3, 68, 69, 91, 3, 33, 0, 28, 1, 77, 4, 4, 5, 77, 5, 72, 3, 77, 6, 68, 69, 91, 4, 33, 0, 28, 1, 57, 68, 69, 91, 5, 33, 0, 28, 1, 77, 7, 68, 69, 91, 6, 33, 0, 28, 1, 87, 68, 69, 91, 7, 33, 0, 28, 1, 35, 68, 69, 91, 8, 33, 0, 28, 1, 93, 68, 69, 91, 9, 33, 0, 28, 1, 97, 68, 69, 28, 8, 33, 9, 68, 16, 88, 21, 6, 30, 47, 30, 29, 5, 23, 41, 57, 0, 23, 82, 98, 57, 1, 43, 2, 41, 66, 30, 8, 5, 76, 78, 26, 76, 26, 41, 57, 3, 35, 41, 69, 30, 84, 5, 1, 4, 34, 5, 60, 5, 39, 516, 41, 57, 5, 78, 70, 71, 6, 98, 85, 41, 57, 0, 47, 2, 98, 98, 30, 2, 65, 79, 1, 33, 0, 96, 1, 56, 1, 33, 2, 56, 16, 25, 94, 36, 21, 4, 21, 86, 12, 49, 20, 19, 7, 409, 67, 10, 66, 1, 0, 10, 7, 2, 1, 1, 10, 7, 3, 20, 19, 7, 365, 67, 10, 7, 4, 1, 2, 10, 7, 5, 1, 3, 10, 7, 6, 20, 19, 7, 446, 67, 10, 7, 7, 1, 4, 10, 7, 8, 1, 5, 10, 7, 9, 1, 4, 10, 7, 10, 20, 19, 7, 423, 67, 10, 7, 11, 1, 6, 10, 64, 7, 1, 4, 67, 50, 21, 35, 19, 92, 85, 98, 92, 98, 67, 64, 8, 13, 67, 2, 21, 99, 64, 9, 6, 9, 10, 73, 19, 20, 19, 7, 487, 67, 64, 11, 85, 20, 19, 7, 522, 67, 93, 80, 67, 64, 12, 4, 59, 93, 51, 21, 59, 82, 48, 14, 3, 63, 75, 57, 80, 352, 67, 38, 0, 55, 1, 67, 74, 63, 80, -4871, 80, 6543, 1, 80, -1672, 1, 85, 63, 49, 279, 46, 25, 13, 53, 272, 6, 2, 14, 3, 16, 4, 146, 5, 187, 6, 192, 7, 243, 49, -21, 97, 27, 126, 89, 38, 8, 97, 45, 51, 5, 63, 89, 38, 9, 97, 45, 51, 96, 63, 64, 57, 45, 67, 38, 10, 45, 30, 51, 38, 11, 55, 12, 67, 16, 63, 98, 38, 13, 72, 38, 14, 81, 67, 67, 4, 63, 89, 38, 15, 94, 44, 17, 59, 58, 2, 8, 61, 63, 54, 57, 6, 16, 75, 57, 80, 305, 67, 88, 57, 39, 97, 20, 17, 94, 20, 18, 81, 20, 19, 37, 20, 20, 68, 20, 21, 57, 80, -5518, 80, -552, 1, 80, 6072, 1, 31, 1, 51, 63, 39, 81, 20, 19, 37, 20, 20, 68, 20, 21, 48, 63, 89, 38, 22, 39, 70, 20, 23, 75, 57, 80, 523, 67, 20, 24, 67, 63, 71, 79, 49, -151, 6, 25, 11, 3, 6, 26, 27, 18, 89, 38, 22, 39, 65, 20, 23, 75, 57, 80, 378, 67, 20, 24, 67, 49, 14, 89, 38, 22, 39, 33, 20, 23, 26, 28, 27, 20, 24, 67, 63, 71, 79, 39, 48, 63, 49, -197, 6, 28, 27, 24, 89, 38, 29, 6, 25, 6, 30, 78, 6, 31, 6, 32, 86, 38, 33, 32, 11, 3, 55, 34, 90, 49, 22, 89, 12, 57, 6, 30, 67, 15, 26, 63, 89, 38, 35, 6, 26, 6, 30, 78, 6, 31, 9, 90, 63, 49, -248, 55, 34, 90, 63, 93, 38, 36, 32, 34, 63, 83, 57, 44, 75, 57, 80, 280, 67, 51, 76, 63, 17, 55, 37, 1, 10, 63, 49, -277, 49, 7, 99, 0, 41, 41, 42, -283, 7, 14, 64, 0, 72, 54, 86, 36, 15, 93, 38, 0, 30, 24, -7496, 24, 4479, 11, 24, 3018, 11, 12, 76, 15, 64, 80, 1, 89, 2, 15, 64, 29, 3, 64, 74, 4, 23, 5, 5, 29, 3, 34, 4, 64, 74, 4, 89, 4, 15, 44, 98, 64, 98, 24, 3532, 24, -9608, 11, 24, 6078, 11, 57, 52, 15, 66, 98, 80, 5, 78, 98, 24, 260, 50, 38, 6, 87, 50, 12, 15, 56, 38, 7, 67, 38, 8, 87, 50, 50, 2, 31, 61, 15, 37, 86, 16, 0, 17, 10, 37, 95, 16, 1, 56, 63, 40, 37, 87, 80, 64, 5, 3, 56, 79, 95, 16, 2, 17, 37, 95, 16, 3, 17, 20, 37, 95, 16, 4, 80, 53, 12, 72, 37, 38, 87, 96, 5, 90, 87, 11, 539, 63, 16, 6, 86, 16, 0, 17, 77, 73, 66, 7, 12, 12, 37, 18, 16, 8, 9, 75, 56, 36, 52, 79, 84]; + + function a0a1b0cv(_$b, _$v) { + var _$z = a0a1b0cb(); + return a0a1b0cv = function (_$P, _$a) { + _$P = _$P - (-0x1 * 0x858 + 0x10dd + -0x7fe); + var _$y = _$z[_$P]; + if (a0a1b0cv.nFDHcb === undefined) { + var _$u = function (_$n) { + var _$J = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/='; + var _$w = '' + , _$e = ''; + for (var _$o = -0x35 * -0x28 + -0x25aa + 0x1d62, _$I, _$j, _$O = 0x18 * 0x17b + 0x607 * -0x3 + -0x1173; _$j = _$n.charAt(_$O++); ~_$j && (_$I = _$o % (0x1 * 0x22e0 + 0xd * 0x217 + 0x4f * -0xc9) ? _$I * (-0x1 * 0x1f31 + 0x1 * 0x258d + -0x61c) + _$j : _$j, + _$o++ % (-0x1 * 0x419 + 0x1297 + 0x2 * -0x73d)) ? _$w += String.fromCharCode(-0x826 + 0x15bd + -0xc98 & _$I >> (-(0x1 * 0x11c0 + 0x1af0 + -0x56 * 0x85) * _$o & -0xe6 * 0xa + -0xb * 0x1b1 + 0x1b9d)) : -0x2516 + 0xe * 0x13 + 0x240c) { + _$j = _$J.indexOf(_$j); + } + for (var _$p = 0x1 * -0x14b0 + 0x61e + 0x1 * 0xe92, _$A = _$w.length; _$p < _$A; _$p++) { + _$e += '%' + ('00' + _$w.charCodeAt(_$p).toString(0x1b69 + 0x2509 * 0x1 + -0x4062)).slice(-(-0xa38 + 0x1 * 0x621 + 0x419)); + } + return decodeURIComponent(_$e); + }; + a0a1b0cv.NiprTJ = _$u, + _$b = arguments, + a0a1b0cv.nFDHcb = !![]; + } + var _$G = _$z[-0x2092 + -0x1 * 0xc81 + 0x2d13].substring(0x178e + -0x591 + -0xf * 0x133, -0xa8a + 0xf * 0x101 + -0x23 * 0x21) + , _$T = _$P + _$G + , _$M = _$b[_$T]; + return !_$M ? (_$y = a0a1b0cv.NiprTJ(_$y), + _$b[_$T] = _$y) : _$y = _$M, + _$y; + } + , + a0a1b0cv(_$b, _$v); + } + + (function (_$b, _$v) { + var px = a0a1b0cv + , _$z = _$b(); + while (!![]) { + try { + var _$P = -parseInt(px(0x16f)) / (-0x1002 + 0xc73 + 0x390) * (-parseInt(px(0x175)) / (-0x972 + -0x6 * 0x2f9 + 0x1b4a)) + parseInt(px(0x219)) / (0x3e * 0x1 + -0x1 * 0x1ba7 + 0x1b6c) * (parseInt(px(0x197)) / (0x137d * -0x1 + 0x11 * -0x65 + -0xd1b * -0x2)) + parseInt(px(0x13e)) / (-0x2b * -0xa7 + 0x207 + 0x195 * -0x13) * (parseInt(px(0x1ea)) / (-0x2308 + 0x194f + 0x9bf)) + -parseInt(px(0x18e)) / (-0x864 * -0x2 + -0x14a4 + 0xc7 * 0x5) + -parseInt(px(0x170)) / (0x2539 + 0x2 * 0x837 + -0x359f) + -parseInt(px(0xb1)) / (-0x13c0 + 0x26 + 0x13a3) * (-parseInt(px(0x1f9)) / (0xff5 + -0x1315 + 0x32a)) + -parseInt(px(0x152)) / (-0x25 * 0x2d + -0x1 * -0xa4d + 0x1 * -0x3c1) * (-parseInt(px(0x10f)) / (-0x1d75 + 0x1bea + 0x197)); + if (_$P === _$v) + break; + else + _$z['push'](_$z['shift']()); + } catch (_$a) { + _$z['push'](_$z['shift']()); + } + } + }(a0a1b0cb, 0x4113b + 0x8c114 + -0x7348c)); + + function a0a1b0cb() { + var ZZ = ['AxrLCMf0B3i', 'D2vIzhjPDMvY', 'DdzKmgPOCxCZCa', 'v1fFz2f0AgvYx2n2mq', 'ugHHBNrVBuPt', 'nLqRodWS', 'D3vYoG', 'ieL0zxjHDg9Y', 'x3nOB3C', 'twfSzM9YBwvKifvurI04igrHDge', 'mc4XlJC', 'DMfSDwvpzG', 'C3rYAw5NAwz5', 'kf58w14', 'Dg9qCMLTAxrPDMu', 'D2vIz2XgCde', 'Cgf0DgvYBK1HDgnO', 'qxjYyxKGsxrLCMf0B3i', 'lcbYzxrYEsbUzxH0ihrPBwuU', 'ANnVBG', 'DZeY', 'yNuY', 'C2HHBq', 'CMvXDwvZDcbLCNjVCIWG', 'Bg9HzcbYywmGANmGC3vJy2vZCYe', 'qebPDgvYyxrVCG', 'jgnKy19HC2rQzMXHC3v0B3bMAhzJwKXTy2zSxW', 'ExL5Es1nts1Kza', 'x19LC01VzhvSzq', 'ChvWCgv0zwvY', 'AgfZt3DUuhjVCgvYDhK', 'w14/xsO', 'tNvTyMvY', 'Ahr0Chm6lY9Jywn0DxmUAMqUy29Tl3jLCxvLC3rFywXNBW', 't2jQzwn0', 'ENHJyxnK', 'x3n0AW', 'q2fUj3qGC2v0ia', 'Dw5PzM9YBu9MzNnLDa', 'odm3rfvTsfnn', 'CMvMzxjLCG', 'nhW1Fdb8mxWYFdm', 'q2fUBM90ignVBNzLCNqGysbtEw1IB2WGDMfSDwuGDg8GysbZDhjPBMC', 'lgv4ChjLC3m9', 'qMfKifbYB21PC2uGy29UC3rYDwn0B3i', 'cqOlda0GWQdHMOdIGidIGihIGilIGipIGitIGixIGiBIGiFIGiJIGiNIGiRIGk/IGz/JGidIGkJIGkNVU78', 'C2nYB2XSsw50B1zPzxDjzK5LzwrLza', 'lcbMCdO', 'x19Yzxf1zxn0rgvWCYWGx19WyxjZzufSz29YAxrOBsbYzxn1Bhq6', 'ExL5Eu1nzgq', 'Ag5RBMDM', 'DgLTzw91Da', 'D2vIz2W', 'lcb0B2TLBJO', 'Bg9HzcbYywmGANmGzMfPBce', 'DZe5', 'mNW0Fdn8mxWW', 'CgfYyw1ZigLZig5VDcbHihbSywLUig9IAMvJDa', 'y29Uy2f0', 'D2LUzg93', 'CMfUzg9T', 'sw5JB3jYzwn0igLUDM9JyxrPB24', 'igLZig5VDcbHihn5BwjVBa', 'Bg9JywXFA2v5xW', 'ChDKDf9Pza', 'Dw5Zy29WywjSzxm', 'ChvYzq', 'B25YzwfKExn0yxrLy2HHBMDL', 'D2vIz2XgCa', 'seqS', 'CgfYyw1ZigLZigvTChr5', 'twf4Aw11BsbHBgXVD2vKigLUzgv4igv4y2vLzgvK', 'qwnJzxnZB3jZig5VDcbZDxbWB3j0zwq', 'CMv0DxjUihrOAxm', 'AgLKzgvU', 'lcbFBg9HzgvKx2nHy2HLCZO', 'DZe3', 'ywXWAgfIzxrPyW', 'zgLHBNrVDxnOAs5JB20', 'DMfSDwu', 'CMvQzwn0Aw9UsgfUzgXLza', 'ufiGzMXHy2TZihf1AxOGz3LToIbuvIbesIbIB3GGD2HLBJ8G4PIG', 'yxr0CMLIDxrLihzLyZiGyxr0CLzLCNrLEdT2yxj5Aw5NihzLyZiGDMfYEwLUvgv4q29VCMrPBMf0ztT1BMLMB3jTihzLyZiGDw5PzM9YBu9MzNnLDdT2B2LKig1HAw4OkxT2yxj5Aw5uzxHdB29YzgLUyxrLpwf0Dhjwzxj0zxGRDw5PzM9YBu9MzNnLDdTNBf9qB3nPDgLVBJ12zwm0kgf0Dhjwzxj0zxGSmcWXktT9', 'D3v2oG', 'Dgv4Dc9QyxzHC2nYAxb0', 'CMvQzwn0Aw9UAgfUzgXLza', 'CMvQzwn0zwq', 'DZeW', 'yw5ZAge', 'lcbLpq', 'x19Yzxf1zxn0qwXNB3jPDgHTt25JzsbRzxK6', 'C3rHDgu', 'BwfW', 'jgnOCM9Tzv9HC3LUy1nJCMLWDeLUzM8', 'AMf2yq', 'C3LTyM9SigrLDgvJDgLVBG', 'w29IAMvJDcb6xq', 'igfZigeGChjVDg90ExbL', 'Ahr0Chm6lY9NAxrODwiUy29Tl3PSB2LYB2nRl2nVCMuTANm', 'qxjNDw1LBNrZ', 'igLZig5VDcbHigz1BMn0Aw9U', 'zMLSztO', 'zgLZCg9Zzq', 'yNuZ', 'mhWZFdj8mxW0', 'C3vH', 'w251BgXD', 'z2v0t3DUuhjVCgvYDhLoyw1LCW', 'Aw5PDa', 'zxH0zw5K', 'mhWZFdj8mxW1Fdq', 'ig9Mia', 'zw52q29SBgvJDa', 'pt09', 'ChrFCgLU', 'v0vcs0Lux0vyvf90zxH0DxjLx2zPBhrLCL9HBMLZB3rYB3bPyW', 'q2fUBM90igrLBgv0zsbWCM9Wzxj0Esa', 'AgrIywnM', 'zMLSDgvY', 'mhGXnG', 'uhjVBwLZzs1JAgfPBIbJEwnSzq', 'Ahr0Chm6lY9ZDg9YywDLlJm2mgj1EwLTzY5JB20VD2vIy29UDgfPBMvYl21HAw4VANmTC2vJDxjPDhKTDJmTCMfJlMPZp3y9', 'x19JB2XSzwn0igvUDKnVBgXLy3q9', 'sw5JB21WyxrPyMXLihjLy2vPDMvYlca', 'D3jPDgfIBgu', 'zg9JDw1LBNq', 'DgHLBG', 'iZfHm2jJmq', 'u3rYAw5N', 'Bwf0y2HbBgW', 'ChaX', 'w3nPz25Dia', 'jxrLC3rdywzLrhjPDMvYjq', 'mJC2rMDhvfD1', 'Dg9ju09tDhjPBMC', 'C3rHy2S', 'Bg9JywXFA2v5xZm', 'zw50CMLLCW', 'Dg9Rzw4GAxmGzw1WDhK', 'zxHWzxjPBwvUDgfSlxDLyMDS', 'Bwv0ywrHDge', 'zg9JDw1LBNrfBgvTzw50', 'ExL5Eu1nzgrOAg1TC3ntu1m', 'q29UDgvUDc1uExbL', 'sw52ywXPzcb0Aw1LihzHBhvL', 'qwnJzxb0', 'DZe2', 'x19JB3jLlwPZx3nOyxjLzf9F', 'y2rJx2fKB1fWB2fZBMzHnZzWzMnAtg1JzMXFqxjYyxK', 'B2jZzxj2ywjSzq', 'C3LTyM9SlxrVlxn0CMLUzY1YzwDPC3rYEq', 'w25HDgL2zsbJB2rLxq', 'CMv0DxjUia', 'x3bHz2u', 'w29IAMvJDcbbCNjHEv0', 'Chb6Ac5Qzc5JB20', 'r2vUzxjHDg9YrNvUy3rPB24', 'D2vI', 'C3rYAw5NAwz5igrLDgvJDgLVBG', 'xsLB', 'Dg9mB2nHBgvtDhjPBMC', 'wMCS', 'CM91BMq', 'y29UC3rYDwn0', 'zgL2', 'AxnqCM90B3r5CgvpzG', 'z2v0q29TChv0zwrtDhLSzq', 'x19TywTLu2LNBIWGCMvZDwX0oG', 'CMvXDwvZDcb0B2TLBIbMywLSzwqGA2v5oG', 's0KS', 'iLX1zgyWnLX1zdGZnci', 'CMvK', 'vgHLig1LDgHVzcbKB2vZBID0igfJy2vWDcbYzwD1BgfYigv4ChjLC3nPB25Z', 'DZe1', 'CgfYyw1ZigLZigvTChr5igfMDgvYigv4y2X1zgLUzYaIDw5ZywzLiIbWyxjHBxm', 'BwfPBI5ZAwDUi19FCMvXDwvZDerLChm', 'DZi0', 'rNvUy3rPB24', 'CMDIysGWlcaWlcaYmdaSidaUnsK', 'ns4Y', 'mJm1uejpy2X3', 'z2v0', 'C3rYAw5N', 'lcbHBgDVoG', 'zgvMyxvSDa', 'CgfYyw1ZignVBNrHAw5ZihjLC2vYDMvKihbHCMfTig5HBwuU', 'CxvLDwvnAwnYB3rHC2S', 'shGS', 'CgrLBq', 'C2XPy2u', 'A2v5CW', 'CgHHBNrVBwPZ', 'DZe4', 'ChjVy2vZCW', 'DZeX', 'x19Yzxf1zxn0rgvWCYbYzxf1zxn0ihrVA2vUigzHAwXLzcWGzxjYB3i6ia', 'BgvUz3rO', 'tM/PQPC', 'nJbWEcaNtM90igeGCMvHBcbMB250jW', 'Bwf0y2HLCG', 'nJq2otfbwKzuugq', 'zNvUy3rPB25xAw5KB3COkxTBBMf0AxzLy29Kzv19', 'y2rJx2fKB1fWB2fZBMzHnZzWzMnAtg1JzMXFu3LTyM9S', 'z2v0vg9Rzw5F', 'ohWXFdj8nhW2Fdb8mtb8m3W1FdL8nW', 'AdvFzMLSzv92ns4YlJm', 'x19Yzxf1zxn0qwXNB3jPDgHTigvUDKnVBgXLy3q9', 'y29UC3rYDwn0B3i', 'x3n0zq', 'v2LUzg93', 'C3OUAMqUy29T', 'y2nU', 'Dg9tDhjPBMC', 'DZeZ', 'mhW1Fdr8m3WXFdi', 'rgmS', 'tu9Ax0vyvf90zxH0DxjLx2zPBhrLCL9HBMLZB3rYB3bPyW', 'uMvMBgvJDa', 'D2HPDgu', 'Dw5RBM93BIbLCNjVCG', 'Bwf0y2G', 'zNvUy3rPB250B1n0CMLUzYGPE1TUyxrPDMvJB2rLxx0', 'yxn5BMneAxnWB3nL', 'zgvZy3jPChrPB24', 'kf58icK', 'yxr0CLzLCNrLEa', 'lcbZDg9YywDLrNa6', 'zczMDq', 'q2HYB21L', 'mtm2m1PrEeXiwa', 'ndCXoty4ogrbwLzPzG', 'u3LTyM9SlG', 'yM9VBgvHBG', 'Bg9HzgvYlNv0AwXZi2XVywrsywnty3jPChrpBMnL', 'rxzLBNq', 'nZzhvuflz28', 'iZqYztfHmG', 'mdeYmZq1nJC4owfIy2rLzMDOAwP1DND4ExPbqKneruzhseLks0XntK9quvjtvfvwv1HzwL8T', 'v1fFz2f0AgvYx3DNBde', 'BwfPBI5ZAwDUi19Fzgv0zwn0Aw5N', 'z2vUzxjHDguGA2v5igzHAwXLza', 'ChjVCgvYDhLjC0vUDw1LCMfIBgu', 'rt12m0WL', 'x19Yzxf1zxn0qwXNB3jPDgHTihn0yxj0lG', 'BwvZC2fNzq', 'xsSK', 'DgHYB3C', 'r1uS', 'tM8GB25LihbYB21PC2uGCMvZB2X2zwq', 'q2fUj3qGy2fSBcbTzxrOB2qGB24G', 'C29TzxrOAw5N', 'AwHNzMvKy2jHwLLyv1zvvfnsuvbptK1ms0PjseDgrurdqKeTxZK4nZy1ndmYmtb6ExH3DNv0C3jXCg9UBwXRAG', 'Bwv0ywrHDgflzxK', 'qwDNCMvNyxrLrxjYB3i', 'B3aTC3LTyM9SCW', 'Bg9Hza', 'Dw5Oyw5KBgvKCMvQzwn0Aw9U', 'B2jQzwn0', 'v1fFzhKXx3rRx2fSz28', 'y29UzMLNDxjHyMXL', 'mJGWmtCWmxzzsgfZra', 'AgfZsw5ZDgfUy2u', 'WQKGmJaXnc0Ymdi0ierLBMLZifb1C2HRyxjLDIaOEMXVAxjVy2SUCNuP', 'mdm4ns0WnY0YnvqWnZOWnJOZos45otLA', 'Aw5KzxHpzG', 'x19WCM90B19F', 'DZi1', 'DZiX', 'DZe0', 'ne1Qug9dAa', 'tNvSBa', 'yxbWAq', 'CMv0DxjU', 'zxjYB3jZ', 'v0vcr0XFzgvIDwDFCMvUzgvYzxjFAw5MBW', 'sKrZDf9IzwHHDMLVCL9MBgfN', 'AxndB25JyxrtChjLywrHyMXL', 'AwzYyw1L', 'DZiZ', 'C2v0', 'qxn5BMngDw5JDgLVBG', 'BMDQAv90ywjPza', 'z2rWlxnPz24TDMfS', 'kd86psHBxJTDkIKPpYG7FcqP', 'mtuUnhb4icDbCMLHBcC', 'DgLVBG', 'sgvHzgXLC3ndAhjVBwu', 'AwTJB2XSyw5PAa', 'y29TCgXLDgu', 'lcbJAgvJAYbZDg9YywDLigzWoG', 'zgf0ys5Yzxn1BhqGzM9YBwf0igvYCM9YlG', 'yNu0', 'Dg9tDhjPBMDuywC', 'sLnptG', 'BM9Uzq', 'DZiY', 'rgf0zq', 'CMvWBgfJzufSBa', 'rxjYB3i', 'y3jLyxrLigLUC3rHBMnLihDPDgGGyxbWswq9', 'mhWXFdr8m3WY', 'zhaTC2LNBI1IDg4', 'DMfSDwvZ', 'AxnszwDPC3rLCMvKu3LTyM9S', 'Aw5JBhvKzxm', 't2jQzwn0igfSCMvHzhKGAw5PDgLHBgL6zwq', 'x19Yzxf1zxn0rgvWCYbZDgfYDc4', 'zg9JDw1LBNqUrJ1pyMPLy3q', 'Aw9UAwq', 'iLX1zgvHzci', 'q2fUj3qGy29UDMvYDcbVyMPLy3qGDg8GChjPBwL0AxzLihzHBhvL', 'zNvSzMLSBgvK', 'DgvZDcbLCNi', 'yxbWBgLJyxrPB24VEc13D3CTzM9YBs11CMXLBMnVzgvK', 'u3rYAw5NieL0zxjHDg9Y', 'Bg9HzgvK', 'uhjVDg90ExbL', 'suvFufjpve8', 'zxH0zw5ZAw9UCZO', 'D2L0Ag91DfnLDhrLCG', 'y2rJx2fKB1fWB2fZBMzHnZzWzMnAtg1JzMXFuhjVBwLZzq', 'yxbWBgLJyxrPB24VANnVBG', 'DxnLig5VCM1HBfrVA2vU', 'CgLU', 'x19Yzxf1zxn0rgvWCYbLBMqU', 'q2fUBM90ihnLDcbYzwfKig9UBhKGlMXLBMD0Aa', 'tw96AwXSys81lJaGxcGOlIO/kvWP', 'AgDMzwrJyMfAwvHxvLvuu1jrue9otuXlsKLir0zfrencqs1FotG3nJu0mZiXmhP5EhD2DxrZCNfWB25TBgTQAq', 'CMvWBgfJzq', 'Ahr0Chm6lY9NAxrODwiUy29Tl3PSB2LYB2nRl2nVCMuTANmVyMXVyI92mY4ZnI4Xl0Xjq0vou0u', 'C29YDa', 'x19Yzxf1zxn0qwXNB3jPDgHTihjLCxvLC3qGC3vJy2vZCYeSignOzwnRig1LBw9YEsbMCdO', 'CxvLCNLtzwXLy3rVCG', 'C3LTyM9SCW', 'EwvZ', 'w29IAMvJDcbpyMPLy3rD', 'BgfZDeLUzgv4t2y', 'u3LTyM9SigLZig5VDcbHignVBNn0CNvJDg9Y', 'CgfYC2vYzxjYB3i', 'igLZig5VDcbHignVBNn0CNvJDg9Y', 'tMf0AxzLignYExb0BYbTB2r1BguGy291BgqGBM90igjLihvZzwqGDg8Gz2v0ihnLy3vYzsbYyw5KB20GBNvTyMvYlG', 'x19Yzxf1zxn0rgvWCYb1C2uGzNaSigzWoG', 'DxjS', 'v3jVBMCGBNvTyMvYig9MihjLCgv0AxrPB25Z', 'x19Nzw5ezwzHDwX0s2v5igLUChv0pq', 'v1fFzhKXx3zR', 'CMv2zxjZzq', 'uhjVBwLZzsbJyw4NDcbIzsbYzxnVBhzLzcbPDhnLBgy', 'D2TZ', 'x19Nzw5tAwDUrgvMyxvSDcWGCgfYyw1Zu3rYoG', 'y2fUDMfZmq', 'y29SBa', 'ndm4mdzsruHsywC', 'zJnYzhy', 'C2nYAxb0', 'rvHux3rLEhr1CMvFzMLSDgvYx2fUAxnVDhjVCgLJ', 'y2fUDMfZ', 'r0vu', 'A2vVA2jR', 'AgvHza', 'igLZig5VDcbPDgvYywjSzq', 'uhjVBwLZzq', 'qujdrevgr0HjsKTmtu5puffsu1rvvLDywvPHyMnKzwzNAgLQA2XTBM9WCxjZDhv2D3H5EJaXmJm0nty3odKRlZ0', 'B3DUs2v5CW', 'mc4XlJK', 'yNuX', 'yxn5BMnjDgvYyxrVCG', 'mta1otbItgrZvK0', 'EgLHB3DHBMDZAgvUlMnVBq', 'lgTLEt0', 'uMvNrxHW', 'u3LTyM9Ska', 'C2vHCMnO', 'ihrVA2vUoG', 'BM9KztPPBNrLCM5HBc8', 'C3bSAxq', 'mxWZFdr8nxWYFda', 'lY4V', 'x19Nzw5tAwDUlcbWyxjHBxntDhi6', 'x19Yzxf1zxn0rgvWCYbMCM9TignHy2HLlcbLBMqU', 'reDcruziqunjsKS', 'C3LTyM9S', 'AdvZDa', 'C3bLy2LLCW', 'lcbZAwDUzwrtDhi6', 'C3vJy2vZCW', 'y2f1C2u', 'BNvTyMvY', 'Dw5Oyw5KBgvKuMvQzwn0Aw9U', 'vw5Oyw5KBgvKihbYB21PC2uGCMvQzwn0Aw9U', 'BMfTzq', 'w29IAMvJDca', 'BM9YBwfS', 'u3LTyM9S', 'qxjYyxK', 'AhrTBgzPBgu', 'CMvXDwvZDcbWyxjHBxmGzxjYB3iU', 'mdaW', 'C3rYAw5NlxrVlxn5BwjVBc1YzwDPC3rYEq', 'mJe4odC0meXrzwvxyq', 'igLZig5VDcbHBIbVyMPLy3q', 'C2LNBIbLBgfWC2vKihrPBwuH', 'ChjLy2LZAw9Uig1LzgL1BxaGzMXVyxq7DMfYEwLUzYb2zwmYihzHCNLPBLrLEenVB3jKAw5HDgu7DM9PzcbTywLUkcKGE2DSx0zYywDdB2XVCJ12zwm0khzHCNLPBLrLEenVB3jKAw5HDguSmcWXktT9', 'BM9Kzq', 'ChjVDg90ExbL', 'BMv4Da', 'qxn5BMnhzw5LCMf0B3jgDw5JDgLVBG', 'mY4ZnI4X', 'C3bSAwnL', 'AxnxzwXSs25VD25tEw1IB2W', 'DZiW', 'ue9tva', 'tM90igvUB3vNAcbHCMD1BwvUDhm', 'x2nVBNrLBNq', 'zw51BwvYywjSzq']; + a0a1b0cb = function () { + return ZZ; + } + ; + return a0a1b0cb(); + } + + var pW = a0a1b0cv + , _$b = { + 'ELBfJ': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'wjkBo': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'vUyFW': function (_$pP, _$pa) { + return _$pP == _$pa; + }, + 'gwDZm': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'wjcFt': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'OvvXc': pW(0xee), + 'ngscu': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'elsKT': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'WcfiY': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'NVSUm': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'Ztrpf': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'omrhL': pW(0x140), + 'ndqrf': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'AIrhl': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'wQoxc': pW(0x1c0), + 'EZPsj': pW(0x142), + 'cKDOc': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'NxOYS': pW(0x20d), + 'LzFTX': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'RFeVT': function (_$pP, _$pa) { + return _$pP in _$pa; + }, + 'tlqxj': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'hKgVe': pW(0x214), + 'Czllx': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'zIdvw': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'YkLka': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'CjWaD': pW(0x198), + 'NcXOz': function (_$pP, _$pa) { + return _$pP == _$pa; + }, + 'FTzay': pW(0xac), + 'PkhXr': pW(0x126), + 'azeGQ': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'ACGOF': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'rTsbY': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'FIBsh': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'jcWMV': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'dPMNX': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'EnCbm': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'xJcjl': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'ekjie': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'kyqLA': function (_$pP, _$pa) { + return _$pP || _$pa; + }, + 'GKBiz': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'ImBqN': function (_$pP, _$pa) { + return _$pP > _$pa; + }, + 'OfLEN': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'KKpTK': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'lCFyh': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'wXKoR': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'GoUyk': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'xHGSz': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'ixStb': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'DCkFk': pW(0x1b0), + 'MSDYx': pW(0x1bd), + 'CRohA': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'NfIRp': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'ZAEmr': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'iOLlK': pW(0x19a), + 'wlvmd': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'LSmUa': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'eGJvR': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'nuoFT': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'kYJbS': function (_$pP, _$pa) { + return _$pP < _$pa; + }, + 'uDneQ': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'NipqK': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'shzvC': function (_$pP, _$pa) { + return _$pP && _$pa; + }, + 'MWbJs': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'SeLtT': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'CXcZc': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'jAgZv': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'fPtnJ': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'cwHLP': function (_$pP) { + return _$pP(); + }, + 'NKrwY': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'eYHUP': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'VkPQX': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'pQgmB': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'HTxpn': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'TnJtt': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'pdfOA': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'jILBU': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'GIvUI': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'fNGJv': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'rAbOx': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'vOdBF': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'IHkFn': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'xUtuH': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'Vygsp': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'NMiHU': function (_$pP, _$pa) { + return _$pP / _$pa; + }, + 'Gcjvj': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'ajFmL': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'uZeQs': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'ZgYUn': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'lliJX': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'lrVHu': pW(0x1bf), + 'YePxx': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'lfFmt': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'jVTUK': function (_$pP, _$pa) { + return _$pP < _$pa; + }, + 'YWzbd': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'PVZiP': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'GGZWX': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'bbTOL': function (_$pP, _$pa) { + return _$pP > _$pa; + }, + 'lyBOK': function (_$pP, _$pa) { + return _$pP < _$pa; + }, + 'iAoyP': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'wWYli': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'mDhMt': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'ysmdT': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'NwNvP': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'PsjiZ': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'rAnyl': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'ZEfBV': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'sxErT': function (_$pP, _$pa, _$py, _$pu, _$pG) { + return _$pP(_$pa, _$py, _$pu, _$pG); + }, + 'keIAo': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'OfdEQ': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'rpGlX': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'LtyiV': pW(0x1db), + 'dlsZk': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'oHvKp': function (_$pP, _$pa) { + return _$pP && _$pa; + }, + 'GvvPi': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'REUkM': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'NxNtn': function (_$pP, _$pa) { + return _$pP == _$pa; + }, + 'CoTlj': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'FXFdu': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'NNofL': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'gnzOf': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'KgQYQ': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'JTMNP': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'qIhvw': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'aZPgy': function (_$pP, _$pa) { + return _$pP >>> _$pa; + }, + 'OMiac': function (_$pP, _$pa) { + return _$pP << _$pa; + }, + 'xOWaG': function (_$pP, _$pa) { + return _$pP >>> _$pa; + }, + 'wciML': function (_$pP, _$pa) { + return _$pP & _$pa; + }, + 'zfqvc': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'IMROw': function (_$pP, _$pa) { + return _$pP == _$pa; + }, + 'lMAda': function (_$pP, _$pa) { + return _$pP / _$pa; + }, + 'eXLBO': function (_$pP, _$pa) { + return _$pP | _$pa; + }, + 'meuCh': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'bDewJ': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'tWNjD': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'SCFMN': pW(0x1d9), + 'CFFqw': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'CxAGs': function (_$pP, _$pa) { + return _$pP < _$pa; + }, + 'hixue': function (_$pP, _$pa) { + return _$pP != _$pa; + }, + 'xBqki': pW(0x1ee), + 'tYHJA': pW(0x135), + 'rQnxP': pW(0x150), + 'tYUsr': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'uHEcJ': pW(0xfa), + 'XbQCk': 'function', + 'DdbWi': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'gzDPS': function (_$pP, _$pa) { + return _$pP < _$pa; + }, + 'WJzTG': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'SnIrp': pW(0x1d6), + 'PqeDR': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'siZQi': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'nRsaE': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'MXtDq': function (_$pP, _$pa) { + return _$pP | _$pa; + }, + 'ceEfd': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'PDbPQ': function (_$pP, _$pa) { + return _$pP >>> _$pa; + }, + 'KChcQ': function (_$pP, _$pa) { + return _$pP | _$pa; + }, + 'QFZIF': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'Oengn': pW(0x18b), + 'IMZMd': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'SSMLu': function (_$pP, _$pa) { + return _$pP * _$pa; + }, + 'IfEOa': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'rLuif': function (_$pP, _$pa) { + return _$pP > _$pa; + }, + 'acWEx': function (_$pP, _$pa) { + return _$pP - _$pa; + }, + 'YfSic': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'RMpLe': function (_$pP, _$pa) { + return _$pP | _$pa; + }, + 'mMCDA': function (_$pP, _$pa) { + return _$pP + _$pa; + }, + 'rbaZL': function (_$pP, _$pa) { + return _$pP / _$pa; + }, + 'FrJiA': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'Ekjoe': pW(0xa4), + 'vXyya': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'FIpOa': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'sYuSE': pW(0x167), + 'kxMXj': function (_$pP, _$pa) { + return _$pP === _$pa; + }, + 'zodgn': pW(0x124), + 'SRUKS': pW(0x1cd), + 'dNKwP': function (_$pP, _$pa) { + return _$pP && _$pa; + }, + 'vqqvy': pW(0x179), + 'fGkDO': pW(0x1c2), + 'ceWGe': pW(0x125), + 'mQiLB': pW(0x1a9), + 'kUUpo': pW(0x123), + 'eDKSr': function (_$pP, _$pa, _$py, _$pu, _$pG) { + return _$pP(_$pa, _$py, _$pu, _$pG); + }, + 'KMOes': function (_$pP, _$pa, _$py, _$pu, _$pG) { + return _$pP(_$pa, _$py, _$pu, _$pG); + }, + 'SBixP': pW(0xf3), + 'fABQE': pW(0x10c), + 'wmWVQ': function (_$pP, _$pa, _$py, _$pu, _$pG) { + return _$pP(_$pa, _$py, _$pu, _$pG); + }, + 'TxaJn': pW(0x1ad), + 'nCBfZ': function (_$pP, _$pa, _$py, _$pu, _$pG) { + return _$pP(_$pa, _$py, _$pu, _$pG); + }, + 'lNcus': pW(0x15d), + 'qwuAy': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'sekac': pW(0x1eb), + 'zqWld': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'lFxco': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'UZGAD': pW(0xc9), + 'qVNtk': pW(0xfb), + 'yMffa': pW(0x1e2), + 'YOoyF': pW(0x20a), + 'VJega': pW(0x1bc), + 'grYXW': pW(0xba), + 'cVlWi': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'HjaCT': function (_$pP, _$pa) { + return _$pP >= _$pa; + }, + 'Owfxz': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'cEEoT': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'aWWoR': pW(0x114), + 'yncOs': function (_$pP, _$pa) { + return _$pP == _$pa; + }, + 'pUQWt': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'VXKbq': function (_$pP, _$pa) { + return _$pP == _$pa; + }, + 'KmGao': pW(0x11d), + 'jsPeP': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'hsLLx': pW(0xec), + 'ttQVw': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'WYGRk': pW(0x1e6), + 'GkiQO': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'RWakt': pW(0x89), + 'izMAm': pW(0x19e), + 'kVmnm': pW(0xc4), + 'LdPBz': pW(0x209), + 'IQjRV': function (_$pP, _$pa, _$py, _$pu) { + return _$pP(_$pa, _$py, _$pu); + }, + 'wdnVZ': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'bwGsb': pW(0x192), + 'VAeph': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'hylqK': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'DJCDJ': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'iWfbE': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'nxnFK': pW(0x17b), + 'JFwdE': pW(0x12a), + 'urOtP': pW(0x15e), + 'LtbSd': pW(0x95), + 'ukBvu': pW(0x14e), + 'gBXRr': pW(0x1f5), + 'rSaAa': pW(0xad), + 'HJbmi': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'YXmnr': pW(0x8a), + 'AppJd': pW(0x210), + 'bykyP': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'BblQM': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'wDqXm': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'XOibR': pW(0x144), + 'iGPta': function (_$pP, _$pa) { + return _$pP && _$pa; + }, + 'fDxnv': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'TpDED': pW(0x1f3), + 'hbGDi': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'tYHVt': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'ONzyr': pW(0x10a), + 'LklkH': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'OUiUb': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'nVKRQ': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'eBVVF': pW(0x100), + 'sPnZe': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'dumcQ': function (_$pP, _$pa) { + return _$pP || _$pa; + }, + 'YzqEA': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'JTmcx': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'hmFsY': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'zuepk': pW(0xd4), + 'GuPiz': pW(0x169), + 'ZPgfR': function (_$pP, _$pa, _$py) { + return _$pP(_$pa, _$py); + }, + 'gnbtM': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'NlKtW': pW(0x18f), + 'FqiPx': pW(0x10b), + 'sGMpZ': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'wdmkb': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'jPuWJ': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'dwvIT': pW(0x11f), + 'TPNip': pW(0x1b9), + 'DEEPj': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'GfvgP': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'JnoUl': function (_$pP, _$pa) { + return _$pP !== _$pa; + }, + 'hzYes': pW(0x1ef), + 'cGkBv': function (_$pP, _$pa) { + return _$pP(_$pa); + }, + 'psbiH': function (_$pP, _$pa) { + return _$pP !== _$pa; + } + }; + var _$v = 'undefined' != typeof globalThis ? globalThis : 'undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : {}; + + function _$z(_$pP) { + var pD = pW; + if (_$pP.__esModule) + return _$pP; + var _$pa = Object.defineProperty({}, pD(0xa6), { + 'value': !(0x244 * 0x11 + -0x155c + -0x1128) + }); + return Object.keys(_$pP).forEach(function (_$py) { + var _$pu = Object.getOwnPropertyDescriptor(_$pP, _$py); + Object.defineProperty(_$pa, _$py, _$pu.get ? _$pu : { + 'enumerable': !(-0x11 * 0x10e + -0xaf8 + 0x36 * 0x89), + 'get': function () { + return _$pP[_$py]; + } + }); + }), + _$pa; + } + + var _$P = function (_$pP) { + try { + return !!_$pP(); + } catch (_$pa) { + return !(-0x135e + 0x7bd * 0x5 + 0x33 * -0x61); + } + } + , _$a = !_$P(function () { + var A0 = pW + , _$pP = function () { + } + .bind(); + return 'function' != typeof _$pP || _$pP.hasOwnProperty(A0(0x21e)); + }) + , _$y = _$a + , _$u = Function.prototype + , _$G = _$u.call + , _$T = _$y && _$u.bind.bind(_$G, _$G) + , _$M = _$y ? _$T : function (_$pP) { + return function () { + return _$G.apply(_$pP, arguments); + } + ; + } + , _$n = _$M({}.isPrototypeOf) + , _$J = function (_$pP) { + return _$pP && _$b.ELBfJ(_$pP.Math, Math) && _$pP; + } + , + _$w = _$J(_$b.Oengn == typeof globalThis && globalThis) || _$J(pW(0x18b) == typeof window && window) || _$J(_$b.Oengn == typeof self && self) || _$J(_$b.yncOs(_$b.Oengn, typeof _$v) && _$v) || _$J(pW(0x18b) == typeof _$v && _$v) || function () { + return this; + }() || Function(pW(0xd3))() + , _$e = _$a + , _$o = Function.prototype + , _$I = _$o.apply + , _$j = _$o.call + , _$O = pW(0x18b) == typeof Reflect && Reflect.apply || (_$e ? _$j.bind(_$I) : function () { + return _$j.apply(_$I, arguments); + } + ) + , _$p = _$M + , _$A = _$p({}.toString) + , _$d = _$p(''.slice) + , _$Z = function (_$pP) { + return _$d(_$A(_$pP), 0xbd7 + -0x1 * -0x14fb + 0xaee * -0x3, -(0x1 * 0x155a + 0x64 * -0x5 + -0x1365)); + } + , _$X = _$Z + , _$h = _$M + , _$B = function (_$pP) { + var A1 = pW; + if (_$b.ELBfJ(A1(0x13b), _$X(_$pP))) + return _$b.wjkBo(_$h, _$pP); + } + , _$Q = _$b.Oengn == typeof document && document.all + , + _$E = void (-0x7c1 + 0x2 * 0x6fb + -0x635 * 0x1) === _$Q && _$b.pUQWt(void (0xc73 * -0x1 + -0x2647 * -0x1 + -0x19d4), _$Q) ? function (_$pP) { + return 'function' == typeof _$pP || _$pP === _$Q; + } + : function (_$pP) { + return 'function' == typeof _$pP; + } + , _$c = {} + , _$L = !_$P(function () { + return 0x1a * 0x18 + 0x2170 + -0x23d9 !== Object.defineProperty({}, 0x1f4e + -0x10ca + -0xe83, { + 'get': function () { + return -0x9d6 * -0x1 + -0x5 * -0x1e6 + 0x9 * -0x225; + } + })[-0x153b + 0x1d77 + -0x83b]; + }) + , _$s = _$a + , _$f = Function.prototype.call + , _$m = _$s ? _$f.bind(_$f) : function () { + return _$f.apply(_$f, arguments); + } + , _$g = {} + , _$N = {}.propertyIsEnumerable + , _$U = Object.getOwnPropertyDescriptor + , _$V = _$U && !_$N.call({ + 0x1: 0x2 + }, 0x1 * -0x71e + 0x1d34 + -0x1615); + _$g.f = _$V ? function (_$pP) { + var _$pa = _$U(this, _$pP); + return !!_$pa && _$pa.enumerable; + } + : _$N; + var _$K, _$l, _$R = function (_$pP, _$pa) { + return { + 'enumerable': !(-0xa * 0x6 + -0x1f77 + 0x1fb4 & _$pP), + 'configurable': !(-0x1 * -0x12a1 + -0x20f4 + -0xe55 * -0x1 & _$pP), + 'writable': !(0x1660 + -0x23f5 * -0x1 + -0x3a51 & _$pP), + 'value': _$pa + }; + }, _$H = _$P, _$C = _$Z, _$F = Object, _$r = _$M(''.split), _$q = _$H(function () { + return !_$F('z').propertyIsEnumerable(-0x1b + 0x169b + 0x14 * -0x120); + }) ? function (_$pP) { + var A2 = pW; + return A2(0x10a) === _$C(_$pP) ? _$r(_$pP, '') : _$F(_$pP); + } + : _$F, _$t = function (_$pP) { + return _$b.vUyFW(null, _$pP); + }, _$k = _$t, _$i = TypeError, _$S = function (_$pP) { + var A3 = pW; + if (_$k(_$pP)) + throw new _$i(A3(0x183) + _$pP); + return _$pP; + }, _$Y = _$q, _$x = _$S, _$W = function (_$pP) { + return _$Y(_$b.wjkBo(_$x, _$pP)); + }, _$D = _$E, _$b0 = function (_$pP) { + var A4 = pW; + return A4(0x18b) == typeof _$pP ? null !== _$pP : _$D(_$pP); + }, _$b1 = {}, _$b2 = _$b1, _$b3 = _$w, _$b4 = _$E, _$b5 = function (_$pP) { + return _$b4(_$pP) ? _$pP : void (0x192c * 0x1 + 0x4 * -0x4b1 + -0x668); + }, _$b6 = function (_$pP, _$pa) { + return arguments.length < 0x84c * -0x2 + 0xcde * 0x2 + -0x922 ? _$b5(_$b2[_$pP]) || _$b5(_$b3[_$pP]) : _$b2[_$pP] && _$b2[_$pP][_$pa] || _$b3[_$pP] && _$b3[_$pP][_$pa]; + }, _$b7 = 'undefined' != typeof navigator && String(navigator.userAgent) || '', _$b8 = _$w, _$b9 = _$b7, + _$bb = _$b8.process, _$bv = _$b8.Deno, _$bz = _$bb && _$bb.versions || _$bv && _$bv.version, + _$bP = _$bz && _$bz.v8; + _$bP && (_$l = (_$K = _$bP.split('.'))[0x1d0a + -0x1af1 + 0xb3 * -0x3] > 0x5c9 + 0x15 * 0x195 + 0x1381 * -0x2 && _$K[-0x13 * -0x166 + -0x12 * 0x1be + 0x4ca] < 0x5 * 0x67d + -0xeb9 + 0x67 * -0x2c ? 0x13 * -0x5e + -0x768 + 0x1d * 0x7f : +(_$K[0x235d + -0x1f5c + -0x19 * 0x29] + _$K[0x1 * -0x1e2b + -0x2 * 0x8ba + -0xbe8 * -0x4])), + !_$l && _$b9 && (!(_$K = _$b9.match(/Edge\/(\d+)/)) || _$K[0x1 * 0x2da + -0x18 * 0x73 + 0x7ef] >= 0xf23 + 0x1c8d * -0x1 + 0xdb4) && (_$K = _$b9.match(/Chrome\/(\d+)/)) && (_$l = +_$K[0xa * -0x269 + -0x229a + -0x7 * -0x863]); + var _$ba = _$l + , _$by = _$ba + , _$bu = _$P + , _$bG = _$w.String + , _$bT = !!Object.getOwnPropertySymbols && !_$b.ZgYUn(_$bu, function () { + var A5 = pW + , _$pP = _$b.gwDZm(Symbol, A5(0xe9)); + return !_$bG(_$pP) || !(Object(_$pP) instanceof Symbol) || !Symbol.sham && _$by && _$by < 0x1f49 + -0x89c + 0xb * -0x20c; + }) + , _$bM = _$bT && !Symbol.sham && _$b.VXKbq(pW(0x207), typeof Symbol.iterator) + , _$bn = _$b6 + , _$bJ = _$E + , _$bw = _$n + , _$be = Object + , _$bo = _$bM ? function (_$pP) { + var A6 = pW; + return A6(0x207) == typeof _$pP; + } + : function (_$pP) { + var A7 = pW + , _$pa = _$bn(A7(0x213)); + return _$bJ(_$pa) && _$bw(_$pa.prototype, _$b.wjcFt(_$be, _$pP)); + } + , _$bI = String + , _$bj = function (_$pP) { + var A8 = pW; + try { + return _$bI(_$pP); + } catch (_$pa) { + return A8(0xac); + } + } + , _$bO = _$E + , _$bp = _$bj + , _$bA = TypeError + , _$bd = function (_$pP) { + if (_$b.wjkBo(_$bO, _$pP)) + return _$pP; + throw new _$bA(_$bp(_$pP) + _$b.OvvXc); + } + , _$bZ = _$bd + , _$bX = _$t + , _$bh = function (_$pP, _$pa) { + var _$py = _$pP[_$pa]; + return _$b.wjkBo(_$bX, _$py) ? void (-0x2507 + 0xe5 * 0x27 + 0x4 * 0x89) : _$bZ(_$py); + } + , _$bB = _$m + , _$bQ = _$E + , _$bE = _$b0 + , _$bc = TypeError + , _$bL = { + 'exports': {} + } + , _$bs = _$w + , _$bf = Object.defineProperty + , _$bm = _$w + , _$bg = function (_$pP, _$pa) { + try { + _$bf(_$bs, _$pP, { + 'value': _$pa, + 'configurable': !(0x1ce1 + -0x14c * 0x11 + -0x6d5), + 'writable': !(-0x25 * 0x2d + 0x200d + -0x198c) + }); + } catch (_$py) { + _$bs[_$pP] = _$pa; + } + return _$pa; + } + , _$bN = _$b.KmGao + , _$bU = _$bL.exports = _$bm[_$bN] || _$b.jsPeP(_$bg, _$bN, {}); + (_$bU.versions || (_$bU.versions = [])).push({ + 'version': pW(0x221), + 'mode': pW(0xcc), + 'copyright': pW(0x190), + 'license': pW(0x1d3), + 'source': _$b.hsLLx + }); + var _$bV = _$bL.exports + , _$bK = function (_$pP, _$pa) { + return _$bV[_$pP] || (_$bV[_$pP] = _$pa || {}); + } + , _$bl = _$S + , _$bR = Object + , _$bH = function (_$pP) { + return _$bR(_$b.ngscu(_$bl, _$pP)); + } + , _$bC = _$bH + , _$bF = _$b.ttQVw(_$M, {}.hasOwnProperty) + , _$br = Object.hasOwn || function (_$pP, _$pa) { + return _$bF(_$bC(_$pP), _$pa); + } + , _$bq = _$M + , _$bt = 0xb1 * -0x1f + 0x242 * -0x5 + 0x20b9 + , _$bk = Math.random() + , _$bi = _$bq((0x1f76 + 0x17f6 + -0x376b).toString) + , _$bS = function (_$pP) { + var A9 = pW; + return _$b.elsKT(A9(0x1fd) + (_$b.ELBfJ(void (0x24e4 + -0x1 * -0x169f + -0x37 * 0x115), _$pP) ? '' : _$pP), ')_') + _$bi(++_$bt + _$bk, 0x1 * 0xaaf + 0x10b * -0x1d + 0x13b4); + } + , _$bY = _$bK + , _$bx = _$br + , _$bW = _$bS + , _$bD = _$bT + , _$v0 = _$bM + , _$v1 = _$w.Symbol + , _$v2 = _$b.tYUsr(_$bY, _$b.WYGRk) + , _$v3 = _$v0 ? _$v1.for || _$v1 : _$v1 && _$v1.withoutSetter || _$bW + , _$v4 = function (_$pP) { + var Ab = pW; + return _$bx(_$v2, _$pP) || (_$v2[_$pP] = _$bD && _$bx(_$v1, _$pP) ? _$v1[_$pP] : _$b.WcfiY(_$v3, Ab(0x171) + _$pP)), + _$v2[_$pP]; + } + , _$v5 = _$m + , _$v6 = _$b0 + , _$v7 = _$bo + , _$v8 = _$bh + , _$v9 = function (_$pP, _$pa) { + var Av = pW, _$py, _$pu; + if (_$b.NVSUm(Av(0x140), _$pa) && _$bQ(_$py = _$pP.toString) && !_$bE(_$pu = _$bB(_$py, _$pP))) + return _$pu; + if (_$bQ(_$py = _$pP.valueOf) && !_$b.wjcFt(_$bE, _$pu = _$bB(_$py, _$pP))) + return _$pu; + if (_$b.Ztrpf(_$b.omrhL, _$pa) && _$bQ(_$py = _$pP.toString) && !_$b.ndqrf(_$bE, _$pu = _$b.AIrhl(_$bB, _$py, _$pP))) + return _$pu; + throw new _$bc(_$b.wQoxc); + } + , _$vb = TypeError + , _$vv = _$v4(pW(0x98)) + , _$vz = function (_$pP, _$pa) { + var Az = pW; + if (!_$v6(_$pP) || _$v7(_$pP)) + return _$pP; + var _$py, _$pu = _$v8(_$pP, _$vv); + if (_$pu) { + if (void (0x200a + -0xfe + -0x4 * 0x7c3) === _$pa && (_$pa = _$b.EZPsj), + _$py = _$v5(_$pu, _$pP, _$pa), + !_$b.cKDOc(_$v6, _$py) || _$v7(_$py)) + return _$py; + throw new _$vb(Az(0x1c0)); + } + return void (-0x18e4 + 0x12d2 + 0x612) === _$pa && (_$pa = _$b.NxOYS), + _$v9(_$pP, _$pa); + } + , _$vP = _$vz + , _$va = _$bo + , _$vy = function (_$pP) { + var AP = pW + , _$pa = _$b.AIrhl(_$vP, _$pP, AP(0x140)); + return _$va(_$pa) ? _$pa : _$pa + ''; + } + , _$vu = _$b0 + , _$vG = _$w.document + , _$vT = _$vu(_$vG) && _$b.GkiQO(_$vu, _$vG.createElement) + , _$vM = function (_$pP) { + return _$vT ? _$vG.createElement(_$pP) : {}; + } + , _$vn = _$vM + , _$vJ = !_$L && !_$b.ixStb(_$P, function () { + var Aa = pW; + return 0x2168 + -0x1 * -0x1ab6 + -0x3c17 !== Object.defineProperty(_$b.WcfiY(_$vn, Aa(0x12e)), 'a', { + 'get': function () { + return 0x1b6b + 0xc5d * -0x1 + -0xf07 * 0x1; + } + }).a; + }) + , _$vw = _$L + , _$ve = _$m + , _$vo = _$g + , _$vI = _$R + , _$vj = _$W + , _$vO = _$vy + , _$vp = _$br + , _$vA = _$vJ + , _$vd = Object.getOwnPropertyDescriptor; + _$c.f = _$vw ? _$vd : function (_$pP, _$pa) { + if (_$pP = _$vj(_$pP), + _$pa = _$vO(_$pa), + _$vA) + try { + return _$vd(_$pP, _$pa); + } catch (_$py) { + } + if (_$vp(_$pP, _$pa)) + return _$b.LzFTX(_$vI, !_$ve(_$vo.f, _$pP, _$pa), _$pP[_$pa]); + } + ; + var _$vZ = _$P + , _$vX = _$E + , _$vh = /#|\.prototype\./ + , _$vB = function (_$pP, _$pa) { + var _$py = _$vE[_$b.ndqrf(_$vQ, _$pP)]; + return _$py === _$vL || _$py !== _$vc && (_$vX(_$pa) ? _$vZ(_$pa) : !!_$pa); + } + , _$vQ = _$vB.normalize = function (_$pP) { + return String(_$pP).replace(_$vh, '.').toLowerCase(); + } + , _$vE = _$vB.data = {} + , _$vc = _$vB.NATIVE = 'N' + , _$vL = _$vB.POLYFILL = 'P' + , _$vs = _$vB + , _$vf = _$bd + , _$vm = _$a + , _$vg = _$b.IMZMd(_$B, _$B.bind) + , _$vN = function (_$pP, _$pa) { + return _$vf(_$pP), + void (0x225e * -0x1 + -0x1862 + 0x3ac0) === _$pa ? _$pP : _$vm ? _$vg(_$pP, _$pa) : function () { + return _$pP.apply(_$pa, arguments); + } + ; + } + , _$vU = {} + , _$vV = _$L && _$P(function () { + var Ay = pW; + return -0x13b8 * 0x1 + -0x28e + -0xb38 * -0x2 !== Object.defineProperty(function () { + }, Ay(0x21e), { + 'value': 0x2a, + 'writable': !(0xc73 * -0x3 + -0x2413 + 0x496d * 0x1) + }).prototype; + }) + , _$vK = _$b0 + , _$vl = String + , _$vR = TypeError + , _$vH = function (_$pP) { + var Au = pW; + if (_$vK(_$pP)) + return _$pP; + throw new _$vR(_$vl(_$pP) + Au(0x21a)); + } + , _$vC = _$L + , _$vF = _$vJ + , _$vr = _$vV + , _$vq = _$vH + , _$vt = _$vy + , _$vk = TypeError + , _$vi = Object.defineProperty + , _$vS = Object.getOwnPropertyDescriptor + , _$vY = _$b.RWakt + , _$vx = pW(0x18d) + , _$vW = pW(0x106); + _$vU.f = _$vC ? _$vr ? function (_$pP, _$pa, _$py) { + var AG = pW; + if (_$vq(_$pP), + _$pa = _$vt(_$pa), + _$vq(_$py), + 'function' == typeof _$pP && AG(0x21e) === _$pa && AG(0xd9) in _$py && _$vW in _$py && !_$py[_$vW]) { + var _$pu = _$b.LzFTX(_$vS, _$pP, _$pa); + _$pu && _$pu[_$vW] && (_$pP[_$pa] = _$py.value, + _$py = { + 'configurable': _$vx in _$py ? _$py[_$vx] : _$pu[_$vx], + 'enumerable': _$vY in _$py ? _$py[_$vY] : _$pu[_$vY], + 'writable': !(0x1 * 0x1149 + 0x1c64 + 0xb6b * -0x4) + }); + } + return _$vi(_$pP, _$pa, _$py); + } + : _$vi : function (_$pP, _$pa, _$py) { + var AT = pW; + if (_$vq(_$pP), + _$pa = _$vt(_$pa), + _$vq(_$py), + _$vF) + try { + return _$vi(_$pP, _$pa, _$py); + } catch (_$pu) { + } + if (AT(0x13f) in _$py || _$b.RFeVT(AT(0x1a1), _$py)) + throw new _$vk(AT(0xd2)); + return AT(0xd9) in _$py && (_$pP[_$pa] = _$py.value), + _$pP; + } + ; + var _$vD = _$vU + , _$z0 = _$R + , _$z1 = _$L ? function (_$pP, _$pa, _$py) { + return _$vD.f(_$pP, _$pa, _$b.LzFTX(_$z0, 0xe59 + -0x241b + -0x741 * -0x3, _$py)); + } + : function (_$pP, _$pa, _$py) { + return _$pP[_$pa] = _$py, + _$pP; + } + , _$z2 = _$w + , _$z3 = _$O + , _$z4 = _$B + , _$z5 = _$E + , _$z6 = _$c.f + , _$z7 = _$vs + , _$z8 = _$b1 + , _$z9 = _$vN + , _$zb = _$z1 + , _$zv = _$br + , _$zz = function (_$pP) { + var _$pa = function (_$py, _$pu, _$pG) { + if (this instanceof _$pa) { + switch (arguments.length) { + case -0x1944 + -0x85a + 0x14b * 0x1a: + return new _$pP(); + case 0x1f * 0x97 + 0x1b4b + -0x2d93: + return new _$pP(_$py); + case -0x539 + 0x1 * 0x25b7 + -0x1c * 0x129: + return new _$pP(_$py, _$pu); + } + return new _$pP(_$py, _$pu, _$pG); + } + return _$b.tlqxj(_$z3, _$pP, this, arguments); + }; + return _$pa.prototype = _$pP.prototype, + _$pa; + } + , _$zP = function (_$pP, _$pa) { + var AM = pW, _$py, _$pu, _$pG, _$pT, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po = _$pP.target, _$pI = _$pP.global, + _$pj = _$pP.stat, _$pO = _$pP.proto, + _$pp = _$pI ? _$z2 : _$pj ? _$z2[_$po] : _$z2[_$po] && _$z2[_$po].prototype, + _$pA = _$pI ? _$z8 : _$z8[_$po] || _$zb(_$z8, _$po, {})[_$po], _$pd = _$pA.prototype; + for (_$pT in _$pa) + _$pu = !(_$py = _$z7(_$pI ? _$pT : _$po + (_$pj ? '.' : '#') + _$pT, _$pP.forced)) && _$pp && _$zv(_$pp, _$pT), + _$pn = _$pA[_$pT], + _$pu && (_$pJ = _$pP.dontCallGetSet ? (_$pe = _$z6(_$pp, _$pT)) && _$pe.value : _$pp[_$pT]), + _$pM = _$pu && _$pJ ? _$pJ : _$pa[_$pT], + (_$py || _$pO || typeof _$pn != typeof _$pM) && (_$pw = _$pP.bind && _$pu ? _$z9(_$pM, _$z2) : _$pP.wrap && _$pu ? _$zz(_$pM) : _$pO && _$z5(_$pM) ? _$z4(_$pM) : _$pM, + (_$pP.sham || _$pM && _$pM.sham || _$pn && _$pn.sham) && _$b.tlqxj(_$zb, _$pw, AM(0xa0), !(0x2261 * -0x1 + -0x1337 + 0x23 * 0x188)), + _$zb(_$pA, _$pT, _$pw), + _$pO && (_$zv(_$z8, _$pG = _$po + AM(0x1c6)) || _$zb(_$z8, _$pG, {}), + _$zb(_$z8[_$pG], _$pT, _$pM), + _$pP.real && _$pd && (_$py || !_$pd[_$pT]) && _$zb(_$pd, _$pT, _$pM))); + } + , _$za = _$Z + , _$zy = Array.isArray || function (_$pP) { + return _$b.hKgVe === _$za(_$pP); + } + , _$zu = Math.ceil + , _$zG = Math.floor + , _$zT = Math.trunc || function (_$pP) { + var _$pa = +_$pP; + return (_$pa > -0x32 + -0xd95 + 0xdc7 ? _$zG : _$zu)(_$pa); + } + , _$zM = function (_$pP) { + var _$pa = +_$pP; + return _$pa != _$pa || 0x1099 + 0x48 * -0x7e + 0x173 * 0xd === _$pa ? -0x1630 + 0xc1 * 0x13 + -0x29f * -0x3 : _$b.Czllx(_$zT, _$pa); + } + , _$zn = _$zM + , _$zJ = Math.min + , _$zw = function (_$pP) { + var _$pa = _$zn(_$pP); + return _$pa > 0x26e3 + -0xd * 0x146 + -0x1 * 0x1655 ? _$zJ(_$pa, 0xbdb88fe0be83 * 0x2b + -0xde4daa97fffff + 0xe06da7ebffffd) : 0x19 + 0x1 * -0x11e4 + 0x11cb; + } + , _$ze = _$zw + , _$zo = function (_$pP) { + return _$b.zIdvw(_$ze, _$pP.length); + } + , _$zI = TypeError + , _$zj = function (_$pP) { + var An = pW; + if (_$pP > -0x18f1cdcffffff + -0x3 * -0xa346d76eaaaab + 0x2f1d4783ffffd) + throw _$zI(An(0xd1)); + return _$pP; + } + , _$zO = _$L + , _$zp = _$vU + , _$zA = _$R + , _$zd = function (_$pP, _$pa, _$py) { + _$zO ? _$zp.f(_$pP, _$pa, _$zA(-0x1 * -0x17e1 + 0xc6a + 0xa3 * -0x39, _$py)) : _$pP[_$pa] = _$py; + } + , _$zZ = {}; + _$zZ[_$v4(pW(0x1ae))] = 'z'; + var _$zX = pW(0xea) === String(_$zZ) + , _$zh = _$zX + , _$zB = _$E + , _$zQ = _$Z + , _$zE = _$v4(pW(0x1ae)) + , _$zc = Object + , _$zL = pW(0xed) === _$zQ(function () { + return arguments; + }()) + , _$zs = _$zh ? _$zQ : function (_$pP) { + var AJ = pW, _$pa, _$py, _$pu; + return _$b.YkLka(void (0x8b * -0x23 + 0x55b + -0xda6 * -0x1), _$pP) ? 'Undefined' : null === _$pP ? _$b.CjWaD : _$b.NcXOz(AJ(0x140), typeof (_$py = function (_$pG, _$pT) { + try { + return _$pG[_$pT]; + } catch (_$pM) { + } + }(_$pa = _$zc(_$pP), _$zE))) ? _$py : _$zL ? _$zQ(_$pa) : _$b.FTzay === (_$pu = _$zQ(_$pa)) && _$zB(_$pa.callee) ? AJ(0xed) : _$pu; + } + , _$zf = _$M + , _$zm = _$E + , _$zg = _$bL.exports + , _$zN = _$zf(Function.toString); + _$zm(_$zg.inspectSource) || (_$zg.inspectSource = function (_$pP) { + return _$zN(_$pP); + } + ); + var _$zU = _$zg.inspectSource + , _$zV = _$M + , _$zK = _$P + , _$zl = _$E + , _$zR = _$zs + , _$zH = _$zU + , _$zC = function () { + } + , _$zF = _$b6(pW(0x163), pW(0x12d)) + , _$zr = /^\s*(?:class|function)\b/ + , _$zq = _$zV(_$zr.exec) + , _$zt = !_$zr.test(_$zC) + , _$zk = function (_$pP) { + if (!_$zl(_$pP)) + return !(0xe6c + -0xbba + -0x2b1); + try { + return _$b.tlqxj(_$zF, _$zC, [], _$pP), + !(-0x74d + 0x234f + -0x1c02); + } catch (_$pa) { + return !(-0x8f0 + 0x3a0 + 0x551 * 0x1); + } + } + , _$zi = function (_$pP) { + var Aw = pW; + if (!_$zl(_$pP)) + return !(-0x1f * -0x47 + -0x1ee9 + -0x1 * -0x1651); + switch (_$zR(_$pP)) { + case Aw(0x1a2): + case _$b.PkhXr: + case Aw(0x220): + return !(0x93e + 0xd * -0x29 + -0x4 * 0x1ca); + } + try { + return _$zt || !!_$zq(_$zr, _$zH(_$pP)); + } catch (_$pa) { + return !(-0xe1b + 0x2298 + -0x147d); + } + }; + _$zi.sham = !(0xf * 0x1df + -0x47 * -0x4 + -0x1d2d); + var _$zS = !_$zF || _$zK(function () { + var _$pP; + return _$b.WcfiY(_$zk, _$zk.call) || !_$zk(Object) || !_$zk(function () { + _$pP = !(-0xe3 * 0x13 + -0x125a + -0x1 * -0x2333); + }) || _$pP; + }) ? _$zi : _$zk + , _$zY = _$zy + , _$zx = _$zS + , _$zW = _$b0 + , _$zD = _$b.lFxco(_$v4, pW(0x209)) + , _$P0 = Array + , _$P1 = function (_$pP) { + var _$pa; + return _$zY(_$pP) && (_$pa = _$pP.constructor, + (_$zx(_$pa) && (_$pa === _$P0 || _$zY(_$pa.prototype)) || _$zW(_$pa) && null === (_$pa = _$pa[_$zD])) && (_$pa = void (0xbf * -0x2 + -0x42 * -0x2d + -0x1 * 0xa1c))), + void (0x1 * -0xd69 + 0x4 * 0x64c + -0xbc7) === _$pa ? _$P0 : _$pa; + } + , _$P2 = function (_$pP, _$pa) { + return new (_$b.Czllx(_$P1, _$pP))(0x1 * 0x1bf5 + 0x231e + -0x3f13 === _$pa ? 0x260a + -0x16a5 + -0x7 * 0x233 : _$pa); + } + , _$P3 = _$P + , _$P4 = _$ba + , _$P5 = _$v4(pW(0x209)) + , _$P6 = function (_$pP) { + return _$P4 >= 0x2 * 0x10dc + 0x234c * -0x1 + 0x1c7 || !_$P3(function () { + var _$pa = []; + return (_$pa.constructor = {})[_$P5] = function () { + return { + 'foo': 0x1 + }; + } + , + 0x1acd + -0x1fb0 + 0x4e4 !== _$pa[_$pP](Boolean).foo; + }); + } + , _$P7 = _$zP + , _$P8 = _$P + , _$P9 = _$zy + , _$Pb = _$b0 + , _$Pv = _$bH + , _$Pz = _$zo + , _$PP = _$zj + , _$Pa = _$zd + , _$Py = _$P2 + , _$Pu = _$P6 + , _$PG = _$ba + , _$PT = _$v4(_$b.izMAm) + , _$PM = _$PG >= -0x10e5 * -0x2 + -0x17fc + 0x1 * -0x99b || !_$b.Owfxz(_$P8, function () { + var _$pP = []; + return _$pP[_$PT] = !(-0x426 + -0x1a5 * 0x14 + -0x6d * -0x57), + _$b.azeGQ(_$pP.concat()[0x58b * -0x2 + 0xd * 0x1ca + -0x13 * 0xa4], _$pP); + }) + , _$Pn = function (_$pP) { + if (!_$Pb(_$pP)) + return !(-0xa8b + -0xe7e + 0x190a); + var _$pa = _$pP[_$PT]; + return _$b.azeGQ(void (-0x21e5 * 0x1 + -0x5 * -0x26f + 0x15ba), _$pa) ? !!_$pa : _$b.zIdvw(_$P9, _$pP); + }; + _$P7({ + 'target': _$b.hKgVe, + 'proto': !(0x1 * -0x7ab + -0x2483 + 0x2c2e), + 'arity': 0x1, + 'forced': !_$PM || !_$Pu(_$b.kVmnm) + }, { + 'concat': function (_$pP) { + var _$pa, _$py, _$pu, _$pG, _$pT, _$pM = _$Pv(this), _$pn = _$Py(_$pM, 0x1e7e + -0xdac + -0x869 * 0x2), + _$pJ = -0x209 * -0x5 + 0x1eb + -0x3 * 0x408; + for (_$pa = -(-0x40 * 0x30 + -0x830 + -0x1 * -0x1431), + _$pu = arguments.length; _$pa < _$pu; _$pa++) + if (_$Pn(_$pT = _$b.ACGOF(-(0x133 * -0x17 + 0x21a6 * -0x1 + 0x1 * 0x3d3c), _$pa) ? _$pM : arguments[_$pa])) { + for (_$pG = _$Pz(_$pT), + _$PP(_$pJ + _$pG), + _$py = 0x12 * -0x8b + 0x191 * 0x4 + 0x1c1 * 0x2; _$py < _$pG; _$py++, + _$pJ++) + _$b.RFeVT(_$py, _$pT) && _$Pa(_$pn, _$pJ, _$pT[_$py]); + } else + _$PP(_$pJ + (0x56 * 0x3d + 0x1f8a + -0x2bd * 0x13)), + _$Pa(_$pn, _$pJ++, _$pT); + return _$pn.length = _$pJ, + _$pn; + } + }); + var _$PJ = _$w + , _$Pw = _$b1 + , _$Pe = function (_$pP, _$pa) { + var Ae = pW + , _$py = _$Pw[_$pP + Ae(0x1c6)] + , _$pu = _$py && _$py[_$pa]; + if (_$pu) + return _$pu; + var _$pG = _$PJ[_$pP] + , _$pT = _$pG && _$pG.prototype; + return _$pT && _$pT[_$pa]; + } + , _$Po = _$Pe(pW(0x214), pW(0xc4)) + , _$PI = _$n + , _$Pj = _$Po + , _$PO = Array.prototype + , _$Pp = function (_$pP) { + var _$pa = _$pP.concat; + return _$pP === _$PO || _$b.rTsbY(_$PI, _$PO, _$pP) && _$pa === _$PO.concat ? _$Pj : _$pa; + } + , _$PA = _$zM + , _$Pd = Math.max + , _$PZ = Math.min + , _$PX = function (_$pP, _$pa) { + var _$py = _$PA(_$pP); + return _$py < 0xb4b + 0x20a * 0x5 + -0x1 * 0x157d ? _$Pd(_$b.FIBsh(_$py, _$pa), -0x19b + -0x257c * -0x1 + 0x23e1 * -0x1) : _$PZ(_$py, _$pa); + } + , _$Ph = _$b.GkiQO(_$M, [].slice) + , _$PB = _$zP + , _$PQ = _$zy + , _$PE = _$zS + , _$Pc = _$b0 + , _$PL = _$PX + , _$Ps = _$zo + , _$Pf = _$W + , _$Pm = _$zd + , _$Pg = _$v4 + , _$PN = _$Ph + , _$PU = _$P6(pW(0x147)) + , _$PV = _$Pg(_$b.LdPBz) + , _$PK = Array + , _$Pl = Math.max; + _$PB({ + 'target': pW(0x214), + 'proto': !(0x674 + -0x23f5 + 0x1d81), + 'forced': !_$PU + }, { + 'slice': function (_$pP, _$pa) { + var _$py, _$pu, _$pG, _$pT = _$Pf(this), _$pM = _$Ps(_$pT), _$pn = _$PL(_$pP, _$pM), + _$pJ = _$b.jcWMV(_$PL, _$b.dPMNX(void (0x16 * -0x10e + -0xa4a * 0x1 + -0x217e * -0x1), _$pa) ? _$pM : _$pa, _$pM); + if (_$PQ(_$pT) && (_$py = _$pT.constructor, + (_$PE(_$py) && (_$b.ACGOF(_$py, _$PK) || _$PQ(_$py.prototype)) || _$Pc(_$py) && null === (_$py = _$py[_$PV])) && (_$py = void (-0xb1d * -0x1 + -0xa7e + -0x9f)), + _$py === _$PK || void (0x4 * 0x4c7 + -0xbde + -0x26a * 0x3) === _$py)) + return _$b.tlqxj(_$PN, _$pT, _$pn, _$pJ); + for (_$pu = new ((_$b.EnCbm(void (0x2ed + -0x1 * 0x67 + -0x286), _$py)) ? _$PK : _$py)(_$b.xJcjl(_$Pl, _$pJ - _$pn, -0x61 * 0x1 + 0x13 * 0xa9 + 0x6 * -0x207)), + _$pG = 0x372 * 0x6 + 0x265 * 0x2 + -0x1976 * 0x1; _$pn < _$pJ; _$pn++, + _$pG++) + _$b.RFeVT(_$pn, _$pT) && _$Pm(_$pu, _$pG, _$pT[_$pn]); + return _$pu.length = _$pG, + _$pu; + } + }); + var _$PR = _$Pe(pW(0x214), pW(0x147)) + , _$PH = _$n + , _$PC = _$PR + , _$PF = Array.prototype + , _$Pr = function (_$pP) { + var _$pa = _$pP.slice; + return _$pP === _$PF || _$PH(_$PF, _$pP) && _$pa === _$PF.slice ? _$PC : _$pa; + } + , _$Pq = _$W + , _$Pt = _$PX + , _$Pk = _$zo + , _$Pi = function (_$pP) { + return function (_$pa, _$py, _$pu) { + var Ao = a0a1b0cv + , _$pG = Ao(0xc2).split('|') + , _$pT = 0x4f * -0x11 + -0x358 * 0x7 + -0x3 * -0x98d; + while (!![]) { + switch (_$pG[_$pT++]) { + case '0': + return !_$pP && -(0x3fc + -0xac9 + 0x6ce); + case '1': + if (_$pP && _$py != _$py) { + for (; _$pn > _$pw;) + if ((_$pJ = _$pM[_$pw++]) != _$pJ) + return !(0xf5 + 0x8 * 0x1fc + -0x10d5); + } else { + for (; _$pn > _$pw; _$pw++) + if ((_$pP || _$pw in _$pM) && _$pM[_$pw] === _$py) + return _$pP || _$pw || 0x7 * -0x18d + -0x1 * -0x1a7b + -0xfa0; + } + continue; + case '2': + var _$pM = _$Pq(_$pa) + , _$pn = _$b.ndqrf(_$Pk, _$pM); + continue; + case '3': + var _$pJ, _$pw = _$Pt(_$pu, _$pn); + continue; + case '4': + if (_$b.ekjie(-0x5 * 0xeb + 0x29 * -0xc2 + 0x23a9 * 0x1, _$pn)) + return !_$pP && -(0xa8b + 0x177a + -0x2204); + continue; + } + break; + } + } + ; + } + , _$PS = { + 'includes': _$Pi(!(0x1fd + 0xa2e * -0x1 + 0x831)), + 'indexOf': _$Pi(!(0x2b3 * 0xe + -0x1 * -0x20f8 + -0x46c1 * 0x1)) + } + , _$PY = _$P + , _$Px = function (_$pP, _$pa) { + var _$py = [][_$pP]; + return !!_$py && _$PY(function () { + _$py.call(null, _$pa || function () { + return 0xf40 + -0x2322 + 0x13e3; + } + , 0x1c82 + -0x442 * 0x1 + -0x183f); + }); + } + , _$PW = _$zP + , _$PD = _$PS.indexOf + , _$a0 = _$Px + , _$a1 = _$B([].indexOf) + , + _$a2 = !!_$a1 && (-0x1d23 + 0x2 * -0xf05 + 0x9dd * 0x6) / _$b.IQjRV(_$a1, [0x35 * -0x45 + -0x563 + 0xdb * 0x17], -0x616 + 0x1f92 + -0x197b, -(0x1f * -0x56 + 0x763 * -0x5 + 0x2f59)) < -0x43 * -0x8b + -0x12f * -0x3 + 0x21a * -0x13; + _$PW({ + 'target': pW(0x214), + 'proto': !(0x237f + -0x1e1 * 0xc + -0x41 * 0x33), + 'forced': _$a2 || !_$b.wdnVZ(_$a0, pW(0x192)) + }, { + 'indexOf': function (_$pP) { + var _$pa = arguments.length > -0x26c7 * -0x1 + 0x45 * 0x64 + -0x41ba * 0x1 ? arguments[0x1a * -0x16a + -0x7 * 0x3f9 + -0x204a * -0x2] : void (0x1ecb + 0x45e + -0x1 * 0x2329); + return _$a2 ? _$a1(this, _$pP, _$pa) || -0x2 * 0x50d + -0x2216 + 0x2c30 : _$PD(this, _$pP, _$pa); + } + }); + var _$a3 = _$Pe(pW(0x214), _$b.bwGsb) + , _$a4 = _$n + , _$a5 = _$a3 + , _$a6 = Array.prototype + , _$a7 = function (_$pP) { + var _$pa = _$pP.indexOf; + return _$pP === _$a6 || _$a4(_$a6, _$pP) && _$pa === _$a6.indexOf ? _$a5 : _$pa; + } + , _$a8 = _$vN + , _$a9 = _$q + , _$ab = _$bH + , _$av = _$zo + , _$az = _$P2 + , _$aP = _$b.VAeph(_$M, [].push) + , _$aa = function (_$pP) { + var _$pa = -0x14b5 + -0x1e29 + 0x32df === _$pP + , _$py = _$b.GKBiz(-0x87c + -0x62 * 0x3 + 0x9a4, _$pP) + , _$pu = 0x2 * 0x61f + -0x17 * 0x121 + -0x125 * -0xc === _$pP + , _$pG = 0x1d8a + -0x10f * 0xb + 0x11e1 * -0x1 === _$pP + , _$pT = 0x17 * 0x9f + 0xa * -0x45 + -0xb91 === _$pP + , _$pM = 0x1e35 + 0x3 * -0x713 + -0x8f5 === _$pP + , _$pn = -0x112a + 0x7d * -0x1 + -0xd * -0x15c === _$pP || _$pT; + return function (_$pJ, _$pw, _$pe, _$po) { + for (var _$pI, _$pj, _$pO = _$b.WcfiY(_$ab, _$pJ), _$pp = _$a9(_$pO), _$pA = _$av(_$pp), _$pd = _$a8(_$pw, _$pe), _$pZ = 0x39 * 0xac + 0x17c1 + -0x3e0d, _$pX = _$po || _$az, _$ph = _$pa ? _$pX(_$pJ, _$pA) : _$py || _$pM ? _$pX(_$pJ, -0x101a + -0x17 * 0x10d + 0x1 * 0x2845) : void (0x1b85 + 0x11c6 + -0x2d4b); _$pA > _$pZ; _$pZ++) + if ((_$pn || _$pZ in _$pp) && (_$pj = _$pd(_$pI = _$pp[_$pZ], _$pZ, _$pO), + _$pP)) { + if (_$pa) + _$ph[_$pZ] = _$pj; + else { + if (_$pj) + switch (_$pP) { + case -0x1560 + 0x1e26 + -0x8c3 * 0x1: + return !(0x6cb * 0x3 + 0xe3 * 0x8 + 0x21d * -0xd); + case 0xd * -0x180 + -0xf09 + 0x2 * 0x1147: + return _$pI; + case -0x153d * -0x1 + 0x1 * -0xe7d + -0x6ba: + return _$pZ; + case 0x450 * 0x6 + -0x1 * 0x1e0f + 0x25 * 0x1d: + _$aP(_$ph, _$pI); + } + else + switch (_$pP) { + case 0xf86 * 0x1 + 0x165 * -0x17 + 0x1091: + return !(-0x1d54 + 0x1 * 0xdc1 + 0xf94); + case -0x1077 + 0x488 * 0x2 + -0x6 * -0x13d: + _$aP(_$ph, _$pI); + } + } + } + return _$pT ? -(-0x24cb * 0x1 + 0x2355 + -0x1 * -0x177) : _$b.kyqLA(_$pu, _$pG) ? _$pG : _$ph; + } + ; + } + , _$ay = { + 'forEach': _$aa(0x2335 * 0x1 + 0xbc9 + -0x2efe), + 'map': _$aa(0x9d * 0x27 + 0x2687 + -0x3e71), + 'filter': _$aa(-0x2171 * -0x1 + -0x1f49 + -0x226), + 'some': _$aa(-0xd * -0x242 + -0x6 * -0x3b4 + -0x338f), + 'every': _$aa(0xf54 + 0x1 * -0x377 + 0xbd9 * -0x1), + 'find': _$aa(-0x1703 + -0x1feb + 0x36f3), + 'findIndex': _$b.wjkBo(_$aa, 0x56d * 0x5 + -0x4c * 0x61 + 0x1b1), + 'filterReject': _$aa(-0x4f0 + 0x2572 + -0x207b) + } + , _$au = _$ay.map; + _$zP({ + 'target': pW(0x214), + 'proto': !(-0xae9 + -0xd22 + 0x180b), + 'forced': !_$b.hylqK(_$P6, pW(0xe6)) + }, { + 'map': function (_$pP) { + return _$au(this, _$pP, _$b.ImBqN(arguments.length, -0x2 * -0x11ef + -0x2 * 0xa5b + -0xf27) ? arguments[-0x1747 + -0x1 * -0x79f + 0x13 * 0xd3] : void (-0x1 * -0x1eb8 + -0x1 * -0x80f + -0x26c7 * 0x1)); + } + }); + var _$aG = _$Pe(pW(0x214), pW(0xe6)) + , _$aT = _$n + , _$aM = _$aG + , _$an = Array.prototype + , _$aJ = function (_$pP) { + var _$pa = _$pP.map; + return _$pP === _$an || _$b.jcWMV(_$aT, _$an, _$pP) && _$b.dPMNX(_$pa, _$an.map) ? _$aM : _$pa; + } + , _$aw = _$bS + , _$ae = _$bK(pW(0x148)) + , _$ao = function (_$pP) { + return _$ae[_$pP] || (_$ae[_$pP] = _$aw(_$pP)); + } + , _$aI = !_$b.DJCDJ(_$P, function () { + function _$pP() { + } + + return _$pP.prototype.constructor = null, + _$b.Ztrpf(Object.getPrototypeOf(new _$pP()), _$pP.prototype); + }) + , _$aj = _$br + , _$aO = _$E + , _$ap = _$bH + , _$aA = _$aI + , _$ad = _$b.WcfiY(_$ao, pW(0x1c7)) + , _$aZ = Object + , _$aX = _$aZ.prototype + , _$ah = _$aA ? _$aZ.getPrototypeOf : function (_$pP) { + var _$pa = _$ap(_$pP); + if (_$aj(_$pa, _$ad)) + return _$pa[_$ad]; + var _$py = _$pa.constructor; + return _$aO(_$py) && _$pa instanceof _$py ? _$py.prototype : _$pa instanceof _$aZ ? _$aX : null; + } + , _$aB = _$M + , _$aQ = _$bd + , _$aE = _$b0 + , _$ac = function (_$pP) { + return _$aE(_$pP) || null === _$pP; + } + , _$aL = String + , _$as = TypeError + , _$af = function (_$pP, _$pa, _$py) { + try { + return _$aB(_$aQ(Object.getOwnPropertyDescriptor(_$pP, _$pa)[_$py])); + } catch (_$pu) { + } + } + , _$am = _$b0 + , _$ag = _$S + , _$aN = function (_$pP) { + var AI = pW; + if (_$b.OfLEN(_$ac, _$pP)) + return _$pP; + throw new _$as(_$b.FIBsh(AI(0xaf), _$aL(_$pP)) + AI(0xeb)); + } + , _$aU = Object.setPrototypeOf || (pW(0x193) in {} ? function () { + var Aj = pW, _$pP, _$pa = !(0x7f6 * -0x3 + 0x17ad + 0x12 * 0x3), _$py = {}; + try { + (_$pP = _$b.KKpTK(_$af, Object.prototype, Aj(0x193), Aj(0x1a1)))(_$py, []), + _$pa = _$py instanceof Array; + } catch (_$pu) { + } + return function (_$pG, _$pT) { + return _$ag(_$pG), + _$aN(_$pT), + _$b.wjkBo(_$am, _$pG) ? (_$pa ? _$pP(_$pG, _$pT) : _$pG.__proto__ = _$pT, + _$pG) : _$pG; + } + ; + }() : void (-0x268e + 0x28 * 0xa3 + 0xd16)) + , _$aV = {} + , _$aK = {} + , _$al = _$br + , _$aR = _$W + , _$aH = _$PS.indexOf + , _$aC = _$aK + , _$aF = _$b.iWfbE(_$M, [].push) + , _$ar = function (_$pP, _$pa) { + var _$py, _$pu = _$aR(_$pP), _$pG = -0x15a3 * -0x1 + 0x11 * -0x15d + 0x1 * 0x18a, _$pT = []; + for (_$py in _$pu) + !_$al(_$aC, _$py) && _$al(_$pu, _$py) && _$aF(_$pT, _$py); + for (; _$pa.length > _$pG;) + _$b.lCFyh(_$al, _$pu, _$py = _$pa[_$pG++]) && (~_$aH(_$pT, _$py) || _$b.wXKoR(_$aF, _$pT, _$py)); + return _$pT; + } + , _$aq = [pW(0x159), pW(0xa8), pW(0x12f), _$b.nxnFK, _$b.JFwdE, _$b.urOtP, _$b.LtbSd] + , _$at = _$ar + , _$ak = _$aq.concat(_$b.ukBvu, pW(0x21e)); + _$aV.f = Object.getOwnPropertyNames || function (_$pP) { + return _$at(_$pP, _$ak); + } + ; + var _$ai = {}; + _$ai.f = Object.getOwnPropertySymbols; + var _$aS = _$b6 + , _$aY = _$aV + , _$ax = _$ai + , _$aW = _$vH + , _$aD = _$M([].concat) + , _$y0 = _$aS(pW(0x163), _$b.gBXRr) || function (_$pP) { + var _$pa = _$aY.f(_$b.cKDOc(_$aW, _$pP)) + , _$py = _$ax.f; + return _$py ? _$aD(_$pa, _$py(_$pP)) : _$pa; + } + , _$y1 = _$br + , _$y2 = _$y0 + , _$y3 = _$c + , _$y4 = _$vU + , _$y5 = {} + , _$y6 = _$ar + , _$y7 = _$aq + , _$y8 = Object.keys || function (_$pP) { + return _$y6(_$pP, _$y7); + } + , _$y9 = _$L + , _$yb = _$vV + , _$yv = _$vU + , _$yz = _$vH + , _$yP = _$W + , _$ya = _$y8; + _$y5.f = _$b.oHvKp(_$y9, !_$yb) ? Object.defineProperties : function (_$pP, _$pa) { + _$yz(_$pP); + for (var _$py, _$pu = _$yP(_$pa), _$pG = _$b.GoUyk(_$ya, _$pa), _$pT = _$pG.length, _$pM = -0x1 * -0x1201 + -0x595 + 0x27c * -0x5; _$pT > _$pM;) + _$yv.f(_$pP, _$py = _$pG[_$pM++], _$pu[_$py]); + return _$pP; + } + ; + var _$yy, _$yu = _$b6(pW(0x107), pW(0x117)), _$yG = _$vH, _$yT = _$y5, _$yM = _$aq, _$yn = _$aK, _$yJ = _$yu, + _$yw = _$vM, _$ye = pW(0x21e), _$yo = pW(0x1ec), _$yI = _$ao(pW(0x1c7)), _$yj = function () { + }, _$yO = function (_$pP) { + return _$b.xHGSz('<', _$yo) + '>' + _$pP + ''; + }, _$yp = function (_$pP) { + _$pP.write(_$yO('')), + _$pP.close(); + var _$pa = _$pP.parentWindow.Object; + return _$pP = null, + _$pa; + }, _$yA = function () { + var AO = pW; + try { + _$yy = new ActiveXObject(AO(0x215)); + } catch (_$pG) { + } + var _$pP, _$pa, _$py; + _$yA = 'undefined' != typeof document ? document.domain && _$yy ? _$b.ixStb(_$yp, _$yy) : (_$pa = _$yw(AO(0x19f)), + _$py = AO(0xe8) + _$yo + ':', + _$pa.style.display = _$b.DCkFk, + _$yJ.appendChild(_$pa), + _$pa.src = String(_$py), + (_$pP = _$pa.contentWindow.document).open(), + _$pP.write(_$b.WcfiY(_$yO, _$b.MSDYx)), + _$pP.close(), + _$pP.F) : _$yp(_$yy); + for (var _$pu = _$yM.length; _$pu--;) + delete _$yA[_$ye][_$yM[_$pu]]; + return _$yA(); + }; + _$yn[_$yI] = !(-0x1751 + -0xa55 + 0x49 * 0x76); + var _$yd = Object.create || function (_$pP, _$pa) { + var _$py; + return null !== _$pP ? (_$yj[_$ye] = _$yG(_$pP), + _$py = new _$yj(), + _$yj[_$ye] = null, + _$py[_$yI] = _$pP) : _$py = _$yA(), + _$b.CRohA(void (-0x217b + -0x1c90 + 0x3e0b), _$pa) ? _$py : _$yT.f(_$py, _$pa); + } + , _$yZ = _$b0 + , _$yX = _$z1 + , _$yh = Error + , _$yB = _$M(''.replace) + , _$yQ = String(new _$yh(_$b.rSaAa).stack) + , _$yE = /\n\s*at [^:]*:[^\n]*/ + , _$yc = _$yE.test(_$yQ) + , _$yL = _$R + , _$ys = !_$P(function () { + var Ap = pW + , _$pP = new Error('a'); + return !(Ap(0x111) in _$pP) || (Object.defineProperty(_$pP, Ap(0x111), _$yL(-0xacb + 0x421 * -0x1 + 0x1 * 0xeed, -0x1e5b * -0x1 + -0x5 * 0x189 + -0x78d * 0x3)), + -0x1c4d + -0x4 * -0x157 + 0x16f8 !== _$pP.stack); + }) + , _$yf = _$z1 + , _$ym = function (_$pP, _$pa) { + var AA = pW; + if (_$yc && AA(0x140) == typeof _$pP && !_$yh.prepareStackTrace) { + for (; _$pa--;) + _$pP = _$yB(_$pP, _$yE, ''); + } + return _$pP; + } + , _$yg = _$ys + , _$yN = Error.captureStackTrace + , _$yU = {} + , _$yV = _$yU + , _$yK = _$b.HJbmi(_$v4, _$b.YXmnr) + , _$yl = Array.prototype + , _$yR = _$zs + , _$yH = _$bh + , _$yC = _$t + , _$yF = _$yU + , _$yr = _$v4(_$b.YXmnr) + , _$yq = function (_$pP) { + var Ad = pW; + if (!_$yC(_$pP)) + return _$yH(_$pP, _$yr) || _$yH(_$pP, Ad(0xa3)) || _$yF[_$yR(_$pP)]; + } + , _$yt = _$m + , _$yk = _$bd + , _$yi = _$vH + , _$yS = _$bj + , _$yY = _$yq + , _$yx = TypeError + , _$yW = _$m + , _$yD = _$vH + , _$u0 = _$bh + , _$u1 = _$vN + , _$u2 = _$m + , _$u3 = _$vH + , _$u4 = _$bj + , _$u5 = function (_$pP) { + return void (-0x2313 + 0x22 * -0x27 + 0x9 * 0x479) !== _$pP && (_$yV.Array === _$pP || _$yl[_$yK] === _$pP); + } + , _$u6 = _$zo + , _$u7 = _$n + , _$u8 = function (_$pP, _$pa) { + var AZ = pW + , _$py = arguments.length < -0x18 * 0x197 + -0xe57 + -0x1 * -0x3481 ? _$yY(_$pP) : _$pa; + if (_$b.NfIRp(_$yk, _$py)) + return _$yi(_$yt(_$py, _$pP)); + throw new _$yx(_$b.ZAEmr(_$yS(_$pP), AZ(0x1f2))); + } + , _$u9 = _$yq + , _$ub = function (_$pP, _$pa, _$py) { + var AX = pW, _$pu, _$pG; + _$yD(_$pP); + try { + if (!(_$pu = _$u0(_$pP, _$b.iOLlK))) { + if (_$b.wlvmd(AX(0x180), _$pa)) + throw _$py; + return _$py; + } + _$pu = _$yW(_$pu, _$pP); + } catch (_$pT) { + _$pG = !(0x152 * -0x11 + 0xadf + -0xb93 * -0x1), + _$pu = _$pT; + } + if (AX(0x180) === _$pa) + throw _$py; + if (_$pG) + throw _$pu; + return _$yD(_$pu), + _$py; + } + , _$uv = TypeError + , _$uz = function (_$pP, _$pa) { + this.stopped = _$pP, + this.result = _$pa; + } + , _$uP = _$uz.prototype + , _$ua = function (_$pP, _$pa, _$py) { + var Ah = pW, _$pu = { + 'cSNkS': Ah(0x212), + 'JsDEB': function (_$pX, _$ph, _$pB) { + return _$pX(_$ph, _$pB); + } + }, _$pG, _$pT, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po = _$py && _$py.that, _$pI = !(!_$py || !_$py.AS_ENTRIES), + _$pj = !(!_$py || !_$py.IS_RECORD), _$pO = !(!_$py || !_$py.IS_ITERATOR), + _$pp = !(!_$py || !_$py.INTERRUPTED), _$pA = _$u1(_$pa, _$po), _$pd = function (_$pX) { + return _$pG && _$ub(_$pG, _$pu.cSNkS, _$pX), + new _$uz(!(0xd4e + 0x23a5 + -0x30f3), _$pX); + }, _$pZ = function (_$pX) { + return _$pI ? (_$u3(_$pX), + _$pp ? _$pA(_$pX[0x1416 + -0x24d6 + 0x10c0], _$pX[0x236e + 0xe8 * 0x25 + -0x44f5], _$pd) : _$pA(_$pX[0x8d5 + 0xa47 * -0x2 + 0x1 * 0xbb9], _$pX[0x26a0 + 0x1256 * -0x2 + -0x1f3])) : _$pp ? _$pu.JsDEB(_$pA, _$pX, _$pd) : _$pA(_$pX); + }; + if (_$pj) + _$pG = _$pP.iterator; + else { + if (_$pO) + _$pG = _$pP; + else { + if (!(_$pT = _$u9(_$pP))) + throw new _$uv(_$b.elsKT(_$b.Czllx(_$u4, _$pP), Ah(0x1f2))); + if (_$u5(_$pT)) { + for (_$pM = 0x49d * 0x5 + -0x159d + 0x1f * -0xc, + _$pn = _$u6(_$pP); _$pn > _$pM; _$pM++) + if ((_$pJ = _$pZ(_$pP[_$pM])) && _$u7(_$uP, _$pJ)) + return _$pJ; + return new _$uz(!(-0x23c9 * -0x1 + -0x1d8e + -0x31d * 0x2)); + } + _$pG = _$u8(_$pP, _$pT); + } + } + for (_$pw = _$pj ? _$pP.next : _$pG.next; !(_$pe = _$b.LSmUa(_$u2, _$pw, _$pG)).done;) { + try { + _$pJ = _$b.eGJvR(_$pZ, _$pe.value); + } catch (_$pX) { + _$ub(_$pG, Ah(0x180), _$pX); + } + if (Ah(0x18b) == typeof _$pJ && _$pJ && _$u7(_$uP, _$pJ)) + return _$pJ; + } + return new _$uz(!(0x3ae * -0x9 + 0x4 * 0x175 + 0x1b4b)); + } + , _$uy = _$zs + , _$uu = String + , _$uG = function (_$pP) { + var AB = pW; + if (_$b.dPMNX(AB(0x213), _$b.nuoFT(_$uy, _$pP))) + throw new TypeError(AB(0xb4)); + return _$uu(_$pP); + } + , _$uT = _$uG + , _$uM = _$zP + , _$un = _$n + , _$uJ = _$ah + , _$uw = _$aU + , _$ue = function (_$pP, _$pa, _$py) { + for (var _$pu = _$y2(_$pa), _$pG = _$y4.f, _$pT = _$y3.f, _$pM = -0xd3 * 0x18 + -0x23a6 + 0x376e; _$b.kYJbS(_$pM, _$pu.length); _$pM++) { + var _$pn = _$pu[_$pM]; + _$y1(_$pP, _$pn) || _$py && _$y1(_$py, _$pn) || _$pG(_$pP, _$pn, _$pT(_$pa, _$pn)); + } + } + , _$uo = _$yd + , _$uI = _$z1 + , _$uj = _$R + , _$uO = function (_$pP, _$pa) { + var AQ = pW; + _$yZ(_$pa) && AQ(0x20c) in _$pa && _$yX(_$pP, AQ(0x20c), _$pa.cause); + } + , _$up = function (_$pP, _$pa, _$py, _$pu) { + var AE = pW; + _$yg && (_$yN ? _$yN(_$pP, _$pa) : _$yf(_$pP, AE(0x111), _$ym(_$py, _$pu))); + } + , _$uA = _$ua + , _$ud = function (_$pP, _$pa) { + return void (-0x19 * 0xa7 + 0x24db + -0x148c) === _$pP ? arguments.length < -0x29 * 0x3 + -0xf01 + 0x1 * 0xf7e ? '' : _$pa : _$uT(_$pP); + } + , _$uZ = _$v4(pW(0x1ae)) + , _$uX = Error + , _$uh = [].push + , _$uB = function (_$pP, _$pa) { + var Ac = pW, _$py, _$pu = _$un(_$uQ, this); + _$uw ? _$py = _$uw(new _$uX(), _$pu ? _$b.uDneQ(_$uJ, this) : _$uQ) : (_$py = _$pu ? this : _$uo(_$uQ), + _$b.NipqK(_$uI, _$py, _$uZ, Ac(0x1b4))), + void (-0x2214 + -0x3 * 0x772 + 0x386a) !== _$pa && _$uI(_$py, Ac(0x17e), _$ud(_$pa)), + _$up(_$py, _$uB, _$py.stack, 0xd1f * 0x2 + 0x11e9 + 0x1 * -0x2c26), + arguments.length > -0x187d + -0x1f4d + 0x37cc && _$uO(_$py, arguments[-0x1348 + 0x5 * 0x217 + 0x8d7]); + var _$pG = []; + return _$uA(_$pP, _$uh, { + 'that': _$pG + }), + _$uI(_$py, Ac(0x19b), _$pG), + _$py; + }; + _$uw ? _$uw(_$uB, _$uX) : _$ue(_$uB, _$uX, { + 'name': !(-0x1 * -0x1f0f + 0x4f * 0x25 + 0x1 * -0x2a7a) + }); + var _$uQ = _$uB.prototype = _$uo(_$uX.prototype, { + 'constructor': _$uj(-0x1653 + -0xf1d + 0xd5 * 0x2d, _$uB), + 'message': _$uj(-0x5ca + -0x2065 + 0x2630, ''), + 'name': _$uj(-0x9b8 + -0x484 + 0xe3d, pW(0x187)) + }); + _$uM({ + 'global': !(-0x1 * -0xd81 + 0x18b0 + -0x2631), + 'constructor': !(-0x59e * -0x1 + -0x1b71 + 0x15d3), + 'arity': 0x2 + }, { + 'AggregateError': _$uB + }); + var _$uE, _$uc, _$uL, _$us = _$E, _$uf = _$w.WeakMap, + _$um = _$b.VAeph(_$us, _$uf) && /native code/.test(String(_$uf)), _$ug = _$w, _$uN = _$b0, _$uU = _$z1, + _$uV = _$br, _$uK = _$bL.exports, _$ul = _$ao, _$uR = _$aK, _$uH = pW(0x1bb), _$uC = _$ug.TypeError, + _$uF = _$ug.WeakMap; + if (_$um || _$uK.state) { + var _$ur = _$uK.state || (_$uK.state = new _$uF()); + _$ur.get = _$ur.get, + _$ur.has = _$ur.has, + _$ur.set = _$ur.set, + _$uE = function (_$pP, _$pa) { + if (_$ur.has(_$pP)) + throw new _$uC(_$uH); + return _$pa.facade = _$pP, + _$ur.set(_$pP, _$pa), + _$pa; + } + , + _$uc = function (_$pP) { + return _$ur.get(_$pP) || {}; + } + , + _$uL = function (_$pP) { + return _$ur.has(_$pP); + } + ; + } else { + var _$uq = _$ul(pW(0xe5)); + _$uR[_$uq] = !(0x9ad + 0x1ba9 + -0x2556), + _$uE = function (_$pP, _$pa) { + if (_$uV(_$pP, _$uq)) + throw new _$uC(_$uH); + return _$pa.facade = _$pP, + _$uU(_$pP, _$uq, _$pa), + _$pa; + } + , + _$uc = function (_$pP) { + return _$uV(_$pP, _$uq) ? _$pP[_$uq] : {}; + } + , + _$uL = function (_$pP) { + return _$uV(_$pP, _$uq); + } + ; + } + var _$ut, _$uk, _$ui, _$uS = { + 'set': _$uE, + 'get': _$uc, + 'has': _$uL, + 'enforce': function (_$pP) { + return _$b.OfLEN(_$uL, _$pP) ? _$uc(_$pP) : _$b.LSmUa(_$uE, _$pP, {}); + }, + 'getterFor': function (_$pP) { + var _$pa = { + 'GrtFY': function (_$py, _$pu) { + return _$py(_$pu); + }, + 'llQAC': function (_$py, _$pu) { + return _$py + _$pu; + } + }; + return function (_$py) { + var AL = a0a1b0cv, _$pu; + if (!_$pa.GrtFY(_$uN, _$py) || (_$pu = _$uc(_$py)).type !== _$pP) + throw new _$uC(_$pa.llQAC(AL(0x105), _$pP) + ' required'); + return _$pu; + } + ; + } + }, _$uY = _$L, _$ux = _$br, _$uW = Function.prototype, _$uD = _$uY && Object.getOwnPropertyDescriptor, + _$G0 = _$ux(_$uW, _$b.AppJd), _$G1 = { + 'EXISTS': _$G0, + 'PROPER': _$G0 && pW(0x184) === function () { + } + .name, + 'CONFIGURABLE': _$G0 && (!_$uY || _$uY && _$uD(_$uW, pW(0x210)).configurable) + }, _$G2 = _$z1, _$G3 = function (_$pP, _$pa, _$py, _$pu) { + return _$pu && _$pu.enumerable ? _$pP[_$pa] = _$py : _$G2(_$pP, _$pa, _$py), + _$pP; + }, _$G4 = _$P, _$G5 = _$E, _$G6 = _$b0, _$G7 = _$yd, _$G8 = _$ah, _$G9 = _$G3, _$Gb = _$v4(pW(0x8a)), + _$Gv = !(0x1e15 + 0x24f5 + -0x83 * 0x83); + [].keys && (pW(0x21f) in (_$ui = [].keys()) ? (_$uk = _$G8(_$G8(_$ui))) !== Object.prototype && (_$ut = _$uk) : _$Gv = !(-0x9c * 0x1 + 0x29a + -0x1fe)); + var _$Gz = !_$b.rAbOx(_$G6, _$ut) || _$b.bykyP(_$G4, function () { + var _$pP = {}; + return _$ut[_$Gb].call(_$pP) !== _$pP; + }); + _$G5((_$ut = _$Gz ? {} : _$G7(_$ut))[_$Gb]) || _$G9(_$ut, _$Gb, function () { + return this; + }); + var _$GP = { + 'IteratorPrototype': _$ut, + 'BUGGY_SAFARI_ITERATORS': _$Gv + } + , _$Ga = _$zs + , _$Gy = _$zX ? {}.toString : function () { + var As = pW; + return As(0x211) + _$Ga(this) + ']'; + } + , _$Gu = _$zX + , _$GG = _$vU.f + , _$GT = _$z1 + , _$GM = _$br + , _$Gn = _$Gy + , _$GJ = _$v4(pW(0x1ae)) + , _$Gw = function (_$pP, _$pa, _$py, _$pu) { + var Af = pW + , _$pG = _$py ? _$pP : _$pP && _$pP.prototype; + _$pG && (_$GM(_$pG, _$GJ) || _$GG(_$pG, _$GJ, { + 'configurable': !(-0x2055 + 0x35b * -0x1 + 0x23b0), + 'value': _$pa + }), + _$b.shzvC(_$pu, !_$Gu) && _$b.KKpTK(_$GT, _$pG, Af(0x15e), _$Gn)); + } + , _$Ge = _$GP.IteratorPrototype + , _$Go = _$yd + , _$GI = _$R + , _$Gj = _$Gw + , _$GO = _$yU + , _$Gp = function () { + return this; + } + , _$GA = _$zP + , _$Gd = _$m + , _$GZ = _$G1 + , _$GX = function (_$pP, _$pa, _$py, _$pu) { + var Am = pW + , _$pG = _$pa + Am(0x91); + return _$pP.prototype = _$Go(_$Ge, { + 'next': _$GI(+!_$pu, _$py) + }), + _$Gj(_$pP, _$pG, !(0x7 * -0x4d2 + 0x2135 * 0x1 + 0x8a), !(-0x23b1 + 0xd * -0x19a + -0x25 * -0x187)), + _$GO[_$pG] = _$Gp, + _$pP; + } + , _$Gh = _$ah + , _$GB = _$Gw + , _$GQ = _$G3 + , _$GE = _$yU + , _$Gc = _$GP + , _$GL = _$GZ.PROPER + , _$Gs = _$Gc.BUGGY_SAFARI_ITERATORS + , _$Gf = _$v4(pW(0x8a)) + , _$Gm = pW(0x148) + , _$Gg = pW(0x1b8) + , _$GN = pW(0x113) + , _$GU = function () { + return this; + } + , _$GV = function (_$pP, _$pa, _$py, _$pu, _$pG, _$pT, _$pM) { + var Ag = pW; + _$b.SeLtT(_$GX, _$py, _$pa, _$pu); + var _$pn, _$pJ, _$pw, _$pe = function (_$pd) { + if (_$b.MWbJs(_$pd, _$pG) && _$pp) + return _$pp; + if (!_$Gs && _$pd && _$pd in _$pj) + return _$pj[_$pd]; + switch (_$pd) { + case _$Gm: + case _$Gg: + case _$GN: + return function () { + return new _$py(this, _$pd); + } + ; + } + return function () { + return new _$py(this); + } + ; + }, _$po = _$pa + Ag(0x91), _$pI = !(0x2 * -0xbe1 + 0x1 * 0x1785 + 0x3e), _$pj = _$pP.prototype, + _$pO = _$pj[_$Gf] || _$pj[Ag(0xa3)] || _$pG && _$pj[_$pG], _$pp = !_$Gs && _$pO || _$pe(_$pG), + _$pA = Ag(0x214) === _$pa && _$pj.entries || _$pO; + if (_$pA && (_$pn = _$Gh(_$pA.call(new _$pP()))) !== Object.prototype && _$pn.next && (_$GB(_$pn, _$po, !(-0x13 * -0x17d + 0x1 * -0x1849 + -0x49 * 0xe), !(0x8 * 0x45 + 0x33e + 0x566 * -0x1)), + _$GE[_$po] = _$GU), + _$GL && _$b.dPMNX(_$pG, _$Gg) && _$pO && _$pO.name !== _$Gg && (_$pI = !(0x994 * 0x4 + 0xf6b + 0x395 * -0xf), + _$pp = function () { + return _$Gd(_$pO, this); + } + ), + _$pG) { + if (_$pJ = { + 'values': _$pe(_$Gg), + 'keys': _$pT ? _$pp : _$pe(_$Gm), + 'entries': _$pe(_$GN) + }, + _$pM) { + for (_$pw in _$pJ) + (_$Gs || _$pI || !(_$pw in _$pj)) && _$GQ(_$pj, _$pw, _$pJ[_$pw]); + } else + _$b.CXcZc(_$GA, { + 'target': _$pa, + 'proto': !(-0x6a5 * -0x1 + 0x2096 + -0x273b), + 'forced': _$Gs || _$pI + }, _$pJ); + } + return _$pM && _$pj[_$Gf] !== _$pp && _$GQ(_$pj, _$Gf, _$pp, { + 'name': _$pG + }), + _$GE[_$pa] = _$pp, + _$pJ; + } + , _$GK = function (_$pP, _$pa) { + return { + 'value': _$pP, + 'done': _$pa + }; + } + , _$Gl = _$W + , _$GR = function () { + } + , _$GH = _$yU + , _$GC = _$uS + , _$GF = (_$vU.f, + _$GV) + , _$Gr = _$GK + , _$Gq = pW(0x9b) + , _$Gt = _$GC.set + , _$Gk = _$GC.getterFor(_$Gq); + _$GF(Array, _$b.hKgVe, function (_$pP, _$pa) { + _$Gt(this, { + 'type': _$Gq, + 'target': _$b.zIdvw(_$Gl, _$pP), + 'index': 0x0, + 'kind': _$pa + }); + }, function () { + var AN = pW + , _$pP = _$b.OfLEN(_$Gk, this) + , _$pa = _$pP.target + , _$py = _$pP.index++; + if (!_$pa || _$py >= _$pa.length) + return _$pP.target = void (-0x10f3 + -0x1 * -0x1eab + -0xdb8), + _$b.LSmUa(_$Gr, void (0x16f1 + 0x1d9b + -0x348c), !(-0x1806 + 0x4 * 0x19d + 0x1192)); + switch (_$pP.kind) { + case AN(0x148): + return _$Gr(_$py, !(0x1 * -0x153d + -0xdae * 0x1 + 0x1176 * 0x2)); + case AN(0x1b8): + return _$Gr(_$pa[_$py], !(-0x1 * -0x40b + -0x9f5 + 0x5eb)); + } + return _$Gr([_$py, _$pa[_$py]], !(-0x376 * -0x4 + 0x17 * 0x125 + -0x282a)); + }, pW(0x1b8)), + _$GH.Arguments = _$GH.Array, + (_$GR(), + _$GR(), + _$GR()); + var _$Gi, _$GS, _$GY, _$Gx, _$GW = pW(0x14b) === _$Z(_$w.process), _$GD = _$vU, _$T0 = function (_$pP, _$pa, _$py) { + return _$GD.f(_$pP, _$pa, _$py); + }, _$T1 = _$b6, _$T2 = _$T0, _$T3 = _$L, _$T4 = _$v4(_$b.LdPBz), _$T5 = _$n, _$T6 = TypeError, _$T7 = _$zS, + _$T8 = _$bj, _$T9 = TypeError, _$Tb = _$vH, _$Tv = function (_$pP) { + var AU = pW; + if (_$T7(_$pP)) + return _$pP; + throw new _$T9(_$b.jAgZv(_$T8(_$pP), AU(0x1dd))); + }, _$Tz = _$t, _$TP = _$v4(pW(0x209)), _$Ta = function (_$pP, _$pa) { + var _$py, _$pu = _$b.GoUyk(_$Tb, _$pP).constructor; + return void (-0x125d + 0x11b * 0x15 + -0x4da) === _$pu || _$Tz(_$py = _$b.wjkBo(_$Tb, _$pu)[_$TP]) ? _$pa : _$Tv(_$py); + }, _$Ty = TypeError, _$Tu = /(?:ipad|iphone|ipod).*applewebkit/i.test(_$b7), _$TG = _$w, _$TT = _$O, _$TM = _$vN, + _$Tn = _$E, _$TJ = _$br, _$Tw = _$P, _$Te = _$yu, _$To = _$Ph, _$TI = _$vM, _$Tj = function (_$pP, _$pa) { + var AV = pW; + if (_$pP < _$pa) + throw new _$Ty(AV(0x87)); + return _$pP; + }, _$TO = _$Tu, _$Tp = _$GW, _$TA = _$TG.setImmediate, _$Td = _$TG.clearImmediate, _$TZ = _$TG.process, + _$TX = _$TG.Dispatch, _$Th = _$TG.Function, _$TB = _$TG.MessageChannel, _$TQ = _$TG.String, + _$TE = 0x47 * -0x6d + 0x2bf + 0x1b7c, _$Tc = {}, _$TL = pW(0xcd); + _$b.BblQM(_$Tw, function () { + _$Gi = _$TG.location; + }); + var _$Ts = function (_$pP) { + if (_$b.fPtnJ(_$TJ, _$Tc, _$pP)) { + var _$pa = _$Tc[_$pP]; + delete _$Tc[_$pP], + _$pa(); + } + } + , _$Tf = function (_$pP) { + return function () { + _$Ts(_$pP); + } + ; + } + , _$Tm = function (_$pP) { + _$Ts(_$pP.data); + } + , _$Tg = function (_$pP) { + _$TG.postMessage(_$TQ(_$pP), _$b.FIBsh(_$Gi.protocol + '//', _$Gi.host)); + }; + _$TA && _$Td || (_$TA = function (_$pP) { + _$Tj(arguments.length, 0x1239 * 0x1 + 0x24bb + -0x36f3); + var _$pa = _$Tn(_$pP) ? _$pP : _$Th(_$pP) + , _$py = _$To(arguments, -0x1 * -0x239b + -0x1c * -0x39 + -0x29d6); + return _$Tc[++_$TE] = function () { + _$TT(_$pa, void (-0x29c * 0x3 + -0x2fa + -0xace * -0x1), _$py); + } + , + _$b.NfIRp(_$GS, _$TE), + _$TE; + } + , + _$Td = function (_$pP) { + delete _$Tc[_$pP]; + } + , + _$Tp ? _$GS = function (_$pP) { + _$TZ.nextTick(_$Tf(_$pP)); + } + : _$TX && _$TX.now ? _$GS = function (_$pP) { + _$TX.now(_$Tf(_$pP)); + } + : _$TB && !_$TO ? (_$Gx = (_$GY = new _$TB()).port2, + _$GY.port1.onmessage = _$Tm, + _$GS = _$TM(_$Gx.postMessage, _$Gx)) : _$TG.addEventListener && _$b.wDqXm(_$Tn, _$TG.postMessage) && !_$TG.importScripts && _$Gi && pW(0xef) !== _$Gi.protocol && !_$b.HJbmi(_$Tw, _$Tg) ? (_$GS = _$Tg, + _$TG.addEventListener(pW(0x17e), _$Tm, !(0x1f96 + -0x1 * -0x1eb2 + -0x3e47))) : _$GS = _$TL in _$TI(pW(0x1ec)) ? function (_$pP) { + var AK = pW; + _$Te.appendChild(_$TI(AK(0x1ec)))[_$TL] = function () { + _$Te.removeChild(this), + _$Ts(_$pP); + } + ; + } + : function (_$pP) { + setTimeout(_$Tf(_$pP), -0xef * -0x1c + -0x1df * 0x10 + 0xf3 * 0x4); + } + ); + var _$TN = { + 'set': _$TA, + 'clear': _$Td + } + , _$TU = _$w + , _$TV = _$L + , _$TK = Object.getOwnPropertyDescriptor + , _$Tl = function () { + this.head = null, + this.tail = null; + }; + _$Tl.prototype = { + 'add': function (_$pP) { + var _$pa = { + 'item': _$pP, + 'next': null + } + , _$py = this.tail; + _$py ? _$py.next = _$pa : this.head = _$pa, + this.tail = _$pa; + }, + 'get': function () { + var _$pP = this.head; + if (_$pP) + return null === (this.head = _$pP.next) && (this.tail = null), + _$pP.item; + } + }; + var _$TR, _$TH, _$TC, _$TF, _$Tr, _$Tq = _$Tl, + _$Tt = /ipad|iphone|ipod/i.test(_$b7) && 'undefined' != typeof Pebble, _$Tk = /web0s(?!.*chrome)/i.test(_$b7), + _$Ti = _$w, _$TS = function (_$pP) { + if (!_$TV) + return _$TU[_$pP]; + var _$pa = _$TK(_$TU, _$pP); + return _$pa && _$pa.value; + }, _$TY = _$vN, _$Tx = _$TN.set, _$TW = _$Tq, _$TD = _$Tu, _$M0 = _$Tt, _$M1 = _$Tk, _$M2 = _$GW, + _$M3 = _$Ti.MutationObserver || _$Ti.WebKitMutationObserver, _$M4 = _$Ti.document, _$M5 = _$Ti.process, + _$M6 = _$Ti.Promise, _$M7 = _$TS(_$b.XOibR); + if (!_$M7) { + var _$M8 = new _$TW() + , _$M9 = function () { + var _$pP, _$pa; + for (_$M2 && (_$pP = _$M5.domain) && _$pP.exit(); _$pa = _$M8.get();) + try { + _$pa(); + } catch (_$py) { + throw _$M8.head && _$TR(), + _$py; + } + _$pP && _$pP.enter(); + }; + _$TD || _$M2 || _$M1 || !_$M3 || !_$M4 ? _$b.iGPta(!_$M0, _$M6) && _$M6.resolve ? ((_$TF = _$M6.resolve(void (0x40f * 0x7 + 0xe9 + 0x342 * -0x9))).constructor = _$M6, + _$Tr = _$TY(_$TF.then, _$TF), + _$TR = function () { + _$Tr(_$M9); + } + ) : _$M2 ? _$TR = function () { + _$M5.nextTick(_$M9); + } + : (_$Tx = _$b.fDxnv(_$TY, _$Tx, _$Ti), + _$TR = function () { + _$Tx(_$M9); + } + ) : (_$TH = !(0x5ae * 0x3 + 0x2260 + -0x336a), + _$TC = _$M4.createTextNode(''), + new _$M3(_$M9).observe(_$TC, { + 'characterData': !(0x1300 + 0x18df + -0x2bdf) + }), + _$TR = function () { + _$TC.data = _$TH = !_$TH; + } + ), + _$M7 = function (_$pP) { + _$M8.head || _$b.cwHLP(_$TR), + _$M8.add(_$pP); + } + ; + } + var _$Mb = _$M7 + , _$Mv = function (_$pP) { + try { + return { + 'error': !(0x32f * -0x2 + 0x128 + 0x59 * 0xf), + 'value': _$pP() + }; + } catch (_$pa) { + return { + 'error': !(0x21ca + 0xe * 0x28e + -0x22c7 * 0x2), + 'value': _$pa + }; + } + } + , _$Mz = _$w.Promise + , _$MP = pW(0x18b) == typeof Deno && Deno && pW(0x18b) == typeof Deno.version + , _$Ma = !_$MP && !_$GW && pW(0x18b) == typeof window && _$b.Oengn == typeof document + , _$My = _$w + , _$Mu = _$Mz + , _$MG = _$E + , _$MT = _$vs + , _$MM = _$zU + , _$Mn = _$v4 + , _$MJ = _$Ma + , _$Mw = _$MP + , _$Me = _$ba + , _$Mo = _$Mu && _$Mu.prototype + , _$MI = _$Mn(_$b.LdPBz) + , _$Mj = !(-0x22b5 + -0xc72 + 0x2f28) + , _$MO = _$MG(_$My.PromiseRejectionEvent) + , _$Mp = _$MT(_$b.TpDED, function () { + var Al = pW + , _$pP = Al(0xf2).split('|') + , _$pa = 0x605 * 0x1 + 0x16f7 + -0x1cfc; + while (!![]) { + switch (_$pP[_$pa++]) { + case '0': + var _$py = _$MM(_$Mu) + , _$pu = _$b.azeGQ(_$py, String(_$Mu)); + continue; + case '1': + if (!_$Me || _$Me < 0x611 + 0x301 * 0x5 + 0x14e3 * -0x1 || !/native code/.test(_$py)) { + var _$pG = new _$Mu(function (_$pM) { + _$pM(0x1 * 0x21f + 0x1577 + -0x1795 * 0x1); + } + ) + , _$pT = function (_$pM) { + _$pM(function () { + }, function () { + }); + }; + if ((_$pG.constructor = {})[_$MI] = _$pT, + !(_$Mj = _$pG.then(function () { + }) instanceof _$pT)) + return !(0xb * 0x1 + 0x1aa1 + 0x1 * -0x1aac); + } + continue; + case '2': + if (!_$Mo.catch || !_$Mo.finally) + return !(-0x9c2 * 0x1 + 0x1b15 * 0x1 + -0x1153); + continue; + case '3': + if (!_$pu && -0x183 + 0x226 + -0x61 === _$Me) + return !(-0xf1d + -0x1 * 0xdaf + 0x4 * 0x733); + continue; + case '4': + return !_$pu && _$b.kyqLA(_$MJ, _$Mw) && !_$MO; + } + break; + } + }) + , _$MA = { + 'CONSTRUCTOR': _$Mp, + 'REJECTION_EVENT': _$MO, + 'SUBCLASSING': _$Mj + } + , _$Md = {} + , _$MZ = _$bd + , _$MX = TypeError + , _$Mh = function (_$pP) { + var _$pa, _$py; + this.promise = new _$pP(function (_$pu, _$pG) { + var AR = a0a1b0cv; + if (_$b.azeGQ(void (0xa6b + 0x826 * -0x2 + 0x23 * 0x2b), _$pa) || _$b.Ztrpf(void (0x1bac + 0xda4 + -0x2950), _$py)) + throw new _$MX(AR(0xb6)); + _$pa = _$pu, + _$py = _$pG; + } + ), + this.resolve = _$MZ(_$pa), + this.reject = _$b.NKrwY(_$MZ, _$py); + }; + _$Md.f = function (_$pP) { + return new _$Mh(_$pP); + } + ; + var _$MB, _$MQ, _$ME = _$zP, _$Mc = _$GW, _$ML = _$w, _$Ms = _$m, _$Mf = _$G3, _$Mm = _$Gw, _$Mg = function (_$pP) { + var _$pa = _$b.eYHUP(_$T1, _$pP); + _$b.shzvC(_$T3, _$pa) && !_$pa[_$T4] && _$b.VkPQX(_$T2, _$pa, _$T4, { + 'configurable': !(0x1319 * -0x1 + -0x876 + 0x11 * 0x19f), + 'get': function () { + return this; + } + }); + }, _$MN = _$bd, _$MU = _$E, _$MV = _$b0, _$MK = function (_$pP, _$pa) { + var AH = pW; + if (_$b.wXKoR(_$T5, _$pa, _$pP)) + return _$pP; + throw new _$T6(AH(0xc7)); + }, _$Ml = _$Ta, _$MR = _$TN.set, _$MH = _$Mb, _$MC = function (_$pP, _$pa) { + try { + 0x1073 * 0x2 + -0x156c + -0xb79 === arguments.length ? console.error(_$pP) : console.error(_$pP, _$pa); + } catch (_$py) { + } + }, _$MF = _$Mv, _$Mr = _$Tq, _$Mq = _$uS, _$Mt = _$Mz, _$Mk = _$Md, _$Mi = pW(0x1f3), _$MS = _$MA.CONSTRUCTOR, + _$MY = _$MA.REJECTION_EVENT, _$Mx = _$Mq.getterFor(_$Mi), _$MW = _$Mq.set, _$MD = _$Mt && _$Mt.prototype, + _$n0 = _$Mt, _$n1 = _$MD, _$n2 = _$ML.TypeError, _$n3 = _$ML.document, _$n4 = _$ML.process, _$n5 = _$Mk.f, + _$n6 = _$n5, _$n7 = !!(_$n3 && _$n3.createEvent && _$ML.dispatchEvent), _$n8 = pW(0x18a), + _$n9 = function (_$pP) { + var _$pa; + return !(!_$b.ndqrf(_$MV, _$pP) || !_$MU(_$pa = _$pP.then)) && _$pa; + }, _$nb = function (_$pP, _$pa) { + var AC = pW, _$py, _$pu, _$pG, _$pT = _$pa.value, _$pM = 0x6d3 + -0x1c * -0xe + -0x85a === _$pa.state, + _$pn = _$pM ? _$pP.ok : _$pP.fail, _$pJ = _$pP.resolve, _$pw = _$pP.reject, _$pe = _$pP.domain; + try { + _$pn ? (_$pM || (_$b.ELBfJ(0x66e + -0x2135 + 0x1ac9, _$pa.rejection) && _$b.cKDOc(_$ny, _$pa), + _$pa.rejection = 0x2244 + 0x4f3 + -0x2736), + _$b.pQgmB(!(0x1b22 + -0x1c2 + -0x1960), _$pn) ? _$py = _$pT : (_$pe && _$pe.enter(), + _$py = _$pn(_$pT), + _$pe && (_$pe.exit(), + _$pG = !(0x2109 * -0x1 + 0x28 * 0x4 + -0x2069 * -0x1))), + _$py === _$pP.promise ? _$pw(new _$n2(AC(0x102))) : (_$pu = _$n9(_$py)) ? _$Ms(_$pu, _$py, _$pJ, _$pw) : _$pJ(_$py)) : _$pw(_$pT); + } catch (_$po) { + _$pe && !_$pG && _$pe.exit(), + _$b.eGJvR(_$pw, _$po); + } + }, _$nv = function (_$pP, _$pa) { + _$pP.notified || (_$pP.notified = !(-0x913 * -0x1 + 0x182e + -0x2141), + _$MH(function () { + for (var _$py, _$pu = _$pP.reactions; _$py = _$pu.get();) + _$nb(_$py, _$pP); + _$pP.notified = !(-0x653 + -0x24e * 0xb + 0x1fae), + _$pa && !_$pP.rejection && _$nP(_$pP); + })); + }, _$nz = function (_$pP, _$pa, _$py) { + var AF = pW, _$pu, _$pG; + _$n7 ? ((_$pu = _$n3.createEvent(AF(0x174))).promise = _$pa, + _$pu.reason = _$py, + _$pu.initEvent(_$pP, !(-0x2539 + -0x9d + 0x25d7), !(0x4d6 * -0x5 + -0xba3 + 0xad * 0x35)), + _$ML.dispatchEvent(_$pu)) : _$pu = { + 'promise': _$pa, + 'reason': _$py + }, + !_$MY && (_$pG = _$ML['on' + _$pP]) ? _$pG(_$pu) : _$pP === _$n8 && _$MC(AF(0x20f), _$py); + }, _$nP = function (_$pP) { + _$b.HTxpn(_$Ms, _$MR, _$ML, function () { + var _$pa, _$py = _$pP.facade, _$pu = _$pP.value; + if (_$na(_$pP) && (_$pa = _$MF(function () { + var Ar = a0a1b0cv; + _$Mc ? _$n4.emit(Ar(0x20e), _$pu, _$py) : _$nz(_$n8, _$py, _$pu); + }), + _$pP.rejection = _$Mc || _$na(_$pP) ? 0x968 + -0x90d + -0x59 : 0x3f7 + 0xab * 0x16 + -0x12a8, + _$pa.error)) + throw _$pa.value; + }); + }, _$na = function (_$pP) { + return -0x783 + 0x247d * 0x1 + 0x1 * -0x1cf9 !== _$pP.rejection && !_$pP.parent; + }, _$ny = function (_$pP) { + _$Ms(_$MR, _$ML, function () { + var Aq = a0a1b0cv + , _$pa = _$pP.facade; + _$Mc ? _$n4.emit(Aq(0xda), _$pa) : _$nz(Aq(0xdf), _$pa, _$pP.value); + }); + }, _$nu = function (_$pP, _$pa, _$py) { + return function (_$pu) { + _$pP(_$pa, _$pu, _$py); + } + ; + }, _$nG = function (_$pP, _$pa, _$py) { + _$pP.done || (_$pP.done = !(0xf80 + -0x3 * 0x5c1 + 0x29 * 0xb), + _$py && (_$pP = _$py), + _$pP.value = _$pa, + _$pP.state = -0x1ef2 + -0x4db * -0x3 + -0x5 * -0x347, + _$nv(_$pP, !(0x1c08 + -0x4 * -0x1e5 + 0x2 * -0x11ce))); + }, _$nT = function (_$pP, _$pa, _$py) { + var At = pW; + if (!_$pP.done) { + _$pP.done = !(0x1a16 + -0x7 * 0x3d7 + -0x7 * -0x1d), + _$py && (_$pP = _$py); + try { + if (_$pP.facade === _$pa) + throw new _$n2(At(0x1e5)); + var _$pu = _$n9(_$pa); + _$pu ? _$MH(function () { + var _$pG = { + 'done': !(-0x12 * -0x13a + -0x7c7 + 0x131 * -0xc) + }; + try { + _$Ms(_$pu, _$pa, _$nu(_$nT, _$pG, _$pP), _$b.KKpTK(_$nu, _$nG, _$pG, _$pP)); + } catch (_$pT) { + _$b.TnJtt(_$nG, _$pG, _$pT, _$pP); + } + }) : (_$pP.value = _$pa, + _$pP.state = -0x1c30 + 0x9 * -0x140 + 0x2771, + _$nv(_$pP, !(0x6e * -0x14 + -0x751 + 0x61 * 0x2a))); + } catch (_$pG) { + _$nG({ + 'done': !(0x11eb + -0x4 * 0x8d + 0xfb6 * -0x1) + }, _$pG, _$pP); + } + } + }; + _$MS && (_$n1 = (_$n0 = function (_$pP) { + _$MK(this, _$n1), + _$b.pdfOA(_$MN, _$pP), + _$Ms(_$MB, this); + var _$pa = _$Mx(this); + try { + _$pP(_$nu(_$nT, _$pa), _$nu(_$nG, _$pa)); + } catch (_$py) { + _$nG(_$pa, _$py); + } + } + ).prototype, + (_$MB = function (_$pP) { + _$b.jILBU(_$MW, this, { + 'type': _$Mi, + 'done': !(-0xec8 + -0x547 * 0x1 + 0x1410), + 'notified': !(-0x647 * -0x1 + -0x1996 + -0x135 * -0x10), + 'parent': !(0x1786 + 0xab8 + -0x223d), + 'reactions': new _$Mr(), + 'rejection': !(-0x108d + -0x5c5 * -0x4 + 0x14e * -0x5), + 'state': 0x0, + 'value': void (-0x2687 * 0x1 + -0x31b + 0x29a2) + }); + } + ).prototype = _$Mf(_$n1, pW(0x108), function (_$pP, _$pa) { + var _$py = { + 'COYam': function (_$pT, _$pM, _$pn) { + return _$pT(_$pM, _$pn); + } + } + , _$pu = _$Mx(this) + , _$pG = _$n5(_$b.GIvUI(_$Ml, this, _$n0)); + return _$pu.parent = !(0x1d2d + -0xc3e + -0x11 * 0xff), + _$pG.ok = !_$MU(_$pP) || _$pP, + _$pG.fail = _$MU(_$pa) && _$pa, + _$pG.domain = _$Mc ? _$n4.domain : void (0x19ad + 0x5 * 0x52f + 0xd * -0x3f8), + 0x1 * 0x213e + 0xca6 + 0x164 * -0x21 === _$pu.state ? _$pu.reactions.add(_$pG) : _$MH(function () { + _$py.COYam(_$nb, _$pG, _$pu); + }), + _$pG.promise; + }), + _$MQ = function () { + var _$pP = new _$MB() + , _$pa = _$Mx(_$pP); + this.promise = _$pP, + this.resolve = _$nu(_$nT, _$pa), + this.reject = _$nu(_$nG, _$pa); + } + , + _$Mk.f = _$n5 = function (_$pP) { + return _$pP === _$n0 || _$b.fNGJv(undefined, _$pP) ? new _$MQ(_$pP) : _$n6(_$pP); + } + ), + _$ME({ + 'global': !(-0x168c + 0x807 + 0x3 * 0x4d7), + 'constructor': !(0x1 * -0x4c2 + 0xc69 + -0x7a7), + 'wrap': !(-0x137 * -0x7 + 0x1e5a + -0x26db), + 'forced': _$MS + }, { + 'Promise': _$n0 + }), + _$Mm(_$n0, _$Mi, !(-0x1b8 * -0x2 + -0x2137 + -0x8 * -0x3b9), !(0x344 * -0x4 + -0x1 * 0x25f3 + 0x3303)), + _$Mg(_$Mi); + var _$nM = _$b.ttQVw(_$v4, pW(0x8a)) + , _$nn = !(0x23eb + 0xa9 * 0x37 + 0x1 * -0x4839); + try { + var _$nJ = 0x8ed + -0x399 * 0x1 + 0x3e * -0x16 + , _$nw = { + 'next': function () { + return { + 'done': !!_$nJ++ + }; + }, + 'return': function () { + _$nn = !(0x26d8 + -0x244a + -0x28e); + } + }; + _$nw[_$nM] = function () { + return this; + } + , + Array.from(_$nw, function () { + throw -0xa9f + -0x1 * 0x23ec + 0x2e8d; + }); + } catch (_$pP) { + } + var _$ne = _$Mz + , _$no = function (_$pa, _$py) { + try { + if (_$b.shzvC(!_$py, !_$nn)) + return !(0xae0 + -0x1eeb * -0x1 + -0x29ca); + } catch (_$pT) { + return !(0xa25 + 0x183 + 0x1 * -0xba7); + } + var _$pu = !(-0x710 + 0x92e + -0x21d); + try { + var _$pG = {}; + _$pG[_$nM] = function () { + return { + 'next': function () { + return { + 'done': _$pu = !(0x1d35 + 0x2 * -0x4af + -0x13d7) + }; + } + }; + } + , + _$pa(_$pG); + } catch (_$pM) { + } + return _$pu; + } + , _$nI = _$MA.CONSTRUCTOR || !_$no(function (_$pa) { + _$ne.all(_$pa).then(void (-0x1c7c + -0xc7d + 0x28f9), function () { + }); + }) + , _$nj = _$m + , _$nO = _$bd + , _$np = _$Md + , _$nA = _$Mv + , _$nd = _$ua; + _$zP({ + 'target': _$b.TpDED, + 'stat': !(0x37 * 0x63 + 0x1ac4 + -0x3009), + 'forced': _$nI + }, { + 'all': function (_$pa) { + var _$py = this + , _$pu = _$np.f(_$py) + , _$pG = _$pu.resolve + , _$pT = _$pu.reject + , _$pM = _$nA(function () { + var _$pn = _$nO(_$py.resolve) + , _$pJ = [] + , _$pw = -0xa * -0x4c + 0x460 + -0x758 + , _$pe = 0x1ce6 + -0xbc9 * -0x1 + 0x2 * -0x1457; + _$nd(_$pa, function (_$po) { + var _$pI = _$pw++ + , _$pj = !(-0x5 * 0x454 + -0x1265 + 0x280a); + _$pe++, + _$nj(_$pn, _$py, _$po).then(function (_$pO) { + _$pj || (_$pj = !(0x2 * 0xdd9 + 0x1d4d + 0x1 * -0x38ff), + _$pJ[_$pI] = _$pO, + --_$pe || _$pG(_$pJ)); + }, _$pT); + }), + --_$pe || _$b.wjcFt(_$pG, _$pJ); + }); + return _$pM.error && _$pT(_$pM.value), + _$pu.promise; + } + }); + var _$nZ = _$zP + , _$nX = _$MA.CONSTRUCTOR; + _$Mz && _$Mz.prototype, + _$nZ({ + 'target': pW(0x1f3), + 'proto': !(-0xeb3 + -0x225 + 0x10d8), + 'forced': _$nX, + 'real': !(-0x2141 + 0x1e5a + 0x2e7) + }, { + 'catch': function (_$pa) { + return this.then(void (0x9 * 0x250 + -0x121 + -0x13af), _$pa); + } + }); + var _$nh = _$m + , _$nB = _$bd + , _$nQ = _$Md + , _$nE = _$Mv + , _$nc = _$ua; + _$zP({ + 'target': _$b.TpDED, + 'stat': !(0x16c9 + 0xa55 + -0x211e), + 'forced': _$nI + }, { + 'race': function (_$pa) { + var _$py = this + , _$pu = _$nQ.f(_$py) + , _$pG = _$pu.reject + , _$pT = _$nE(function () { + var _$pM = _$nB(_$py.resolve); + _$b.GIvUI(_$nc, _$pa, function (_$pn) { + _$nh(_$pM, _$py, _$pn).then(_$pu.resolve, _$pG); + }); + }); + return _$pT.error && _$pG(_$pT.value), + _$pu.promise; + } + }); + var _$nL = _$Md; + _$zP({ + 'target': pW(0x1f3), + 'stat': !(0x176 + 0x1 * -0x1037 + 0xec1), + 'forced': _$MA.CONSTRUCTOR + }, { + 'reject': function (_$pa) { + var _$py = _$nL.f(this); + return (0x1a3e + -0x21f9 + 0x7bb, + _$py.reject)(_$pa), + _$py.promise; + } + }); + var _$ns = _$vH + , _$nf = _$b0 + , _$nm = _$Md + , _$ng = function (_$pa, _$py) { + if (_$ns(_$pa), + _$b.WcfiY(_$nf, _$py) && _$py.constructor === _$pa) + return _$py; + var _$pu = _$nm.f(_$pa); + return (-0x35 * -0x13 + 0x1325 + 0x1714 * -0x1, + _$pu.resolve)(_$py), + _$pu.promise; + } + , _$nN = _$zP + , _$nU = _$Mz + , _$nV = _$MA.CONSTRUCTOR + , _$nK = _$ng + , _$nl = _$b6(pW(0x1f3)) + , _$nR = !_$nV; + _$nN({ + 'target': pW(0x1f3), + 'stat': !(-0x565 * -0x7 + 0x2a1 * -0x5 + -0x189e), + 'forced': !![] + }, { + 'resolve': function (_$pa) { + return _$nK(_$nR && this === _$nl ? _$nU : this, _$pa); + } + }); + var _$nH = _$m + , _$nC = _$bd + , _$nF = _$Md + , _$nr = _$Mv + , _$nq = _$ua; + _$zP({ + 'target': pW(0x1f3), + 'stat': !(-0x763 * 0x3 + -0x16 * 0x61 + 0x1e7f), + 'forced': _$nI + }, { + 'allSettled': function (_$pa) { + var _$py = this + , _$pu = _$nF.f(_$py) + , _$pG = _$pu.resolve + , _$pT = _$pu.reject + , _$pM = _$nr(function () { + var _$pn = _$nC(_$py.resolve) + , _$pJ = [] + , _$pw = -0xd31 + -0x2135 * 0x1 + 0x2e66 + , _$pe = 0x863 + -0x2479 * -0x1 + 0x2cdb * -0x1; + _$nq(_$pa, function (_$po) { + var _$pI = _$pw++ + , _$pj = !(0x200d + 0x1a54 + -0x20 * 0x1d3); + _$pe++, + _$nH(_$pn, _$py, _$po).then(function (_$pO) { + var Ak = a0a1b0cv; + _$pj || (_$pj = !(0xbc * 0x14 + -0x9f3 * 0x3 + -0xf29 * -0x1), + _$pJ[_$pI] = { + 'status': Ak(0x1c1), + 'value': _$pO + }, + --_$pe || _$pG(_$pJ)); + }, function (_$pO) { + var Ai = a0a1b0cv; + _$pj || (_$pj = !(0x1950 + -0x1 * -0x593 + -0x1ee3), + _$pJ[_$pI] = { + 'status': Ai(0xe0), + 'reason': _$pO + }, + --_$pe || _$pG(_$pJ)); + }); + }), + --_$pe || _$pG(_$pJ); + }); + return _$pM.error && _$b.rAbOx(_$pT, _$pM.value), + _$pu.promise; + } + }); + var _$nt = _$m + , _$nk = _$bd + , _$ni = _$b6 + , _$nS = _$Md + , _$nY = _$Mv + , _$nx = _$ua + , _$nW = pW(0x182); + _$b.hbGDi(_$zP, { + 'target': _$b.TpDED, + 'stat': !(0x5f5 + -0x1bd2 + 0x1d * 0xc1), + 'forced': _$nI + }, { + 'any': function (_$pa) { + var AS = pW + , _$py = { + 'SfGAf': function (_$pw, _$pe) { + return _$pw || _$pe; + }, + 'BOlRK': function (_$pw, _$pe) { + return _$b.wjcFt(_$pw, _$pe); + } + } + , _$pu = this + , _$pG = _$b.vOdBF(_$ni, AS(0x187)) + , _$pT = _$nS.f(_$pu) + , _$pM = _$pT.resolve + , _$pn = _$pT.reject + , _$pJ = _$nY(function () { + var _$pw = _$nk(_$pu.resolve) + , _$pe = [] + , _$po = -0x39 * 0xae + 0x21cf * -0x1 + -0x1 * -0x488d + , _$pI = 0xfd3 * -0x1 + -0x254b + -0x11b5 * -0x3 + , _$pj = !(-0x103 * 0x17 + -0x12b * 0x2 + -0x95 * -0x2c); + _$nx(_$pa, function (_$pO) { + var _$pp = { + 'PkURG': function (_$pZ, _$pX) { + return _$py.SfGAf(_$pZ, _$pX); + } + } + , _$pA = _$po++ + , _$pd = !(0x8 * 0x3cb + 0x1 * 0x81b + -0x2672); + _$pI++, + _$nt(_$pw, _$pu, _$pO).then(function (_$pZ) { + _$pp.PkURG(_$pd, _$pj) || (_$pj = !(0x2168 * -0x1 + 0x2450 + -0x2e8), + _$pM(_$pZ)); + }, function (_$pZ) { + _$pd || _$pj || (_$pd = !(-0x20c7 + -0x622 * -0x5 + -0x1 * -0x21d), + _$pe[_$pA] = _$pZ, + --_$pI || _$pn(new _$pG(_$pe, _$nW))); + }); + }), + --_$pI || _$py.BOlRK(_$pn, new _$pG(_$pe, _$nW)); + }); + return _$pJ.error && _$pn(_$pJ.value), + _$pT.promise; + } + }); + var _$nD = _$Md; + _$zP({ + 'target': pW(0x1f3), + 'stat': !(0x224 * -0x1 + 0x7eb * -0x3 + 0x7 * 0x3b3) + }, { + 'withResolvers': function () { + var _$pa = _$nD.f(this); + return { + 'promise': _$pa.promise, + 'resolve': _$pa.resolve, + 'reject': _$pa.reject + }; + } + }); + var _$J0 = _$zP + , _$J1 = _$Mz + , _$J2 = _$P + , _$J3 = _$b6 + , _$J4 = _$E + , _$J5 = _$Ta + , _$J6 = _$ng + , _$J7 = _$J1 && _$J1.prototype; + _$J0({ + 'target': pW(0x1f3), + 'proto': !(-0x9e6 + 0x1d46 + -0xa * 0x1f0), + 'real': !(0x216f + 0x2b0 * -0x6 + -0x114f), + 'forced': !!_$J1 && _$J2(function () { + _$J7.finally.call({ + 'then': function () { + } + }, function () { + }); + }) + }, { + 'finally': function (_$pa) { + var AY = pW + , _$py = { + 'CJeVm': function (_$pT, _$pM, _$pn) { + return _$pT(_$pM, _$pn); + }, + 'PVPwf': function (_$pT) { + return _$pT(); + } + } + , _$pu = _$J5(this, _$J3(AY(0x1f3))) + , _$pG = _$b.IHkFn(_$J4, _$pa); + return this.then(_$pG ? function (_$pT) { + return _$J6(_$pu, _$pa()).then(function () { + return _$pT; + }); + } + : _$pa, _$pG ? function (_$pT) { + return _$py.CJeVm(_$J6, _$pu, _$py.PVPwf(_$pa)).then(function () { + throw _$pT; + }); + } + : _$pa); + } + }); + var _$J8 = _$M + , _$J9 = _$zM + , _$Jb = _$uG + , _$Jv = _$S + , _$Jz = _$J8(''.charAt) + , _$JP = _$J8(''.charCodeAt) + , _$Ja = _$J8(''.slice) + , _$Jy = function (_$pa) { + var _$py = { + 'FFvKo': function (_$pu, _$pG) { + return _$pu(_$pG); + }, + 'dQNGm': function (_$pu, _$pG) { + return _$pu < _$pG; + }, + 'mQlKd': function (_$pu, _$pG) { + return _$pu + _$pG; + } + }; + return function (_$pu, _$pG) { + var _$pT, _$pM, _$pn = _$py.FFvKo(_$Jb, _$py.FFvKo(_$Jv, _$pu)), _$pJ = _$J9(_$pG), _$pw = _$pn.length; + return _$pJ < -0x83 * -0xb + -0x416 * -0x4 + -0x15f9 || _$pJ >= _$pw ? _$pa ? '' : void (0x1ab5 * 0x1 + -0x9a5 * -0x2 + -0x2dff) : _$py.dQNGm(_$pT = _$JP(_$pn, _$pJ), 0xf2bc + 0x5 * -0x18e5 + 0x61bd) || _$pT > 0x17501 + -0x11f82 + -0x21a * -0x40 || _$pJ + (-0x7d8 + 0x1bd * -0x5 + 0x108a) === _$pw || (_$pM = _$JP(_$pn, _$py.mQlKd(_$pJ, 0x1f * -0xf9 + 0x88 * -0x25 + 0x31d0))) < -0xb270 + -0xad30 + 0x23ba0 || _$pM > -0x16b * 0x61 + -0x10f3c * -0x1 + 0x5a4e ? _$pa ? _$Jz(_$pn, _$pJ) : _$pT : _$pa ? _$Ja(_$pn, _$pJ, _$pJ + (0x1f09 + -0x4d2 * -0x1 + 0x13 * -0x1e3)) : _$pM - (-0x4e68 + 0xc7b1 + 0x62b7) + (_$pT - (-0xfe17 + -0x2 * 0xbcf1 + 0x34ff9 * 0x1) << 0x1d * 0xf2 + -0x61 * -0x43 + 0x40f * -0xd) + (0x87b1 * -0x1 + -0x10af * -0x18 + -0x8b7); + } + ; + } + , _$Ju = { + 'codeAt': _$Jy(!(-0x18c6 + -0x9db + 0x22a2)), + 'charAt': _$b.tYHVt(_$Jy, !(-0x12ff * -0x2 + 0x1 * -0x1e97 + -0x767)) + }.charAt + , _$JG = _$uG + , _$JT = _$uS + , _$JM = _$GV + , _$Jn = _$GK + , _$JJ = pW(0x1c4) + , _$Jw = _$JT.set + , _$Je = _$JT.getterFor(_$JJ); + _$JM(String, _$b.ONzyr, function (_$pa) { + _$Jw(this, { + 'type': _$JJ, + 'string': _$JG(_$pa), + 'index': 0x0 + }); + }, function () { + var _$pa, _$py = _$b.xUtuH(_$Je, this), _$pu = _$py.string, _$pG = _$py.index; + return _$pG >= _$pu.length ? _$Jn(void (0x1 * 0x5f7 + -0x211 + -0x3e6), !(0x1326 + -0x38f * 0x1 + -0xf97)) : (_$pa = _$Ju(_$pu, _$pG), + _$py.index += _$pa.length, + _$b.Vygsp(_$Jn, _$pa, !(-0x48 * 0x47 + 0x152f + 0x1f * -0xa))); + }); + var _$Jo = _$b1.Promise + , _$JI = { + 'CSSRuleList': 0x0, + 'CSSStyleDeclaration': 0x0, + 'CSSValueList': 0x0, + 'ClientRectList': 0x0, + 'DOMRectList': 0x0, + 'DOMStringList': 0x0, + 'DOMTokenList': 0x1, + 'DataTransferItemList': 0x0, + 'FileList': 0x0, + 'HTMLAllCollection': 0x0, + 'HTMLCollection': 0x0, + 'HTMLFormElement': 0x0, + 'HTMLSelectElement': 0x0, + 'MediaList': 0x0, + 'MimeTypeArray': 0x0, + 'NamedNodeMap': 0x0, + 'NodeList': 0x1, + 'PaintRequestList': 0x0, + 'Plugin': 0x0, + 'PluginArray': 0x0, + 'SVGLengthList': 0x0, + 'SVGNumberList': 0x0, + 'SVGPathSegList': 0x0, + 'SVGPointList': 0x0, + 'SVGStringList': 0x0, + 'SVGTransformList': 0x0, + 'SourceBufferList': 0x0, + 'StyleSheetList': 0x0, + 'TextTrackCueList': 0x0, + 'TextTrackList': 0x0, + 'TouchList': 0x0 + } + , _$Jj = _$w + , _$JO = _$Gw + , _$Jp = _$yU; + for (var _$JA in _$JI) + _$JO(_$Jj[_$JA], _$JA), + _$Jp[_$JA] = _$Jp.Array; + var _$Jd = _$Jo + , _$JZ = _$Md + , _$JX = _$Mv; + _$b.LklkH(_$zP, { + 'target': pW(0x1f3), + 'stat': !(-0x5 * 0x517 + 0x2d1 * -0x1 + 0x6c * 0x43), + 'forced': !(-0x2701 * -0x1 + 0x2526 + -0x4c27) + }, { + 'try': function (_$pa) { + var _$py = _$JZ.f(this) + , _$pu = _$JX(_$pa); + return (_$pu.error ? _$py.reject : _$py.resolve)(_$pu.value), + _$py.promise; + } + }); + var _$Jh = _$Jd + , _$JB = _$zM + , _$JQ = _$uG + , _$JE = _$S + , _$Jc = RangeError + , _$JL = _$M + , _$Js = _$zw + , _$Jf = _$uG + , _$Jm = _$S + , _$Jg = _$JL(function (_$pa) { + var Ax = pW + , _$py = _$JQ(_$JE(this)) + , _$pu = '' + , _$pG = _$JB(_$pa); + if (_$b.kYJbS(_$pG, -0x2195 + -0x2 * 0x102 + 0x2399) || _$pG === _$b.NMiHU(-0xd8c + -0x13 * 0xb4 + 0x1ae9 * 0x1, -0x1 * -0x12af + -0x4 * 0x64e + 0x689 * 0x1)) + throw new _$Jc(Ax(0x1e1)); + for (; _$pG > 0xf * -0xe9 + -0x1bd1 + -0x2978 * -0x1; (_$pG >>>= 0x1f0c + 0x2475 + -0x1b0 * 0x28) && (_$py += _$py)) + -0x1 * -0x1ae3 + 0x207 * 0x1 + 0x9a3 * -0x3 & _$pG && (_$pu += _$py); + return _$pu; + }) + , _$JN = _$JL(''.slice) + , _$JU = Math.ceil + , _$JV = function (_$pa) { + var _$py = { + 'cCjOi': function (_$pu, _$pG) { + return _$pu(_$pG); + }, + 'SNSfH': function (_$pu, _$pG) { + return _$b.ZAEmr(_$pu, _$pG); + } + }; + return function (_$pu, _$pG, _$pT) { + var _$pM, _$pn, _$pJ = _$Jf(_$Jm(_$pu)), _$pw = _$py.cCjOi(_$Js, _$pG), _$pe = _$pJ.length, + _$po = void (-0x2441 * 0x1 + 0x1 * 0x9e5 + 0x1a5c) === _$pT ? '\x20' : _$Jf(_$pT); + return _$pw <= _$pe || '' === _$po ? _$pJ : ((_$pn = _$Jg(_$po, _$JU((_$pM = _$pw - _$pe) / _$po.length))).length > _$pM && (_$pn = _$JN(_$pn, 0x2 * -0xd86 + 0x1458 + 0xc * 0x8f, _$pM)), + _$pa ? _$py.SNSfH(_$pJ, _$pn) : _$pn + _$pJ); + } + ; + } + , _$JK = _$M + , _$Jl = _$P + , _$JR = { + 'start': _$JV(!(0x16c6 + -0x2562 + -0xe9d * -0x1)), + 'end': _$JV(!(-0x5f2 * -0x3 + 0xcc7 * -0x2 + 0x3dc * 0x2)) + }.start + , _$JH = RangeError + , _$JC = isFinite + , _$JF = Math.abs + , _$Jr = Date.prototype + , _$Jq = _$Jr.toISOString + , _$Jt = _$JK(_$Jr.getTime) + , _$Jk = _$JK(_$Jr.getUTCDate) + , _$Ji = _$JK(_$Jr.getUTCFullYear) + , _$JS = _$JK(_$Jr.getUTCHours) + , _$JY = _$b.ngscu(_$JK, _$Jr.getUTCMilliseconds) + , _$Jx = _$JK(_$Jr.getUTCMinutes) + , _$JW = _$JK(_$Jr.getUTCMonth) + , _$JD = _$JK(_$Jr.getUTCSeconds) + , _$w0 = _$Jl(function () { + var AW = pW; + return AW(0x191) !== _$Jq.call(new Date(-(0x4a9d92faf62 + -0x11 * -0x49cc1332432 + 0x104239a97f7 * -0x25))); + }) || !_$Jl(function () { + _$Jq.call(new Date(NaN)); + }) ? function () { + var AD = pW; + if (!_$JC(_$b.gwDZm(_$Jt, this))) + throw new _$JH(AD(0x11a)); + var _$pa = this + , _$py = _$Ji(_$pa) + , _$pu = _$JY(_$pa) + , _$pG = _$py < -0x1b07 + 0x20ef + -0x5e8 ? '-' : _$py > -0x6a6 + 0x3 * -0x4f0 + 0x3c85 ? '+' : ''; + return _$b.FIBsh(_$pG + _$JR(_$JF(_$py), _$pG ? -0x1 * -0x613 + -0xa43 + 0x436 : 0x28e * 0x1 + 0x69 + -0x1 * 0x2f3, 0x2ab * -0xd + -0x4a4 * 0x2 + 0x5 * 0x8cb) + '-' + _$JR(_$b.Gcjvj(_$JW(_$pa), -0xae9 + 0xb3 * 0x2b + -0x1327), 0x2 * -0xd5b + -0x3a6 * -0x7 + 0x12e, 0x20ce + -0x5 * 0x70f + -0x5b * -0x7) + '-' + _$b.ajFmL(_$JR, _$b.uZeQs(_$Jk, _$pa), 0x5 * 0x49c + 0x1 * -0x1e9d + 0x793, -0xaf3 * 0x2 + -0x25e3 + 0x3bc9 * 0x1) + 'T' + _$JR(_$JS(_$pa), 0x1c66 + -0x35 * 0x1 + -0x1c2f, -0xe9 * 0x22 + 0x2 * 0xf76 + 0x6) + ':' + _$b.SeLtT(_$JR, _$Jx(_$pa), -0x5b7 + 0x21ba + -0x1c01, 0x1 * -0x1373 + -0x2241 + 0x35b4), ':') + _$JR(_$JD(_$pa), -0x443 + -0x1a09 + 0x2 * 0xf27, 0x1ef7 + -0x278 * -0x6 + -0x2dc7) + '.' + _$JR(_$pu, 0x5df * 0x1 + 0xeb9 + -0xb * 0x1df, -0xe71 * -0x2 + -0x28 * -0x56 + 0x2a52 * -0x1) + 'Z'; + } + : _$Jq + , _$w1 = _$m + , _$w2 = _$bH + , _$w3 = _$vz + , _$w4 = _$w0 + , _$w5 = _$Z; + _$zP({ + 'target': pW(0x1b2), + 'proto': !(0x1a52 + 0x12ab + -0x2cfd), + 'forced': _$b.OUiUb(_$P, function () { + return null !== new Date(NaN).toJSON() || 0xb6 * 0x11 + -0xf81 + 0x1 * 0x36c !== _$w1(Date.prototype.toJSON, { + 'toISOString': function () { + return 0x5 * -0x3d + -0x2 * 0x66a + 0x1 * 0xe06; + } + }); + }) + }, { + 'toJSON': function (_$pa) { + var d0 = pW + , _$py = _$w2(this) + , _$pu = _$w3(_$py, d0(0x20d)); + return d0(0x20d) != typeof _$pu || isFinite(_$pu) ? _$b.RFeVT(d0(0x110), _$py) || d0(0x1b2) !== _$w5(_$py) ? _$py.toISOString() : _$w1(_$w4, _$py) : null; + } + }); + var _$w6 = _$zy + , _$w7 = _$E + , _$w8 = _$Z + , _$w9 = _$uG + , _$wb = _$M([].push) + , _$wv = _$zP + , _$wz = _$b6 + , _$wP = _$O + , _$wa = _$m + , _$wy = _$M + , _$wu = _$P + , _$wG = _$E + , _$wT = _$bo + , _$wM = _$Ph + , _$wn = function (_$pa) { + var d1 = pW; + if (_$w7(_$pa)) + return _$pa; + if (_$w6(_$pa)) { + for (var _$py = _$pa.length, _$pu = [], _$pG = 0x768 + 0x2 * 0xf29 + -0x16 * 0x1b7; _$pG < _$py; _$pG++) { + var _$pT = _$pa[_$pG]; + d1(0x140) == typeof _$pT ? _$wb(_$pu, _$pT) : d1(0x20d) != typeof _$pT && d1(0xaa) !== _$b.ZgYUn(_$w8, _$pT) && d1(0x10a) !== _$b.lliJX(_$w8, _$pT) || _$wb(_$pu, _$w9(_$pT)); + } + var _$pM = _$pu.length + , _$pn = !(0x1 * -0x1675 + 0x2 * 0x71 + 0x1593); + return function (_$pJ, _$pw) { + if (_$pn) + return _$pn = !(-0xe77 + 0x1cb7 + -0xe3f), + _$pw; + if (_$w6(this)) + return _$pw; + for (var _$pe = 0x6d3 * -0x1 + 0x1717 + -0x1 * 0x1044; _$pe < _$pM; _$pe++) + if (_$pu[_$pe] === _$pJ) + return _$pw; + } + ; + } + } + , _$wJ = _$bT + , _$ww = String + , _$we = _$wz(pW(0x1af), pW(0x96)) + , _$wo = _$wy(/./.exec) + , _$wI = _$wy(''.charAt) + , _$wj = _$wy(''.charCodeAt) + , _$wO = _$wy(''.replace) + , _$wp = _$b.nVKRQ(_$wy, (-0xfa8 + 0x41 * 0x41 + 0x12 * -0xc).toString) + , _$wA = /[\uD800-\uDFFF]/g + , _$wd = /^[\uD800-\uDBFF]$/ + , _$wZ = /^[\uDC00-\uDFFF]$/ + , _$wX = !_$wJ || _$wu(function () { + var d2 = pW + , _$pa = _$wz(d2(0x213))(d2(0x128)); + return d2(0xf4) !== _$we([_$pa]) || _$b.azeGQ('{}', _$we({ + 'a': _$pa + })) || '{}' !== _$we(Object(_$pa)); + }) + , _$wh = _$wu(function () { + var d3 = pW; + return d3(0x134) !== _$b.Czllx(_$we, '\ufffd\ufffd') || _$b.lrVHu !== _$we('\ufffd'); + }) + , _$wB = function (_$pa, _$py) { + var _$pu = _$wM(arguments) + , _$pG = _$wn(_$py); + if (_$wG(_$pG) || void (-0x879 * -0x1 + 0x36f + -0xbe8) !== _$pa && !_$wT(_$pa)) + return _$pu[0x3 * -0x593 + -0xc1c * 0x1 + 0x1cd6] = function (_$pT, _$pM) { + if (_$wG(_$pG) && (_$pM = _$wa(_$pG, this, _$ww(_$pT), _$pM)), + !_$wT(_$pM)) + return _$pM; + } + , + _$wP(_$we, null, _$pu); + } + , _$wQ = function (_$pa, _$py, _$pu) { + var _$pG = _$wI(_$pu, _$b.YePxx(_$py, -0x12 * -0x72 + 0x3f7 + 0x7 * -0x1b6)) + , _$pT = _$wI(_$pu, _$b.ZAEmr(_$py, 0x1306 + -0x1995 + 0xd2 * 0x8)); + return _$wo(_$wd, _$pa) && !_$wo(_$wZ, _$pT) || _$wo(_$wZ, _$pa) && !_$wo(_$wd, _$pG) ? '\\u' + _$wp(_$wj(_$pa, 0x10aa + -0x24e3 + 0x1439), -0x267 * -0xa + -0x5d * -0x4a + 0xcb6 * -0x4) : _$pa; + }; + _$we && _$wv({ + 'target': pW(0x1af), + 'stat': !(-0x435 * -0x2 + 0x8f5 * 0x2 + 0x1a54 * -0x1), + 'arity': 0x3, + 'forced': _$wX || _$wh + }, { + 'stringify': function (_$pa, _$py, _$pu) { + var d4 = pW + , _$pG = _$wM(arguments) + , _$pT = _$wP(_$wX ? _$wB : _$we, null, _$pG); + return _$wh && d4(0x140) == typeof _$pT ? _$wO(_$pT, _$wA, _$wQ) : _$pT; + } + }); + var _$wE = _$b1 + , _$wc = _$O; + _$wE.JSON || (_$wE.JSON = { + 'stringify': JSON.stringify + }); + var _$wL = function (_$pa, _$py, _$pu) { + return _$wc(_$wE.JSON.stringify, null, arguments); + } + , _$ws = _$wL + , _$wf = _$ay.filter; + _$zP({ + 'target': _$b.hKgVe, + 'proto': !(0x2448 + 0x73 * 0x5 + -0x2687), + 'forced': !_$P6(_$b.eBVVF) + }, { + 'filter': function (_$pa) { + return _$b.lfFmt(_$wf, this, _$pa, arguments.length > 0xda3 + -0x2287 * 0x1 + 0x14e5 ? arguments[0xce3 + -0x1744 + 0x2 * 0x531] : void (0x2 * 0x32f + 0x6df + -0xd3d * 0x1)); + } + }); + var _$wm = _$b.LklkH(_$Pe, pW(0x214), pW(0x100)) + , _$wg = _$n + , _$wN = _$wm + , _$wU = Array.prototype + , _$wV = function (_$pa) { + var _$py = _$pa.filter; + return _$pa === _$wU || _$wg(_$wU, _$pa) && _$py === _$wU.filter ? _$wN : _$py; + } + , _$wK = _$bj + , _$wl = TypeError + , _$wR = function (_$pa, _$py) { + var d5 = pW; + if (!delete _$pa[_$py]) + throw new _$wl(d5(0xfe) + _$wK(_$py) + d5(0xf9) + _$wK(_$pa)); + } + , _$wH = _$Ph + , _$wC = Math.floor + , _$wF = function (_$pa, _$py) { + var _$pu = _$pa.length; + if (_$b.jVTUK(_$pu, 0x8e * -0x1d + 0x1a * 0xab + -0x140)) + for (var _$pG, _$pT, _$pM = -0xd4f * 0x1 + 0x3 * -0x9d3 + 0x2ac9; _$pM < _$pu;) { + for (_$pT = _$pM, + _$pG = _$pa[_$pM]; _$pT && _$py(_$pa[_$pT - (-0x1 * -0x1ad + 0x17f3 + 0x1 * -0x199f)], _$pG) > -0x1e2e * -0x1 + 0x1eaa * -0x1 + 0x7c;) + _$pa[_$pT] = _$pa[--_$pT]; + _$b.Ztrpf(_$pT, _$pM++) && (_$pa[_$pT] = _$pG); + } + else { + for (var _$pn = _$wC(_$pu / (-0x14c0 + -0x20f1 * -0x1 + -0xc2f)), _$pJ = _$wF(_$b.YWzbd(_$wH, _$pa, 0x9c9 + 0x25af + -0x2f78, _$pn), _$py), _$pw = _$wF(_$wH(_$pa, _$pn), _$py), _$pe = _$pJ.length, _$po = _$pw.length, _$pI = 0x9d * 0x18 + -0x22ee + -0x18e * -0xd, _$pj = 0x1ec2 * 0x1 + 0x2200 + -0x40c2; _$b.jVTUK(_$pI, _$pe) || _$pj < _$po;) + _$pa[_$b.PVZiP(_$pI, _$pj)] = _$pI < _$pe && _$pj < _$po ? _$py(_$pJ[_$pI], _$pw[_$pj]) <= 0x2699 * 0x1 + -0xcd * 0x1f + -0xdc6 ? _$pJ[_$pI++] : _$pw[_$pj++] : _$pI < _$pe ? _$pJ[_$pI++] : _$pw[_$pj++]; + } + return _$pa; + } + , _$wr = _$wF + , _$wq = _$b7.match(/firefox\/(\d+)/i) + , _$wt = !!_$wq && +_$wq[-0x96e + 0x5e * -0x31 + -0x7 * -0x3eb] + , _$wk = /MSIE|Trident/.test(_$b7) + , _$wi = _$b7.match(/AppleWebKit\/(\d+)\./) + , _$wS = !!_$wi && +_$wi[0x1 * 0xe3f + 0x4a6 + -0x12e4] + , _$wY = _$zP + , _$wx = _$M + , _$wW = _$bd + , _$wD = _$bH + , _$e0 = _$zo + , _$e1 = _$wR + , _$e2 = _$uG + , _$e3 = _$P + , _$e4 = _$wr + , _$e5 = _$Px + , _$e6 = _$wt + , _$e7 = _$wk + , _$e8 = _$ba + , _$e9 = _$wS + , _$eb = [] + , _$ev = _$wx(_$eb.sort) + , _$ez = _$wx(_$eb.push) + , _$eP = _$e3(function () { + _$eb.sort(void (-0xfe4 + 0x133 + 0xeb1)); + }) + , _$ea = _$e3(function () { + _$eb.sort(null); + }) + , _$ey = _$e5(pW(0x1d4)) + , _$eu = !_$b.sPnZe(_$e3, function () { + var d6 = pW; + if (_$e8) + return _$e8 < -0x11be + -0x57 * 0x51 + 0x2d8b; + if (!(_$e6 && _$b.bbTOL(_$e6, -0x11b4 + 0x1db4 + -0x5d * 0x21))) { + if (_$e7) + return !(0xafa + 0x3a2 + 0x37 * -0x44); + if (_$e9) + return _$e9 < 0x74f * 0x2 + -0xd03 * -0x1 + -0x1946; + var _$pa, _$py, _$pu, _$pG, _$pT = ''; + for (_$pa = -0x89a + -0x19c * -0x1 + -0x23 * -0x35; _$b.lyBOK(_$pa, -0x2c * 0x6d + -0x1dd7 + 0x30df); _$pa++) { + switch (_$py = String.fromCharCode(_$pa), + _$pa) { + case -0x3d * 0x6d + -0x207b + 0x3ab6: + case 0x159f + 0xa * -0x6b + 0x13a * -0xe: + case -0x22 * 0xf1 + 0x1d10 + -0x19c * -0x2: + case 0x23d3 * -0x1 + 0x11fb * 0x1 + -0x910 * -0x2: + _$pu = -0x89e * -0x3 + -0x7f4 + -0x11e3; + break; + case 0x1 * 0x36e + 0x1743 + -0x1a6d: + case 0x4b * 0x2a + 0x268f + 0x19 * -0x206: + _$pu = 0x24bb + 0xf13 + -0x33ca; + break; + default: + _$pu = -0x195 + 0x3ef + -0xc8 * 0x3; + } + for (_$pG = 0x1704 + -0x1 * 0x6f1 + -0x1013; _$pG < -0x14a1 + 0x1fdd + -0x17 * 0x7b; _$pG++) + _$eb.push({ + 'k': _$py + _$pG, + 'v': _$pu + }); + } + for (_$eb.sort(function (_$pM, _$pn) { + return _$b.GGZWX(_$pn.v, _$pM.v); + }), + _$pG = 0x1507 + -0x16d8 + -0x1 * -0x1d1; _$b.jVTUK(_$pG, _$eb.length); _$pG++) + _$py = _$eb[_$pG].k.charAt(-0x1e6b + 0xb9e + 0x12cd), + _$pT.charAt(_$pT.length - (0x6a0 * 0x4 + -0x67 * 0x3f + -0x126)) !== _$py && (_$pT += _$py); + return d6(0x206) !== _$pT; + } + }); + _$wY({ + 'target': pW(0x214), + 'proto': !(-0x2505 + -0x1554 + 0x17f * 0x27), + 'forced': _$b.dumcQ(_$eP, !_$ea) || !_$ey || !_$eu + }, { + 'sort': function (_$pa) { + var _$py = { + 'KCBhH': function (_$pJ, _$pw) { + return _$pJ === _$pw; + }, + 'FlYDb': function (_$pJ, _$pw) { + return _$pJ !== _$pw; + }, + 'mvHBv': function (_$pJ, _$pw) { + return _$pJ > _$pw; + } + }; + void (-0x251 * 0x10 + 0xb5 * 0x32 + 0x1b6) !== _$pa && _$wW(_$pa); + var _$pu = _$wD(this); + if (_$eu) + return void (0x1ab * 0x11 + 0xac8 + -0x2723) === _$pa ? _$b.iAoyP(_$ev, _$pu) : _$ev(_$pu, _$pa); + var _$pG, _$pT, _$pM = [], _$pn = _$e0(_$pu); + for (_$pT = -0x18e4 + -0x766 + 0x204a; _$pT < _$pn; _$pT++) + _$pT in _$pu && _$ez(_$pM, _$pu[_$pT]); + for (_$e4(_$pM, function (_$pJ) { + return function (_$pw, _$pe) { + return _$py.KCBhH(void (0x1 * -0x13f2 + -0x1cc8 + 0x30ba), _$pe) ? -(0xa1f + 0x4ea + 0x1a * -0x94) : void (-0x1b9 * -0xb + 0x1 * 0x235d + -0x3650) === _$pw ? -0x54d * 0x5 + 0x2 * -0x2dc + 0x203a : _$py.FlYDb(void (-0x24c7 * -0x1 + 0x125 * -0x5 + -0x1f0e), _$pJ) ? +_$pJ(_$pw, _$pe) || -0x1a8d + 0x1d34 + 0x2a7 * -0x1 : _$py.mvHBv(_$e2(_$pw), _$e2(_$pe)) ? -0x579 + 0x1e2e + -0x18b4 : -(0xf2 * -0x7 + 0x1c8e + -0x15ef); + } + ; + }(_$pa)), + _$pG = _$e0(_$pM), + _$pT = 0x2470 + -0x24b4 + 0x44; _$pT < _$pG;) + _$pu[_$pT] = _$pM[_$pT++]; + for (; _$b.kYJbS(_$pT, _$pn);) + _$e1(_$pu, _$pT++); + return _$pu; + } + }); + var _$eG = _$b.YzqEA(_$Pe, pW(0x214), pW(0x1d4)) + , _$eT = _$n + , _$eM = _$eG + , _$en = Array.prototype + , _$eJ = function (_$pa) { + var _$py = _$pa.sort; + return _$pa === _$en || _$eT(_$en, _$pa) && _$py === _$en.sort ? _$eM : _$py; + } + , _$ew = _$bH + , _$ee = _$y8; + _$zP({ + 'target': pW(0xac), + 'stat': !(-0x588 + -0xd3a + 0x12c2), + 'forced': _$P(function () { + _$ee(-0x16c6 + -0x93a * -0x1 + 0xd8d); + }) + }, { + 'keys': function (_$pa) { + return _$ee(_$ew(_$pa)); + } + }); + var _$eo = _$b1.Object.keys + , _$eI = _$PS.includes; + _$zP({ + 'target': pW(0x214), + 'proto': !(0x2 * 0x7c6 + 0x25de + -0x356a), + 'forced': _$P(function () { + return !Array(0x1d58 + -0xbb7 * 0x1 + -0x11a0).includes(); + }) + }, { + 'includes': function (_$pa) { + return _$eI(this, _$pa, arguments.length > 0x49 * 0x86 + 0x1ceb + -0x4320 ? arguments[-0x1eb + -0x1873 + 0x1a5f] : void (0xfe1 * -0x1 + 0xc1 + 0x3c8 * 0x4)); + } + }); + var _$ej = _$b.JTmcx(_$Pe, pW(0x214), pW(0x1ba)) + , _$eO = _$b0 + , _$ep = _$Z + , _$eA = _$v4(pW(0x166)) + , _$ed = function (_$pa) { + var d7 = pW, _$py; + return _$b.wWYli(_$eO, _$pa) && (void (-0x1 * 0xd13 + -0x357 * 0x9 + 0x2b22) !== (_$py = _$pa[_$eA]) ? !!_$py : d7(0x1fc) === _$ep(_$pa)); + } + , _$eZ = TypeError + , _$eX = _$v4(pW(0x166)) + , _$eh = _$zP + , _$eB = function (_$pa) { + var d8 = pW; + if (_$ed(_$pa)) + throw new _$eZ(d8(0x136)); + return _$pa; + } + , _$eQ = _$S + , _$eE = _$uG + , _$ec = function (_$pa) { + var d9 = pW + , _$py = /./; + try { + d9(0x203)[_$pa](_$py); + } catch (_$pu) { + try { + return _$py[_$eX] = !(-0xd11 + -0x2624 * 0x1 + -0x3336 * -0x1), + d9(0x203)[_$pa](_$py); + } catch (_$pG) { + } + } + return !(-0x19a + 0x1 * 0x2165 + -0x1fca); + } + , _$eL = _$M(''.indexOf); + _$eh({ + 'target': _$b.ONzyr, + 'proto': !(-0x994 * -0x4 + 0x8 * -0x2c7 + -0x1018), + 'forced': !_$b.xUtuH(_$ec, pW(0x1ba)) + }, { + 'includes': function (_$pa) { + return !!~_$eL(_$eE(_$eQ(this)), _$eE(_$b.mDhMt(_$eB, _$pa)), arguments.length > -0x3 * 0x75b + 0x7d0 + 0xe42 ? arguments[-0xbaa * -0x2 + 0x1fa7 + -0x36fa] : void (0xd7 + 0x105 * 0x2 + -0x2e1)); + } + }); + var _$es = _$Pe(pW(0x10a), pW(0x1ba)) + , _$ef = _$n + , _$em = _$ej + , _$eg = _$es + , _$eN = Array.prototype + , _$eU = String.prototype + , _$eV = function (_$pa) { + var db = pW + , _$py = _$pa.includes; + return _$pa === _$eN || _$ef(_$eN, _$pa) && _$b.YkLka(_$py, _$eN.includes) ? _$em : db(0x140) == typeof _$pa || _$b.GKBiz(_$pa, _$eU) || _$b.ysmdT(_$ef, _$eU, _$pa) && _$b.NwNvP(_$py, _$eU.includes) ? _$eg : _$py; + } + , _$eK = {} + , _$el = _$Z + , _$eR = _$W + , _$eH = _$aV.f + , _$eC = _$Ph + , + _$eF = pW(0x18b) == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; + _$eK.f = function (_$pa) { + var dv = pW; + return _$eF && _$b.PsjiZ(dv(0x15b), _$b.rAnyl(_$el, _$pa)) ? function (_$py) { + try { + return _$eH(_$py); + } catch (_$pu) { + return _$eC(_$eF); + } + }(_$pa) : _$b.uDneQ(_$eH, _$eR(_$pa)); + } + ; + var _$er = {} + , _$eq = _$v4; + _$er.f = _$eq; + var _$et = _$b1 + , _$ek = _$br + , _$ei = _$er + , _$eS = _$vU.f + , _$eY = function (_$pa) { + var _$py = _$et.Symbol || (_$et.Symbol = {}); + _$ek(_$py, _$pa) || _$b.ZEfBV(_$eS, _$py, _$pa, { + 'value': _$ei.f(_$pa) + }); + } + , _$ex = _$m + , _$eW = _$b6 + , _$eD = _$v4 + , _$o0 = _$G3 + , _$o1 = function () { + var dz = pW + , _$pa = _$eW(dz(0x213)) + , _$py = _$pa && _$pa.prototype + , _$pu = _$py && _$py.valueOf + , _$pG = _$eD(dz(0x98)); + _$py && !_$py[_$pG] && _$b.sxErT(_$o0, _$py, _$pG, function (_$pT) { + return _$ex(_$pu, this); + }, { + 'arity': 0x1 + }); + } + , _$o2 = _$zP + , _$o3 = _$w + , _$o4 = _$m + , _$o5 = _$M + , _$o6 = _$L + , _$o7 = _$bT + , _$o8 = _$P + , _$o9 = _$br + , _$ob = _$n + , _$ov = _$vH + , _$oz = _$W + , _$oP = _$vy + , _$oa = _$uG + , _$oy = _$R + , _$ou = _$yd + , _$oG = _$y8 + , _$oT = _$aV + , _$oM = _$eK + , _$on = _$ai + , _$oJ = _$c + , _$ow = _$vU + , _$oe = _$y5 + , _$oo = _$g + , _$oI = _$G3 + , _$oj = _$T0 + , _$oO = _$bK + , _$op = _$aK + , _$oA = _$bS + , _$od = _$v4 + , _$oZ = _$er + , _$oX = _$eY + , _$oh = _$o1 + , _$oB = _$Gw + , _$oQ = _$uS + , _$oE = _$ay.forEach + , _$oc = _$b.hmFsY(_$ao, _$b.zuepk) + , _$oL = pW(0x213) + , _$os = pW(0x21e) + , _$of = _$oQ.set + , _$om = _$oQ.getterFor(_$oL) + , _$og = Object[_$os] + , _$oN = _$o3.Symbol + , _$oU = _$oN && _$oN[_$os] + , _$oV = _$o3.RangeError + , _$oK = _$o3.TypeError + , _$ol = _$o3.QObject + , _$oR = _$oJ.f + , _$oH = _$ow.f + , _$oC = _$oM.f + , _$oF = _$oo.f + , _$or = _$o5([].push) + , _$oq = _$oO(pW(0x1d7)) + , _$ot = _$oO(pW(0x188)) + , _$ok = _$oO(pW(0x1e6)) + , _$oi = !_$ol || !_$ol[_$os] || !_$ol[_$os].findChild + , _$oS = function (_$pa, _$py, _$pu) { + var _$pG = _$oR(_$og, _$py); + _$pG && delete _$og[_$py], + _$oH(_$pa, _$py, _$pu), + _$pG && _$pa !== _$og && _$oH(_$og, _$py, _$pG); + } + , _$oY = _$o6 && _$o8(function () { + return -0xbec + 0x2264 + -0x77b * 0x3 !== _$ou(_$oH({}, 'a', { + 'get': function () { + return _$oH(this, 'a', { + 'value': 0x7 + }).a; + } + })).a; + }) ? _$oS : _$oH + , _$ox = function (_$pa, _$py) { + var _$pu = _$oq[_$pa] = _$ou(_$oU); + return _$of(_$pu, { + 'type': _$oL, + 'tag': _$pa, + 'description': _$py + }), + _$o6 || (_$pu.description = _$py), + _$pu; + } + , _$oW = function (_$pa, _$py, _$pu) { + _$pa === _$og && _$oW(_$ot, _$py, _$pu), + _$ov(_$pa); + var _$pG = _$oP(_$py); + return _$b.gwDZm(_$ov, _$pu), + _$o9(_$oq, _$pG) ? (_$pu.enumerable ? (_$o9(_$pa, _$oc) && _$pa[_$oc][_$pG] && (_$pa[_$oc][_$pG] = !(-0x11c1 + 0xa07 + -0x1 * -0x7bb)), + _$pu = _$ou(_$pu, { + 'enumerable': _$oy(-0x23b5 + 0x2024 + -0x1 * -0x391, !(0x162b + 0x22c9 + -0x38f3)) + })) : (_$o9(_$pa, _$oc) || _$oH(_$pa, _$oc, _$oy(0x18e7 + 0x2114 * 0x1 + -0x39fa, _$ou(null))), + _$pa[_$oc][_$pG] = !(-0x291 + 0xe6 * -0x23 + 0x2203)), + _$oY(_$pa, _$pG, _$pu)) : _$oH(_$pa, _$pG, _$pu); + } + , _$oD = function (_$pa, _$py) { + _$ov(_$pa); + var _$pu = _$oz(_$py) + , _$pG = _$b.OfdEQ(_$oG, _$pu).concat(_$I3(_$pu)); + return _$oE(_$pG, function (_$pT) { + _$o6 && !_$b.keIAo(_$o4, _$I0, _$pu, _$pT) || _$oW(_$pa, _$pT, _$pu[_$pT]); + }), + _$pa; + } + , _$I0 = function (_$pa) { + var _$py = _$b.ndqrf(_$oP, _$pa) + , _$pu = _$o4(_$oF, this, _$py); + return !(this === _$og && _$o9(_$oq, _$py) && !_$b.xJcjl(_$o9, _$ot, _$py)) && (!(_$pu || !_$o9(this, _$py) || !_$o9(_$oq, _$py) || _$o9(this, _$oc) && this[_$oc][_$py]) || _$pu); + } + , _$I1 = function (_$pa, _$py) { + var _$pu = _$oz(_$pa) + , _$pG = _$oP(_$py); + if (_$pu !== _$og || !_$o9(_$oq, _$pG) || _$o9(_$ot, _$pG)) { + var _$pT = _$oR(_$pu, _$pG); + return !_$pT || !_$b.ysmdT(_$o9, _$oq, _$pG) || _$o9(_$pu, _$oc) && _$pu[_$oc][_$pG] || (_$pT.enumerable = !(0x5 * 0x389 + -0x377 * -0x3 + -0x1 * 0x1c12)), + _$pT; + } + } + , _$I2 = function (_$pa) { + var _$py = _$oC(_$oz(_$pa)) + , _$pu = []; + return _$oE(_$py, function (_$pG) { + _$o9(_$oq, _$pG) || _$o9(_$op, _$pG) || _$or(_$pu, _$pG); + }), + _$pu; + } + , _$I3 = function (_$pa) { + var _$py = _$pa === _$og + , _$pu = _$oC(_$py ? _$ot : _$b.rpGlX(_$oz, _$pa)) + , _$pG = []; + return _$oE(_$pu, function (_$pT) { + !_$o9(_$oq, _$pT) || _$py && !_$o9(_$og, _$pT) || _$or(_$pG, _$oq[_$pT]); + }), + _$pG; + }; + _$o7 || (_$oN = function () { + var _$pa = { + 'BMGcn': function (_$pT, _$pM) { + return _$pT === _$pM; + }, + 'kTkSj': function (_$pT, _$pM, _$pn, _$pJ) { + return _$pT(_$pM, _$pn, _$pJ); + } + }; + if (_$ob(_$oU, this)) + throw new _$oK(_$b.LtyiV); + var _$py = arguments.length && _$b.azeGQ(void (-0x25d9 * -0x1 + -0x14fc + -0x59f * 0x3), arguments[0x12cb + 0x985 + 0xc * -0x25c]) ? _$b.dlsZk(_$oa, arguments[0x263d + 0x1706 + -0x3d43]) : void (0x27a + -0x232b * 0x1 + 0x20b1) + , _$pu = _$oA(_$py) + , _$pG = function (_$pT) { + var _$pM = _$pa.BMGcn(void (0x1de + -0x3d7 + 0x1f9), this) ? _$o3 : this; + _$pa.BMGcn(_$pM, _$og) && _$o4(_$pG, _$ot, _$pT), + _$o9(_$pM, _$oc) && _$o9(_$pM[_$oc], _$pu) && (_$pM[_$oc][_$pu] = !(-0x1b45 * 0x1 + 0x620 + -0x1526 * -0x1)); + var _$pn = _$oy(-0x1f4e * -0x1 + -0x728 * 0x4 + 0x1 * -0x2ad, _$pT); + try { + _$pa.kTkSj(_$oY, _$pM, _$pu, _$pn); + } catch (_$pJ) { + if (!(_$pJ instanceof _$oV)) + throw _$pJ; + _$oS(_$pM, _$pu, _$pn); + } + }; + return _$b.oHvKp(_$o6, _$oi) && _$oY(_$og, _$pu, { + 'configurable': !(0x1 * -0x1c63 + -0x1e53 + 0x3ab6), + 'set': _$pG + }), + _$ox(_$pu, _$py); + } + , + _$oI(_$oU = _$oN[_$os], pW(0x15e), function () { + return _$om(this).tag; + }), + _$oI(_$oN, pW(0x1c9), function (_$pa) { + return _$ox(_$oA(_$pa), _$pa); + }), + _$oo.f = _$I0, + _$ow.f = _$oW, + _$oe.f = _$oD, + _$oJ.f = _$I1, + _$oT.f = _$oM.f = _$I2, + _$on.f = _$I3, + _$oZ.f = function (_$pa) { + return _$ox(_$od(_$pa), _$pa); + } + , + _$o6 && _$oj(_$oU, _$b.GuPiz, { + 'configurable': !(-0x1 * -0x7f0 + -0xd * 0x151 + 0x3 * 0x30f), + 'get': function () { + return _$om(this).description; + } + })), + _$b.ZPgfR(_$o2, { + 'global': !(0x1909 * 0x1 + 0x187e + -0x1f * 0x199), + 'constructor': !(0x7 * -0x383 + -0x15b3 + 0x2e48), + 'wrap': !(0x87b + 0x2319 + -0x2b94), + 'forced': !_$o7, + 'sham': !_$o7 + }, { + 'Symbol': _$oN + }), + _$oE(_$oG(_$ok), function (_$pa) { + _$oX(_$pa); + }), + _$o2({ + 'target': _$oL, + 'stat': !(-0x2 * -0x502 + -0x1 * -0x4f4 + 0x1 * -0xef8), + 'forced': !_$o7 + }, { + 'useSetter': function () { + _$oi = !(-0x1de + -0x203a + 0x4 * 0x886); + }, + 'useSimple': function () { + _$oi = !(-0x4 * 0x343 + 0x10d * 0x13 + -0x6ea); + } + }), + _$o2({ + 'target': pW(0xac), + 'stat': !(-0x4ca * 0x4 + 0x223d + 0x1b * -0x8f), + 'forced': !_$o7, + 'sham': !_$o6 + }, { + 'create': function (_$pa, _$py) { + return void (-0x824 * 0x2 + -0x409 * -0x6 + -0x7ee) === _$py ? _$b.mDhMt(_$ou, _$pa) : _$oD(_$ou(_$pa), _$py); + }, + 'defineProperty': _$oW, + 'defineProperties': _$oD, + 'getOwnPropertyDescriptor': _$I1 + }), + _$o2({ + 'target': pW(0xac), + 'stat': !(0x47a * 0x6 + 0x11ec + -0x2cc8), + 'forced': !_$o7 + }, { + 'getOwnPropertyNames': _$I2 + }), + _$oh(), + _$oB(_$oN, _$oL), + _$op[_$oc] = !(-0x17 * 0x19f + -0x2 * -0xb1b + 0xf13); + var _$I4 = _$bT && !!Symbol.for && !!Symbol.keyFor + , _$I5 = _$zP + , _$I6 = _$b6 + , _$I7 = _$br + , _$I8 = _$uG + , _$I9 = _$bK + , _$Ib = _$I4 + , _$Iv = _$b.Czllx(_$I9, pW(0x218)) + , _$Iz = _$I9(pW(0x120)); + _$I5({ + 'target': pW(0x213), + 'stat': !(-0x79 * -0x1d + 0x3 * -0xa5 + -0xb * 0x112), + 'forced': !_$Ib + }, { + 'for': function (_$pa) { + var dP = pW + , _$py = _$I8(_$pa); + if (_$b.GvvPi(_$I7, _$Iv, _$py)) + return _$Iv[_$py]; + var _$pu = _$I6(dP(0x213))(_$py); + return _$Iv[_$py] = _$pu, + _$Iz[_$pu] = _$py, + _$pu; + } + }); + var _$IP = _$zP + , _$Ia = _$br + , _$Iy = _$bo + , _$Iu = _$bj + , _$IG = _$I4 + , _$IT = _$bK(pW(0x120)); + _$IP({ + 'target': pW(0x213), + 'stat': !(-0x1 * 0x43f + 0xb06 + 0x15b * -0x5), + 'forced': !_$IG + }, { + 'keyFor': function (_$pa) { + var da = pW; + if (!_$Iy(_$pa)) + throw new TypeError(_$Iu(_$pa) + da(0xc8)); + if (_$Ia(_$IT, _$pa)) + return _$IT[_$pa]; + } + }); + var _$IM = _$ai + , _$In = _$bH; + _$zP({ + 'target': pW(0xac), + 'stat': !(0x9 * 0x383 + 0x83 * -0x19 + 0x70 * -0x2b), + 'forced': !_$bT || _$P(function () { + _$IM.f(0x5 * -0x8b + -0x1cf + 0x487); + }) + }, { + 'getOwnPropertySymbols': function (_$pa) { + var _$py = _$IM.f; + return _$py ? _$py(_$In(_$pa)) : []; + } + }), + _$eY(pW(0x1f8)), + _$b.gnbtM(_$eY, _$b.NlKtW), + _$eY(pW(0x19e)), + _$eY(pW(0x8a)), + _$b.WcfiY(_$eY, pW(0x166)), + _$b.rpGlX(_$eY, _$b.FqiPx), + _$eY(pW(0x1d2)), + _$eY(pW(0x1fe)), + _$eY(pW(0x209)), + _$b.IMZMd(_$eY, pW(0x201)); + var _$IJ = _$o1; + _$eY(pW(0x98)), + _$IJ(); + var _$Iw = _$b6 + , _$Ie = _$Gw; + _$eY(pW(0x1ae)), + _$Ie(_$Iw(pW(0x213)), pW(0x213)), + _$eY(pW(0xcb)), + _$Gw(_$w.JSON, pW(0x1af), !(0x26e9 + 0xcc0 + -0x33a9)); + var _$Io = _$b1.Symbol + , _$II = _$v4 + , _$Ij = _$vU.f + , _$IO = _$II(pW(0x116)) + , _$Ip = Function.prototype; + _$b.NVSUm(void (0x1 * 0x1343 + -0x1482 + -0x13f * -0x1), _$Ip[_$IO]) && _$Ij(_$Ip, _$IO, { + 'value': null + }), + _$eY(pW(0x168)), + _$eY(pW(0xf0)), + _$b.sGMpZ(_$eY, pW(0x116)); + var _$IA = _$Io + , _$Id = _$M + , _$IZ = _$b6(pW(0x213)) + , _$IX = _$IZ.keyFor + , _$Ih = _$b.wdmkb(_$Id, _$IZ.prototype.valueOf) + , _$IB = _$IZ.isRegisteredSymbol || function (_$pa) { + try { + return _$b.REUkM(void (0x1d89 + -0x10b9 * -0x1 + -0x2e42), _$IX(_$Ih(_$pa))); + } catch (_$py) { + return !(-0xcb9 + -0x1 * 0x117d + 0x41 * 0x77); + } + } + ; + _$zP({ + 'target': pW(0x213), + 'stat': !(0x26e7 + 0x1 * -0x1bc2 + 0x13d * -0x9) + }, { + 'isRegisteredSymbol': _$IB + }); + for (var _$IQ = _$bK, _$IE = _$b6, _$Ic = _$M, _$IL = _$bo, _$Is = _$v4, _$If = _$b.eGJvR(_$IE, pW(0x213)), _$Im = _$If.isWellKnownSymbol, _$Ig = _$IE(pW(0xac), pW(0xf5)), _$IN = _$Ic(_$If.prototype.valueOf), _$IU = _$IQ(pW(0x1e6)), _$IV = -0x1ffc + 0x7c * -0x2 + 0xde * 0x26, _$IK = _$b.jPuWJ(_$Ig, _$If), _$Il = _$IK.length; _$IV < _$Il; _$IV++) + try { + var _$IR = _$IK[_$IV]; + _$IL(_$If[_$IR]) && _$Is(_$IR); + } catch (_$pa) { + } + var _$IH = function (_$py) { + if (_$Im && _$Im(_$py)) + return !(-0x1 * -0x1807 + -0x3f3 * -0x9 + 0x5f5 * -0xa); + try { + for (var _$pu = _$b.vOdBF(_$IN, _$py), _$pG = -0x1f8e + 0x186c + 0x722, _$pT = _$Ig(_$IU), _$pM = _$pT.length; _$pG < _$pM; _$pG++) + if (_$b.NxNtn(_$IU[_$pT[_$pG]], _$pu)) + return !(-0x14a6 + -0x9f1 * 0x2 + -0x2 * -0x1444); + } catch (_$pn) { + } + return !(0x1a39 + 0x3 * -0x811 + -0x205); + }; + _$zP({ + 'target': pW(0x213), + 'stat': !(0x26b4 + 0x1005 + -0x36b9), + 'forced': !(0x1c33 + 0x6c5 * 0x3 + 0x1841 * -0x2) + }, { + 'isWellKnownSymbol': _$IH + }), + _$b.wDqXm(_$eY, pW(0x151)), + _$eY(_$b.dwvIT), + _$zP({ + 'target': pW(0x213), + 'stat': !(-0x1af * 0x11 + -0xd * -0x2b6 + -0x69f), + 'name': _$b.TPNip + }, { + 'isRegistered': _$IB + }), + _$zP({ + 'target': pW(0x213), + 'stat': !(-0x3 * -0x647 + 0x10f1 + -0x13 * 0x1e2), + 'name': pW(0x223), + 'forced': !(0x1517 + 0x6f2 + 0x1c09 * -0x1) + }, { + 'isWellKnown': _$IH + }), + _$eY(pW(0x186)), + _$eY(pW(0x9a)), + _$eY(pW(0x1b3)); + var _$IC = _$IA + , _$IF = _$er.f(pW(0x8a)); + + function _$Ir(_$py) { + var dy = pW; + return _$Ir = 'function' == typeof _$IC && dy(0x207) == typeof _$IF ? function (_$pu) { + return typeof _$pu; + } + : function (_$pu) { + var du = dy; + return _$pu && 'function' == typeof _$IC && _$pu.constructor === _$IC && _$pu !== _$IC.prototype ? du(0x207) : typeof _$pu; + } + , + _$Ir(_$py); + } + + var _$Iq = _$O + , _$It = _$W + , _$Ik = _$zM + , _$Ii = _$zo + , _$IS = _$Px + , _$IY = Math.min + , _$Ix = [].lastIndexOf + , + _$IW = !!_$Ix && (-0x1444 + -0x1d25 + 0x73 * 0x6e) / [-0x1 * -0x6a0 + 0xef * -0x25 + 0x1bec].lastIndexOf(0x1f3a + -0x980 + 0x53 * -0x43, -(-0x1 * 0x101e + -0x943 * 0x1 + 0x1961 * 0x1)) < 0x25e7 + -0x2 * -0x103a + -0x53 * 0xd9 + , _$ID = _$IS(pW(0x1da)) + , _$j0 = _$IW || !_$ID ? function (_$py) { + var dG = pW + , _$pu = dG(0xb3).split('|') + , _$pG = 0x1 * 0xcb6 + -0xfa * 0x20 + 0x128a; + while (!![]) { + switch (_$pu[_$pG++]) { + case '0': + if (-0x2 * -0xc5e + 0x2704 + -0xcc * 0x50 === _$pn) + return -(0x1a6d + -0x22e + 0x1d * -0xd6); + continue; + case '1': + var _$pT = _$pn - (-0x18f1 + -0x22cb + 0x175 * 0x29); + continue; + case '2': + for (arguments.length > 0x2 * -0xdb2 + -0x1 * -0x10fd + 0x6 * 0x1bc && (_$pT = _$IY(_$pT, _$Ik(arguments[-0x1 * 0x18ca + 0x47 * -0x2 + 0x873 * 0x3]))), + _$pT < -0x19d8 + 0xada + 0x13 * 0xca && (_$pT = _$pn + _$pT); _$pT >= -0x2171 + 0x19a1 + 0x7d0; _$pT--) + if (_$pT in _$pM && _$pM[_$pT] === _$py) + return _$b.kyqLA(_$pT, -0xb16 + 0x579 * 0x3 + -0x27 * 0x23); + continue; + case '3': + return -(0x201b + 0x145b + -0x3475); + case '4': + if (_$IW) + return _$Iq(_$Ix, this, arguments) || 0x80d + 0x12ce * 0x2 + -0x2da9; + continue; + case '5': + var _$pM = _$It(this) + , _$pn = _$b.CoTlj(_$Ii, _$pM); + continue; + } + break; + } + } + : _$Ix; + _$zP({ + 'target': pW(0x214), + 'proto': !(0x4d6 * 0x7 + -0x5 * 0x2a2 + -0x14b0), + 'forced': _$b.DEEPj(_$j0, [].lastIndexOf) + }, { + 'lastIndexOf': _$j0 + }); + var _$j1 = _$b.rTsbY(_$Pe, pW(0x214), pW(0x1da)) + , _$j2 = _$n + , _$j3 = _$j1 + , _$j4 = Array.prototype + , _$j5 = function (_$py) { + var _$pu = _$py.lastIndexOf; + return _$py === _$j4 || _$b.wXKoR(_$j2, _$j4, _$py) && _$pu === _$j4.lastIndexOf ? _$j3 : _$pu; + } + , _$j6 = { + 'exports': {} + } + , _$j7 = _$zP + , _$j8 = _$zy + , _$j9 = _$b.GfvgP(_$M, [].reverse) + , _$jb = [-0x80 * 0x5 + 0x11ef + -0xf6e * 0x1, 0x1 * 0x8c2 + -0xf95 * -0x1 + -0x1855 * 0x1]; + _$j7({ + 'target': _$b.hKgVe, + 'proto': !(0x45d + 0x47d * 0x3 + -0x11d4), + 'forced': String(_$jb) === String(_$jb.reverse()) + }, { + 'reverse': function () { + return _$j8(this) && (this.length = this.length), + _$j9(this); + } + }); + var _$jv = _$Pe(_$b.hKgVe, pW(0x1e4)) + , _$jz = _$n + , _$jP = _$jv + , _$ja = Array.prototype + , _$jy = function (_$py) { + var _$pu = _$py.reverse; + return _$py === _$ja || _$jz(_$ja, _$py) && _$pu === _$ja.reverse ? _$jP : _$pu; + } + , _$ju = pW(0xb7) + , _$jG = _$S + , _$jT = _$uG + , _$jM = _$ju + , _$jn = _$M(''.replace) + , _$jJ = RegExp('^[' + _$jM + ']+') + , _$jw = RegExp(pW(0x97) + _$jM + pW(0x129) + _$jM + pW(0x17f)) + , _$je = function (_$py) { + return function (_$pu) { + var _$pG = _$jT(_$jG(_$pu)); + return -0xc52 * -0x2 + 0x76f + -0x1 * 0x2012 & _$py && (_$pG = _$jn(_$pG, _$jJ, '')), + 0x7 * 0x2ce + 0x3f0 * 0x1 + -0x1790 & _$py && (_$pG = _$jn(_$pG, _$jw, '$1')), + _$pG; + } + ; + } + , _$jo = { + 'start': _$je(-0x1459 + 0x2 * 0x4c7 + 0xacc), + 'end': _$je(0x23ce + -0x233 * -0x1 + 0x1 * -0x25ff), + 'trim': _$je(-0x1c4a + 0x824 + 0x1429) + } + , _$jI = _$w + , _$jj = _$P + , _$jO = _$M + , _$jp = _$uG + , _$jA = _$jo.trim + , _$jd = _$ju + , _$jZ = _$jI.parseInt + , _$jX = _$jI.Symbol + , _$jh = _$jX && _$jX.iterator + , _$jB = /^[+-]?0x/i + , _$jQ = _$jO(_$jB.exec) + , + _$jE = -0x1128 + 0x15c1 * 0x1 + -0x7 * 0xa7 !== _$jZ(_$jd + '08') || 0x1a29 + 0xcea * 0x3 + -0x159b * 0x3 !== _$jZ(_$jd + pW(0x101)) || _$jh && !_$jj(function () { + _$jZ(Object(_$jh)); + }) ? function (_$py, _$pu) { + var _$pG = _$jA(_$jp(_$py)); + return _$jZ(_$pG, _$pu >>> 0x1243 + -0x1 * 0xaab + -0x798 || (_$jQ(_$jB, _$pG) ? 0x7e8 * -0x1 + 0x230b * -0x1 + -0x625 * -0x7 : 0x175d + 0x2b * -0x2 + -0x16fd * 0x1)); + } + : _$jZ; + _$zP({ + 'global': !(-0x1 * 0x22d3 + 0x3 * -0x7fe + -0x3acd * -0x1), + 'forced': _$b.JnoUl(parseInt, _$jE) + }, { + 'parseInt': _$jE + }); + var _$jc = _$b1.parseInt + , _$jL = _$L + , _$js = _$zy + , _$jf = TypeError + , _$jm = Object.getOwnPropertyDescriptor + , _$jg = _$jL && !function () { + var dT = pW; + if (void (0x5ce + -0x556 * 0x3 + 0xa34) !== this) + return !(0x1 * 0x884 + -0xf39 + 0x6b5); + try { + Object.defineProperty([], dT(0x14e), { + 'writable': !(-0x28a + 0x5e8 + -0x35d) + }).length = 0x2 * -0xde5 + 0x257d + -0x9b2; + } catch (_$py) { + return _$py instanceof TypeError; + } + }() + , _$jN = _$zP + , _$jU = _$bH + , _$jV = _$PX + , _$jK = _$zM + , _$jl = _$zo + , _$jR = _$jg ? function (_$py, _$pu) { + var dM = pW; + if (_$js(_$py) && !_$jm(_$py, dM(0x14e)).writable) + throw new _$jf(dM(0x1cf)); + return _$py.length = _$pu; + } + : function (_$py, _$pu) { + return _$py.length = _$pu; + } + , _$jH = _$zj + , _$jC = _$P2 + , _$jF = _$zd + , _$jr = _$wR + , _$jq = _$b.GfvgP(_$P6, pW(0x222)) + , _$jt = Math.max + , _$jk = Math.min; + _$b.YzqEA(_$jN, { + 'target': pW(0x214), + 'proto': !(-0x1005 + 0x1 * 0x1852 + -0x1a9 * 0x5), + 'forced': !_$jq + }, { + 'splice': function (_$py, _$pu) { + var dn = pW + , _$pG = dn(0x1b6).split('|') + , _$pT = 0x76 * 0x35 + -0x572 + 0x2d * -0x6c; + while (!![]) { + switch (_$pG[_$pT++]) { + case '0': + var _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI = _$jU(this), _$pj = _$b.ZgYUn(_$jl, _$pI), + _$pO = _$jV(_$py, _$pj), _$pp = arguments.length; + continue; + case '1': + for (-0x116 * -0x17 + -0x2084 + -0x2 * -0x3c5 === _$pp ? _$pM = _$pn = 0x133 * 0x19 + -0x5 * -0x335 + 0x5f * -0x7c : -0x142a + -0x1596 + -0x1 * -0x29c1 === _$pp ? (_$pM = -0x2 * -0x1075 + -0x16cc + -0xa1e, + _$pn = _$pj - _$pO) : (_$pM = _$b.FXFdu(_$pp, 0x819 + 0x1c2f + 0x2 * -0x1223), + _$pn = _$jk(_$jt(_$jK(_$pu), -0x29 * 0xd6 + -0x13ca + 0x3610), _$pj - _$pO)), + _$jH(_$pj + _$pM - _$pn), + _$pJ = _$jC(_$pI, _$pn), + _$pw = 0xfdb + 0x1bf0 + -0x6f * 0x65; _$pw < _$pn; _$pw++) + (_$pe = _$b.ZAEmr(_$pO, _$pw)) in _$pI && _$b.NipqK(_$jF, _$pJ, _$pw, _$pI[_$pe]); + continue; + case '2': + return _$jR(_$pI, _$b.GGZWX(_$pj, _$pn) + _$pM), + _$pJ; + case '3': + for (_$pw = -0x2106 + 0x199a + -0xa * -0xbe; _$pw < _$pM; _$pw++) + _$pI[_$b.NNofL(_$pw, _$pO)] = arguments[_$pw + (0x21e4 + -0x75 * 0x34 + -0x206 * 0x5)]; + continue; + case '4': + if (_$pJ.length = _$pn, + _$b.lyBOK(_$pM, _$pn)) { + for (_$pw = _$pO; _$pw < _$b.YePxx(_$pj, _$pn); _$pw++) + _$po = _$pw + _$pM, + (_$pe = _$b.gnzOf(_$pw, _$pn)) in _$pI ? _$pI[_$po] = _$pI[_$pe] : _$b.KgQYQ(_$jr, _$pI, _$po); + for (_$pw = _$pj; _$pw > _$pj - _$pn + _$pM; _$pw--) + _$jr(_$pI, _$pw - (-0x1e1c + 0x511 + 0x2 * 0xc86)); + } else { + if (_$pM > _$pn) { + for (_$pw = _$pj - _$pn; _$pw > _$pO; _$pw--) + _$po = _$b.JTMNP(_$pw, _$pM) - (-0x62e * -0x5 + 0x186f + 0x1baa * -0x2), + (_$pe = _$pw + _$pn - (-0x61f * 0x1 + -0x88 * 0x1c + 0x1500)) in _$pI ? _$pI[_$po] = _$pI[_$pe] : _$b.qIhvw(_$jr, _$pI, _$po); + } + } + continue; + } + break; + } + } + }); + var _$ji, _$jS = _$Pe(pW(0x214), pW(0x222)), _$jY = _$n, _$jx = _$jS, _$jW = Array.prototype, + _$jD = function (_$py) { + var _$pu = _$py.splice; + return _$py === _$jW || _$jY(_$jW, _$py) && _$pu === _$jW.splice ? _$jx : _$pu; + }, _$O0 = { + 'exports': {} + }, _$O1 = _$z(Object.freeze({ + '__proto__': null, + 'default': {} + })); + + window.HS = _$O0; + + _$O0.exports = (_$ji = _$ji || function (_$py, _$pu) { + var dJ = pW, _$pG = { + 'AOZNM': function (_$pZ, _$pX) { + return _$pZ == _$pX; + }, + 'JiqBJ': function (_$pZ, _$pX) { + return _$pZ != _$pX; + }, + 'MKghx': function (_$pZ, _$pX) { + return _$b.GGZWX(_$pZ, _$pX); + }, + 'rbHUO': function (_$pZ, _$pX) { + return _$pZ >>> _$pX; + }, + 'ljDJl': function (_$pZ, _$pX) { + return _$pZ - _$pX; + }, + 'FPMai': function (_$pZ, _$pX) { + return _$pZ - _$pX; + }, + 'CHkoR': dJ(0x93), + 'HwEcr': dJ(0x185), + 'pPLnd': function (_$pZ, _$pX) { + return _$b.lMAda(_$pZ, _$pX); + }, + 'PUKUr': function (_$pZ, _$pX) { + return _$pZ - _$pX; + }, + 'tjJjO': function (_$pZ, _$pX) { + return _$pZ % _$pX; + }, + 'ekcaX': function (_$pZ, _$pX) { + return _$pZ + _$pX; + } + }, _$pT; + if ('undefined' != typeof window && window.crypto && (_$pT = window.crypto), + !_$pT && 'undefined' != typeof window && window.msCrypto && (_$pT = window.msCrypto), + !_$pT && void (0xb8d * -0x1 + 0xc14 * 0x1 + -0x87) !== _$v && _$v.crypto && (_$pT = _$v.crypto), + !_$pT) + try { + _$pT = _$O1; + } catch (_$pZ) { + } + var _$pM = function () { + var dw = dJ; + if (_$pT) { + if ('function' == typeof _$pT.getRandomValues) + try { + return _$pT.getRandomValues(new Uint32Array(0x8 * 0x358 + -0x1c * 0xc6 + -0x1 * 0x517))[0x1 * -0x2441 + 0x585 * -0x3 + 0x34d * 0x10]; + } catch (_$pX) { + } + if (_$pG.AOZNM('function', typeof _$pT.randomBytes)) + try { + return _$pT.randomBytes(0x6b * 0x49 + 0x1 * 0x1e2d + -0x3cac).readInt32LE(); + } catch (_$ph) { + } + } + throw new Error(dw(0x1de)); + } + , _$pn = Object.create || function () { + function _$pX() { + } + + return function (_$ph) { + var _$pB; + return _$pX.prototype = _$ph, + _$pB = new _$pX(), + _$pX.prototype = null, + _$pB; + } + ; + }() + , _$pJ = {} + , _$pw = _$pJ.lib = {} + , _$pe = _$pw.Base = { + 'extend': function (_$pX) { + var de = dJ + , _$ph = _$pn(this); + return _$pX && _$ph.mixIn(_$pX), + _$ph.hasOwnProperty(de(0xf6)) && this.init !== _$ph.init || (_$ph.init = function () { + _$ph.$super.init.apply(this, arguments); + } + ), + _$ph.init.prototype = _$ph, + _$ph.$super = this, + _$ph; + }, + 'create': function () { + var _$pX = this.extend(); + return _$pX.init.apply(_$pX, arguments), + _$pX; + }, + 'init': function () { + }, + 'mixIn': function (_$pX) { + var dI = dJ; + for (var _$ph in _$pX) + _$pX.hasOwnProperty(_$ph) && (this[_$ph] = _$pX[_$ph]); + _$pX.hasOwnProperty(dI(0x15e)) && (this.toString = _$pX.toString); + }, + 'clone': function () { + return this.init.prototype.extend(this); + } + } + , _$po = _$pw.WordArray = _$pe.extend({ + 'init': function (_$pX, _$ph) { + _$pX = this.words = _$pX || [], + this.sigBytes = _$pG.JiqBJ(_$ph, _$pu) ? _$ph : (0x4bd * -0x6 + -0x28 * -0xe2 + -0x6de) * _$pX.length; + }, + 'toString': function (_$pX) { + return (_$pX || _$pj).stringify(this); + }, + 'concat': function (_$pX) { + var _$ph = this.words + , _$pB = _$pX.words + , _$pQ = this.sigBytes + , _$pE = _$pX.sigBytes; + if (this.clamp(), + _$pQ % (-0x2261 + 0x1a88 + 0x7dd)) + for (var _$pc = -0x3a1 * -0x8 + 0x1 * -0x2689 + 0x981; _$pc < _$pE; _$pc++) { + var _$pL = _$pB[_$b.aZPgy(_$pc, 0x5 * 0x761 + -0x75 * 0x4e + -0x13d)] >>> -0x155 + 0x2 * -0x773 + -0x571 * -0x3 - _$pc % (-0x18b7 + -0x1 * 0x264f + -0x3f0a * -0x1) * (-0x1c5b + 0xe97 + 0xdcc) & 0x91 * -0x20 + 0x4a * -0x60 + 0x2edf; + _$ph[_$pQ + _$pc >>> 0x1929 + -0xedf + -0xa48] |= _$b.OMiac(_$pL, 0x1 * -0x1c3f + -0x7b * 0x13 + 0x8 * 0x4af - _$b.elsKT(_$pQ, _$pc) % (0x20d1 * -0x1 + -0x633 + 0x2708) * (-0x6f8 * -0x1 + -0x23ad + 0x1cbd)); + } + else { + for (_$pc = 0x1c * 0x13a + -0xc4 + 0x4cc * -0x7; _$pc < _$pE; _$pc += 0x1e2a + -0xad + -0x1d79) + _$ph[_$b.Gcjvj(_$pQ, _$pc) >>> -0x2161 + -0x1b4a + 0x3cad * 0x1] = _$pB[_$pc >>> -0x1 * 0x16b2 + -0x1649 + 0x2cfd]; + } + return this.sigBytes += _$pE, + this; + }, + 'clamp': function () { + var _$pX = this.words + , _$ph = this.sigBytes; + _$pX[_$ph >>> -0xd26 + 0x655 * -0x1 + 0x1 * 0x137d] &= _$b.OMiac(-0x4 * 0x25194ffd + 0x45e8393 * -0x49 + -0x52 * -0x8d240d7, -0x20de * -0x1 + -0x20d1 + 0x13 - _$ph % (0x1 * -0x1a05 + -0x449 * -0x4 + 0x2f7 * 0x3) * (0x1 * -0x1e93 + -0x5 * -0x24d + -0x1e * -0xa3)), + _$pX.length = _$py.ceil(_$ph / (-0x173f + -0x1b96 + 0x32d9)); + }, + 'clone': function () { + var _$pX, _$ph = _$pe.clone.call(this); + return _$ph.words = _$Pr(_$pX = this.words).call(_$pX, -0x2f2 + -0x1f99 + -0xef * -0x25), + _$ph; + }, + 'random': function (_$pX) { + for (var _$ph = [], _$pB = -0x1a98 + 0x25 * 0xc5 + -0x1e1; _$pB < _$pX; _$pB += 0x120d * -0x2 + 0x13 * 0x194 + -0x13a * -0x5) + _$ph.push(_$pM()); + return new _$po.init(_$ph, _$pX); + } + }) + , _$pI = _$pJ.enc = {} + , _$pj = _$pI.Hex = { + 'stringify': function (_$pX) { + 'use strict'; + var b = _3wmu0; + var p = _2z3u0; + var _$ph, _$pB, _$pQ, _$pE, _$pc, _$pL; + var y = []; + var j = 0; + var q, s; + l0: for (; ;) { + switch (p[j++]) { + case 1: + y.push(_$pL); + break; + case 3: + _$pL = y[y.length - 1]; + break; + case 4: + q = y.pop(); + y[y.length - 1] += q; + break; + case 6: + y.push(y[y.length - 1]); + y[y.length - 2] = y[y.length - 2][_1tbu0[p[j++]]]; + break; + case 8: + y.push(_$ji); + break; + case 19: + return; + break; + case 20: + y[y.length - 1] = y[y.length - 1].length; + break; + case 27: + y.push(_$ph); + break; + case 30: + _$ph = y[y.length - 1]; + break; + case 31: + y.push(_$jy); + break; + case 32: + return y.pop(); + break; + case 36: + j += p[j]; + break; + case 40: + _$pB = y[y.length - 1]; + break; + case 41: + y.push(_$pX); + break; + case 44: + if (y.pop()) + ++j; + else + j += p[j]; + break; + case 47: + q = y.pop(); + y[y.length - 1] = y[y.length - 1] > q; + break; + case 50: + y.push(Array); + break; + case 56: + _$pc = y[y.length - 1]; + break; + case 57: + y[y.length - 5] = b.call(y[y.length - 5], y[y.length - 4], y[y.length - 3], y[y.length - 2], y[y.length - 1]); + y.length -= 4; + break; + case 64: + _$pQ = y[y.length - 1]; + break; + case 66: + y.push(_$Pr); + break; + case 68: + if (y[y.length - 2] != null) { + y[y.length - 3] = b.call(y[y.length - 3], y[y.length - 2], y[y.length - 1]); + y.length -= 2; + } else { + q = y[y.length - 3]; + y[y.length - 3] = q(y[y.length - 1]); + y.length -= 2; + } + break; + case 70: + y.push(p[j++]); + break; + case 76: + y.push(null); + break; + case 78: + y[y.length - 4] = b.call(y[y.length - 4], y[y.length - 3], y[y.length - 2], y[y.length - 1]); + y.length -= 3; + break; + case 80: + y.pop(); + break; + case 81: + y.push(_$pB); + break; + case 82: + y.push(new Array(p[j++])); + break; + case 83: + y.push(_$pE); + break; + case 84: + _$pE = y[y.length - 1]; + break; + case 87: + y.push(_$pQ); + break; + case 89: + y.push(_$pc); + break; + case 97: + y.push(this); + break; + case 98: + y[y.length - 1] = y[y.length - 1][_1tbu0[p[j++]]]; + break; + } + } + }, + 'parse': function (_$pX) { + for (var _$ph = _$pX.length, _$pB = [], _$pQ = 0x59 * 0x13 + -0x511 + -0x18a; _$pQ < _$ph; _$pQ += 0x1bf * 0x4 + -0x8e1 * 0x1 + -0x1e7 * -0x1) + _$pB[_$pQ >>> 0x2b + -0x1 * 0xc04 + -0x4 * -0x2f7] |= _$jc(_$pX.substr(_$pQ, -0x1ae2 + 0x2 * -0x136e + 0x41c0), -0x1f9e + 0x12 * 0x1be + -0x29 * -0x2) << 0x1 * 0xc28 + 0x23f9 * -0x1 + 0x17e9 - _$pQ % (-0x1271 + 0xeef + 0x38a) * (0x760 + 0x139e + 0xd7d * -0x2); + return new _$po.init(_$pB, _$b.NMiHU(_$ph, -0x1c75 + -0x13b0 + -0x3027 * -0x1)); + }, + 'format': function (_$pX) { + for (var _$ph = _$pX.words, _$pB = _$pX.sigBytes, _$pQ = [], _$pE = -0x13 * -0x144 + 0x1b * -0x16f + 0xea9; _$pE < _$pB; _$pE++) { + var _$pc = _$ph[_$pE >>> 0x1 * 0x2135 + -0x1235 + -0xefe] >>> _$pG.MKghx(0x2 * 0x12e8 + 0x125c + 0x94 * -0x61, _$pE % (-0x1c + 0x2 * -0x4ea + -0x31 * -0x34) * (-0x1235 * -0x1 + 0x21e3 + -0x3410)) & 0xd96 + -0x24fe + 0x1867; + _$pQ.push((_$pc >>> -0x167b + 0x1a * -0x16b + -0x491 * -0xd).toString(-0x20c2 + 0x353 + -0x1 * -0x1d7f)), + _$pQ.push((0x22f6 + -0x1693 + 0x6 * -0x20e & _$pc).toString(-0x14 * -0x11b + -0xe7 * 0x1a + -0x16a * -0x1)); + } + return _$pQ.join(''); + } + }; + _$pI.Utils = { + 'toWordArray': function (_$pX) { + for (var _$ph = [], _$pB = 0x1fb * 0x5 + -0x86d + 0xe * -0x1b; _$pB < _$pX.length; _$pB++) + _$ph[_$pG.rbHUO(_$pB, -0x1 * -0x1593 + 0x12bb * 0x1 + -0x284c)] |= _$pX[_$pB] << _$pG.ljDJl(0x15c3 + 0x155 * 0x5 + -0x1c54, _$pB % (0xa6b + -0x8f * -0x13 + 0x5 * -0x434) * (-0x1 * -0x1d62 + -0x1394 + -0x9c6)); + return _$ji.lib.WordArray.create(_$ph, _$pX.length); + }, + 'fromWordArray': function (_$pX) { + for (var _$ph = new Uint8Array(_$pX.sigBytes), _$pB = -0xb * -0x16 + 0xef1 * 0x1 + -0xfe3; _$pB < _$pX.sigBytes; _$pB++) + _$ph[_$pB] = _$pX.words[_$pB >>> 0x144b + 0x1e25 * 0x1 + -0x326e] >>> _$pG.FPMai(0xc * -0x6a + -0x6af + 0xbbf, _$pB % (0x7 * -0x437 + -0x14b3 + 0x3238) * (-0x40 * -0x31 + -0x15b3 * 0x1 + 0x97b)) & -0xa * 0x37f + -0x1 * -0x337 + 0x20be; + return _$ph; + } + }; + var _$pO = _$pI.Latin1 = { + 'stringify': function (_$pX) { + for (var _$ph = _$pX.words, _$pB = _$pX.sigBytes, _$pQ = [], _$pE = -0x1 * -0x1629 + -0x11ed * -0x1 + -0x140b * 0x2; _$pE < _$pB; _$pE++) { + var _$pc = _$ph[_$pE >>> -0x135e + -0x20dd + 0x343d] >>> 0x105 * -0xd + -0x2 * 0x108d + 0x205 * 0x17 - _$pE % (0x1d46 + -0x280 + 0x5 * -0x55a) * (0x1180 * -0x1 + 0x12e5 * -0x1 + -0x749 * -0x5) & -0x13 + 0x904 + -0x7f2; + _$pQ.push(String.fromCharCode(_$pc)); + } + return _$pQ.join(''); + }, + 'parse': function (_$pX) { + for (var _$ph = _$pX.length, _$pB = [], _$pQ = -0x1ea + 0x9e3 + -0xd * 0x9d; _$pQ < _$ph; _$pQ++) + _$pB[_$b.xOWaG(_$pQ, -0x172d * 0x1 + 0x3 * -0x955 + 0x1 * 0x332e)] |= _$b.wciML(-0x23 * 0x2c + -0xfa * 0x1 + 0x7fd, _$pX.charCodeAt(_$pQ)) << -0x26c2 + -0x1ab * -0x4 + 0x202e - _$pQ % (0x1c1 + 0xd3 * 0x5 + 0x3c * -0x19) * (-0x88c * 0x2 + 0xb09 + 0x617); + return new _$po.init(_$pB, _$ph); + } + } + , _$pp = _$pI.Utf8 = { + 'stringify': function (_$pX) { + try { + return decodeURIComponent(escape(_$pO.stringify(_$pX))); + } catch (_$ph) { + throw new Error(_$pG.CHkoR); + } + }, + 'parse': function (_$pX) { + return _$pO.parse(unescape(_$b.zfqvc(encodeURIComponent, _$pX))); + } + } + , _$pA = _$pw.BufferedBlockAlgorithm = _$pe.extend({ + 'reset': function () { + this._data = new _$po.init(), + this._nDataBytes = 0x20c3 + -0xb * 0x11d + -0x521 * 0x4; + }, + '_append': function (_$pX) { + 'use strict'; + var d = _3wmu0; + var x = _2z3u0; + var dj, _$ph; + var y = []; + var o = 129; + var u, j; + l1: for (; ;) { + switch (x[o++]) { + case 4: + y[y.length - 1] = typeof y[y.length - 1]; + break; + case 6: + y.push(dJ); + break; + case 7: + y.push(y[y.length - 1]); + break; + case 10: + y.push(null); + break; + case 11: + u = y.pop(); + y[y.length - 1] += u; + break; + case 16: + y.pop(); + break; + case 23: + _$ph = y[y.length - 1]; + break; + case 29: + y[y.length - 4] = d.call(y[y.length - 4], y[y.length - 3], y[y.length - 2], y[y.length - 1]); + y.length -= 3; + break; + case 33: + y[y.length - 1] = y[y.length - 1][_1tbu0[9 + x[o++]]]; + break; + case 51: + dj = y[y.length - 1]; + break; + case 52: + y.push(_$ph); + break; + case 54: + if (y[y.length - 1]) { + ++o; + --y.length; + } else + o += x[o]; + break; + case 55: + y.push(dj); + break; + case 57: + if (y[y.length - 2] != null) { + y[y.length - 3] = d.call(y[y.length - 3], y[y.length - 2], y[y.length - 1]); + y.length -= 2; + } else { + u = y[y.length - 3]; + y[y.length - 3] = u(y[y.length - 1]); + y.length -= 2; + } + break; + case 61: + u = y.pop(); + y[y.length - 1] = y[y.length - 1] == u; + break; + case 69: + y[y.length - 2][_1tbu0[9 + x[o++]]] = y[y.length - 1]; + y[y.length - 2] = y[y.length - 1]; + y.length--; + break; + case 70: + y.push(y[y.length - 1]); + y[y.length - 2] = y[y.length - 2][_1tbu0[9 + x[o++]]]; + break; + case 75: + return; + break; + case 77: + y.push(this); + break; + case 78: + y.push(_$pX); + break; + case 79: + _$pX = y[y.length - 1]; + break; + case 82: + y.push(_$pp); + break; + case 87: + y.push(x[o++]); + break; + case 95: + y.push(this[_1tbu0[9 + x[o++]]]); + break; + case 97: + y.push(_$Pp); + break; + } + } + }, + '_process': function (_$pX) { + var _$ph, _$pB = this._data, _$pQ = _$pB.words, _$pE = _$pB.sigBytes, _$pc = this.blockSize, + _$pL = _$pE / ((-0x8e * 0x40 + -0x1 * -0x979 + 0x1a0b) * _$pc), + _$ps = (_$pL = _$pX ? _$py.ceil(_$pL) : _$py.max((-0x1cd9 + 0x1db8 + -0xdf * 0x1 | _$pL) - this._minBufferSize, -0x19c9 + 0xd0d + -0xcbc * -0x1)) * _$pc, + _$pf = _$py.min((-0x1 * -0x1cd + -0x1182 * -0x1 + -0x134b) * _$ps, _$pE); + if (_$ps) { + for (var _$pm = -0x1 * 0xe35 + 0x29d + 0xb98; _$pm < _$ps; _$pm += _$pc) + this._doProcessBlock(_$pQ, _$pm); + _$ph = _$jD(_$pQ).call(_$pQ, 0x1eb * 0x13 + 0xd0e + 0x317f * -0x1, _$ps), + _$pB.sigBytes -= _$pf; + } + return new _$po.init(_$ph, _$pf); + }, + '_eData': function (_$pX) { + 'use strict'; + var y = _3wmu0; + var k = _2z3u0; + var dO; + var o = []; + var u = 179; + var n, m; + l2: for (; ;) { + switch (k[u++]) { + case 5: + o.push(o[o.length - 1]); + o[o.length - 2] = o[o.length - 2][_1tbu0[15 + k[u++]]]; + break; + case 7: + o.push(dJ); + break; + case 14: + o.push(null); + break; + case 17: + if (o[o.length - 2] != null) { + o[o.length - 3] = y.call(o[o.length - 3], o[o.length - 2], o[o.length - 1]); + o.length -= 2; + } else { + n = o[o.length - 3]; + o[o.length - 3] = n(o[o.length - 1]); + o.length -= 2; + } + break; + case 24: + o[o.length - 4] = y.call(o[o.length - 4], o[o.length - 3], o[o.length - 2], o[o.length - 1]); + o.length -= 3; + break; + case 31: + return o.pop(); + break; + case 47: + return; + break; + case 53: + dO = o[o.length - 1]; + break; + case 58: + o.pop(); + break; + case 62: + o.push(k[u++]); + break; + case 69: + o.push(_$Pp); + break; + case 73: + o.push(dO); + break; + case 97: + o.push(_$pX); + break; + } + } + }, + 'clone': function () { + var _$pX = _$pe.clone.call(this); + return _$pX._data = this._data.clone(), + _$pX; + }, + '_minBufferSize': 0x0 + }); + _$pw.Hasher = _$pA.extend({ + 'cfg': _$pe.extend(), + 'init': function (_$pX) { + this.cfg = this.cfg.extend(_$pX), + this.reset(); + }, + 'reset': function () { + _$pA.reset.call(this), + this._doReset(); + }, + 'update': function (_$pX) { + return this._append(_$pX), + this._process(), + this; + }, + 'finalize': function (_$pX) { + var dp = dJ; + return _$pX && (_$b.IMROw(dp(0x140), typeof _$pX) && (_$pX = this._seData(_$pX)), + this._append(_$pX)), + this._doFinalize(); + }, + '_seData': function (_$pX) { + return this._seData1(_$pX); + }, + '_seData1': function (_$pX) { + 'use strict'; + var b = _3wmu0; + var x = _2z3u0; + var _$ph, _$pB, _$pQ, _$pE, _$pc, _$pL, _$ps, _$pf, _$pm, _$pg, _$pN; + var e = []; + var u = 197; + var l, t; + l3: for (; ;) { + switch (x[u++]) { + case 2: + e.push(_$pg++); + break; + case 3: + _$pf = e[e.length - 1]; + break; + case 5: + if (e[e.length - 1]) { + ++u; + --e.length; + } else + u += x[u]; + break; + case 6: + e.push(_$pf); + break; + case 8: + _$pE = e[e.length - 1]; + break; + case 10: + e.push(_1tbu0[16 + x[u++]]); + break; + case 12: + e.push(_$pL); + break; + case 14: + e.push(_$ps); + break; + case 15: + e.push(_$pQ); + break; + case 16: + e.push(_$pE); + break; + case 21: + e.push(_$pm); + break; + case 22: + e.push(_$py); + break; + case 23: + e.push(_$pN); + break; + case 24: + return; + break; + case 29: + _$pL = e[e.length - 1]; + break; + case 31: + e[e.length - 1] = e[e.length - 1].length; + break; + case 34: + if (e.pop()) + ++u; + else + u += x[u]; + break; + case 37: + _$pc = e[e.length - 1]; + break; + case 38: + _$pg = e[e.length - 1]; + break; + case 39: + e[e.length - 1] = e[e.length - 1][_1tbu0[16 + x[u++]]]; + break; + case 40: + e.push(_$ph); + break; + case 44: + e.push(_$pg); + break; + case 46: + if (e.pop()) + u += x[u]; + else + ++u; + break; + case 52: + l = e.pop(); + e[e.length - 1] = e[e.length - 1] === l; + break; + case 54: + e.push(_$pc); + break; + case 58: + e.push(new Array(x[u++])); + break; + case 59: + e.push(x[u++]); + break; + case 67: + _$pB = e[e.length - 1]; + break; + case 68: + e.push(_$pB); + break; + case 72: + l = e.pop(); + e[e.length - 1] = e[e.length - 1] < l; + break; + case 73: + u += x[u]; + break; + case 74: + e.push(e[e.length - 1]); + e[e.length - 2] = e[e.length - 2][_1tbu0[16 + x[u++]]]; + break; + case 77: + return e.pop(); + break; + case 78: + _$ph = e[e.length - 1]; + break; + case 80: + e.push(_$pG); + break; + case 81: + e.push(_$pL++); + break; + case 86: + _$pN = e[e.length - 1]; + break; + case 87: + e.push(_$pX); + break; + case 89: + if (e[e.length - 2] != null) { + e[e.length - 3] = b.call(e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 2; + } else { + l = e[e.length - 3]; + e[e.length - 3] = l(e[e.length - 1]); + e.length -= 2; + } + break; + case 90: + l = e.pop(); + e[e.length - 1] += l; + break; + case 91: + l = e.pop(); + e[e.length - 1] *= l; + break; + case 93: + _$pm = e[e.length - 1]; + break; + case 94: + e.pop(); + break; + case 95: + e[e.length - 4] = b.call(e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 3; + break; + case 96: + _$pQ = e[e.length - 1]; + break; + case 97: + _$ps = e[e.length - 1]; + break; + } + } + }, + 'blockSize': 0x10, + '_createHelper': function (_$pX) { + return function (_$ph, _$pB) { + return new _$pX.init(_$pB).finalize(_$ph); + } + ; + }, + '_createHmacHelper': function (_$pX) { + return function (_$ph, _$pB) { + return new _$pd.HMAC.init(_$pX, _$pB).finalize(_$ph); + } + ; + } + }); + var _$pd = _$pJ.algo = {}; + return _$pJ; + }(Math), + _$ji), + function (_$py, _$pu) { + var _$pG = { + 'TJEDa': function (_$pT, _$pM) { + return _$b.wciML(_$pT, _$pM); + }, + 'PWvTk': function (_$pT, _$pM) { + return _$b.xOWaG(_$pT, _$pM); + }, + 'KDfHh': function (_$pT, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI) { + return _$pT(_$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI); + }, + 'VYzIU': function (_$pT, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI) { + return _$pT(_$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI); + }, + 'jfoPY': function (_$pT, _$pM) { + return _$b.eXLBO(_$pT, _$pM); + } + }; + _$py.exports = function (_$pT) { + var dA = a0a1b0cv + , _$pM = { + 'oODWN': function (_$pn, _$pJ) { + return _$pn | _$pJ; + }, + 'ShEuy': function (_$pn, _$pJ) { + return _$pG.TJEDa(_$pn, _$pJ); + }, + 'zKaFm': function (_$pn, _$pJ) { + return _$pG.PWvTk(_$pn, _$pJ); + }, + 'CZAUG': function (_$pn, _$pJ) { + return _$pn + _$pJ; + }, + 'CsMym': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pG.KDfHh(_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'jRAiP': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'PqZLa': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'GcaVJ': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'GxdjV': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'qZndL': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pG.VYzIU(_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'VCGWV': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'CteVf': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'kkZcf': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'wruQh': function (_$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO) { + return _$pn(_$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO); + }, + 'IUkDZ': function (_$pn, _$pJ) { + return _$pG.jfoPY(_$pn, _$pJ); + }, + 'zEuxT': dA(0xfa), + 'Fxust': function (_$pn, _$pJ) { + return _$pn / _$pJ; + }, + 'iQzQG': function (_$pn, _$pJ) { + return _$pn | _$pJ; + } + }; + return function (_$pn) { + var _$pJ = { + 'yhLwH': function (_$ph, _$pB) { + return _$ph + _$pB; + }, + 'meWQd': function (_$ph, _$pB) { + return _$ph >>> _$pB; + }, + 'ZijJc': function (_$ph, _$pB) { + return _$pM.Fxust(_$ph, _$pB); + }, + 'yUswZ': function (_$ph, _$pB) { + return _$ph | _$pB; + }, + 'HzZzL': function (_$ph, _$pB) { + return _$ph | _$pB; + }, + 'buwee': function (_$ph, _$pB) { + return _$pM.iQzQG(_$ph, _$pB); + }, + 'pSLUS': function (_$ph, _$pB) { + return _$ph | _$pB; + }, + 'DNKps': function (_$ph, _$pB) { + return _$ph << _$pB; + }, + 'edYYA': function (_$ph, _$pB) { + return _$ph >>> _$pB; + }, + 'GqgpG': function (_$ph, _$pB) { + return _$ph + _$pB; + }, + 'KLLHY': function (_$ph, _$pB) { + return _$ph | _$pB; + } + } + , _$pw = _$pT + , _$pe = _$pw.lib + , _$po = _$pe.WordArray + , _$pI = _$pe.Hasher + , _$pj = _$pw.algo + , _$pO = []; + !function () { + for (var _$ph = 0x2 * -0x21a + 0x1d6 * 0x7 + -0x8a6; _$ph < 0x174a + 0x2 * -0x1362 + 0xfba; _$ph++) + _$pO[_$ph] = (0x1876030b0 + 0x17c14dad0 + -0x203750b80) * _$pn.abs(_$pn.sin(_$pJ.yhLwH(_$ph, 0x10ce + 0x1735 + -0x2802))) | 0x1c51 + -0x776 + -0x13 * 0x119; + }(); + var _$pp = _$pj.MD5 = _$pI.extend({ + '_doReset': function () { + this._hash = new _$po.init([-0xb89f677c + -0xaba2 * 0x890d + 0x4973 * 0x52bad, -0xefcd6025 + 0x7be9b034 + 0x163b15b7a, -0xf1f2f822 + 0x639515d1 * -0x1 + 0x1ee42eaf1, -0x1af253e + -0x312fe3 * -0x9d + -0xc48e483]); + }, + '_doProcessBlock': function (_$ph, _$pB) { + for (var _$pQ = -0x595 * 0x3 + -0xb40 + 0x1bff; _$pQ < -0x25 * -0xad + 0x270e + 0x7f * -0x81; _$pQ++) { + var _$pE = _$pB + _$pQ + , _$pc = _$ph[_$pE]; + _$ph[_$pE] = _$pM.oODWN(0x9b744b * 0x3 + 0xb30b1e + 0x30cce0 * -0x8 & (_$pc << -0xe0d + 0x2b * 0xb7 + 0x1a * -0xa4 | _$pc >>> 0x900 + 0x25dc + -0x2ec4), _$pM.ShEuy(0xc1082730 * -0x2 + -0x6c510c3 + 0x5 * 0x81914607, _$pc << -0x136b + -0x1 * -0x2135 + -0x1 * 0xdb2 | _$pM.zKaFm(_$pc, 0x308 * -0x2 + 0x36 * 0x5 + 0x50a))); + } + var _$pL = this._hash.words + , _$ps = _$ph[_$pB + (0x81 * 0x2b + -0xb82 + -0x11 * 0x99)] + , _$pf = _$ph[_$pB + (0x10b8 + -0x36c + -0xd4b)] + , _$pm = _$ph[_$pB + (-0x952 * -0x2 + -0x5e * -0x65 + -0x37b8)] + , _$pg = _$ph[_$pM.CZAUG(_$pB, 0x1 * -0x521 + 0x1 * -0x1cf + 0x1 * 0x6f3)] + , _$pN = _$ph[_$pB + (-0xfac + -0x6 * -0x1bc + -0x4 * -0x152)] + , _$pU = _$ph[_$pB + (-0x2671 + -0x19e * -0x15 + 0x480)] + , _$pV = _$ph[_$pB + (-0x2409 + -0x13dc + -0x37eb * -0x1)] + , _$pK = _$ph[_$pB + (-0x2ff + 0xd * -0xcb + -0x1 * -0xd55)] + , _$pl = _$ph[_$pB + (-0x192d + -0x1133 + -0x2a68 * -0x1)] + , _$pR = _$ph[_$pB + (0x25f1 + 0xe9b * -0x1 + -0x174d * 0x1)] + , _$pH = _$ph[_$pB + (0xd3a * -0x1 + 0x20be + -0x3 * 0x67e)] + , _$pC = _$ph[_$pB + (-0x1cd5 * 0x1 + -0x1401 + 0x81 * 0x61)] + , _$pF = _$ph[_$pB + (0x1568 + -0x1 * -0xfa5 + -0x2501)] + , _$pr = _$ph[_$pB + (0x3 * 0x5bf + 0xfa5 + -0x29 * 0xcd)] + , _$pq = _$ph[_$pB + (0xcd5 + -0xd4b + 0x6 * 0x16)] + , _$pt = _$ph[_$pB + (-0xf3b + 0x1 * 0x2581 + -0x1637 * 0x1)] + , _$pk = _$pL[-0x22eb + 0x1144 + -0x11a7 * -0x1] + , _$pi = _$pL[0x488 + 0x1 * 0x25d7 + 0x13f * -0x22] + , _$pS = _$pL[0x2 * 0x114a + 0x10a9 + -0x333b] + , _$pY = _$pL[-0x40a * 0x4 + 0xc47 + 0x1f2 * 0x2]; + _$pk = _$pA(_$pk, _$pi, _$pS, _$pY, _$ps, -0x1 * 0x8bd + -0x21fc + 0x2ac0, _$pO[-0xc * 0x287 + -0xd11 + 0x2b65 * 0x1]), + _$pY = _$pA(_$pY, _$pk, _$pi, _$pS, _$pf, -0x1f70 + 0x2 * 0x872 + 0x1d3 * 0x8, _$pO[0x17b4 + -0x23c7 + 0xc14]), + _$pS = _$pA(_$pS, _$pY, _$pk, _$pi, _$pm, -0x1 * 0x26ee + -0x18f2 + 0x3ff1 * 0x1, _$pO[-0x1476 + 0x21da + -0x6 * 0x23b]), + _$pi = _$pA(_$pi, _$pS, _$pY, _$pk, _$pg, -0xf8 * 0x5 + 0x10 * -0x1f6 + -0x2 * -0x1227, _$pO[0x1d57 + 0x10c9 + 0x5 * -0x939]), + _$pk = _$pA(_$pk, _$pi, _$pS, _$pY, _$pN, 0x1 * -0xeaa + 0x1ea3 + 0xd * -0x13a, _$pO[-0x1000 + 0x1f86 + -0xf82]), + _$pY = _$pA(_$pY, _$pk, _$pi, _$pS, _$pU, 0x177d + -0xd06 * -0x1 + 0x74b * -0x5, _$pO[-0x14e * 0x13 + -0x1 * -0x506 + 0x13c9]), + _$pS = _$pM.CsMym(_$pA, _$pS, _$pY, _$pk, _$pi, _$pV, 0x508 + 0x161a + -0x1b11, _$pO[0x2482 + -0x1 * -0x557 + -0x29d3]), + _$pi = _$pM.jRAiP(_$pA, _$pi, _$pS, _$pY, _$pk, _$pK, 0x1 * 0x193a + 0x7ee + -0x2112, _$pO[0x5e1 + 0x897 * -0x2 + 0xb54]), + _$pk = _$pM.PqZLa(_$pA, _$pk, _$pi, _$pS, _$pY, _$pl, -0x1 * -0x1665 + 0x44 * -0x34 + -0x88e, _$pO[0x1623 + 0x520 + -0x1b3b]), + _$pY = _$pM.CsMym(_$pA, _$pY, _$pk, _$pi, _$pS, _$pR, 0x1b1 * 0xd + -0x1 * 0x1be6 + 0x5f5, _$pO[0x12 * 0x4c + 0x63 * -0x24 + 0xf5 * 0x9]), + _$pS = _$pA(_$pS, _$pY, _$pk, _$pi, _$pH, 0x1517 + -0x1 * -0xae7 + -0x1fed, _$pO[0x63a + -0x1 * 0x1eef + 0x389 * 0x7]), + _$pi = _$pA(_$pi, _$pS, _$pY, _$pk, _$pC, -0x730 + 0x13b8 * -0x1 + 0x1afe, _$pO[0x18e1 + -0x169 * 0x15 + 0x4c7]), + _$pk = _$pA(_$pk, _$pi, _$pS, _$pY, _$pF, 0xda4 + 0x12a5 + -0x2042, _$pO[0x1aaf * 0x1 + 0x1 * 0x470 + -0x1f13]), + _$pY = _$pA(_$pY, _$pk, _$pi, _$pS, _$pr, -0xd * -0x57 + 0xa * 0x355 + -0x25b1, _$pO[0x140d + 0xfa4 + -0x2 * 0x11d2]), + _$pS = _$pA(_$pS, _$pY, _$pk, _$pi, _$pq, -0x548 + 0x444 + 0x115 * 0x1, _$pO[0x830 + -0x225d * 0x1 + -0x53f * -0x5]), + _$pk = _$pd(_$pk, _$pi = _$pA(_$pi, _$pS, _$pY, _$pk, _$pt, -0x709 * 0x2 + -0xc9 * 0xe + -0x1 * -0x1926, _$pO[-0x286 * -0x1 + 0x1 * -0x1bc5 + -0x1 * -0x194e]), _$pS, _$pY, _$pf, -0x6 * -0x119 + 0x5 * 0xfa + -0x1 * 0xb73, _$pO[-0x19ab + -0x1 * -0x147d + -0x3d * -0x16]), + _$pY = _$pd(_$pY, _$pk, _$pi, _$pS, _$pV, -0x374 + -0xd * 0x77 + -0x1 * -0x988, _$pO[-0x1 * -0xf2b + -0x23b2 + 0x526 * 0x4]), + _$pS = _$pd(_$pS, _$pY, _$pk, _$pi, _$pC, 0x1c64 + -0x1156 + 0x1 * -0xb00, _$pO[0x2eb * -0x9 + -0x1e71 + 0x38c6]), + _$pi = _$pd(_$pi, _$pS, _$pY, _$pk, _$ps, -0x19d4 + 0x11bf + 0x829, _$pO[0x83 * -0x25 + -0x18d9 + 0x2bdb]), + _$pk = _$pM.PqZLa(_$pd, _$pk, _$pi, _$pS, _$pY, _$pU, 0xdc7 + -0x31 * 0xb2 + 0x28 * 0x82, _$pO[-0x21e5 * 0x1 + -0x7f * 0xe + 0x28eb]), + _$pY = _$pM.GcaVJ(_$pd, _$pY, _$pk, _$pi, _$pS, _$pH, 0x1478 + -0xd4 + -0x139b, _$pO[0x13d0 + 0x9e * 0xd + 0xf5 * -0x1d]), + _$pS = _$pM.GxdjV(_$pd, _$pS, _$pY, _$pk, _$pi, _$pt, 0x1e05 + 0x203b + -0x3e32, _$pO[0x1c1a + 0x16d4 + 0x4 * -0xcb6]), + _$pi = _$pM.qZndL(_$pd, _$pi, _$pS, _$pY, _$pk, _$pN, 0x349 + 0x188 * -0x11 + 0x16d3 * 0x1, _$pO[-0x5 * 0x317 + -0x1 * -0x2598 + -0x1 * 0x160e]), + _$pk = _$pd(_$pk, _$pi, _$pS, _$pY, _$pR, -0x1218 + -0x3 * -0xc54 + -0x12df, _$pO[-0xde * -0xd + 0xd07 + 0x1 * -0x1835]), + _$pY = _$pd(_$pY, _$pk, _$pi, _$pS, _$pq, 0x58a * 0x2 + 0x1 * 0xf5 + -0x10 * 0xc0, _$pO[-0xa92 * -0x2 + 0x74b * -0x5 + 0xf6c]), + _$pS = _$pd(_$pS, _$pY, _$pk, _$pi, _$pg, 0x26d1 + -0x3d * 0x25 + -0x1df2, _$pO[0x288 * -0x9 + 0x2 * 0xe17 + 0x1 * -0x54c]), + _$pi = _$pM.GcaVJ(_$pd, _$pi, _$pS, _$pY, _$pk, _$pl, 0x1f9e + -0x506 * 0x1 + -0x1a84, _$pO[-0x53b * 0x7 + 0x1 * -0xb2 + 0x256a]), + _$pk = _$pd(_$pk, _$pi, _$pS, _$pY, _$pr, -0x707 * -0x4 + -0x1a95 + -0x182, _$pO[0x92b + -0x209e + 0x178f]), + _$pY = _$pM.VCGWV(_$pd, _$pY, _$pk, _$pi, _$pS, _$pm, -0xc01 + -0x1 * 0x1c78 + -0x1 * -0x2882, _$pO[0x139 * -0x7 + -0x1ba1 + 0x244d]), + _$pS = _$pd(_$pS, _$pY, _$pk, _$pi, _$pK, -0x14bd + 0xe47 * 0x1 + 0x684, _$pO[-0x102a + 0x13c5 + -0x2f * 0x13]), + _$pk = _$pZ(_$pk, _$pi = _$pd(_$pi, _$pS, _$pY, _$pk, _$pF, -0x1339 * -0x2 + -0x357 * -0x7 + -0x3dbf, _$pO[-0x72f * -0x3 + 0xd * -0xa9 + -0xb * 0x12b]), _$pS, _$pY, _$pU, -0x188e + 0x1b * -0xdf + 0x3017, _$pO[0x16 * -0x41 + -0x1 * -0x100a + -0xa54]), + _$pY = _$pZ(_$pY, _$pk, _$pi, _$pS, _$pl, 0x17c4 + -0x2453 + 0xc9a, _$pO[0xfc6 + -0xa * 0x3d1 + 0x1685]), + _$pS = _$pZ(_$pS, _$pY, _$pk, _$pi, _$pC, -0x48 * 0x83 + -0x14f8 + 0x39e0, _$pO[-0x162c + -0xf9 * -0x4 + 0x1 * 0x126a]), + _$pi = _$pM.CteVf(_$pZ, _$pi, _$pS, _$pY, _$pk, _$pq, 0x2c7 + -0x160e + 0x135e, _$pO[-0xb60 + 0xf * -0xda + 0x1849]), + _$pk = _$pZ(_$pk, _$pi, _$pS, _$pY, _$pf, 0x56c + 0x193e + -0x1ea6, _$pO[-0x2 * -0x12a3 + -0xbe + -0x2464]), + _$pY = _$pZ(_$pY, _$pk, _$pi, _$pS, _$pN, 0x17fa + 0x1 * -0x1b73 + 0x2d * 0x14, _$pO[0x239b + -0x190b + -0xa6b]), + _$pS = _$pZ(_$pS, _$pY, _$pk, _$pi, _$pK, -0x14c4 + -0x607 + 0x1adb, _$pO[0x224f + 0x1243 * 0x2 + -0x46af]), + _$pi = _$pZ(_$pi, _$pS, _$pY, _$pk, _$pH, 0x2469 + -0x3 * 0xb33 + -0x2b9, _$pO[0x47 * -0x83 + 0x575 * -0x5 + -0x3fc5 * -0x1]), + _$pk = _$pZ(_$pk, _$pi, _$pS, _$pY, _$pr, 0x241 * -0xd + -0x138b * -0x1 + 0x9c6, _$pO[0xe28 + -0x20fb + -0x12fb * -0x1]), + _$pY = _$pZ(_$pY, _$pk, _$pi, _$pS, _$ps, 0xee5 + -0x175d + 0x883, _$pO[-0xf5b + 0x1b0 + 0x375 * 0x4]), + _$pS = _$pZ(_$pS, _$pY, _$pk, _$pi, _$pg, 0x25 * 0xad + -0x72f * 0x1 + -0x11c2, _$pO[-0x1632 * 0x1 + 0xa97 * 0x3 + -0x969]), + _$pi = _$pZ(_$pi, _$pS, _$pY, _$pk, _$pV, 0x1 * -0x95f + 0x1d38 + -0x9 * 0x232, _$pO[-0x1f9d + -0x96 + 0x205e]), + _$pk = _$pZ(_$pk, _$pi, _$pS, _$pY, _$pR, -0x6d * -0x4d + 0x1235 + -0x32fa, _$pO[0x6a6 * -0x5 + 0x1973 + 0x7f7 * 0x1]), + _$pY = _$pM.CteVf(_$pZ, _$pY, _$pk, _$pi, _$pS, _$pF, -0x1 * 0x2057 + -0xaa1 * -0x3 + 0x1 * 0x7f, _$pO[0x22 * -0x8d + -0x228f + 0x3576]), + _$pS = _$pZ(_$pS, _$pY, _$pk, _$pi, _$pt, 0x5f * -0x5 + -0x16fe + -0x7 * -0x38f, _$pO[0x1ef + 0x1 * 0x16fd + -0x18be]), + _$pk = _$pX(_$pk, _$pi = _$pM.kkZcf(_$pZ, _$pi, _$pS, _$pY, _$pk, _$pm, 0x21da + -0x1 * 0x18ee + -0x8d5, _$pO[-0x596 + -0x1601 + -0x1 * -0x1bc6]), _$pS, _$pY, _$ps, -0x15df + -0xd * -0x26b + -0x98a, _$pO[0x6fe + 0xaad + -0x5 * 0x37f]), + _$pY = _$pX(_$pY, _$pk, _$pi, _$pS, _$pK, 0x193 * 0x14 + -0xf8a + -0xfe8, _$pO[0x26d6 + 0x829 * -0x1 + -0x1e7c]), + _$pS = _$pM.VCGWV(_$pX, _$pS, _$pY, _$pk, _$pi, _$pq, 0x2 * -0x878 + -0x1fcd + 0x30cc, _$pO[0xd * 0x238 + 0x15ea + -0x3290]), + _$pi = _$pX(_$pi, _$pS, _$pY, _$pk, _$pU, -0x114e + 0x246d + -0x130a, _$pO[-0x145a + 0x1fdc + -0xb4f * 0x1]), + _$pk = _$pX(_$pk, _$pi, _$pS, _$pY, _$pF, -0x9ae + -0x1a6a + 0x241e, _$pO[0x1ed + 0x503 + -0x6bc]), + _$pY = _$pX(_$pY, _$pk, _$pi, _$pS, _$pg, 0xaaf + 0x1ebf + 0x2 * -0x14b2, _$pO[0xab3 + 0x16 * -0x115 + 0xd50]), + _$pS = _$pX(_$pS, _$pY, _$pk, _$pi, _$pH, -0x8f5 * -0x3 + -0xe7b * 0x2 + 0x19 * 0x16, _$pO[0xd08 + 0x2162 * 0x1 + -0x2e34]), + _$pi = _$pM.wruQh(_$pX, _$pi, _$pS, _$pY, _$pk, _$pf, 0x2 * 0x56c + -0x56 * -0x3b + -0x1e95, _$pO[-0x189a + 0x5a8 * 0x1 + 0x1329 * 0x1]), + _$pk = _$pX(_$pk, _$pi, _$pS, _$pY, _$pl, 0x2 * 0x600 + -0x8 * 0x2de + 0xaf6, _$pO[0x22 * -0x79 + 0x2 * 0x3cd + -0x8b0 * -0x1]), + _$pY = _$pX(_$pY, _$pk, _$pi, _$pS, _$pt, -0x24b * 0x9 + -0x3d2 * 0xa + 0x3ae1, _$pO[-0x2284 + -0x1776 + 0x13d * 0x2f]), + _$pS = _$pX(_$pS, _$pY, _$pk, _$pi, _$pV, 0x1cd7 + 0x479 * 0x7 + 0x3c17 * -0x1, _$pO[0x1eda + -0x1 * -0x132c + -0x31cc]), + _$pi = _$pX(_$pi, _$pS, _$pY, _$pk, _$pr, -0x6 * 0x4c7 + 0x1b36 + 0x189, _$pO[-0x1a * 0x11d + 0xa61 * 0x3 + 0xfb * -0x2]), + _$pk = _$pX(_$pk, _$pi, _$pS, _$pY, _$pN, 0x1 * 0xc9b + 0x1 * -0x21f2 + 0x155d, _$pO[-0x1025 + 0x171 * -0x7 + 0x1a78]), + _$pY = _$pX(_$pY, _$pk, _$pi, _$pS, _$pC, -0x1772 * 0x1 + -0x39a * 0x8 + 0x344c * 0x1, _$pO[0x1106 + 0x1f50 + 0x6df * -0x7]), + _$pS = _$pX(_$pS, _$pY, _$pk, _$pi, _$pm, 0x2 * -0x367 + 0xd12 + -0x635, _$pO[-0x138 + 0x1 * 0x1f3d + -0x1dc7]), + _$pi = _$pX(_$pi, _$pS, _$pY, _$pk, _$pR, -0x1b * -0x14b + 0xbb9 + -0x2e8d, _$pO[-0xc71 + -0x2 * 0xbe9 + 0x2482 * 0x1]), + _$pL[0xe9d + 0xe9 * -0x13 + 0x2ae] = _$pL[-0x1 * 0x3d + -0x2cd + 0x30a * 0x1] + _$pk | 0x19ff + 0x93a * -0x1 + 0x3 * -0x597, + _$pL[0x43c * 0x1 + 0x2 * -0xbc4 + 0xb7 * 0x1b] = _$pL[0x3da * 0x8 + -0x7c0 * 0x4 + 0x31 * 0x1] + _$pi | 0x1e50 + -0x144 + 0x8f * -0x34, + _$pL[0x7fb + -0x2 * -0x738 + -0x1669 * 0x1] = _$pL[0x1748 + -0x33a * -0x5 + 0x34 * -0xc2] + _$pS | 0x12b8 + 0x1 * -0xbbd + 0x1 * -0x6fb, + _$pL[0x1 * -0x413 + 0x683 + -0x26d] = _$pM.IUkDZ(_$pL[-0xbcb + 0x2 * -0xc61 + -0x618 * -0x6] + _$pY, -0xbf * -0xc + -0x1 * 0x19d + -0x757); + }, + '_doFinalize': function () { + var _$ph = this._data + , _$pB = _$ph.words + , _$pQ = (0x162f + -0x31 * -0x59 + -0xb * 0x390) * this._nDataBytes + , _$pE = (-0x1 * 0x524 + -0x8be + 0x89 * 0x1a) * _$ph.sigBytes; + _$pB[_$pJ.meWQd(_$pE, 0x1c1 * 0x9 + 0xd * -0x133 + -0x2d)] |= 0x2164 + -0x7f + -0x1 * 0x2065 << 0x24fd + -0x20df + 0x67 * -0xa - _$pE % (-0xb3 * 0x1 + -0x1ead * -0x1 + -0x1dda); + var _$pc = _$pn.floor(_$pJ.ZijJc(_$pQ, -0x2 * -0x2bf7fb6a + 0x4ebde80 * -0x3b + 0x1ca6c50ac)) + , _$pL = _$pQ; + _$pB[-0x5d3 * 0x3 + 0x1 * 0x1521 + 0x1 * -0x399 + (_$pJ.meWQd(_$pE + (-0x1 * -0x267f + 0x37a * -0x2 + 0x1 * -0x1f4b), 0x1 * 0x67b + 0x1 * 0xdd3 + -0x1445 * 0x1) << 0x9d3 + 0xf71 + 0x20 * -0xca)] = _$pJ.yUswZ(-0x17480e4 + -0xae205f * 0x1 + 0x321a242 & (_$pc << -0x1f9 + -0xb2a + 0xd2b | _$pc >>> 0x1 * -0x17cb + 0x1 * 0xd3 + -0x30 * -0x7b), 0x15b1bc532 + -0xf1ed84ee + 0x95d2bebc * 0x1 & _$pJ.HzZzL(_$pc << 0x664 * -0x2 + -0x1b7 + 0xe97, _$pc >>> -0x235e + -0x412 * 0x1 + 0x2778)), + _$pB[-0x1 * 0x1e94 + 0x19a3 + 0x4ff + (_$pE + (0xc61 + 0x1 * -0x997 + 0x28a * -0x1) >>> 0x41b * -0x7 + 0x45 * -0x7f + 0x3f01 * 0x1 << -0x1da2 + -0x3b * -0x9 + 0x1b93)] = _$pJ.buwee(-0x15dbb78 + -0x5e * 0xf0fc + 0x2b538ff & (_$pL << -0xa1f + -0x232c + 0x29 * 0x11b | _$pL >>> 0x235d + -0xad4 + -0x1871 * 0x1), 0x117cfed9 + 0x23 * -0xc45d999 + 0x29b10c012 * 0x1 & (_$pL << 0x1822 + -0x1e73 + 0x1 * 0x669 | _$pL >>> -0x191b + 0x6ed * -0x3 + -0x28d * -0x12)), + _$ph.sigBytes = (0x8d8 + 0xfad * -0x1 + 0x6d9) * _$pJ.yhLwH(_$pB.length, -0x1b6e + 0x2539 + 0x166 * -0x7), + this._process(); + for (var _$ps = this._hash, _$pf = _$ps.words, _$pm = -0x2229 + 0x25 * 0x1f + -0xed7 * -0x2; _$pm < 0x239 * -0x2 + 0x10 + -0x2 * -0x233; _$pm++) { + var _$pg = _$pf[_$pm]; + _$pf[_$pm] = _$pJ.pSLUS(0x13 * -0x34613 + -0xf7bc9a + 0x234f102 & (_$pJ.DNKps(_$pg, -0x177 * -0x4 + 0x2509 + -0x2add) | _$pg >>> 0x25aa + -0x7 * 0x5 + -0x256f), 0xf2f89843 + 0x32 * -0x623935a + -0x1b00f25 * -0xbd & (_$pg << -0xdaa + 0x2085 + -0x12c3 | _$pJ.edYYA(_$pg, -0x29 * -0x52 + -0x1b21 + 0x18f * 0x9))); + } + return _$ps; + }, + '_eData': function (_$ph) { + 'use strict'; + var a = _3wmu0; + var l = _2z3u0; + var dd; + var u = []; + var x = 377; + var c, s; + l4: for (; ;) { + switch (l[x++]) { + case 1: + u.pop(); + break; + case 5: + return; + break; + case 7: + u.push(_$ph); + break; + case 10: + return u.pop(); + break; + case 11: + u.push(a0a1b0cv); + break; + case 14: + x += l[x]; + break; + case 21: + dd = u[u.length - 1]; + break; + case 26: + u.push(null); + break; + case 28: + u.push(u[u.length - 1]); + u[u.length - 2] = u[u.length - 2][_1tbu0[27 + l[x++]]]; + break; + case 33: + u.push(dd); + break; + case 37: + u.push(_$j5); + break; + case 43: + c = u.pop(); + u[u.length - 1] += c; + break; + case 47: + u.push(l[x++]); + break; + case 58: + c = u.pop(); + u[u.length - 1] = u[u.length - 1] === c; + break; + case 59: + u.push(_$Pp); + break; + case 62: + if (u[u.length - 2] != null) { + u[u.length - 3] = a.call(u[u.length - 3], u[u.length - 2], u[u.length - 1]); + u.length -= 2; + } else { + c = u[u.length - 3]; + u[u.length - 3] = c(u[u.length - 1]); + u.length -= 2; + } + break; + case 72: + if (u.pop()) + ++x; + else + x += l[x]; + break; + case 78: + u.push(_$pM); + break; + case 84: + u[u.length - 4] = a.call(u[u.length - 4], u[u.length - 3], u[u.length - 2], u[u.length - 1]); + u.length -= 3; + break; + case 85: + u[u.length - 1] = u[u.length - 1][_1tbu0[27 + l[x++]]]; + break; + } + } + }, + 'clone': function () { + var _$ph = _$pI.clone.call(this); + return _$ph._hash = this._hash.clone(), + _$ph; + }, + '_seData': function (_$ph) { + 'use strict'; + var p = _3wmu0; + var g = _2z3u0; + var dZ; + var c = []; + var b = 425; + var y, s; + l5: for (; ;) { + switch (g[b++]) { + case 5: + if (c[c.length - 2] != null) { + c[c.length - 3] = p.call(c[c.length - 3], c[c.length - 2], c[c.length - 1]); + c.length -= 2; + } else { + y = c[c.length - 3]; + c[c.length - 3] = y(c[c.length - 1]); + c.length -= 2; + } + break; + case 11: + c[c.length - 4] = p.call(c[c.length - 4], c[c.length - 3], c[c.length - 2], c[c.length - 1]); + c.length -= 3; + break; + case 16: + c.push(_$j5); + break; + case 30: + y = c.pop(); + c[c.length - 1] += y; + break; + case 48: + b += g[b]; + break; + case 51: + dZ = c[c.length - 1]; + break; + case 53: + c.push(dZ); + break; + case 57: + c.push(a0a1b0cv); + break; + case 61: + c.push(c[c.length - 1]); + c[c.length - 2] = c[c.length - 2][_1tbu0[30 + g[b++]]]; + break; + case 62: + c.pop(); + break; + case 63: + c.push(g[b++]); + break; + case 73: + y = c.pop(); + c[c.length - 1] = c[c.length - 1] === y; + break; + case 75: + c.push(_$ph); + break; + case 77: + return c.pop(); + break; + case 81: + c.push(null); + break; + case 87: + if (c.pop()) + ++b; + else + b += g[b]; + break; + case 91: + return; + break; + case 95: + c.push(this); + break; + } + } + } + }); + + function _$pA(_$ph, _$pB, _$pQ, _$pE, _$pc, _$pL, _$ps) { + var _$pf = _$pM.CZAUG(_$ph + (_$pB & _$pQ | ~_$pB & _$pE) + _$pc, _$ps); + return (_$pf << _$pL | _$pf >>> -0x1568 + -0x26ec + -0x92 * -0x6a - _$pL) + _$pB; + } + + function _$pd(_$ph, _$pB, _$pQ, _$pE, _$pc, _$pL, _$ps) { + var _$pf = _$pJ.GqgpG(_$ph + _$pJ.KLLHY(_$pB & _$pE, _$pQ & ~_$pE), _$pc) + _$ps; + return (_$pf << _$pL | _$pf >>> 0x151a + -0x116f * 0x1 + -0x38b * 0x1 - _$pL) + _$pB; + } + + function _$pZ(_$ph, _$pB, _$pQ, _$pE, _$pc, _$pL, _$ps) { + var _$pf = _$pM.CZAUG(_$ph + (_$pB ^ _$pQ ^ _$pE) + _$pc, _$ps); + return (_$pf << _$pL | _$pf >>> 0xd85 * -0x1 + -0x1a67 + 0x2 * 0x1406 - _$pL) + _$pB; + } + + function _$pX(_$ph, _$pB, _$pQ, _$pE, _$pc, _$pL, _$ps) { + var _$pf = _$pM.CZAUG(_$pM.CZAUG(_$ph + (_$pQ ^ (_$pB | ~_$pE)), _$pc), _$ps); + return (_$pf << _$pL | _$pf >>> -0x18de + 0x1484 + -0x47a * -0x1 - _$pL) + _$pB; + } + + _$pw.MD5 = _$pI._createHelper(_$pp), + _$pw.HmacMD5 = _$pI._createHmacHelper(_$pp); + }(Math), + _$pT.MD5; + }(_$O0.exports); + }(_$j6); + var _$O2 = _$j6.exports + , _$O3 = { + 'exports': {} + }; + !function (_$py, _$pu) { + _$py.exports = function (_$pG) { + return _$pG.enc.Hex; + }(_$O0.exports); + }(_$O3); + var _$O4 = _$O3.exports; + + function _$O5(_$py) { + var dX = pW + , _$pu = new RegExp(dX(0x16a) + _$py + dX(0x1a5)) + , _$pG = document.cookie.match(_$pu); + if (!_$pG || !_$pG[0x2417 + -0x1afc + -0x11 * 0x89]) + return ''; + var _$pT = _$pG[-0x17 * 0x7f + 0xd * 0x295 + -0x1626]; + try { + return /(%[0-9A-F]{2}){2,}/.test(_$pT) ? decodeURIComponent(_$pT) : unescape(_$pT); + } catch (_$pM) { + return _$b.meuCh(unescape, _$pT); + } + } + + function _$O6() { + var dh = pW + , + _$py = arguments.length > -0x139 + -0x952 + 0xa8b && _$b.bDewJ(void (-0x64c + -0x50 * 0x31 + -0xc * -0x1cd), arguments[-0xb56 * -0x1 + 0x1624 + -0x217a]) ? arguments[-0x16f9 * -0x1 + 0x657 * 0x6 + 0x3d03 * -0x1] : Date.now() + , + _$pu = arguments.length > 0x681 * 0x4 + 0xfe4 + -0x29e7 * 0x1 && _$b.Ztrpf(void (-0x1e67 + -0x1061 + -0x1 * -0x2ec8), arguments[-0x1 * -0x4df + 0x1828 * -0x1 + 0x134a]) ? arguments[0x4 * 0x4fe + -0x1840 + 0x449] : dh(0xa5); + _$py += -0x3 * 0xac1 + -0x1 * -0x21f6 + 0x5 * 0x2c9; + var _$pG = new Date(_$py) + , _$pT = _$pu + , _$pM = { + 'M+': _$pG.getMonth() + (-0x12f1 + 0x1 * -0x1f55 + 0x3247), + 'd+': _$pG.getDate(), + 'D+': _$pG.getDate(), + 'h+': _$pG.getHours(), + 'H+': _$pG.getHours(), + 'm+': _$pG.getMinutes(), + 's+': _$pG.getSeconds(), + 'w+': _$pG.getDay(), + 'q+': Math.floor(_$b.tWNjD(_$pG.getMonth(), 0x2 * -0x1345 + -0xb * 0x2aa + -0x1d * -0x257) / (-0x53 * -0x34 + 0x23cf + -0x34a8)), + 'S+': _$pG.getMilliseconds() + }; + return /(y+)/i.test(_$pT) && (_$pT = _$pT.replace(RegExp.$1, ''.concat(_$pG.getFullYear()).substr(-0x6f * 0x5 + 0x96 + 0x199 - RegExp.$1.length))), + _$eo(_$pM).forEach(function (_$pn) { + var dB = dh; + if (new RegExp('('.concat(_$pn, ')')).test(_$pT)) { + var _$pJ, _$pw = _$b.dPMNX('S+', _$pn) ? dB(0x217) : '00'; + _$pT = _$pT.replace(RegExp.$1, 0x186c * -0x1 + 0xce7 * -0x1 + 0x2554 == RegExp.$1.length ? _$pM[_$pn] : _$Pp(_$pJ = ''.concat(_$pw)).call(_$pJ, _$pM[_$pn]).substr(''.concat(_$pM[_$pn]).length)); + } + }), + _$pT; + } + + function _$O7(_$py) { + return _$b.NVSUm(_$b.SCFMN, Object.prototype.toString.call(_$py)); + } + + function _$O8(_$py) { + var dQ = pW; + for (var _$pu = '', _$pG = dQ(0x177); _$py--;) + _$pu += _$pG[(0x1 * -0x1c45 + 0xe9f * -0x2 + -0x7 * -0x83f) * Math.random() | 0x167a + -0x1dea + -0x3b8 * -0x2]; + return _$pu.length > 0x1 * -0x180 + -0xbf5 * -0x1 + -0xa6f && (_$pu = _$b.CFFqw(_$pu.substring(0x1aa3 + -0xdc0 + -0xce3, 0x1 * 0x5b2 + 0x241c + -0x17e * 0x1c) + '2', _$pu.substring(-0xc61 * -0x3 + -0xa67 + -0xd5b * 0x2, _$pu.length - (0x2485 + -0x1 * -0x19ca + -0x2d5 * 0x16)))), + _$pu; + } + + window.random = _$O8; + + function _$O9() { + } + + function _$Ob(_$py) { + return 'function' == typeof _$py; + } + + var _$Ov = [pW(0x208), pW(0xae), pW(0x15a)]; + + function _$Oz(_$py) { + var dE = pW; + if (_$py) { + for (var _$pu, _$pG = arguments.length, _$pT = new Array(_$b.bbTOL(_$pG, -0x4cf * 0x4 + 0x1 * 0x296 + 0x10a7) ? _$pG - (0x1 * 0x20e0 + 0x230f + 0x6cb * -0xa) : -0xe * 0x58 + 0x37c * 0x5 + 0x64e * -0x2), _$pM = -0x14f1 + -0x4e6 + -0x19d8 * -0x1; _$b.lyBOK(_$pM, _$pG); _$pM++) + _$pT[_$pM - (0x205d * 0x1 + 0x4f + 0x20ab * -0x1)] = arguments[_$pM]; + var _$pn = function (_$pJ, _$pw) { + _$pw = _$pw || 0x1399 + 0x5 * -0x422 + 0x111; + for (var _$pe = _$pJ.length - _$pw, _$po = new Array(_$pe); _$pe--;) + _$po[_$pe] = _$pJ[_$pe + _$pw]; + return _$po; + }(_$pT); + console.log.apply(console, _$Pp(_$pu = [dE(0x10d)]).call(_$pu, _$pn)); + } + } + + function _$OP(_$py) { + if (_$b.NcXOz(null, _$py)) + throw new TypeError('Cannot convert undefined or null to object'); + _$py = Object(_$py); + for (var _$pu = -0x1 * 0x1f96 + -0x63e + 0x25d5; _$b.CxAGs(_$pu, arguments.length); _$pu++) { + var _$pG = arguments[_$pu]; + if (_$b.hixue(null, _$pG)) { + for (var _$pT in _$pG) + Object.prototype.hasOwnProperty.call(_$pG, _$pT) && (_$py[_$pT] = _$pG[_$pT]); + } + } + return _$py; + } + + function _$Oa(_$py) { + var dc = pW + , _$pu = { + 'KdDFF': function (_$pM, _$pn) { + return _$pM !== _$pn; + } + } + , + _$pG = arguments.length > 0x80 * -0x4 + 0x3 * -0xa84 + 0x218d && _$b.azeGQ(void (0xbe6 * -0x1 + -0x1 * -0x169f + -0xb7 * 0xf), arguments[0x2271 + 0x2446 * 0x1 + -0x46b6]) ? arguments[0xac0 + 0x26ad * -0x1 + 0x1bee] : -0x5e3f + 0x1 * -0x569d + 0xef74 + , _$pT = _$Oy(dc(0x173), {}); + return _$pT[_$py] || (_$pT[_$py] = new _$Jh(function (_$pM, _$pn) { + return function (_$pJ) { + var dL = a0a1b0cv + , _$pw = { + 'jmNUs': dL(0xde) + } + , + _$pe = arguments.length > -0x1 * -0x160c + -0x1471 * 0x1 + -0x2 * 0xcd && _$pu.KdDFF(void (-0x8c2 + -0xcc + 0x2 * 0x4c7), arguments[-0x21b1 + 0x21c * -0x4 + 0x2a22]) ? arguments[-0xa94 * -0x1 + -0x2285 + 0x17f2] : 0x3d4b + 0x1992 + -0x1c45 * 0x1; + return new _$Jh(function (_$po, _$pI) { + var ds = dL + , _$pj = { + 'AjWwN': function (_$pd, _$pZ) { + return _$pd !== _$pZ; + } + } + , _$pO = function (_$pd) { + return function (_$pZ) { + _$pd(), + clearTimeout(_$pp), + _$pA.parentNode && _$pA.parentNode.removeChild(_$pA); + } + ; + } + , _$pp = setTimeout(_$pO(_$pI), _$pe) + , _$pA = document.createElement(ds(0x1ec)); + _$pA.type = _$pw.jmNUs, + _$pA.readyState ? _$pA.onreadystatechange = function (_$pd) { + var df = ds; + _$pj.AjWwN(df(0x1c5), _$pA.readyState) && df(0x1aa) !== _$pA.readyState || _$pO(_$po)(); + } + : _$pA.onload = _$pO(_$po), + _$pA.onerror = _$pO(_$pI), + _$pA.src = _$pJ, + document.getElementsByTagName(ds(0x1f1))[0xa44 * 0x1 + -0x1e44 + -0x500 * -0x4].appendChild(_$pA); + } + ); + }(_$py, _$pG).then(function (_$pJ) { + _$pM(); + }).catch(function (_$pJ) { + delete _$pT[_$py], + _$pn(); + }); + } + )), + _$pT[_$py]; + } + + function _$Oy(_$py) { + var _$pu, + _$pG = _$b.bbTOL(arguments.length, -0x133 * -0x1d + 0xa52 * -0x1 + 0x4 * -0x61d) && void (0x7 * 0x59 + 0x59 * -0x1f + 0x10b * 0x8) !== arguments[0x98 + 0x5b1 * -0x2 + 0xacb] ? arguments[0x457 * 0x4 + -0xd6f + -0x3ec] : {}; + return window.__JDWEBSIGNHELPER_$DATA__ = window.__JDWEBSIGNHELPER_$DATA__ || {}, + window.__JDWEBSIGNHELPER_$DATA__[_$py] = window.__JDWEBSIGNHELPER_$DATA__[_$py] || ('function' == typeof (_$pu = _$pG) ? _$pu() : _$pu); + } + + function _$Ou() { + var dm = pW + , _$py = document.createElement(_$b.xBqki) + , _$pu = _$py.getContext('2d'); + return _$pu.fillStyle = _$b.tYHJA, + _$pu.fillRect(0x59 * -0x13 + -0x2fa * 0xd + 0x2d6b, -0x2f * -0x35 + 0x1d1b + -0x26cc, 0x1948 + 0xf6e + -0x27ee, 0x95f * -0x1 + 0x2494 + -0x1ad1 * 0x1), + _$pu.strokeStyle = dm(0x109), + _$pu.lineWidth = -0xb6 * 0x19 + -0x1 * 0x6a7 + 0x1873, + _$pu.lineCap = dm(0x12c), + _$pu.arc(0x417 * -0x9 + -0x1 * 0x1c2b + 0x412c, -0x3b6 + 0x185 * 0x6 + -0x1 * 0x536, 0x4d4 + 0x1c78 + -0x84e * 0x4, 0x9d * -0x12 + -0xf0f + -0x1a19 * -0x1, Math.PI, !(-0x6 * 0xec + 0x2a7 * 0x1 + 0x2e2)), + _$pu.stroke(), + _$pu.fillStyle = dm(0x176), + _$pu.font = dm(0x1a6), + _$pu.textBaseline = dm(0xd7), + _$pu.fillText(dm(0xdb), 0x3 * -0x2c + 0x1f1 * -0x1 + 0x284, -0x17d1 + 0x29 * -0x8b + 0x2e50), + _$pu.shadowOffsetX = -0x1622 + 0x1d37 + -0x97 * 0xc, + _$pu.shadowOffsetY = -0x3aa + -0xfd * -0x9 + -0xbf * 0x7, + _$pu.shadowColor = dm(0x164), + _$pu.fillStyle = dm(0x13c), + _$pu.font = _$b.rQnxP, + _$pu.fillText(dm(0x14f), -0x2122 + -0x59 + 0x21a3 * 0x1, 0xec5 + 0x82 * 0x13 + -0x181b), + _$O4.format(_$b.tYUsr(_$O2, _$b.uHEcJ.concat(_$py.toDataURL()))); + } + + function _$OG(_$py) { + var dg = pW + , _$pu = _$Ir(_$py); + return _$b.hixue(null, _$py) && (dg(0x18b) === _$pu || _$b.XbQCk === _$pu); + } + + function _$OT(_$py, _$pu, _$pG) { + if (!_$OG(_$py)) + return _$py; + for (var _$pT = _$pu.length, _$pM = _$pT - (-0xc68 + -0x11f2 + 0x1e5b), _$pn = -(-0x2 * -0x486 + 0x1414 + -0x1d1f), _$pJ = _$py; null != _$pJ && ++_$pn < _$pT;) { + var _$pw = _$pu[_$pn]; + if (_$pn === _$pM) + return void (_$pJ[_$pw] = _$pG); + var _$pe = _$pJ[_$pw]; + _$OG(_$pe) || (_$pe = {}, + _$pJ[_$pw] = _$pe), + _$pJ = _$pe; + } + return _$py; + } + + function _$OM(_$py, _$pu) { + for (var _$pG = _$pu.length, _$pT = 0x1 * -0x15cb + -0x14d7 + 0x2 * 0x1551; null != _$py && _$pT < _$pG;) { + _$py = _$py[_$pu[_$pT++]]; + } + return _$pT && _$b.ACGOF(_$pT, _$pG) ? _$py : void (0x1 * 0xe83 + -0x218d + 0x1 * 0x130a); + } + + function _$On(_$py, _$pu) { + if (_$OG(_$py)) + for (var _$pG in _$py) { + if (!(-0xca9 + 0x2 * -0xd3d + 0x2724) === _$pu(_$py[_$pG], _$pG, _$py)) + return; + } + } + + function _$OJ(_$py) { + return !(!_$py || !_$py.t || !_$py.e || -0x54 + 0xae9 + 0x81 * -0x15 === _$py.e || _$b.DdbWi(Date.now(), _$py.t) >= (0xd3 * 0x21 + -0xc * 0xe1 + -0xcbf) * _$py.e || _$b.gzDPS(Date.now() - _$py.t, 0x1eb8 + 0x1e1d * -0x1 + 0x1 * -0x9b)); + } + + function _$Ow(_$py, _$pu, _$pG, _$pT) { + var _$pM = _$pT.context; + _$pT.error.call(_$pM, { + 'code': { + 'timeout': 0x1f40, + 'error': 0x1388, + 'load': 0xbcc, + 'abort': 0x1389, + 'parsererror': 0xbcd + }[_$pu] || 0xad4 + -0x2 * 0xc23 + 0x309a, + 'message': _$pu + }, _$pT, _$py, _$pG); + } + + function _$Oe(_$py) { + var _$pu = { + 'ixYCe': function (_$pG, _$pT) { + return _$b.ImBqN(_$pG, _$pT); + } + }; + return new _$Jh(function (_$pG, _$pT) { + var _$pM = { + 'krxRW': function (_$pn, _$pJ) { + return _$pn(_$pJ); + }, + 'Qykbo': function (_$pn, _$pJ) { + return _$pn === _$pJ; + } + }; + _$py ? (_$py.success = function (_$pn) { + try { + _$pM.krxRW(_$pG, { + 'body': _$pn + }); + } catch (_$pJ) { + _$pT({ + 'code': 0x3e7, + 'message': _$pJ + }); + } + } + , + _$py.error = function (_$pn) { + _$pT(_$pn); + } + , + function (_$pn) { + var dN = a0a1b0cv; + if (!_$pn) + return !(-0x1a54 + -0x1 * 0x18e5 + 0x333a); + _$pn.method = _$pn.method.toUpperCase(), + _$pn.noCredentials || (_$pn.xhrFields = { + 'withCredentials': !(-0x222b + 0x15a6 + 0xc85) + }); + var _$pJ, _$pw = {}, _$pe = function (_$pp, _$pA) { + _$pw[_$pp.toLowerCase()] = [_$pp, _$pA]; + }, _$po = new window.XMLHttpRequest(), _$pI = _$po.setRequestHeader; + if ((_$pn.contentType || !(-0x18e + -0x1e1d + -0x4 * -0x7eb) !== _$pn.contentType && _$pn.data && dN(0x1ef) !== _$pn.method) && _$pe(dN(0x119), _$pn.contentType || dN(0x1c3)), + _$pe(dN(0x11b), dN(0x1cb)), + _$po.setRequestHeader = _$pe, + _$po.onreadystatechange = function () { + var dU = dN; + if (0x1154 + -0x20fb + 0x539 * 0x3 === _$po.readyState) { + _$po.onreadystatechange = function () { + } + , + clearTimeout(_$pJ); + var _$pp, _$pA = !(-0x144b + 0xe73 + 0x5d9); + if (_$po.status >= 0x17db * 0x1 + 0x12 * -0xf9 + -0x11d * 0x5 && _$po.status < 0x1f5c * -0x1 + -0xf85 * 0x2 + 0x3f92 || _$pM.Qykbo(-0xc51 + 0x11 * -0x154 + 0x2415, _$po.status)) { + _$pp = _$po.responseText; + try { + _$pp = JSON.parse(_$pp); + } catch (_$pd) { + _$pA = _$pd; + } + _$pA ? _$Ow(_$pA, dU(0x1dc), _$po, _$pn) : function (_$pZ, _$pX, _$ph) { + var dV = dU + , _$pB = _$ph.context + , _$pQ = dV(0x20b); + _$ph.success.call(_$pB, _$pZ, _$ph, _$pQ, _$pX); + }(_$pp, _$po, _$pn); + } else + _$Ow(_$po.statusText || null, dU(0x189), _$po, _$pn); + } + } + , + _$pn.xhrFields) { + for (var _$pj in _$pn.xhrFields) + _$po[_$pj] = _$pn.xhrFields[_$pj]; + } + for (var _$pO in (_$po.open(_$pn.method, _$pn.url), + _$pw)) + _$pI.apply(_$po, _$pw[_$pO]); + _$pu.ixYCe(_$pn.timeout, -0x324 + -0x2350 + 0x2674) && (_$pJ = setTimeout(function () { + var dK = dN; + _$po.onreadystatechange = function () { + } + , + _$po.abort(), + _$Ow(null, dK(0xbd), _$po, _$pn); + }, (-0x1fd5 + -0x181d * -0x1 + 0xba0) * _$pn.timeout)), + _$po.send(_$pn.data ? _$pn.data : null); + }(_$py)) : _$pT(); + } + ); + } + + function _$Oo(_$py) { + return function (_$pu) { + return _$pu.method = _$py, + _$Oe(_$pu); + } + ; + } + + var _$OI = { + 'get': _$b.jPuWJ(_$Oo, _$b.hzYes), + 'post': _$b.cGkBv(_$Oo, pW(0x225)) + } + , _$Oj = { + 'CANVAS_FP': pW(0x8d), + 'WEBGL_FP': pW(0x178), + 'STORAGE_KEY_TK': pW(0x18c), + 'STORAGE_KEY_VK': pW(0x1e3), + 'BEHAVIOR_FLAG': pW(0x19d) + } + , _$OO = -0x1f * -0xce + 0x1ec4 + -0x449 * 0xd + , _$Op = 0x975 + 0x41 * -0x3b + 0x76 * 0xc + , _$OA = -0x143b + -0x88f + 0x1ccd + , _$Od = 0x1dc5 * 0x1 + -0x1 * -0x1b6b + -0x2 * 0x1c96 + , _$OZ = -(-0x185a + -0xa98 + 0x22f3) + , _$OX = pW(0x157) + , _$Oh = pW(0x94) + , _$OB = { + 'exports': {} + }; + !function (_$py, _$pu) { + _$py.exports = function (_$pG) { + var _$pT = { + 'RftDS': function (_$pM, _$pn) { + return _$pM * _$pn; + }, + 'SVHPy': function (_$pM, _$pn) { + return _$pM < _$pn; + }, + 'tFWUR': function (_$pM, _$pn) { + return _$pM !== _$pn; + }, + 'yXtrp': function (_$pM, _$pn) { + return _$pM - _$pn; + }, + 'tybAe': function (_$pM, _$pn) { + return _$b.siZQi(_$pM, _$pn); + }, + 'QQPnW': function (_$pM, _$pn) { + return _$b.nRsaE(_$pM, _$pn); + }, + 'Qfoxg': function (_$pM, _$pn) { + return _$pM % _$pn; + } + }; + return function () { + var dt = a0a1b0cv + , _$pM = { + 'booVT': dt(0xf8), + 'FbLJb': function (_$pe, _$po) { + return _$pe % _$po; + }, + 'FsXNr': function (_$pe, _$po) { + return _$pT.QQPnW(_$pe, _$po); + }, + 'pOOBt': function (_$pe, _$po) { + return _$pe * _$po; + }, + 'WmtJK': function (_$pe, _$po) { + return _$pe * _$po; + }, + 'yZLIh': function (_$pe, _$po) { + return _$pT.Qfoxg(_$pe, _$po); + } + } + , _$pn = _$pG + , _$pJ = _$pn.lib.WordArray; + + function _$pw(_$pe, _$po, _$pI) { + for (var _$pj = [], _$pO = 0x21c2 + -0x1 * -0x1121 + 0x1 * -0x32e3, _$pp = 0x2414 + -0x18ad + -0xb67 * 0x1; _$pp < _$po; _$pp++) + if (_$pp % (0x21b4 + 0x1f26 + -0x40d6)) { + var _$pA = _$pI[_$pe.charCodeAt(_$pp - (-0x1a0 + 0x1d60 + 0x1 * -0x1bbf))] << _$pp % (-0x22c1 + -0x15af + -0x2 * -0x1c3a) * (0x1053 + -0xca + -0x35 * 0x4b) | _$pI[_$pe.charCodeAt(_$pp)] >>> 0x1840 + 0x927 * -0x1 + -0x1 * 0xf13 - _$pp % (-0x18a1 * 0x1 + 0x144a + 0x45b) * (-0x1d95 + 0x2 * -0x719 + -0xb * -0x3fb); + _$pj[_$pO >>> -0x7d0 + -0x7 * 0x1eb + 0x153f] |= _$pA << 0xb71 + 0x7de + 0x1337 * -0x1 - _$pT.RftDS(_$pO % (0x1e26 + 0xb82 * -0x2 + -0x71e), -0xf7e + 0x26a + -0xd1c * -0x1), + _$pO++; + } + return _$pJ.create(_$pj, _$pO); + } + + _$pn.enc.Base64 = { + 'stringify': function (_$pe) { + return this.stringify1(_$pe, -0x23d3 + 0x10 * -0x10f + -0x16 * -0x266); + }, + 'stringify1': function (_$pe, _$po) { + var _$pI = _$pM.booVT.split('|') + , _$pj = -0x44c * -0x3 + -0x1791 + 0x1 * 0xaad; + while (!![]) { + switch (_$pI[_$pj++]) { + case '0': + var _$pO = _$pe.words + , _$pp = _$pe.sigBytes + , _$pA = -0x39 * 0x87 + 0xd0e + 0x1102 === _$po ? this._map : this._map1; + continue; + case '1': + var _$pd = _$pA.charAt(-0x1805 + 0x3 * 0x239 + 0x3 * 0x5de); + continue; + case '2': + for (var _$pZ = [], _$pX = 0x1 * -0x2607 + 0x4 * 0x6c3 + -0x1 * -0xafb; _$pX < _$pp; _$pX += -0x9fa + 0x3 * 0xc75 + -0x1b62) + for (var _$ph = (_$pO[_$pX >>> -0xbfd + 0x712 + 0x4ed] >>> 0x251 + 0x1539 + 0x1 * -0x1772 - _$pM.FbLJb(_$pX, 0x2 * 0x422 + -0x1 * -0x416 + -0xc56) * (0x1f0 + 0x16e9 + -0x18d1) & 0x9e2 + 0x5 * -0x266 + -0x109 * -0x3) << -0x1b * -0x59 + -0x1c60 + 0x130d | (_$pO[_$pX + (-0x1c88 + -0x521 * -0x1 + 0x1768) >>> -0x188c * -0x1 + -0x7e0 + -0x855 * 0x2] >>> _$pM.FsXNr(-0xcdd + -0x16 * 0x13f + -0x285f * -0x1, (_$pX + (-0x11e2 + -0x3bc + 0xf * 0x171)) % (-0xa97 + 0x9f7 * -0x1 + 0xa49 * 0x2) * (-0x20be + 0x132b * -0x1 + 0x1 * 0x33f1)) & -0x1161 * -0x2 + 0x151f * 0x1 + -0x36e2) << 0xb * 0x11 + 0x1f5f + -0x2012 * 0x1 | _$pO[_$pX + (-0x5 * 0x73 + 0x5d7 * -0x5 + 0x4 * 0x7dd) >>> -0xfd9 + 0xc77 * -0x2 + 0x35 * 0xc5] >>> 0x229b + 0xdf4 + -0x1 * 0x3077 - _$pM.pOOBt((_$pX + (-0x1 * 0x53a + -0xa5e + 0xf9a * 0x1)) % (-0x1b * -0x45 + 0x417 + -0xb5a), 0x1935 + 0x139e + -0x2ccb) & 0x8ef * 0x4 + 0x1041 + 0xd6 * -0x3d, _$pB = -0x2d6 + -0x1e60 + -0x1 * -0x2136; _$pB < -0x659 + -0x2 * 0xff5 + 0x2647 && _$pX + (-0x13e + -0x2cc + -0x205 * -0x2 + 0.75) * _$pB < _$pp; _$pB++) + _$pZ.push(_$pA.charAt(_$ph >>> _$pM.WmtJK(-0x1c3f * 0x1 + 0x176e + 0x4d7, -0x1 * 0x4b8 + -0x118 * 0x6 + 0xb4b - _$pB) & 0x987 * -0x1 + -0xb11 * 0x1 + 0x37 * 0x61)); + continue; + case '3': + _$pe.clamp(); + continue; + case '4': + return _$pZ.join(''); + case '5': + if (_$pd) { + for (; _$pM.yZLIh(_$pZ.length, 0x1 * -0x20a2 + 0x281 + 0x1e25);) + _$pZ.push(_$pd); + } + continue; + } + break; + } + }, + 'parse': function (_$pe) { + var _$po = _$pe.length + , _$pI = this._map + , _$pj = this._reverseMap; + if (!_$pj) { + _$pj = this._reverseMap = []; + for (var _$pO = -0x1ef * -0x7 + 0x1 * -0x2357 + 0x15ce; _$pT.SVHPy(_$pO, _$pI.length); _$pO++) + _$pj[_$pI.charCodeAt(_$pO)] = _$pO; + } + var _$pp = _$pI.charAt(0x1585 + -0x91 * -0x7 + 0x4 * -0x64f); + if (_$pp) { + var _$pA = _$a7(_$pe).call(_$pe, _$pp); + _$pT.tFWUR(-(-0x176f + 0x104 * -0x1d + 0x2a5 * 0x14), _$pA) && (_$po = _$pA); + } + return _$pw(_$pe, _$po, _$pj); + }, + 'encode': function (_$pe) { + 'use strict'; + var q = _3wmu0; + var d = _2z3u0; + var _$po, _$pI, _$pj, _$pO, _$pp, _$pA, _$pd, _$pZ, _$pX, _$ph, _$pB, _$pQ; + var e = []; + var t = 462; + var p, i; + l6: for (; ;) { + switch (d[t++]) { + case 2: + e.push(_$pB); + break; + case 4: + return e.pop(); + break; + case 5: + p = e.pop(); + e[e.length - 1] %= p; + break; + case 6: + e.push(null); + break; + case 10: + _$pZ = e[e.length - 1]; + break; + case 11: + _$pp = e[e.length - 1]; + break; + case 13: + e.push(_$pT); + break; + case 19: + e.push(_$pp++); + break; + case 20: + _$pA = e[e.length - 1]; + break; + case 21: + e[e.length - 4] = q.call(e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 3; + break; + case 23: + e.push(_$pd); + break; + case 26: + _$pI = e[e.length - 1]; + break; + case 27: + e.push(_$pp); + break; + case 28: + e.push(_$pG); + break; + case 29: + e.push(_$pQ); + break; + case 30: + p = e.pop(); + e[e.length - 1] += p; + break; + case 34: + _$pd = e[e.length - 1]; + break; + case 36: + _$ph = e[e.length - 1]; + break; + case 37: + _$pB = e[e.length - 1]; + break; + case 38: + t += d[t]; + break; + case 40: + if (e[e.length - 2] != null) { + e[e.length - 3] = q.call(e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 2; + } else { + p = e[e.length - 3]; + e[e.length - 3] = p(e[e.length - 1]); + e.length -= 2; + } + break; + case 41: + e.push(_$pZ); + break; + case 42: + e.push(_$pO); + break; + case 44: + e.push(this); + break; + case 45: + e.push(_$pe); + break; + case 47: + e.push(_1tbu0[32 + d[t++]]); + break; + case 48: + _$pj = e[e.length - 1]; + break; + case 49: + e.push(_$pX); + break; + case 54: + e.pop(); + break; + case 55: + e.push(_$pj); + break; + case 56: + e.push(_$po); + break; + case 59: + p = e.pop(); + e[e.length - 1] = e[e.length - 1] >= p; + break; + case 60: + e.push(new Array(d[t++])); + break; + case 62: + e.push(Array); + break; + case 64: + return; + break; + case 65: + e[e.length - 1] = e[e.length - 1].length; + break; + case 69: + _$pO = e[e.length - 1]; + break; + case 70: + p = e.pop(); + e[e.length - 1] -= p; + break; + case 72: + _$pQ = e[e.length - 1]; + break; + case 76: + e.push(_$jy); + break; + case 77: + _$pX = e[e.length - 1]; + break; + case 78: + e.push(d[t++]); + break; + case 79: + e.push(_$pA); + break; + case 83: + _$po = e[e.length - 1]; + break; + case 88: + e.push(e[e.length - 1]); + e[e.length - 2] = e[e.length - 2][_1tbu0[32 + d[t++]]]; + break; + case 89: + p = e.pop(); + e[e.length - 1] = e[e.length - 1] < p; + break; + case 91: + e[e.length - 1] = e[e.length - 1][_1tbu0[32 + d[t++]]]; + break; + case 92: + e.push(_$pI); + break; + case 93: + e[e.length - 5] = q.call(e[e.length - 5], e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 4; + break; + case 97: + if (e.pop()) + t += d[t]; + else + ++t; + break; + case 98: + e.push(_$ph); + break; + case 99: + e.push(_$Pr); + break; + } + } + }, + '_map1': dt(0x1d1), + '_map': dt(0x1f4) + }; + }(), + _$pG.enc.Base64; + }(_$O0.exports); + }(_$OB); + var _$OQ = _$OB.exports + , _$OE = { + 'exports': {} + }; + !function (_$py, _$pu) { + _$py.exports = function (_$pG) { + return _$pG.enc.Utf8; + }(_$O0.exports); + }(_$OE); + var _$Oc = _$OE.exports + , _$OL = { + 'exports': {} + }; + !function (_$py, _$pu) { + _$py.exports = function (_$pG) { + var _$pT = { + 'dZUKh': function (_$pM, _$pn) { + return _$pM(_$pn); + }, + 'RoIFS': function (_$pM, _$pn) { + return _$pM(_$pn); + }, + 'nJSwL': function (_$pM, _$pn) { + return _$b.MXtDq(_$pM, _$pn); + }, + 'VYiXF': function (_$pM, _$pn) { + return _$pM - _$pn; + }, + 'NjdsD': function (_$pM, _$pn) { + return _$b.ceEfd(_$pM, _$pn); + }, + 'jNLRn': function (_$pM, _$pn) { + return _$pM ^ _$pn; + }, + 'swEbM': function (_$pM, _$pn) { + return _$b.PDbPQ(_$pM, _$pn); + }, + 'VMtIP': function (_$pM, _$pn) { + return _$pM << _$pn; + }, + 'UNwSB': function (_$pM, _$pn) { + return _$b.xOWaG(_$pM, _$pn); + }, + 'pagSX': function (_$pM, _$pn) { + return _$b.eXLBO(_$pM, _$pn); + }, + 'KBaXe': function (_$pM, _$pn) { + return _$b.KChcQ(_$pM, _$pn); + }, + 'HtzGq': function (_$pM, _$pn) { + return _$pM + _$pn; + }, + 'YrNJP': function (_$pM, _$pn) { + return _$pM % _$pn; + } + }; + return function (_$pM) { + var _$pn = _$pG + , _$pJ = _$pn.lib + , _$pw = _$pJ.WordArray + , _$pe = _$pJ.Hasher + , _$po = _$pn.algo + , _$pI = [] + , _$pj = []; + !function () { + var _$pA = { + 'QLVVW': function (_$pB, _$pQ) { + return _$pB | _$pQ; + } + }; + + function _$pd(_$pB) { + for (var _$pQ = _$pM.sqrt(_$pB), _$pE = 0x179 * -0xc + -0x12fc + 0x1 * 0x24aa; _$pE <= _$pQ; _$pE++) + if (!(_$pB % _$pE)) + return !(0xed5 * 0x2 + 0x269a + -0x4443); + return !(-0x4 * -0xe7 + 0x19cd + -0x1d69); + } + + function _$pZ(_$pB) { + return _$pA.QLVVW((0x2fada0 * 0x407 + 0x2ae * 0x6b4be0 + 0x6fc4c8d * -0x20) * (_$pB - (0x1d8 * -0x8 + 0x2182 + -0x62 * 0x31 | _$pB)), -0x788 + -0x9 * -0x420 + -0x1d98); + } + + for (var _$pX = 0x1 * -0x2659 + -0x2095 + 0x46f0, _$ph = -0x42 * -0x43 + 0x2502 * -0x1 + -0x1a5 * -0xc; _$ph < 0x107d + -0x1615 * 0x1 + -0x8 * -0xbb;) + _$pT.dZUKh(_$pd, _$pX) && (_$ph < -0x1 * 0x1b4f + 0x1 * 0x3cd + 0x178a && (_$pI[_$ph] = _$pT.RoIFS(_$pZ, _$pM.pow(_$pX, -0x62a + -0x1cf * 0x4 + 0xd66 + 0.5))), + _$pj[_$ph] = _$pZ(_$pM.pow(_$pX, (-0x1697 + 0x1 * 0x3d8 + 0x12c0) / (0x741 + 0x11f0 + -0x192e))), + _$ph++), + _$pX++; + }(); + var _$pO = [] + , _$pp = _$po.SHA256 = _$pe.extend({ + '_doReset': function () { + this._hash = new _$pw.init(_$Pr(_$pI).call(_$pI, 0xe3e * 0x2 + -0x1941 * -0x1 + -0x35bd * 0x1)); + }, + '_doProcessBlock': function (_$pA, _$pd) { + for (var _$pZ = this._hash.words, _$pX = _$pZ[0x19c + -0xe64 + 0xcc8], _$ph = _$pZ[0x252 + -0xf * -0x13a + -0x14b7], _$pB = _$pZ[0x9f5 + -0x2 * 0xdf5 + 0x11f7], _$pQ = _$pZ[-0xe4f + 0x185 + -0x1 * -0xccd], _$pE = _$pZ[-0x269c + -0x2043 * 0x1 + 0x46e3], _$pc = _$pZ[0x16 * 0x141 + 0x10ec + -0x2c7d], _$pL = _$pZ[0x505 * -0x2 + 0x1bc7 * -0x1 + 0x25d7], _$ps = _$pZ[-0x1 * 0xfa3 + 0x43 * -0x23 + 0x5 * 0x4f7], _$pf = 0x4 * 0x5bc + 0x134e * -0x2 + 0xfac; _$pf < -0x24ef * -0x1 + 0x67d * -0x4 + -0xabb; _$pf++) { + if (_$pf < -0x12a3 * 0x2 + -0x27a * -0x5 + 0x18f4) + _$pO[_$pf] = 0x412 + 0xaf8 + -0x6e * 0x23 | _$pA[_$pd + _$pf]; + else { + var _$pm = _$pO[_$pf - (0x57d + -0xc3d * -0x3 + -0x2a25 * 0x1)] + , + _$pg = (_$pm << -0x4 * -0x137 + 0x155f + 0x45b * -0x6 | _$pm >>> -0x22a7 + -0x224e * 0x1 + 0x373 * 0x14) ^ _$pT.nJSwL(_$pm << -0x1da3 + -0x3 * 0x7a9 + 0x34ac, _$pm >>> -0x55 * 0x5 + 0x605 + -0x44a) ^ _$pm >>> -0x72 + 0x23ff + 0x1 * -0x238a + , _$pN = _$pO[_$pT.VYiXF(_$pf, -0x13c5 + -0x19 * -0xe3 + -0x264)] + , + _$pU = (_$pN << -0x8b8 + 0x211 * -0xd + 0x23a4 | _$pN >>> 0x1d5c + -0x2 * 0x949 + -0xab9) ^ (_$pN << -0x2699 + -0x202f + 0x46d5 | _$pN >>> -0x1 * 0x264f + 0x1a * 0x151 + 0x428) ^ _$pN >>> -0x1 * -0x1d3f + 0x3c2 * -0x5 + -0xa6b * 0x1; + _$pO[_$pf] = _$pT.NjdsD(_$pT.NjdsD(_$pg + _$pO[_$pf - (0xc7 * 0x2e + -0x1341 + -0x26 * 0x6f)], _$pU), _$pO[_$pf - (0x224d + 0x1 * -0x956 + -0x18e7)]); + } + var _$pV = _$pX & _$ph ^ _$pX & _$pB ^ _$ph & _$pB + , + _$pK = _$pT.jNLRn((_$pX << -0x16 * 0x47 + -0xb * 0x227 + 0x1de5 | _$pX >>> 0xdde + 0x94f + -0x172b) ^ (_$pX << -0x1b54 + 0xb21 + 0x1046 | _$pT.swEbM(_$pX, -0x211 + -0x20ea + 0x2308)), _$pT.VMtIP(_$pX, -0x591 * 0x4 + -0x3 * -0xb3 + -0x2e3 * -0x7) | _$pT.UNwSB(_$pX, 0x1 * 0x18d + -0x14c * -0xe + -0x139f * 0x1)) + , + _$pl = _$ps + ((_$pE << -0x1 * -0x24d9 + -0x218 + -0x22a7 | _$pE >>> 0xf5 + -0xff4 * 0x2 + 0x1ef9 * 0x1) ^ (_$pE << 0x311 + 0x1fbf + 0x11 * -0x20b | _$pE >>> 0x1 * -0x1df0 + 0x32b * -0x7 + -0x1 * -0x3428) ^ (_$pE << -0x196 * -0x1 + 0x232e + 0x1 * -0x24bd | _$pE >>> -0x10f * 0x2 + 0xa * -0x382 + 0x254b)) + (_$pE & _$pc ^ ~_$pE & _$pL) + _$pj[_$pf] + _$pO[_$pf]; + _$ps = _$pL, + _$pL = _$pc, + _$pc = _$pE, + _$pE = _$pT.pagSX(_$pQ + _$pl, 0xbb8 + -0x19cf + -0xe17 * -0x1), + _$pQ = _$pB, + _$pB = _$ph, + _$ph = _$pX, + _$pX = _$pT.KBaXe(_$pT.NjdsD(_$pl, _$pK + _$pV), -0x70 * 0x39 + 0x25ca + -0xa * 0x149); + } + _$pZ[0xe92 + -0x20f0 + 0x92f * 0x2] = _$pZ[-0x1099 + -0x355 * -0x4 + -0x117 * -0x3] + _$pX | 0x5 * 0x2e9 + 0x18d * -0x1 + -0xd00, + _$pZ[-0x1a39 + 0x51e + 0x151c] = _$pT.pagSX(_$pZ[-0x1 * 0x9aa + -0x32b * -0x1 + 0x680] + _$ph, -0x49d + 0xdb * 0x19 + -0x13 * 0xe2), + _$pZ[-0x90a + 0xd4b + -0x43f * 0x1] = _$pZ[-0x4fd * -0x3 + -0xc98 + 0x79 * -0x5] + _$pB | -0x1 * 0x1ead + -0x281 * -0xe + 0x13 * -0x3b, + _$pZ[0x46a + 0x9f * -0x3b + -0x2 * -0x101f] = _$pZ[-0x20b * 0x12 + -0x14c + 0x1 * 0x2615] + _$pQ | 0x2335 + -0x19d0 + -0x965 * 0x1, + _$pZ[-0x3 * 0xb65 + -0xf * -0x272 + -0x27b] = _$pZ[0x1 * 0x7ad + 0x5 * 0x3ad + -0x1a0a] + _$pE | 0x2626 + -0x17 * 0xd9 + 0x1 * -0x12a7, + _$pZ[-0x3 * 0x98 + -0x80c + 0x1 * 0x9d9] = _$pT.HtzGq(_$pZ[0x4 * -0x977 + -0x26a9 + 0x4c8a], _$pc) | 0xe9 * -0x11 + -0x5c9 + -0x6 * -0x38b, + _$pZ[0x2234 + 0x1bf + -0x23ed] = _$pT.nJSwL(_$pT.HtzGq(_$pZ[0x1 * -0x187f + -0x1 * 0x2689 + 0x3f0e], _$pL), 0x75e + -0x25fc + 0x1e9e), + _$pZ[0x19 * -0x14e + 0x2d1 * -0xa + -0x1 * -0x3ccf] = _$pZ[0x24dd * 0x1 + 0x26d + -0x2743] + _$ps | -0x1199 * 0x1 + -0x36c + 0x1505; + }, + '_doFinalize': function () { + var _$pA = this._data + , _$pd = _$pA.words + , _$pZ = (0x1d16 + -0x2356 * 0x1 + 0x324 * 0x2) * this._nDataBytes + , _$pX = (0x21dd + 0x160f * 0x1 + -0x7fc * 0x7) * _$pA.sigBytes; + return _$pd[_$pX >>> 0x1c54 + -0x1 * 0x2209 + -0x1 * -0x5ba] |= -0x969 + 0x1f63 + 0x1 * -0x157a << 0x1596 + 0x342 * 0x8 + -0x2f8e - _$pT.YrNJP(_$pX, -0x2119 + 0x1da7 + 0x2 * 0x1c9), + _$pd[_$pT.NjdsD(-0x1b07 + 0x4 * -0x2a + 0x9 * 0x315, _$pX + (-0xd47 + 0x1a79 + 0xcf2 * -0x1) >>> -0x984 + -0x9fe + -0x1 * -0x138b << -0x1901 + 0x132d + 0x5d8)] = _$pM.floor(_$pZ / (0x4 * 0x23055a97 + 0x1b098e1f0 + -0x4f2b9313 * 0x4)), + _$pd[_$pT.HtzGq(-0xe94 * 0x1 + 0x1245 + -0x3a2, _$pT.NjdsD(_$pX, 0x1ee5 + 0x1 * 0x16f + -0x1 * 0x2014) >>> 0x3d7 + 0x1 * -0x1a95 + 0x16c7 << 0x1 * -0x1f29 + -0x1250 + 0x317d)] = _$pZ, + _$pA.sigBytes = (-0x977 * 0x1 + 0x13e3 * -0x1 + 0x1d5e) * _$pd.length, + this._process(), + this._hash; + }, + 'clone': function () { + var _$pA = _$pe.clone.call(this); + return _$pA._hash = this._hash.clone(), + _$pA; + } + }); + _$pn.SHA256 = _$pe._createHelper(_$pp), + _$pn.HmacSHA256 = _$pe._createHmacHelper(_$pp); + }(Math), + _$pG.SHA256; + }(_$O0.exports); + }(_$OL); + var _$Os = _$OL.exports + , _$Of = { + 'exports': {} + } + , _$Om = { + 'exports': {} + }; + !function (_$py, _$pu) { + _$py.exports = function (_$pG) { + var dk = a0a1b0cv, _$pT = { + 'QOAKb': function (_$pw, _$pe) { + return _$pw < _$pe; + }, + 'utcDY': dk(0x140), + 'LADDF': function (_$pw, _$pe) { + return _$pw > _$pe; + } + }, _$pM, _$pn, _$pJ; + _$pn = (_$pM = _$pG).lib.Base, + _$pJ = _$pM.enc.Utf8, + _$pM.algo.HMAC = _$pn.extend({ + 'init': function (_$pw, _$pe) { + 'use strict'; + var p = _3wmu0; + var r = _2z3u0; + var di, _$po, _$pI, _$pj, _$pO, _$pp, _$pA, _$pd, _$pZ, _$pX; + var d = []; + var i = 745; + var n, e; + l7: for (; ;) { + switch (r[i++]) { + case 2: + d.push(this); + break; + case 5: + _$pe = d[d.length - 1]; + break; + case 7: + n = d.pop(); + d[d.length - 1] ^= n; + break; + case 9: + _$pA = d[d.length - 1]; + break; + case 10: + d.push(new Array(r[i++])); + break; + case 11: + d.push(dk); + break; + case 12: + d[d.length - 2][_1tbu0[46 + r[i++]]] = d[d.length - 1]; + d[d.length - 2] = d[d.length - 1]; + d.length--; + break; + case 14: + d.push(_$pj); + break; + case 18: + d.push(r[i++]); + break; + case 20: + d.push(_$pw); + break; + case 21: + _$pj = d[d.length - 1]; + break; + case 22: + d[d.length - 2] = new d[d.length - 2](); + d.length -= 1; + break; + case 24: + _$pZ = d[d.length - 1]; + break; + case 26: + d.push(d[d.length - 2]); + d.push(d[d.length - 2]); + break; + case 27: + d.pop(); + break; + case 28: + d.push(di); + break; + case 30: + d[d.length - 2] = d[d.length - 2][d[d.length - 1]]; + d.length--; + break; + case 31: + di = d[d.length - 1]; + break; + case 33: + _$pI = d[d.length - 1]; + break; + case 34: + n = d.pop(); + d[d.length - 1] *= n; + break; + case 36: + if (d[d.length - 1] != null) { + d[d.length - 2] = p.call(d[d.length - 2], d[d.length - 1]); + } else { + n = d[d.length - 2]; + d[d.length - 2] = n(); + } + d.length--; + break; + case 37: + d.push(null); + break; + case 39: + _$pO = d[d.length - 1]; + break; + case 42: + n = d.pop(); + d[d.length - 1] = d[d.length - 1] == n; + break; + case 44: + d[d.length - 1] = typeof d[d.length - 1]; + break; + case 45: + d.push(_$pe); + break; + case 46: + n = d.pop(); + d[d.length - 1] += n; + break; + case 48: + if (d[d.length - 1]) { + ++i; + --d.length; + } else + i += r[i]; + break; + case 49: + d[d.length - 3][d[d.length - 2]] = d[d.length - 1]; + d[d.length - 3] = d[d.length - 1]; + d.length -= 2; + break; + case 50: + if (d.pop()) + i += r[i]; + else + ++i; + break; + case 51: + d[d.length - 1] = d[d.length - 1][_1tbu0[46 + r[i++]]]; + break; + case 54: + _$pX = d[d.length - 1]; + break; + case 55: + d.push(d[d.length - 1]); + d[d.length - 2] = d[d.length - 2][_1tbu0[46 + r[i++]]]; + break; + case 56: + _$pw = d[d.length - 1]; + break; + case 58: + if (d[d.length - 2] != null) { + d[d.length - 3] = p.call(d[d.length - 3], d[d.length - 2], d[d.length - 1]); + d.length -= 2; + } else { + n = d[d.length - 3]; + d[d.length - 3] = n(d[d.length - 1]); + d.length -= 2; + } + break; + case 63: + n = d.pop(); + for (e = 0; e < r[i + 1]; ++e) + if (n === _1tbu0[46 + r[i + e * 2 + 2]]) { + i += r[i + e * 2 + 3]; + continue l7; + } + i += r[i]; + break; + case 64: + return; + break; + case 66: + _$pd = d[d.length - 1]; + break; + case 68: + d.push(_$pX); + break; + case 73: + d.push(_$pp); + break; + case 76: + d.push(undefined); + break; + case 79: + i += r[i]; + break; + case 80: + d.push(_$pd++); + break; + case 81: + d.push(_1tbu0[46 + r[i++]]); + break; + case 82: + d.push(_$pA); + break; + case 83: + d.push(_$pd); + break; + case 84: + d.push(_$pJ); + break; + case 85: + d.push(_$pT); + break; + case 89: + d.push(_$pZ); + break; + case 91: + _$po = d[d.length - 1]; + break; + case 92: + _$pp = d[d.length - 1]; + break; + case 93: + d[d.length - 4] = p.call(d[d.length - 4], d[d.length - 3], d[d.length - 2], d[d.length - 1]); + d.length -= 3; + break; + case 94: + d.push(_$pI++); + break; + case 95: + d.push(_$po); + break; + case 97: + d.push(_$pO); + break; + case 98: + d[d.length - 1] = !d[d.length - 1]; + break; + } + } + }, + 'reset': function () { + var _$pw = this._hasher; + _$pw.reset(), + _$pw.update(this._iKey); + }, + 'update': function (_$pw) { + return this._hasher.update(_$pw), + this; + }, + 'eKey': function (_$pw) { + 'use strict'; + var m = _3wmu0; + var x = _2z3u0; + var _$pe, _$po, _$pI, _$pj, _$pO, _$pp; + var h = []; + var j = 972; + var k, t; + l8: for (; ;) { + switch (x[j++]) { + case 1: + _$pj = h[h.length - 1]; + break; + case 5: + h.push(h[h.length - 1]); + h[h.length - 2] = h[h.length - 2][_1tbu0[73 + x[j++]]]; + break; + case 9: + _$pe = h[h.length - 1]; + break; + case 10: + h.push(x[j++]); + break; + case 13: + h.push(_$Pr); + break; + case 15: + return h.pop(); + break; + case 19: + j += x[j]; + break; + case 23: + h[h.length - 1] = h[h.length - 1].length; + break; + case 24: + h.push(_$pj); + break; + case 28: + h.push(String); + break; + case 29: + if (h[h.length - 2] != null) { + h[h.length - 3] = m.call(h[h.length - 3], h[h.length - 2], h[h.length - 1]); + h.length -= 2; + } else { + k = h[h.length - 3]; + h[h.length - 3] = k(h[h.length - 1]); + h.length -= 2; + } + break; + case 37: + k = h.pop(); + h[h.length - 1] -= k; + break; + case 39: + h.push(_$pO); + break; + case 40: + k = h.pop(); + h[h.length - 1] = h[h.length - 1] > k; + break; + case 47: + return; + break; + case 51: + h.push(_1tbu0[73 + x[j++]]); + break; + case 58: + if (h.pop()) + j += x[j]; + else + ++j; + break; + case 63: + k = h.pop(); + h[h.length - 1] += k; + break; + case 65: + _$po = h[h.length - 1]; + break; + case 67: + h.push(_$po); + break; + case 70: + h.push(_$pp); + break; + case 71: + h.push(null); + break; + case 72: + _$pO = h[h.length - 1]; + break; + case 73: + h.pop(); + break; + case 74: + h.push(_$pI); + break; + case 80: + h.push(_$pw); + break; + case 83: + h[h.length - 5] = m.call(h[h.length - 5], h[h.length - 4], h[h.length - 3], h[h.length - 2], h[h.length - 1]); + h.length -= 4; + break; + case 85: + _$pI = h[h.length - 1]; + break; + case 87: + _$pp = h[h.length - 1]; + break; + case 88: + if (h[h.length - 1] != null) { + h[h.length - 2] = m.call(h[h.length - 2], h[h.length - 1]); + } else { + k = h[h.length - 2]; + h[h.length - 2] = k(); + } + h.length--; + break; + case 90: + h[h.length - 4] = m.call(h[h.length - 4], h[h.length - 3], h[h.length - 2], h[h.length - 1]); + h.length -= 3; + break; + case 93: + h.push(new Array(x[j++])); + break; + case 96: + h.push(_$pe); + break; + case 98: + h.push(_$Pp); + break; + } + } + }, + 'finalize': function (_$pw) { + var _$pe, _$po = this._hasher, _$pI = _$po.finalize(_$pw); + return _$po.reset(), + _$po.finalize(_$Pp(_$pe = this._oKey.clone()).call(_$pe, _$pI)); + } + }); + }(_$O0.exports); + }(_$Om), + function (_$py, _$pu) { + _$py.exports = function (_$pG) { + return _$pG.HmacSHA256; + }(_$O0.exports); + }(_$Of); + var _$Og = _$Of.exports + , _$ON = { + 'exports': {} + }; + !function (_$py, _$pu) { + _$py.exports = function (_$pG) { + return _$pG.HmacMD5; + }(_$O0.exports); + }(_$ON); + var _$OU = _$ON.exports + , _$OV = function () { + var _$py = {}; + return { + 'setItem': function (_$pu, _$pG) { + _$py[_$pu] = _$pG; + }, + 'getItem': function (_$pu) { + return _$py[_$pu]; + } + }; + }() + , _$OK = window.localStorage + , _$Ol = { + 'get': function (_$py) { + var _$pu = arguments.length > 0x226a * 0x1 + -0x106 * -0x3 + -0x5f * 0x65 && void (0x1 * 0x55 + 0x7 * -0x44e + 0x1dcd) !== arguments[0xe58 + -0x9b1 + 0x4a6 * -0x1] ? arguments[-0x2507 * -0x1 + 0xe3 * 0x6 + -0x2a58] : { + 'raw': !(0xed * 0x19 + -0x1acf * -0x1 + -0x31f3 * 0x1), + 'from': 0x0 + } + , _$pG = _$OV.getItem(_$py); + try { + _$pG && _$b.QFZIF(0x1 * -0x18cd + 0x1 * 0x127 + -0xad * -0x23, _$pu.from) || (_$pG = _$OK.getItem(_$py)) && _$OV.setItem(_$py, _$pG); + } catch (_$pT) { + } + if (!_$pG) + return ''; + if (_$pu.raw) + return _$pG; + try { + return JSON.parse(_$pG); + } catch (_$pM) { + return _$pG; + } + }, + 'set': function (_$py, _$pu) { + var _$pG = _$pu; + _$b.Oengn === _$Ir(_$pG) && (_$pG = _$ws(_$pG)), + _$OV.setItem(_$py, _$pG); + try { + _$OK.setItem(_$py, _$pG); + } catch (_$pT) { + } + } + } + , _$OR = { + 'get': function (_$py, _$pu) { + var _$pG = _$Ol.get(_$Oj.STORAGE_KEY_TK) + , _$pT = _$OM(_$b.ndqrf(_$O7, _$pG) ? _$pG : {}, [_$py, _$pu]); + if (!_$b.IMZMd(_$O7, _$pT)) + return null; + var _$pM = _$pT.v || '' + , _$pn = null; + try { + _$pn = JSON.parse(_$Oc.stringify(_$OQ.parse(_$pM))); + } catch (_$pJ) { + return null; + } + return _$OJ({ + 'e': _$pT.e, + 't': _$pT.t + }) ? _$pn : null; + }, + 'save': function (_$py, _$pu, _$pG) { + var _$pT = { + 'iwPQF': function (_$pw, _$pe) { + return _$pw * _$pe; + } + } + , _$pM = _$Ol.get(_$Oj.STORAGE_KEY_TK) + , _$pn = _$O7(_$pM) ? _$pM : {} + , _$pJ = function (_$pw) { + var dS = a0a1b0cv; + if (_$pI = _$pw, + dS(0x140) == typeof _$pI) { + var _$pe = _$Pr(_$pw).call(_$pw, -0x5ed * 0x1 + -0x2 * -0x114d + 0x1ca * -0x10, -0x1 * -0x96d + -0x2 * -0xe81 + 0x266 * -0x10) + , + _$po = _$pT.iwPQF(0x36e + 0x2 * -0x3d2 + 0x472, _$jc(_$pe, 0x1 * 0xdf + -0x1320 + 0x1251)) * (0x217e + 0x1d41 + -0x3e83); + if (!isNaN(_$po)) + return _$po; + } + var _$pI; + return null; + }(_$pG ? _$pG.tk : ''); + _$pJ && (_$OT(_$pn, [_$py, _$pu], { + 'v': _$OQ.stringify(_$Oc.parse(_$ws(_$pG))), + 'e': _$pJ, + 't': Date.now() + }), + function (_$pw) { + if (!_$pw) + return; + var _$pe = []; + _$On(_$pw, function (_$pI, _$pj) { + _$On(_$pI, function (_$pO, _$pp) { + _$OJ(_$pO) && _$pe.push({ + 'fp': _$pj, + 'appId': _$pp, + 'data': _$pO + }); + }); + }); + var _$po = {}; + _$pe.forEach(function (_$pI) { + var _$pj = _$pI.fp + , _$pO = _$pI.appId + , _$pp = _$pI.data; + _$OT(_$po, [_$pj, _$pO], _$pp); + }), + _$Ol.set(_$Oj.STORAGE_KEY_TK, _$po); + }(_$pn)); + } + }; + + function _$OH() { + 'use strict'; + var q = _3wmu0; + var o = _2z3u0; + var dY, _$py, _$pu, _$pG, _$pT, _$pM, _$pn, _$pJ, _$pw, _$pe; + var m = []; + var b = 1099; + var a, c; + l9: for (; ;) { + switch (o[b++]) { + case 1: + _$pT = m[m.length - 1]; + break; + case 2: + m.push(_$pe); + break; + case 3: + m.push(Math); + break; + case 5: + m.push(_1tbu0[81 + o[b++]]); + break; + case 7: + m.push(pW); + break; + case 8: + m.push(_$pw); + break; + case 11: + m[m.length - 2][_1tbu0[81 + o[b++]]] = m[m.length - 1]; + m.length--; + break; + case 14: + m[m.length - 4] = q.call(m[m.length - 4], m[m.length - 3], m[m.length - 2], m[m.length - 1]); + m.length -= 3; + break; + case 19: + m[m.length - 1] = m[m.length - 1].length; + break; + case 21: + if (m[m.length - 1] != null) { + m[m.length - 2] = q.call(m[m.length - 2], m[m.length - 1]); + } else { + a = m[m.length - 2]; + m[m.length - 2] = a(); + } + m.length--; + break; + case 22: + m.push(m[m.length - 1]); + m[m.length - 2] = m[m.length - 2][_1tbu0[81 + o[b++]]]; + break; + case 23: + m.push(function (_$po, _$pI) { + 'use strict'; + var t = _3wmu0; + var h = _2z3u0; + var _$pj; + var i = []; + var p = 1352; + var g, w; + l10: for (; ;) { + switch (h[p++]) { + case 3: + i.push(_$a7); + break; + case 4: + i.push(i[i.length - 1]); + i[i.length - 2] = i[i.length - 2][_1tbu0[100 + h[p++]]]; + break; + case 7: + return i.pop(); + break; + case 11: + g = i.pop(); + i[i.length - 1] += g; + break; + case 14: + _$po = i[i.length - 1]; + break; + case 24: + g = i.pop(); + i[i.length - 1] = i[i.length - 1] < g; + break; + case 32: + i.push(null); + break; + case 33: + i.push(h[p++]); + break; + case 36: + i.push(_$po); + break; + case 38: + i.push(_1tbu0[100 + h[p++]]); + break; + case 44: + p += h[p]; + break; + case 46: + i[i.length - 1] = -i[i.length - 1]; + break; + case 50: + i.push(_$pI); + break; + case 52: + i.pop(); + break; + case 57: + i[i.length - 2] = i[i.length - 2][i[i.length - 1]]; + i.length--; + break; + case 58: + i[i.length - 4] = t.call(i[i.length - 4], i[i.length - 3], i[i.length - 2], i[i.length - 1]); + i.length -= 3; + break; + case 67: + i.push(_$pj); + break; + case 71: + return; + break; + case 74: + if (i[i.length - 2] != null) { + i[i.length - 3] = t.call(i[i.length - 3], i[i.length - 2], i[i.length - 1]); + i.length -= 2; + } else { + g = i[i.length - 3]; + i[i.length - 3] = g(i[i.length - 1]); + i.length -= 2; + } + break; + case 75: + i[i.length - 1] = i[i.length - 1].length; + break; + case 83: + if (i.pop()) + p += h[p]; + else + ++p; + break; + case 84: + _$pj = i[i.length - 1]; + break; + case 90: + if (i[i.length - 1]) { + ++p; + --i.length; + } else + p += h[p]; + break; + case 93: + i.push(_$pj++); + break; + case 95: + i.push(_$b); + break; + } + } + }); + break; + case 24: + _$pG = m[m.length - 1]; + break; + case 25: + a = m.pop(); + m[m.length - 1] |= a; + break; + case 26: + m.push(new Array(o[b++])); + break; + case 27: + dY = m[m.length - 1]; + break; + case 28: + m.push(function (_$po, _$pI) { + 'use strict'; + var h = _3wmu0; + var s = _2z3u0; + var _$pj, _$pO, _$pp, _$pA, _$pd, _$pZ, _$pX; + var j = []; + var b = 1412; + var p, c; + l11: for (; ;) { + switch (s[b++]) { + case 2: + _$pj = j[j.length - 1]; + break; + case 5: + if (j[j.length - 1]) { + ++b; + --j.length; + } else + b += s[b]; + break; + case 7: + j.push(_1tbu0[104 + s[b++]]); + break; + case 12: + j.push(_$pA); + break; + case 13: + j.push(j[j.length - 1]); + j[j.length - 2] = j[j.length - 2][_1tbu0[104 + s[b++]]]; + break; + case 15: + _$pp = j[j.length - 1]; + break; + case 16: + if (j[j.length - 1] != null) { + j[j.length - 2] = h.call(j[j.length - 2], j[j.length - 1]); + } else { + p = j[j.length - 2]; + j[j.length - 2] = p(); + } + j.length--; + break; + case 17: + if (j.pop()) + b += s[b]; + else + ++b; + break; + case 20: + if (j[j.length - 2] != null) { + j[j.length - 3] = h.call(j[j.length - 3], j[j.length - 2], j[j.length - 1]); + j.length -= 2; + } else { + p = j[j.length - 3]; + j[j.length - 3] = p(j[j.length - 1]); + j.length -= 2; + } + break; + case 21: + j.push(_$pZ++); + break; + case 22: + _$pO = j[j.length - 1]; + break; + case 23: + return j.pop(); + break; + case 24: + j.push(new Array(s[b++])); + break; + case 25: + j.push(_$pX); + break; + case 31: + p = j.pop(); + j[j.length - 1] *= p; + break; + case 33: + j.push(_$py); + break; + case 38: + j.push(_$pp++); + break; + case 40: + j.pop(); + break; + case 41: + j.push(_$pd); + break; + case 43: + _$pd = j[j.length - 1]; + break; + case 48: + if (j.pop()) + ++b; + else + b += s[b]; + break; + case 49: + j.push(_$pO); + break; + case 52: + _$pZ = j[j.length - 1]; + break; + case 53: + p = j.pop(); + j[j.length - 1] |= p; + break; + case 54: + j.push(--_$pI); + break; + case 55: + j.push(s[b++]); + break; + case 62: + p = j.pop(); + j[j.length - 1] += p; + break; + case 65: + j.push(_$pI); + break; + case 69: + p = j.pop(); + j[j.length - 1] -= p; + break; + case 70: + j.push(_$po); + break; + case 72: + _$pX = j[j.length - 1]; + break; + case 73: + p = j.pop(); + j[j.length - 1] = j[j.length - 1] < p; + break; + case 75: + return; + break; + case 76: + _$pA = j[j.length - 1]; + break; + case 78: + j.push(Math); + break; + case 82: + j.push(1); + break; + case 85: + j.push(_$pp); + break; + case 87: + j.push(_$pO--); + break; + case 89: + j.push(_$pZ); + break; + case 90: + j[j.length - 1] = j[j.length - 1].length; + break; + case 91: + j.push(_$pj); + break; + case 93: + j[j.length - 3][j[j.length - 2]] = j[j.length - 1]; + j[j.length - 3] = j[j.length - 1]; + j.length -= 2; + break; + case 94: + j[j.length - 2] = j[j.length - 2][j[j.length - 1]]; + j.length--; + break; + case 95: + b += s[b]; + break; + case 97: + j[j.length - 4] = h.call(j[j.length - 4], j[j.length - 3], j[j.length - 2], j[j.length - 1]); + j.length -= 3; + break; + case 99: + p = j.pop(); + j[j.length - 1] = j[j.length - 1] == p; + break; + } + } + }); + break; + case 29: + m.push(_$pG); + break; + case 31: + m.push(_$pT); + break; + case 32: + m.push(dY); + break; + case 33: + _$pJ = m[m.length - 1]; + break; + case 34: + return m.pop(); + break; + case 36: + m.push(o[b++]); + break; + case 37: + m.push(function (_$po, _$pI) { + 'use strict'; + var m = _3wmu0; + var n = _2z3u0; + var a = []; + var p = 1549; + var l, d; + l12: for (; ;) { + switch (n[p++]) { + case 19: + return a.pop(); + break; + case 25: + a.push(_$pI); + break; + case 32: + l = a.pop(); + a[a.length - 1] *= l; + break; + case 75: + a.push(_$po); + break; + case 81: + return; + break; + } + } + }); + break; + case 40: + m.push(_$pu); + break; + case 42: + m.push(_$Pp); + break; + case 44: + _$pu = m[m.length - 1]; + break; + case 53: + m[m.length - 5] = q.call(m[m.length - 5], m[m.length - 4], m[m.length - 3], m[m.length - 2], m[m.length - 1]); + m.length -= 4; + break; + case 54: + m.push(null); + break; + case 55: + if (m.pop()) + b += o[b]; + else + ++b; + break; + case 57: + b += o[b]; + break; + case 58: + _$pM = m[m.length - 1]; + break; + case 60: + _$pw = m[m.length - 1]; + break; + case 61: + m.push({}); + break; + case 63: + m.push(_$pJ); + break; + case 64: + m.push(_$OC); + break; + case 65: + if (m[m.length - 2] != null) { + m[m.length - 3] = q.call(m[m.length - 3], m[m.length - 2], m[m.length - 1]); + m.length -= 2; + } else { + a = m[m.length - 3]; + m[m.length - 3] = a(m[m.length - 1]); + m.length -= 2; + } + break; + case 66: + m.pop(); + break; + case 68: + m.push(_$pM); + break; + case 72: + m.push(_$Pr); + break; + case 74: + a = m.pop(); + m[m.length - 1] -= a; + break; + case 77: + a = m.pop(); + m[m.length - 1] += a; + break; + case 82: + _$pe = m[m.length - 1]; + break; + case 83: + _$pn = m[m.length - 1]; + break; + case 88: + m.push(function (_$po, _$pI) { + 'use strict'; + var c = _3wmu0; + var g = _2z3u0; + var w = []; + var l = 1554; + var q, r; + l13: for (; ;) { + switch (g[l++]) { + case 14: + return w.pop(); + break; + case 35: + w.push(_$pI); + break; + case 44: + w.push(_$po); + break; + case 84: + q = w.pop(); + w[w.length - 1] = w[w.length - 1] < q; + break; + case 95: + return; + break; + } + } + }); + break; + case 89: + _$py = m[m.length - 1]; + break; + case 90: + m.push(_$pn); + break; + case 95: + return; + break; + case 96: + m.push(_$b); + break; + case 97: + m.push(undefined); + break; + case 99: + m.push(_$jc); + break; + } + } + } + + function _$OC(_$py) { + for (var _$pu = _$py.size, _$pG = _$py.num, _$pT = ''; _$pu--;) + _$pT += _$pG[_$b.RMpLe(Math.random() * _$pG.length, -0x191f + -0x1a3 * -0x3 + 0x1a * 0xc7)]; + return _$pT; + } + + function _$OF(_$py) { + return _$py && _$py.v && 0xc6a + -0x20f3 + 0x1499 === _$py.v.length && _$py.e && _$py.t && _$py.t + (-0x21b7 + -0x13e4 + 0x3983) * _$py.e > Date.now(); + } + + var _$Or = { + 'get': function (_$py, _$pu) { + var _$pG = arguments.length > 0x136b + 0x1457 + -0x27c0 && void (-0x2047 + 0x40a + 0x1c3d) !== arguments[0x1d71 + 0x1183 + -0x1779 * 0x2] ? arguments[-0x1864 + 0x15d6 + -0x2 * -0x148] : -0x17be + 0x24e0 + -0x2 * 0x691 + , _$pT = _$Ol.get(_$Oj.STORAGE_KEY_VK, { + 'raw': !(-0x207 * -0x8 + -0x1 * -0xb9b + -0x946 * 0x3), + 'from': _$pG + }) + , _$pM = _$O7(_$pT) ? _$pT : {} + , _$pn = _$b.jcWMV(_$OM, _$pM, [_$py, _$pu]); + if (_$OF(_$pn)) + return _$pn.v; + var _$pJ = _$OH(); + return _$OT(_$pM, [_$py, _$pu], { + 'e': 0x1e13380, + 'v': _$pJ, + 't': Date.now() + }), + function (_$pw) { + if (!_$pw) + return; + var _$pe = []; + _$On(_$pw, function (_$pI, _$pj) { + _$On(_$pI, function (_$pO, _$pp) { + _$OF(_$pO) && _$pe.push({ + 'v': _$pj, + 'appid': _$pp, + 'data': _$pO + }); + }); + }); + var _$po = {}; + _$pe.forEach(function (_$pI) { + var _$pj = _$pI.v + , _$pO = _$pI.appid + , _$pp = _$pI.data; + _$OT(_$po, [_$pj, _$pO], _$pp); + }), + _$Ol.set(_$Oj.STORAGE_KEY_VK, _$po); + }(_$pM), + _$pJ; + } + } + , _$Oq = { + 'exports': {} + }; + !function (_$py, _$pu) { + _$py.exports = function (_$pG) { + return _$pG.enc.Utils; + }(_$O0.exports); + }(_$Oq); + var _$Ot = _$Oq.exports; + + function _$Ok(_$py) { + 'use strict'; + var u = _3wmu0; + var d = _2z3u0; + var _$pu, _$pG, _$pT; + var i = []; + var g = 1559; + var j, t; + l14: for (; ;) { + switch (d[g++]) { + case 5: + i.push(i[i.length - 1]); + i[i.length - 2] = i[i.length - 2][_1tbu0[109 + d[g++]]]; + break; + case 6: + i.push(function (_$pM, _$pn) { + 'use strict'; + var u = _3wmu0; + var j = _2z3u0; + var k = []; + var x = 1719; + var d, h; + l15: for (; ;) { + switch (j[x++]) { + case 36: + k.push(null); + break; + case 42: + return; + break; + case 48: + k.push(_$pM); + break; + case 55: + k.push(_$pn); + break; + case 64: + if (k[k.length - 2] != null) { + k[k.length - 3] = u.call(k[k.length - 3], k[k.length - 2], k[k.length - 1]); + k.length -= 2; + } else { + d = k[k.length - 3]; + k[k.length - 3] = d(k[k.length - 1]); + k.length -= 2; + } + break; + case 85: + return k.pop(); + break; + } + } + }); + break; + case 8: + i.push(d[g++]); + break; + case 10: + i[i.length - 2][_1tbu0[109 + d[g++]]] = i[i.length - 1]; + i[i.length - 2] = i[i.length - 1]; + i.length--; + break; + case 11: + return i.pop(); + break; + case 14: + i.push(function (_$pM, _$pn) { + 'use strict'; + var h = _3wmu0; + var n = _2z3u0; + var m = []; + var b = 1725; + var o, y; + l16: for (; ;) { + switch (n[b++]) { + case 33: + m.push(_$pn); + break; + case 51: + m.push(_$pM); + break; + case 57: + return m.pop(); + break; + case 60: + o = m.pop(); + m[m.length - 1] *= o; + break; + case 95: + return; + break; + } + } + }); + break; + case 17: + _$pu = i[i.length - 1]; + break; + case 28: + i.push(_$py); + break; + case 30: + i[i.length - 2][_1tbu0[109 + d[g++]]] = i[i.length - 1]; + i.length--; + break; + case 33: + i.push(undefined); + break; + case 35: + i.push(function () { + 'use strict'; + var s = _3wmu0; + var b = _2z3u0; + var _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj; + var k = []; + var i = 1730; + var a, u; + l17: for (; ;) { + switch (b[i++]) { + case 1: + k.push(_1tbu0[129 + b[i++]]); + break; + case 2: + k[k.length - 3][k[k.length - 2]] = k[k.length - 1]; + k.length -= 2; + break; + case 8: + k.push(_$pM); + break; + case 9: + return; + break; + case 11: + _$pI = k[k.length - 1]; + break; + case 13: + k.push(_$O8); + break; + case 15: + k.push(1); + break; + case 16: + k.push(null); + break; + case 19: + if (k[k.length - 1]) { + ++i; + --k.length; + } else + i += b[i]; + break; + case 21: + _$pM = k[k.length - 1]; + break; + case 22: + k.push(_$OQ); + break; + case 23: + k.push(_$pI); + break; + case 25: + _$pj = k[k.length - 1]; + break; + case 26: + k.pop(); + break; + case 28: + k.push(k[k.length - 1]); + k[k.length - 2] = k[k.length - 2][_1tbu0[129 + b[i++]]]; + break; + case 29: + k.push(Math); + break; + case 34: + k[k.length - 1] = k[k.length - 1].length; + break; + case 37: + k.push(_$Oc); + break; + case 38: + _$pJ = k[k.length - 1]; + break; + case 41: + k[k.length - 2] = k[k.length - 2][k[k.length - 1]]; + k.length--; + break; + case 43: + _$pe = k[k.length - 1]; + break; + case 47: + k.push(_$pJ); + break; + case 51: + a = k.pop(); + k[k.length - 1] -= a; + break; + case 52: + i += b[i]; + break; + case 56: + k.push(_$pj); + break; + case 57: + _$pw = k[k.length - 1]; + break; + case 58: + _$pn = k[k.length - 1]; + break; + case 60: + k.push(_$pe); + break; + case 63: + _$po = k[k.length - 1]; + break; + case 64: + k.push(new Array(b[i++])); + break; + case 71: + a = b[i++]; + k.push(new RegExp(_1tbu0[129 + a], _1tbu0[129 + a + 1])); + break; + case 73: + a = k.pop(); + k[k.length - 1] *= a; + break; + case 74: + a = k.pop(); + k[k.length - 1] += a; + break; + case 75: + if (k[k.length - 2] != null) { + k[k.length - 3] = s.call(k[k.length - 3], k[k.length - 2], k[k.length - 1]); + k.length -= 2; + } else { + a = k[k.length - 3]; + k[k.length - 3] = a(k[k.length - 1]); + k.length -= 2; + } + break; + case 77: + k[k.length - 4] = s.call(k[k.length - 4], k[k.length - 3], k[k.length - 2], k[k.length - 1]); + k.length -= 3; + break; + case 78: + k.push(_$po); + break; + case 79: + return k.pop(); + break; + case 81: + k.push(_$po++); + break; + case 83: + k.push(_$pw); + break; + case 84: + k.push(_$pn); + break; + case 90: + k.push(0); + break; + case 93: + if (k[k.length - 1] != null) { + k[k.length - 2] = s.call(k[k.length - 2], k[k.length - 1]); + } else { + a = k[k.length - 2]; + k[k.length - 2] = a(); + } + k.length--; + break; + case 94: + a = k.pop(); + k[k.length - 1] = k[k.length - 1] < a; + break; + case 95: + k.push(_$pu); + break; + case 98: + if (k.pop()) + i += b[i]; + else + ++i; + break; + case 99: + k.push(b[i++]); + break; + } + } + }); + break; + case 36: + i[i.length - 1] = i[i.length - 1][_1tbu0[109 + d[g++]]]; + break; + case 38: + i.push(_$b); + break; + case 40: + if (i[i.length - 2] != null) { + i[i.length - 3] = u.call(i[i.length - 3], i[i.length - 2], i[i.length - 1]); + i.length -= 2; + } else { + j = i[i.length - 3]; + i[i.length - 3] = j(i[i.length - 1]); + i.length -= 2; + } + break; + case 48: + i.push(_$pG); + break; + case 53: + i.push(function (_$pM, _$pn) { + 'use strict'; + var o = _3wmu0; + var b = _2z3u0; + var m = []; + var r = 1963; + var k, u; + l18: for (; ;) { + switch (b[r++]) { + case 2: + m.push(_$pn); + break; + case 7: + m.push(_$b); + break; + case 8: + m.push(_$pM); + break; + case 29: + return m.pop(); + break; + case 54: + return; + break; + case 71: + m.push(m[m.length - 1]); + m[m.length - 2] = m[m.length - 2][_1tbu0[151 + b[r++]]]; + break; + case 89: + m[m.length - 4] = o.call(m[m.length - 4], m[m.length - 3], m[m.length - 2], m[m.length - 1]); + m.length -= 3; + break; + } + } + }); + break; + case 55: + _$pT = i[i.length - 1]; + break; + case 61: + if (i[i.length - 1] != null) { + i[i.length - 2] = u.call(i[i.length - 2], i[i.length - 1]); + } else { + j = i[i.length - 2]; + i[i.length - 2] = j(); + } + i.length--; + break; + case 64: + i[i.length - 4] = u.call(i[i.length - 4], i[i.length - 3], i[i.length - 2], i[i.length - 1]); + i.length -= 3; + break; + case 65: + i.push({}); + break; + case 66: + i.push(function (_$pM) { + 'use strict'; + var t = _3wmu0; + var o = _2z3u0; + var _$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj; + var j = []; + var b = 1971; + var g, k; + l19: for (; ;) { + switch (o[b++]) { + case 5: + if (j[j.length - 2] != null) { + j[j.length - 3] = t.call(j[j.length - 3], j[j.length - 2], j[j.length - 1]); + j.length -= 2; + } else { + g = j[j.length - 3]; + j[j.length - 3] = g(j[j.length - 1]); + j.length -= 2; + } + break; + case 6: + j.push(_$O8); + break; + case 8: + j.push(_$po); + break; + case 13: + j.push(_$pe); + break; + case 15: + j.push(_$pJ); + break; + case 16: + g = j.pop(); + j[j.length - 1] += g; + break; + case 17: + _$pe = j[j.length - 1]; + break; + case 19: + j.push(_$OS); + break; + case 23: + j.push(_$O4); + break; + case 24: + j.push(_$pn); + break; + case 29: + j.push(function (_$pO, _$pp, _$pA, _$pd) { + 'use strict'; + var u = _3wmu0; + var k = _2z3u0; + var dx, _$pZ, _$pX, _$ph, _$pB, _$pQ, _$pE, _$pc, _$pL; + var c = []; + var n = 2092; + var a, o; + l20: for (; ;) { + switch (k[n++]) { + case 4: + c.push(function (_$ps, _$pf, _$pm) { + 'use strict'; + var u = _3wmu0; + var m = _2z3u0; + var b = []; + var y = 2337; + var x, a; + l21: for (; ;) { + switch (m[y++]) { + case 15: + return; + break; + case 31: + b.pop(); + break; + case 38: + b[b.length - 3][b[b.length - 2]] = b[b.length - 1]; + b[b.length - 3] = b[b.length - 1]; + b.length -= 2; + break; + case 55: + b.push(_$pd); + break; + case 64: + b.push(b[b.length - 1]); + b[b.length - 2] = b[b.length - 2][_1tbu0[179 + m[y++]]]; + break; + case 79: + b.push(_$pf); + break; + case 96: + if (b[b.length - 2] != null) { + b[b.length - 3] = u.call(b[b.length - 3], b[b.length - 2], b[b.length - 1]); + b.length -= 2; + } else { + x = b[b.length - 3]; + b[b.length - 3] = x(b[b.length - 1]); + b.length -= 2; + } + break; + case 97: + b.push(_$pm); + break; + } + } + }); + break; + case 7: + c.push(a0a1b0cv); + break; + case 11: + if (c[c.length - 2] != null) { + c[c.length - 3] = u.call(c[c.length - 3], c[c.length - 2], c[c.length - 1]); + c.length -= 2; + } else { + a = c[c.length - 3]; + c[c.length - 3] = a(c[c.length - 1]); + c.length -= 2; + } + break; + case 13: + c.push(dx); + break; + case 19: + c.push(_1tbu0[159 + k[n++]]); + break; + case 22: + c.push(_$pB); + break; + case 23: + c.push(_$pZ); + break; + case 26: + c.push(_$O2); + break; + case 27: + if (c[c.length - 1] != null) { + c[c.length - 2] = u.call(c[c.length - 2], c[c.length - 1]); + } else { + a = c[c.length - 2]; + c[c.length - 2] = a(); + } + c.length--; + break; + case 32: + c[c.length - 1] = c[c.length - 1][_1tbu0[159 + k[n++]]]; + break; + case 33: + c.push(_$pX++); + break; + case 34: + c.push(_$pE); + break; + case 35: + _$ph = c[c.length - 1]; + break; + case 36: + if (c.pop()) + n += k[n]; + else + ++n; + break; + case 37: + _$pL = c[c.length - 1]; + break; + case 38: + c[c.length - 3] = new c[c.length - 3](c[c.length - 1]); + c.length -= 2; + break; + case 40: + c.push(function (_$ps, _$pf, _$pm) { + 'use strict'; + var x = _3wmu0; + var h = _2z3u0; + var p = []; + var i = 2347; + var u, c; + l22: for (; ;) { + switch (h[i++]) { + case 4: + return; + break; + case 9: + p.pop(); + break; + case 10: + p.push(_$pm); + break; + case 15: + if (p[p.length - 2] != null) { + p[p.length - 3] = x.call(p[p.length - 3], p[p.length - 2], p[p.length - 1]); + p.length -= 2; + } else { + u = p[p.length - 3]; + p[p.length - 3] = u(p[p.length - 1]); + p.length -= 2; + } + break; + case 21: + p.push(_$pf); + break; + case 41: + p.push(p[p.length - 1]); + p[p.length - 2] = p[p.length - 2][_1tbu0[180 + h[i++]]]; + break; + case 46: + p.push(_$pA); + break; + case 53: + p[p.length - 3][p[p.length - 2]] = p[p.length - 1]; + p[p.length - 3] = p[p.length - 1]; + p.length -= 2; + break; + } + } + }); + break; + case 41: + c.push(Uint8Array); + break; + case 42: + c[c.length - 2] = c[c.length - 2][c[c.length - 1]]; + c.length--; + break; + case 44: + a = c.pop(); + c[c.length - 1] += a; + break; + case 45: + c[c.length - 1] = !c[c.length - 1]; + break; + case 47: + c.push(new Array(k[n++])); + break; + case 48: + c[c.length - 4] = u.call(c[c.length - 4], c[c.length - 3], c[c.length - 2], c[c.length - 1]); + c.length -= 3; + break; + case 50: + c.push(_$pc); + break; + case 51: + _$pE = c[c.length - 1]; + break; + case 52: + c.push(undefined); + break; + case 54: + c.push(_$pp); + break; + case 56: + c.push(Array); + break; + case 60: + c.push(_$Ot); + break; + case 61: + dx = c[c.length - 1]; + break; + case 63: + c.push(_$pQ); + break; + case 70: + return; + break; + case 71: + c.pop(); + break; + case 72: + c.push(_$ph); + break; + case 74: + return c.pop(); + break; + case 77: + _$pB = c[c.length - 1]; + break; + case 78: + c.push(function (_$ps, _$pf, _$pm) { + 'use strict'; + var p = _3wmu0; + var h = _2z3u0; + var a = []; + var r = 2357; + var b, q; + l23: for (; ;) { + switch (h[r++]) { + case 2: + a.push(_$pf); + break; + case 11: + a[a.length - 3][a[a.length - 2]] = a[a.length - 1]; + a[a.length - 3] = a[a.length - 1]; + a.length -= 2; + break; + case 24: + if (a[a.length - 2] != null) { + a[a.length - 3] = p.call(a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 2; + } else { + b = a[a.length - 3]; + a[a.length - 3] = b(a[a.length - 1]); + a.length -= 2; + } + break; + case 57: + a.push(_$pO); + break; + case 65: + a.push(_$pm); + break; + case 81: + a.pop(); + break; + case 82: + return; + break; + case 88: + a.push(a[a.length - 1]); + a[a.length - 2] = a[a.length - 2][_1tbu0[181 + h[r++]]]; + break; + } + } + }); + break; + case 79: + _$pQ = c[c.length - 1]; + break; + case 82: + _$pX = c[c.length - 1]; + break; + case 83: + _$pc = c[c.length - 1]; + break; + case 85: + a = c.pop(); + for (o = 0; o < k[n + 1]; ++o) + if (a === _1tbu0[159 + k[n + o * 2 + 2]]) { + n += k[n + o * 2 + 3]; + continue l20; + } + n += k[n]; + break; + case 88: + c.push(_$OY); + break; + case 89: + c.push(c[c.length - 1]); + c[c.length - 2] = c[c.length - 2][_1tbu0[159 + k[n++]]]; + break; + case 92: + c.push(null); + break; + case 96: + c.push(k[n++]); + break; + case 97: + _$pZ = c[c.length - 1]; + break; + case 98: + c.push(_$pL); + break; + case 99: + n += k[n]; + break; + } + } + }); + break; + case 30: + j.push(null); + break; + case 31: + j.push(_$pj); + break; + case 33: + j.push(Date); + break; + case 38: + j[j.length - 4] = t.call(j[j.length - 4], j[j.length - 3], j[j.length - 2], j[j.length - 1]); + j.length -= 3; + break; + case 41: + j.push(_$pu); + break; + case 42: + _$pn = j[j.length - 1]; + break; + case 43: + _$pI = j[j.length - 1]; + break; + case 45: + j.push(undefined); + break; + case 48: + j.push(_$pw); + break; + case 50: + j[j.length - 6] = t.call(j[j.length - 6], j[j.length - 5], j[j.length - 4], j[j.length - 3], j[j.length - 2], j[j.length - 1]); + j.length -= 5; + break; + case 52: + _$pw = j[j.length - 1]; + break; + case 60: + _$pj = j[j.length - 1]; + break; + case 62: + return j.pop(); + break; + case 65: + j.push(_$OY); + break; + case 67: + j.push(j[j.length - 1]); + j[j.length - 2] = j[j.length - 2][_1tbu0[152 + o[b++]]]; + break; + case 68: + _$po = j[j.length - 1]; + break; + case 73: + j.push(_$OQ); + break; + case 78: + j.push(_1tbu0[152 + o[b++]]); + break; + case 83: + j.push(_$pM); + break; + case 87: + j.push(_$Oi); + break; + case 88: + if (j[j.length - 1] != null) { + j[j.length - 2] = t.call(j[j.length - 2], j[j.length - 1]); + } else { + g = j[j.length - 2]; + j[j.length - 2] = g(); + } + j.length--; + break; + case 93: + j.push(_$pI); + break; + case 95: + return; + break; + case 96: + _$pJ = j[j.length - 1]; + break; + case 97: + j.pop(); + break; + case 98: + j.push(o[b++]); + break; + } + } + }); + break; + case 68: + return; + break; + case 74: + j = i.pop(); + i[i.length - 1] += j; + break; + case 75: + i.push(null); + break; + case 77: + _$pG = i[i.length - 1]; + break; + case 80: + i.push(_1tbu0[109 + d[g++]]); + break; + case 83: + i.push(_$O2); + break; + case 84: + i.pop(); + break; + case 89: + i.push(_$pT); + break; + } + } + } + + function _$Oi(_$py) { + return _$aJ(Array.prototype).call(_$py, function (_$pu) { + var _$pG; + return _$Pr(_$pG = '00' + (-0x322 + -0x323 + 0x744 & _$pu).toString(0x3c4 + 0x1 * 0x1f85 + 0x7f * -0x47)).call(_$pG, -(-0x1580 + 0x23dc + -0xe5a)); + }).join(''); + } + + function _$OS(_$py) { + var _$pu = new Uint8Array(_$py.length); + return Array.prototype.forEach.call(_$pu, function (_$pG, _$pT, _$pM) { + _$pM[_$pT] = _$py.charCodeAt(_$pT); + }), + _$Oi(_$pu); + } + + function _$OY(_$py) { + 'use strict'; + var w = _3wmu0; + var b = _2z3u0; + var _$pu, _$pG, _$pT, _$pM, _$pn; + var a = []; + var i = 2367; + var h, y; + l24: for (; ;) { + switch (b[i++]) { + case 2: + a.push(function () { + 'use strict'; + var d = _3wmu0; + var s = _2z3u0; + var _$pJ; + var w = []; + var r = 2510; + var i, p; + l25: for (; ;) { + switch (s[r++]) { + case 2: + return; + break; + case 7: + w.push(DataView); + break; + case 11: + w[w.length - 2] = w[w.length - 2][w[w.length - 1]]; + w.length--; + break; + case 12: + w[w.length - 1] = !w[w.length - 1]; + break; + case 27: + w.push(undefined); + break; + case 35: + w.push(w[w.length - 1]); + w[w.length - 2] = w[w.length - 2][_1tbu0[186 + s[r++]]]; + break; + case 45: + _$pJ = w[w.length - 1]; + break; + case 53: + w.push(_$pJ); + break; + case 56: + w.push(Int16Array); + break; + case 59: + w.push(s[r++]); + break; + case 62: + w[w.length - 3] = new w[w.length - 3](w[w.length - 1]); + w.length -= 2; + break; + case 65: + return w.pop(); + break; + case 83: + i = w.pop(); + w[w.length - 1] += i; + break; + case 89: + w.pop(); + break; + case 91: + i = w.pop(); + w[w.length - 1] = w[w.length - 1] === i; + break; + case 92: + w.push(ArrayBuffer); + break; + case 93: + w[w.length - 5] = d.call(w[w.length - 5], w[w.length - 4], w[w.length - 3], w[w.length - 2], w[w.length - 1]); + w.length -= 4; + break; + } + } + }); + break; + case 3: + a.push(a[a.length - 1]); + a[a.length - 2] = a[a.length - 2][_1tbu0[182 + b[i++]]]; + break; + case 5: + a.push(_$pT); + break; + case 13: + a.push(_$py); + break; + case 17: + a.push(undefined); + break; + case 20: + return a.pop(); + break; + case 23: + h = a.pop(); + a[a.length - 1] += h; + break; + case 31: + a.push(DataView); + break; + case 32: + return; + break; + case 36: + a.push(_$pG); + break; + case 38: + if (a[a.length - 1] != null) { + a[a.length - 2] = w.call(a[a.length - 2], a[a.length - 1]); + } else { + h = a[a.length - 2]; + a[a.length - 2] = h(); + } + a.length--; + break; + case 39: + _$pT = a[a.length - 1]; + break; + case 42: + a[a.length - 3] = new a[a.length - 3](a[a.length - 1]); + a.length -= 2; + break; + case 49: + a.push(b[i++]); + break; + case 53: + a[a.length - 4] = w.call(a[a.length - 4], a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 3; + break; + case 54: + if (a[a.length - 2] != null) { + a[a.length - 3] = w.call(a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 2; + } else { + h = a[a.length - 3]; + a[a.length - 3] = h(a[a.length - 1]); + a.length -= 2; + } + break; + case 61: + a.push(_$pn); + break; + case 67: + a.push(Math); + break; + case 68: + _$pu = a[a.length - 1]; + break; + case 69: + a.push(_$pu); + break; + case 70: + a[a.length - 5] = w.call(a[a.length - 5], a[a.length - 4], a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 4; + break; + case 73: + a.push(Uint8Array); + break; + case 76: + h = a.pop(); + a[a.length - 1] %= h; + break; + case 79: + _$pG = a[a.length - 1]; + break; + case 80: + a.push(_$b); + break; + case 81: + i += b[i]; + break; + case 82: + _$pM = a[a.length - 1]; + break; + case 84: + a.push(ArrayBuffer); + break; + case 89: + if (a.pop()) + ++i; + else + i += b[i]; + break; + case 91: + _$pn = a[a.length - 1]; + break; + case 94: + a.push(_$pM); + break; + case 97: + a.pop(); + break; + } + } + } + + var _$Ox = _$w; + _$zP({ + 'global': !(0x239f * -0x1 + 0x141b * 0x1 + -0x52c * -0x3), + 'forced': _$b.psbiH(_$Ox.globalThis, _$Ox) + }, { + 'globalThis': _$Ox + }); + var _$OW = _$w + , _$OD = { + 'exports': {} + } + , _$p0 = _$zP + , _$p1 = _$P + , _$p2 = _$W + , _$p3 = _$c.f + , _$p4 = _$L; + _$p0({ + 'target': _$b.FTzay, + 'stat': !(0x1cca + 0x74a + -0x2 * 0x120a), + 'forced': !_$p4 || _$p1(function () { + _$p3(-0x2605 + -0x71 * -0x35 + 0xea1); + }), + 'sham': !_$p4 + }, { + 'getOwnPropertyDescriptor': function (_$py, _$pu) { + return _$p3(_$p2(_$py), _$pu); + } + }); + var _$p5 = _$b1.Object + , _$p6 = _$OD.exports = function (_$py, _$pu) { + return _$p5.getOwnPropertyDescriptor(_$py, _$pu); + } + ; + _$p5.getOwnPropertyDescriptor.sham && (_$p6.sham = !(-0x4 * -0x952 + 0x343 * 0x2 + -0x2bce)); + var _$p7 = _$OD.exports; + + function _$p8() { + var dW = pW + , _$py = { + 'ACQIU': function (_$pG, _$pT) { + return _$b.FrJiA(_$pG, _$pT); + }, + 'tBaRg': function (_$pG, _$pT) { + return _$pG === _$pT; + }, + 'WQXqm': dW(0x11e), + 'QNPAL': _$b.Ekjoe, + 'ARZsn': function (_$pG, _$pT) { + return _$b.vXyya(_$pG, _$pT); + }, + 'guCcM': dW(0x1a8), + 'vaFyH': function (_$pG, _$pT) { + return _$pG !== _$pT; + }, + 'onMHy': function (_$pG, _$pT) { + return _$pG(_$pT); + }, + 'VZscF': dW(0x10e), + 'cqpWs': dW(0x8b), + 'DYSeu': function (_$pG, _$pT) { + return _$b.FIpOa(_$pG, _$pT); + }, + 'SCLsq': function (_$pG, _$pT) { + return _$b.hixue(_$pG, _$pT); + }, + 'vVBDQ': function (_$pG, _$pT) { + return _$pG === _$pT; + }, + 'psRpx': _$b.sYuSE, + 'UtRDj': function (_$pG, _$pT) { + return _$pG === _$pT; + } + }; + try { + var _$pu = function () { + 'use strict'; + var n = _3wmu0; + var e = _2z3u0; + var dD, _$pG, _$pT, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO, _$pp, _$pA, _$pd, _$pZ, _$pX, + _$ph, _$pB, _$pQ, _$pE, _$pc, _$pL; + var c = []; + var s = 2580; + var t, h; + l26: for (; ;) { + switch (e[s++]) { + case 1: + _$po = c[c.length - 1]; + break; + case 2: + c.push(_$pd); + break; + case 3: + t = c.pop(); + c[c.length - 1] = c[c.length - 1] != t; + break; + case 4: + c.push(window); + break; + case 5: + t = e[s++]; + c.push(new RegExp(_1tbu0[187 + t], _1tbu0[187 + t + 1])); + break; + case 6: + c.push(navigator); + break; + case 7: + c[c.length - 2] = c[c.length - 2][c[c.length - 1]]; + c.length--; + break; + case 8: + c.push({}); + break; + case 9: + c[c.length - 2][_1tbu0[187 + e[s++]]] = c[c.length - 1]; + c[c.length - 2] = c[c.length - 1]; + c.length--; + break; + case 10: + c.push(_$pM); + break; + case 11: + if (c[c.length - 2] != null) { + c[c.length - 3] = n.call(c[c.length - 3], c[c.length - 2], c[c.length - 1]); + c.length -= 2; + } else { + t = c[c.length - 3]; + c[c.length - 3] = t(c[c.length - 1]); + c.length -= 2; + } + break; + case 12: + c.push(0); + break; + case 13: + _$pJ = c[c.length - 1]; + break; + case 14: + _$pB = c[c.length - 1]; + break; + case 15: + if (c[c.length - 1] != null) { + c[c.length - 2] = n.call(c[c.length - 2], c[c.length - 1]); + } else { + t = c[c.length - 2]; + c[c.length - 2] = t(); + } + c.length--; + break; + case 16: + c.push(typeof process); + break; + case 17: + c.push(_$pL); + break; + case 18: + c[c.length - 1] = -c[c.length - 1]; + break; + case 19: + _$pp = c[c.length - 1]; + break; + case 20: + c.push(_$py); + break; + case 21: + c[c.length - 3] = new c[c.length - 3](c[c.length - 1]); + c.length -= 2; + break; + case 22: + c.push(HTMLAllCollection); + break; + case 23: + _$pe = c[c.length - 1]; + break; + case 24: + c.push(_$pJ); + break; + case 25: + c.push(_$pw); + break; + case 26: + c.push(typeof Bun); + break; + case 27: + c.push(_$Oh); + break; + case 28: + c[c.length - 1] = c[c.length - 1][_1tbu0[187 + e[s++]]]; + break; + case 29: + c.push(_$po); + break; + case 30: + c.push(_$pA); + break; + case 31: + _$pX = c[c.length - 1]; + break; + case 32: + c[c.length - 1] = !c[c.length - 1]; + break; + case 33: + c.push(dW); + break; + case 34: + _$pQ = c[c.length - 1]; + break; + case 35: + c.push(_$p7); + break; + case 36: + c[c.length - 1] = c[c.length - 1].length; + break; + case 37: + _$pZ = c[c.length - 1]; + break; + case 38: + c.push(Deno); + break; + case 39: + s += e[s]; + break; + case 40: + c.push(c[c.length - 1]); + c[c.length - 2] = c[c.length - 2][_1tbu0[187 + e[s++]]]; + break; + case 41: + c[c.length - 2] = new c[c.length - 2](); + c.length -= 1; + break; + case 42: + c.push(_$pj); + break; + case 43: + t = c.pop(); + c[c.length - 1] += t; + break; + case 44: + c.push(_$pp); + break; + case 45: + c.push(_$pI); + break; + case 46: + t = c.pop(); + c[c.length - 1] = c[c.length - 1] !== t; + break; + case 47: + c.push(Window); + break; + case 48: + c.push(_$ph); + break; + case 49: + _$pL = c[c.length - 1]; + break; + case 50: + c.push(Error); + break; + case 51: + t = c.pop(); + c[c.length - 1] /= t; + break; + case 52: + _$pd = c[c.length - 1]; + break; + case 53: + c.push(_$pe); + break; + case 54: + c.push(_$pn); + break; + case 55: + c.push(_$a7); + break; + case 56: + t = c.pop(); + c[c.length - 1] |= t; + break; + case 57: + c[c.length - 4] = n.call(c[c.length - 4], c[c.length - 3], c[c.length - 2], c[c.length - 1]); + c.length -= 3; + break; + case 58: + dD = c[c.length - 1]; + break; + case 59: + c.push(_$pT); + break; + case 60: + c.push(_$OW); + break; + case 61: + _$pA = c[c.length - 1]; + break; + case 62: + c.push(dD); + break; + case 63: + c.push(_$Oy); + break; + case 64: + c.push(_$pc); + break; + case 65: + _$pT = c[c.length - 1]; + break; + case 66: + _$pG = c[c.length - 1]; + break; + case 67: + c.push(process); + break; + case 68: + c.push(e[s++]); + break; + case 69: + c.push(Date); + break; + case 70: + t = c.pop(); + c[c.length - 1] = c[c.length - 1] == t; + break; + case 71: + if (c.pop()) + ++s; + else + s += e[s]; + break; + case 72: + c.push(_$pQ); + break; + case 73: + c.push(null); + break; + case 74: + c.push(_$pE); + break; + case 75: + _$pE = c[c.length - 1]; + break; + case 76: + c.push(typeof Deno); + break; + case 77: + c.push(_$pZ); + break; + case 78: + c.push(_$pO); + break; + case 79: + c.push(_$O8); + break; + case 80: + c.push(document); + break; + case 81: + _$pc = c[c.length - 1]; + break; + case 82: + c[c.length - 1] = undefined; + break; + case 83: + _$pI = c[c.length - 1]; + break; + case 84: + if (c[c.length - 1]) { + ++s; + --c.length; + } else + s += e[s]; + break; + case 85: + if (c[c.length - 1]) + s += e[s]; + else { + ++s; + --c.length; + } + break; + case 86: + _$ph = c[c.length - 1]; + break; + case 87: + c.pop(); + break; + case 88: + c.push(_$pG); + break; + case 89: + t = c.pop(); + c[c.length - 1] = c[c.length - 1] in t; + break; + case 90: + _$pM = c[c.length - 1]; + break; + case 91: + _$pO = c[c.length - 1]; + break; + case 92: + c.push(_$pX); + break; + case 93: + c.push(undefined); + break; + case 94: + _$pj = c[c.length - 1]; + break; + case 95: + _$pn = c[c.length - 1]; + break; + case 96: + c.push(_1tbu0[187 + e[s++]]); + break; + case 97: + c.push(_$pB); + break; + case 98: + _$pw = c[c.length - 1]; + break; + case 99: + t = c.pop(); + c[c.length - 1] = c[c.length - 1] === t; + break; + case 229: + return; + break; + case 304: + return c.pop(); + break; + } + } + }(); + return _$pu.bu1 = '0.1.5', + _$pu.bu10 = 0xb8d * 0x1 + -0x1867 * -0x1 + -0x23e6, + _$pu.bu11 = -0xb35 + 0x11 * 0xbf + -0x178, + _$pu; + } catch (_$pG) { + return { + 'bu6': -(0x1975 + 0x2557 + 0x19 * -0x283), + 'bu8': 0x0, + 'bu1': '0.1.5', + 'bu10': 0xe, + 'bu11': 0x2 + }; + } + } + + var _$p9 = ['pp', pW(0xf3), pW(0xc6), 'v', pW(0xf7), 'pf', pW(0x15d), pW(0xce), pW(0x1ee), pW(0x1ad)]; + + function _$pb(_$py, _$pu, _$pG, _$pT) { + if (-0xe48 + 0x1 * 0x21dd + -0x1394 === _$py && _$eV(_$p9).call(_$p9, _$pu) || -0x3 * 0x29c + 0x1 * -0xc70 + 0x1444 === _$py) + try { + _$pT[_$pu] = _$pG(); + } catch (_$pM) { + } + } + + function _$pv(_$py) { + var Z0 = pW + , _$pu = { + 'dqUsj': Z0(0x16e), + 'lGWyw': function (_$pT, _$pM) { + return _$pT(_$pM); + }, + 'qPoKM': function (_$pT, _$pM) { + return _$pT(_$pM); + }, + 'WkOcl': _$b.ceWGe, + 'UwXOC': Z0(0xcf), + 'XorCb': function (_$pT, _$pM) { + return _$pT !== _$pM; + }, + 'STJfo': function (_$pT, _$pM) { + return _$pT(_$pM); + }, + 'nyFpA': Z0(0xbc), + 'IpECF': _$b.mQiLB, + 'uQkZA': Z0(0x1e9), + 'BUvMI': _$b.kUUpo, + 'PbLOs': Z0(0x14b), + 'IRVmL': Z0(0x92), + 'HFfyV': function (_$pT, _$pM) { + return _$pT + _$pM; + }, + 'muhMx': function (_$pT, _$pM) { + return _$pT + _$pM; + }, + 'cryqy': Z0(0xe1), + 'bZkqO': Z0(0x137), + 'niZST': function (_$pT, _$pM) { + return _$pT + _$pM; + }, + 'cBRVs': Z0(0x14a), + 'NHIzZ': Z0(0x224), + 'ySMEQ': function (_$pT, _$pM) { + return _$pT + _$pM; + }, + 'TnkQb': _$b.uHEcJ + } + , _$pG = {}; + return _$pb(_$py, 'wc', function (_$pT) { + var _$pM; + return -(0xde2 + 0x3c1 * 0x1 + 0x2 * -0x8d1) === _$a7(_$pM = window.navigator.userAgent).call(_$pM, _$pu.dqUsj) || window.chrome ? -0x15fa + 0x2 * -0xdcf + 0x3198 : -0x2 * 0x105 + 0x50 * -0x5a + 0x1 * 0x1e2b; + }, _$pG), + _$pb(_$py, 'wd', function (_$pT) { + return window.navigator.webdriver ? -0x1 * 0x71a + 0xe5c + -0x741 : -0x16cb + -0x669 + 0x164 * 0x15; + }, _$pG), + _$pb(_$py, 'l', function (_$pT) { + return window.navigator.language; + }, _$pG), + _$b.eDKSr(_$pb, _$py, 'ls', function (_$pT) { + return window.navigator.languages.join(','); + }, _$pG), + _$pb(_$py, 'ml', function (_$pT) { + return window.navigator.mimeTypes.length; + }, _$pG), + _$b.sxErT(_$pb, _$py, 'pl', function (_$pT) { + return window.navigator.plugins.length; + }, _$pG), + _$b.KMOes(_$pb, _$py, 'av', function (_$pT) { + return window.navigator.appVersion; + }, _$pG), + _$pb(_$py, 'ua', function (_$pT) { + return window.navigator.userAgent; + }, _$pG), + _$pb(_$py, _$b.SBixP, function (_$pT) { + var Z1 = Z0 + , _$pM = new RegExp(Z1(0x1d0)) + , _$pn = window.navigator.userAgent.match(_$pM); + return _$pn && _$pn[-0x1edb * 0x1 + 0x3 * -0xd1 + 0x214f] ? _$pn[0x1358 + 0x1 * -0x7d5 + -0xb82] : ''; + }, _$pG), + _$b.sxErT(_$pb, _$py, 'pp', function (_$pT) { + var Z2 = Z0 + , _$pM = {} + , _$pn = _$O5(Z2(0xca)) + , _$pJ = _$b.wjkBo(_$O5, Z2(0x1cd)) + , _$pw = _$O5(Z2(0xfc)); + return _$pn && (_$pM.p1 = _$pn), + _$pJ && (_$pM.p2 = _$pJ), + _$pw && (_$pM.p3 = _$pw), + _$pM; + }, _$pG), + _$pb(_$py, Z0(0xf7), function (_$pT) { + var _$pM, _$pn = _$p8(), _$pJ = _$Ol.get(_$Oj.BEHAVIOR_FLAG); + if (_$pM = _$pJ, + _$b.kxMXj(_$b.zodgn, Object.prototype.toString.call(_$pM))) { + var _$pw = ''; + _$pJ.forEach(function (_$pe) { + _$OJ(_$pe) && (0x1138 * -0x2 + -0x1a26 * 0x1 + 0x3c96 !== _$pw.length && (_$pw += ','), + _$pw += _$pe.v); + }), + _$pw && (_$pn.bu13 = _$pw); + } + return _$pn; + }, _$pG), + _$pb(_$py, _$b.fABQE, function (_$pT) { + var Z3 = Z0 + , _$pM = _$O5(Z3(0xca)) + , _$pn = _$O5(_$b.SRUKS) + , _$pJ = _$O5(Z3(0xfc)); + if (_$b.dNKwP(!_$pM, !_$pn) && !_$pJ) { + var _$pw = document.cookie; + if (_$pw) + return _$pw; + } + return ''; + }, _$pG), + _$pb(_$py, Z0(0x1f7), function (_$pT) { + var _$pM = _$Oy(_$b.vqqvy, {}).querySelector; + return _$b.kyqLA(_$pM, ''); + }, _$pG), + _$pb(_$py, 'w', function (_$pT) { + return window.screen.width; + }, _$pG), + _$pb(_$py, 'h', function (_$pT) { + return window.screen.height; + }, _$pG), + _$pb(_$py, 'ow', function (_$pT) { + return window.outerWidth; + }, _$pG), + _$pb(_$py, 'oh', function (_$pT) { + return window.outerHeight; + }, _$pG), + _$pb(_$py, Z0(0x1e0), function (_$pT) { + return location.href; + }, _$pG), + _$pb(_$py, 'og', function (_$pT) { + return location.origin; + }, _$pG), + _$pb(_$py, 'pf', function (_$pT) { + return window.navigator.platform; + }, _$pG), + _$b.eDKSr(_$pb, _$py, 'pr', function (_$pT) { + return window.devicePixelRatio; + }, _$pG), + _$pb(_$py, 're', function (_$pT) { + return document.referrer; + }, _$pG), + _$pb(_$py, Z0(0xc6), function (_$pT) { + return _$O8(-0x1963 + 0x26 * 0xd2 + -0x5c0); + }, _$pG), + _$pb(_$py, Z0(0xb2), function (_$pT) { + var Z4 = Z0 + , _$pM = new RegExp(Z4(0xa9)) + , _$pn = document.referrer.match(_$pM); + return _$pn && _$pn[0x12c * -0xc + -0x6af + -0x14bf * -0x1] ? _$pn[-0x1e34 + 0xf * 0x12a + 0xcbe] : ''; + }, _$pG), + _$b.wmWVQ(_$pb, _$py, 'v', function (_$pT) { + return _$OX; + }, _$pG), + _$b.wmWVQ(_$pb, _$py, Z0(0x9f), function (_$pT) { + var _$pM = new Error(_$b.fGkDO).stack.toString() + , _$pn = _$pM.split('\x0a') + , _$pJ = _$pn.length; + return _$b.rLuif(_$pJ, -0xc26 + 0x13da + -0x7b3) ? _$pn[_$pJ - (-0xf43 + 0x21ae + 0x2 * -0x935)] : _$pM; + }, _$pG), + _$pb(_$py, Z0(0xf1), function (_$pT) { + return Window.toString() + '$' + Window.toString.toString.toString(); + }, _$pG), + _$pb(_$py, _$b.TxaJn, function (_$pT) { + var Z5 = Z0, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO, _$pp = '', + _$pA = !!window.location && !!window.location.host, + _$pd = _$pA && -(0x1 * 0x1999 + -0x469 * -0x6 + 0x1 * -0x340e) !== _$pu.lGWyw(_$a7, _$pM = window.location.host).call(_$pM, Z5(0x15c)) || _$pA && -(0x15 * 0xf9 + 0x12c1 + -0xd0f * 0x3) !== _$pu.qPoKM(_$a7, _$pn = window.location.host).call(_$pn, _$pu.WkOcl), + _$pZ = !!document.body && !!document.body.innerHTML; + _$pd && _$pZ && -(-0x3 * 0x13b + 0x19ac + 0x61 * -0x3a) !== _$a7(_$pJ = document.body.innerHTML).call(_$pJ, Z5(0xd8)) && (_$pp += _$pu.UwXOC), + _$pd && _$pZ && -(-0x1188 + 0x1db6 + -0xc2d * 0x1) !== _$a7(_$pw = document.body.innerHTML).call(_$pw, Z5(0x1fa)) && (_$pp += Z5(0x181)), + _$pZ && -(0x126e + -0xe47 + -0x12 * 0x3b) !== _$a7(_$pe = document.body.innerHTML).call(_$pe, Z5(0x1a4)) && _$pu.XorCb(-(-0x24fb * 0x1 + -0x1904 + -0x3e00 * -0x1), _$pu.STJfo(_$a7, _$po = document.body.innerHTML).call(_$po, Z5(0x1b7))) && (_$pp += Z5(0x133)); + var _$pX = document.documentElement; + return _$pX && _$pX.getAttribute(['di', Z5(0xe2), Z5(0x1a3)].join('')) && (_$pp += Z5(0x145)), + _$pZ && -(0x20a + 0xabb + -0xcc4) !== _$a7(_$pI = document.body.innerHTML).call(_$pI, [Z5(0x146), Z5(0x1f0), Z5(0xff), _$pu.nyFpA, _$pu.IpECF].join('')) && (_$pp += Z5(0x161)), + _$pZ && -(-0x3 * 0x76e + 0x2586 + -0xf3b * 0x1) !== _$a7(_$pj = document.body.innerHTML).call(_$pj, [_$pu.uQkZA, _$pu.BUvMI, Z5(0x88)].join('')) && -(0x9e * -0x29 + -0xc7 * 0x26 + 0x36d9) !== _$a7(_$pO = document.body.innerHTML).call(_$pO, [_$pu.PbLOs, _$pu.IRVmL].join('')) && (_$pp += Z5(0x12b)), + _$pp.length > 0x3aa + -0xac3 + -0x719 * -0x1 ? _$pp.substring(-0x20a3 + 0x15e4 * -0x1 + -0x1 * -0x3687, _$pp.length - (-0xdd8 + 0x17b7 + -0x9de)) : '0'; + }, _$pG), + _$pb(_$py, Z0(0x1ee), function (_$pT) { + var _$pM = _$Ol.get(_$Oj.CANVAS_FP) + , _$pn = _$O7(_$pM) ? _$pM.v : ''; + return _$pn || (navigator.userAgent && !/Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && (_$pn = _$Ou()), + _$pn && _$Ol.set(_$Oj.CANVAS_FP, { + 'v': _$pn, + 't': Date.now(), + 'e': 0x1e13380 + })), + _$pn; + }, _$pG), + _$pb(_$py, Z0(0x1e8), function (_$pT) { + var _$pM = _$Ou(); + return _$pM && _$Ol.set(_$Oj.CANVAS_FP, { + 'v': _$pM, + 't': Date.now(), + 'e': 0x1e13380 + }), + _$pM; + }, _$pG), + _$pb(_$py, Z0(0xce), function (_$pT) { + var _$pM = _$Ol.get(_$Oj.WEBGL_FP); + return _$O7(_$pM) && _$pM.v ? _$pM.v : ''; + }, _$pG), + _$pb(_$py, Z0(0x99), function (_$pT) { + var _$pM = function () { + var Z7 = a0a1b0cv, _$pn = { + 'dJOcK': function (_$pd, _$pZ) { + return _$pd === _$pZ; + } + }, _$pJ, _$pw = function (_$pd) { + return _$pJ.clearColor(0x22a5 + 0x14 * -0x4e + -0x1c8d, 0x4 * -0x180 + 0x1264 + -0xf4 * 0xd, 0x214c + 0x14 * 0x4e + -0x2764, -0x483 * -0x2 + -0x22f9 * -0x1 + -0x2bfe), + _$pJ.enable(_$pJ.DEPTH_TEST), + _$pJ.depthFunc(_$pJ.LEQUAL), + _$pJ.clear(_$pJ.COLOR_BUFFER_BIT | _$pJ.DEPTH_BUFFER_BIT), + '[' + _$pd[-0x2233 + -0x13c2 + 0x2d7 * 0x13] + ',\x20' + _$pd[-0x235d + 0x449 * 0x1 + 0x1f15] + ']'; + }; + if (!(_$pJ = function () { + var Z6 = a0a1b0cv + , _$pd = document.createElement(Z6(0x1ee)) + , _$pZ = null; + try { + _$pZ = _$pd.getContext(Z6(0xbe)) || _$pd.getContext(Z6(0x115)); + } catch (_$pX) { + } + return _$pZ || (_$pZ = null), + _$pZ; + }())) + return null; + var _$pe = [] + , _$po = _$pJ.createBuffer(); + _$pJ.bindBuffer(_$pJ.ARRAY_BUFFER, _$po); + var _$pI = new Float32Array([-(-0x22c + 0x4 * 0x974 + -0x23a4 * 0x1 + 0.2), -(-0x21f1 + -0x17e8 + -0x39d9 * -0x1 + 0.9), -0x1bec + 0x1 * -0x9f7 + -0xb7 * -0x35, -0xfd3 * -0x2 + 0x24f2 * 0x1 + -0x4498 + 0.4, -(0x128e + -0x1104 * 0x1 + -0x18a * 0x1 + 0.26), -0x10a5 + -0x1 * -0x209a + 0xff5 * -0x1, -0x15e8 + -0xb8e + 0x1 * 0x2176, -0x141e + -0x1102 + -0x60 * -0x63 + 0.732134444, -0x73d + -0x1618 + 0x1d55 * 0x1]); + _$pJ.bufferData(_$pJ.ARRAY_BUFFER, _$pI, _$pJ.STATIC_DRAW), + _$po.itemSize = 0xb40 + -0x313 + -0x1 * 0x82a, + _$po.numItems = -0x67 * 0x59 + 0x1d4 + 0x21fe; + var _$pj = _$pJ.createProgram() + , _$pO = _$pJ.createShader(_$pJ.VERTEX_SHADER); + _$pJ.shaderSource(_$pO, Z7(0xdc)), + _$pJ.compileShader(_$pO); + var _$pp = _$pJ.createShader(_$pJ.FRAGMENT_SHADER); + _$pJ.shaderSource(_$pp, Z7(0x21c)), + _$pJ.compileShader(_$pp), + _$pJ.attachShader(_$pj, _$pO), + _$pJ.attachShader(_$pj, _$pp), + _$pJ.linkProgram(_$pj), + _$pJ.useProgram(_$pj), + _$pj.vertexPosAttrib = _$pJ.getAttribLocation(_$pj, Z7(0x16b)), + _$pj.offsetUniform = _$pJ.getUniformLocation(_$pj, Z7(0xb0)), + _$pJ.enableVertexAttribArray(_$pj.vertexPosArray), + _$pJ.vertexAttribPointer(_$pj.vertexPosAttrib, _$po.itemSize, _$pJ.FLOAT, !(-0x138a + 0x1 * 0x1732 + -0x3a7), 0xa61 + 0x18cb + -0x2 * 0x1196, -0x21be + 0x1de7 + 0x3d7), + _$pJ.uniform2f(_$pj.offsetUniform, -0x5b * -0x40 + -0x1630 + -0x8f * 0x1, -0x10d0 + 0x1 * 0x649 + 0xa88), + _$pJ.drawArrays(_$pJ.TRIANGLE_STRIP, 0x1661 + 0xbbd * 0x2 + -0x2ddb, _$po.numItems), + null != _$pJ.canvas && _$pe.push(_$pJ.canvas.toDataURL()), + _$pe.push(_$pu.HFfyV(Z7(0x1c8), _$pJ.getSupportedExtensions().join(';'))), + _$pe.push(Z7(0x1c8) + _$pJ.getSupportedExtensions().join(';')), + _$pe.push('w1' + _$pu.STJfo(_$pw, _$pJ.getParameter(_$pJ.ALIASED_LINE_WIDTH_RANGE))), + _$pe.push('w2' + _$pw(_$pJ.getParameter(_$pJ.ALIASED_POINT_SIZE_RANGE))), + _$pe.push('w3' + _$pJ.getParameter(_$pJ.ALPHA_BITS)), + _$pe.push('w4' + (_$pJ.getContextAttributes().antialias ? Z7(0x1d8) : 'no')), + _$pe.push(_$pu.HFfyV('w5', _$pJ.getParameter(_$pJ.BLUE_BITS))), + _$pe.push('w6' + _$pJ.getParameter(_$pJ.DEPTH_BITS)), + _$pe.push(_$pu.muhMx('w7', _$pJ.getParameter(_$pJ.GREEN_BITS))), + _$pe.push('w8' + function (_$pd) { + var Z8 = Z7, _$pZ, + _$pX = _$pd.getExtension(Z8(0x1ed)) || _$pd.getExtension(Z8(0xfd)) || _$pd.getExtension(Z8(0x162)); + return _$pX ? (_$pn.dJOcK(-0x29 * 0x11 + 0x7 * -0x2d7 + 0x169a, _$pZ = _$pd.getParameter(_$pX.MAX_TEXTURE_MAX_ANISOTROPY_EXT)) && (_$pZ = 0x93f * 0x2 + -0x2214 * -0x1 + -0x4 * 0xd24), + _$pZ) : null; + }(_$pJ)), + _$pe.push('w9' + _$pJ.getParameter(_$pJ.MAX_COMBINED_TEXTURE_IMAGE_UNITS)), + _$pe.push(_$pu.cryqy + _$pJ.getParameter(_$pJ.MAX_CUBE_MAP_TEXTURE_SIZE)), + _$pe.push(Z7(0x14c) + _$pJ.getParameter(_$pJ.MAX_FRAGMENT_UNIFORM_VECTORS)), + _$pe.push(Z7(0x9e) + _$pJ.getParameter(_$pJ.MAX_RENDERBUFFER_SIZE)), + _$pe.push(Z7(0x15f) + _$pJ.getParameter(_$pJ.MAX_TEXTURE_IMAGE_UNITS)), + _$pe.push(_$pu.muhMx(Z7(0x196), _$pJ.getParameter(_$pJ.MAX_TEXTURE_SIZE))), + _$pe.push(_$pu.bZkqO + _$pJ.getParameter(_$pJ.MAX_VARYING_VECTORS)), + _$pe.push(_$pu.niZST(Z7(0x11c), _$pJ.getParameter(_$pJ.MAX_VERTEX_ATTRIBS))), + _$pe.push(Z7(0xd6) + _$pJ.getParameter(_$pJ.MAX_VERTEX_TEXTURE_IMAGE_UNITS)), + _$pe.push(_$pu.cBRVs + _$pJ.getParameter(_$pJ.MAX_VERTEX_UNIFORM_VECTORS)), + _$pe.push(Z7(0xc1) + _$pw(_$pJ.getParameter(_$pJ.MAX_VIEWPORT_DIMS))), + _$pe.push(_$pu.NHIzZ + _$pJ.getParameter(_$pJ.RED_BITS)), + _$pe.push(Z7(0x195) + _$pJ.getParameter(_$pJ.RENDERER)), + _$pe.push(Z7(0x1b1) + _$pJ.getParameter(_$pJ.SHADING_LANGUAGE_VERSION)), + _$pe.push(Z7(0x1a0) + _$pJ.getParameter(_$pJ.STENCIL_BITS)), + _$pe.push(Z7(0x13a) + _$pJ.getParameter(_$pJ.VENDOR)), + _$pe.push(Z7(0x194) + _$pJ.getParameter(_$pJ.VERSION)); + try { + var _$pA = _$pJ.getExtension(Z7(0x19c)); + _$pA && (_$pe.push(Z7(0xdd) + _$pJ.getParameter(_$pA.UNMASKED_VENDOR_WEBGL)), + _$pe.push(_$pu.ySMEQ(Z7(0x90), _$pJ.getParameter(_$pA.UNMASKED_RENDERER_WEBGL)))); + } catch (_$pd) { + } + return _$O4.format(_$O2(_$pu.TnkQb.concat(_$pe.join('\xa7')))); + }(); + return _$pM && _$Ol.set(_$Oj.WEBGL_FP, { + 'v': _$pM, + 't': Date.now(), + 'e': 0x1e13380 + }), + _$pM; + }, _$pG), + _$b.nCBfZ(_$pb, _$py, _$b.lNcus, function (_$pT) { + return navigator.hardwareConcurrency; + }, _$pG), + _$pG; + } + + function _$pz() { + var Z9 = pW + , + _$py = arguments.length > 0x75a * 0x5 + -0xa8f * -0x1 + -0x2f51 && _$b.qwuAy(void (-0x73f + -0x1 * 0x23bf + -0x2afe * -0x1), arguments[-0x22ff + 0x208 + 0x20f7]) ? arguments[0x1fdb + 0x2 * 0xa2b + -0x3431] : {}; + this._token = '', + this._defaultToken = '', + this._isNormal = !(0x1589 + 0xbed + -0x2175), + this._appId = '', + this._defaultAlgorithm = { + 'local_key_1': _$O2, + 'local_key_2': _$Os, + 'local_key_3': _$Og + }, + this._algos = { + 'MD5': _$O2, + 'SHA256': _$Os, + 'HmacSHA256': _$Og, + 'HmacMD5': _$OU + }, + this._version = Z9(0x13d), + this._fingerprint = '', + _$py = _$OP({}, _$pz.settings, _$py), + this._$icg(_$py); + } + + return _$pz.prototype._$icg = function (_$py) { + var Zb = pW + , _$pu = _$py.appId + , _$pG = _$py.beta + , _$pT = _$py.onSign + , _$pM = _$py.onRequestToken + , _$pn = _$py.onRequestTokenRemotely; + this._appId = _$pu || _$b.sekac, + this._debug = _$pG, + this._onSign = _$Ob(_$pT) ? _$pT : _$O9, + this._onRequestToken = _$Ob(_$pM) ? _$pM : _$O9, + this._onRequestTokenRemotely = _$Ob(_$pn) ? _$pn : _$O9, + _$b.zqWld(_$Oz, this._debug, Zb(0x1b5).concat(this._appId)), + this._onRequestToken({ + 'code': 0x0, + 'message': Zb(0x1cc) + }), + this._onRequestTokenRemotely({ + 'code': 0xc8, + 'message': '' + }); + } + , + _$pz.prototype._$gdk = function (_$py, _$pu, _$pG, _$pT) { + 'use strict'; + var m = _3wmu0; + var e = _2z3u0; + var Zv, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO, _$pp, _$pA, _$pd, _$pZ; + var u = []; + var j = 3956; + var h, n; + l27: for (; ;) { + switch (e[j++]) { + case 2: + u[u.length - 4] = m.call(u[u.length - 4], u[u.length - 3], u[u.length - 2], u[u.length - 1]); + u.length -= 3; + break; + case 3: + u.push(_1tbu0[255 + e[j++]]); + break; + case 4: + j += e[j]; + break; + case 5: + u.push(Zv); + break; + case 8: + u.push(_$Oz); + break; + case 12: + u[u.length - 2] = u[u.length - 2][u[u.length - 1]]; + u.length--; + break; + case 13: + u.push(_$Pp); + break; + case 14: + u[u.length - 5] = m.call(u[u.length - 5], u[u.length - 4], u[u.length - 3], u[u.length - 2], u[u.length - 1]); + u.length -= 4; + break; + case 15: + u.push(_$pj); + break; + case 17: + h = u.pop(); + u[u.length - 1] += h; + break; + case 19: + u[u.length - 1] = u[u.length - 1].length; + break; + case 23: + u.push(_$pG); + break; + case 25: + return u.pop(); + break; + case 26: + _$po = u[u.length - 1]; + break; + case 29: + u.push(null); + break; + case 32: + _$pJ = u[u.length - 1]; + break; + case 33: + h = e[j++]; + u.push(new RegExp(_1tbu0[255 + h], _1tbu0[255 + h + 1])); + break; + case 34: + u.push(_$Oc); + break; + case 40: + _$pp = u[u.length - 1]; + break; + case 41: + u.push(function (_$pX) { + 'use strict'; + var k = _3wmu0; + var h = _2z3u0; + var _$ph, _$pB, _$pQ, _$pE; + var i = []; + var p = 4195; + var b, g; + l28: for (; ;) { + switch (h[p++]) { + case 1: + i.push(isNaN); + break; + case 2: + _$pQ = i[i.length - 1]; + break; + case 5: + i.push(_$pZ); + break; + case 6: + i.push(_$pe); + break; + case 8: + i.push(0); + break; + case 16: + i.push(_$pd); + break; + case 17: + i.push(_$pE); + break; + case 18: + i[i.length - 4] = k.call(i[i.length - 4], i[i.length - 3], i[i.length - 2], i[i.length - 1]); + i.length -= 3; + break; + case 21: + i[i.length - 5] = k.call(i[i.length - 5], i[i.length - 4], i[i.length - 3], i[i.length - 2], i[i.length - 1]); + i.length -= 4; + break; + case 22: + i.push(new Array(h[p++])); + break; + case 24: + i.push(_$ph); + break; + case 26: + i.push(_1tbu0[278 + h[p++]]); + break; + case 27: + p += h[p]; + break; + case 30: + i.pop(); + break; + case 36: + i.push(_$Pp); + break; + case 38: + _$pI = i[i.length - 1]; + break; + case 39: + if (i[i.length - 1]) { + ++p; + --i.length; + } else + p += h[p]; + break; + case 42: + i.push(_$a7); + break; + case 43: + i.push(null); + break; + case 46: + b = i.pop(); + for (g = 0; g < h[p + 1]; ++g) + if (b === _1tbu0[278 + h[p + g * 2 + 2]]) { + p += h[p + g * 2 + 3]; + continue l28; + } + p += h[p]; + break; + case 49: + i.push(_$pQ); + break; + case 53: + _$ph = i[i.length - 1]; + break; + case 55: + if (i[i.length - 2] != null) { + i[i.length - 3] = k.call(i[i.length - 3], i[i.length - 2], i[i.length - 1]); + i.length -= 2; + } else { + b = i[i.length - 3]; + i[i.length - 3] = b(i[i.length - 1]); + i.length -= 2; + } + break; + case 56: + return; + break; + case 62: + i.push(h[p++]); + break; + case 63: + i.push(1); + break; + case 65: + if (i.pop()) + ++p; + else + p += h[p]; + break; + case 66: + i.push(_$pB); + break; + case 68: + i.push(_$py); + break; + case 69: + _$pZ = i[i.length - 1]; + break; + case 70: + i[i.length - 3][i[i.length - 2]] = i[i.length - 1]; + i.length -= 2; + break; + case 73: + i.push(_$pj); + break; + case 74: + i.push(_$pX); + break; + case 75: + _$pE = i[i.length - 1]; + break; + case 76: + i[i.length - 2] = i[i.length - 2][i[i.length - 1]]; + i.length--; + break; + case 77: + b = i.pop(); + i[i.length - 1] += b; + break; + case 81: + b = i.pop(); + i[i.length - 1] = i[i.length - 1] >= b; + break; + case 83: + _$pB = i[i.length - 1]; + break; + case 87: + i.push(i[i.length - 1]); + i[i.length - 2] = i[i.length - 2][_1tbu0[278 + h[p++]]]; + break; + case 88: + i.push(_$pI); + break; + case 94: + i[i.length - 1] = i[i.length - 1][_1tbu0[278 + h[p++]]]; + break; + case 95: + i.push(_$b); + break; + } + } + }); + break; + case 44: + u.push(_$pn); + break; + case 46: + u.push(_$pI); + break; + case 47: + _$pw = u[u.length - 1]; + break; + case 48: + u.push(_$pM); + break; + case 49: + u.pop(); + break; + case 51: + _$pZ = u[u.length - 1]; + break; + case 52: + _$pI = u[u.length - 1]; + break; + case 53: + _$pO = u[u.length - 1]; + break; + case 59: + if (u[u.length - 2] != null) { + u[u.length - 3] = m.call(u[u.length - 3], u[u.length - 2], u[u.length - 1]); + u.length -= 2; + } else { + h = u[u.length - 3]; + u[u.length - 3] = h(u[u.length - 1]); + u.length -= 2; + } + break; + case 60: + u.push(this[_1tbu0[255 + e[j++]]]); + break; + case 61: + u.push(new RegExp(_1tbu0[255 + e[j++]])); + break; + case 62: + _$pA = u[u.length - 1]; + break; + case 63: + u.push(_$Pr); + break; + case 64: + h = u.pop(); + u[u.length - 1] %= h; + break; + case 66: + if (u.pop()) + ++j; + else + j += e[j]; + break; + case 67: + _$pn = u[u.length - 1]; + break; + case 68: + u.push(e[j++]); + break; + case 69: + u.push(_$pT); + break; + case 70: + u.push(_$pw); + break; + case 71: + u.push(_$po); + break; + case 74: + u.push(_$pJ); + break; + case 75: + u.push(this); + break; + case 77: + u.push(u[u.length - 1]); + u[u.length - 2] = u[u.length - 2][_1tbu0[255 + e[j++]]]; + break; + case 79: + u.push(_$pA); + break; + case 80: + u.push(_$pu); + break; + case 82: + u.push(_$pO); + break; + case 83: + Zv = u[u.length - 1]; + break; + case 87: + _$pe = u[u.length - 1]; + break; + case 89: + u.push(pW); + break; + case 90: + return; + break; + case 91: + _$pj = u[u.length - 1]; + break; + case 92: + u.push(_$pp); + break; + case 93: + u.push(_$py); + break; + case 94: + u.push(_$b); + break; + case 95: + _$pd = u[u.length - 1]; + break; + case 96: + u.push(_$OQ); + break; + case 98: + _$pM = u[u.length - 1]; + break; + case 99: + u[u.length - 1] = u[u.length - 1][_1tbu0[255 + e[j++]]]; + break; + } + } + } + , + _$pz.prototype._$atm = function (_$py, _$pu, _$pG) { + var Zz = pW + , _$pT = this._defaultAlgorithm[_$py]; + return Zz(0x112) === _$py ? _$pT(_$pu, _$pG).toString(_$O4) : _$pT(_$pu).toString(_$O4); + } + , + _$pz.prototype._$pam = function (_$py, _$pu) { + 'use strict'; + var j = _3wmu0; + var u = _2z3u0; + var ZP, _$pG; + var a = []; + var w = 4322; + var t, m; + l29: for (; ;) { + switch (u[w++]) { + case 9: + a.push(Function); + break; + case 12: + a.push(this[_1tbu0[286 + u[w++]]]); + break; + case 14: + a.push(ZP); + break; + case 15: + a.push(_$py); + break; + case 20: + a.push(null); + break; + case 24: + return a.pop(); + break; + case 25: + a[a.length - 3] = new a[a.length - 3](a[a.length - 1]); + a.length -= 2; + break; + case 26: + _$pG = a[a.length - 1]; + break; + case 37: + a.push(undefined); + break; + case 41: + a[a.length - 1] = !a[a.length - 1]; + break; + case 43: + if (a[a.length - 1]) { + ++w; + --a.length; + } else + w += u[w]; + break; + case 49: + a.push(_$pu); + break; + case 60: + return; + break; + case 61: + a.push(_$pG); + break; + case 64: + a[a.length - 2][_1tbu0[286 + u[w++]]] = a[a.length - 1]; + a[a.length - 2] = a[a.length - 1]; + a.length--; + break; + case 66: + a.pop(); + break; + case 67: + a.push(_1tbu0[286 + u[w++]]); + break; + case 74: + a.push(this); + break; + case 79: + if (a[a.length - 2] != null) { + a[a.length - 3] = j.call(a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 2; + } else { + t = a[a.length - 3]; + a[a.length - 3] = t(a[a.length - 1]); + a.length -= 2; + } + break; + case 83: + ZP = a[a.length - 1]; + break; + case 85: + if (a[a.length - 1]) + w += u[w]; + else { + ++w; + --a.length; + } + break; + case 86: + a.push(a[a.length - 1]); + a[a.length - 2] = a[a.length - 2][_1tbu0[286 + u[w++]]]; + break; + case 92: + a.push(pW); + break; + case 93: + if (a[a.length - 1] != null) { + a[a.length - 2] = j.call(a[a.length - 2], a[a.length - 1]); + } else { + t = a[a.length - 2]; + a[a.length - 2] = t(); + } + a.length--; + break; + case 99: + a.push(u[w++]); + break; + } + } + } + , + _$pz.prototype._$gsp = function (_$py, _$pu, _$pG, _$pT, _$pM, _$pn) { + 'use strict'; + var u = _3wmu0; + var l = _2z3u0; + var p = []; + var a = 4377; + var c, n; + l30: for (; ;) { + switch (l[a++]) { + case 4: + if (p.pop()) + ++a; + else + a += l[a]; + break; + case 16: + return p.pop(); + break; + case 19: + p.push(0); + break; + case 28: + p.push(p[p.length - 1]); + p[p.length - 2] = p[p.length - 2][_1tbu0[291 + l[a++]]]; + break; + case 30: + p.push(new Array(l[a++])); + break; + case 33: + p.push(_1tbu0[291 + l[a++]]); + break; + case 35: + p.push(_$pT); + break; + case 57: + p.push(_$py); + break; + case 68: + if (p[p.length - 2] != null) { + p[p.length - 3] = u.call(p[p.length - 3], p[p.length - 2], p[p.length - 1]); + p.length -= 2; + } else { + c = p[p.length - 3]; + p[p.length - 3] = c(p[p.length - 1]); + p.length -= 2; + } + break; + case 69: + p[p.length - 3][p[p.length - 2]] = p[p.length - 1]; + p.length -= 2; + break; + case 71: + p.push(_$pG); + break; + case 72: + a += l[a]; + break; + case 75: + p.push(1); + break; + case 77: + p.push(this[_1tbu0[291 + l[a++]]]); + break; + case 87: + p.push(_$pu); + break; + case 88: + return; + break; + case 91: + p.push(l[a++]); + break; + case 93: + p.push(_$pM); + break; + case 97: + p.push(_$pn); + break; + } + } + } + , + _$pz.prototype._$gs = function (_$py, _$pu) { + 'use strict'; + var l = _3wmu0; + var q = _2z3u0; + var Za, _$pG, _$pT, _$pM; + var k = []; + var c = 4486; + var g, y; + l31: for (; ;) { + switch (q[c++]) { + case 1: + k.push(this[_1tbu0[301 + q[c++]]]); + break; + case 2: + k.push(_$pM); + break; + case 5: + k.push(null); + break; + case 6: + Za = k[k.length - 1]; + break; + case 8: + k.push(_$Os); + break; + case 21: + k.push(pW); + break; + case 23: + k.push(_$pu); + break; + case 26: + g = k.pop(); + k[k.length - 1] += g; + break; + case 29: + k.push(_$aJ); + break; + case 30: + k.pop(); + break; + case 34: + k.push(_$Pp); + break; + case 35: + k.push(_$O4); + break; + case 39: + k.push(q[c++]); + break; + case 41: + if (k[k.length - 2] != null) { + k[k.length - 3] = l.call(k[k.length - 3], k[k.length - 2], k[k.length - 1]); + k.length -= 2; + } else { + g = k[k.length - 3]; + k[k.length - 3] = g(k[k.length - 1]); + k.length -= 2; + } + break; + case 43: + k.push(_1tbu0[301 + q[c++]]); + break; + case 47: + k.push(_$pG); + break; + case 57: + k.push(k[k.length - 1]); + k[k.length - 2] = k[k.length - 2][_1tbu0[301 + q[c++]]]; + break; + case 60: + k.push(Za); + break; + case 65: + return k.pop(); + break; + case 66: + _$pT = k[k.length - 1]; + break; + case 69: + _$pM = k[k.length - 1]; + break; + case 70: + k.push(_$b); + break; + case 71: + k[k.length - 1] = k[k.length - 1][_1tbu0[301 + q[c++]]]; + break; + case 76: + k.push(_$py); + break; + case 78: + k.push(_$pT); + break; + case 79: + return; + break; + case 82: + k.push(function (_$pn) { + 'use strict'; + var n = _3wmu0; + var t = _2z3u0; + var x = []; + var l = 4551; + var o, i; + l32: for (; ;) { + switch (t[l++]) { + case 1: + x.push(_$pn); + break; + case 16: + return x.pop(); + break; + case 25: + return; + break; + case 33: + x[x.length - 1] = x[x.length - 1][_1tbu0[308 + t[l++]]]; + break; + case 56: + o = x.pop(); + x[x.length - 1] += o; + break; + case 96: + x.push(_1tbu0[308 + t[l++]]); + break; + } + } + }); + break; + case 84: + k.push(_$Oz); + break; + case 85: + _$pG = k[k.length - 1]; + break; + case 98: + k[k.length - 4] = l.call(k[k.length - 4], k[k.length - 3], k[k.length - 2], k[k.length - 1]); + k.length -= 3; + break; + } + } + } + , + _$pz.prototype._$gsd = function (_$py, _$pu) { + 'use strict'; + var m = _3wmu0; + var u = _2z3u0; + var Zy, _$pG, _$pT, _$pM; + var w = []; + var y = 4563; + var e, i; + l33: for (; ;) { + switch (u[y++]) { + case 1: + w.push(_1tbu0[311 + u[y++]]); + break; + case 2: + _$pM = w[w.length - 1]; + break; + case 4: + w.push(_$pG); + break; + case 6: + w.push(_$Oz); + break; + case 7: + w.push(u[y++]); + break; + case 9: + w.push(this[_1tbu0[311 + u[y++]]]); + break; + case 10: + w[w.length - 3][w[w.length - 2]] = w[w.length - 1]; + w.length -= 2; + break; + case 13: + w.push(_$O4); + break; + case 19: + w.push(null); + break; + case 20: + w.push(Zy); + break; + case 21: + w.pop(); + break; + case 35: + w.push(_$Os); + break; + case 36: + Zy = w[w.length - 1]; + break; + case 48: + return; + break; + case 49: + w.push(0); + break; + case 50: + _$pT = w[w.length - 1]; + break; + case 51: + w[w.length - 5] = m.call(w[w.length - 5], w[w.length - 4], w[w.length - 3], w[w.length - 2], w[w.length - 1]); + w.length -= 4; + break; + case 59: + w.push(_$pM); + break; + case 64: + w.push(w[w.length - 1]); + w[w.length - 2] = w[w.length - 2][_1tbu0[311 + u[y++]]]; + break; + case 66: + w.push(1); + break; + case 67: + if (w[w.length - 2] != null) { + w[w.length - 3] = m.call(w[w.length - 3], w[w.length - 2], w[w.length - 1]); + w.length -= 2; + } else { + e = w[w.length - 3]; + w[w.length - 3] = e(w[w.length - 1]); + w.length -= 2; + } + break; + case 73: + w.push(_$Pp); + break; + case 80: + _$pG = w[w.length - 1]; + break; + case 82: + return w.pop(); + break; + case 85: + w.push(_$pT); + break; + case 86: + w.push(new Array(u[y++])); + break; + case 92: + w.push(_$py); + break; + case 93: + w[w.length - 4] = m.call(w[w.length - 4], w[w.length - 3], w[w.length - 2], w[w.length - 1]); + w.length -= 3; + break; + case 94: + w.push(pW); + break; + case 98: + e = w.pop(); + w[w.length - 1] += e; + break; + case 99: + w.push(_$b); + break; + } + } + } + , + _$pz.prototype._$rds = function () { + var Zu = pW, _$py, _$pu, _$pG = this; + _$Oz(this._debug, _$b.VJega), + this._fingerprint = _$OH(), + _$Oz(this._debug, Zu(0x1df).concat(this._fingerprint)); + var _$pT = _$OR.get(this._fingerprint, this._appId) + , _$pM = (null === _$pT ? void (0x17a9 + -0xe93 + -0x916) : _$pT.tk) || '' + , _$pn = (null === _$pT ? void (0x2470 + 0xa3f + -0x2eaf) : _$pT.algo) || '' + , _$pJ = this._$pam(_$pM, _$pn); + _$Oz(this._debug, _$Pp(_$py = _$Pp(_$pu = _$b.grYXW.concat(_$pJ, Zu(0xbf))).call(_$pu, _$pM, Zu(0x141))).call(_$py, _$pn)), + _$pJ ? _$Oz(this._debug, Zu(0x205)) : (setTimeout(function () { + _$pG._$rgo().catch(function (_$pw) { + var ZG = a0a1b0cv; + _$Oz(_$pG._debug, ZG(0x14d).concat(_$pw)); + }); + }, -0x1223 + 0x1b06 * 0x1 + -0x8e3), + _$b.cVlWi(_$Oz, this._debug, Zu(0x1ce))); + } + , + _$pz.prototype._$rgo = function () { + var ZT = pW, _$py, _$pu, _$pG = this, _$pT = _$Oy(ZT(0x139), {}), + _$pM = _$Pp(_$py = ZT(0x155).concat(this._fingerprint, '_')).call(_$py, this._appId); + return _$Oz(this._debug, _$Pp(_$pu = ZT(0xe4).concat(_$pM, ZT(0xd5))).call(_$pu, !!_$pT[_$pM])), + _$pT[_$pM] || (_$pT[_$pM] = new _$Jh(function (_$pn, _$pJ) { + var _$pw = { + 'lNmMH': function (_$pe, _$po, _$pI) { + return _$pe(_$po, _$pI); + } + }; + return _$pG._$ram().then(function (_$pe) { + _$pn(); + }).catch(function (_$pe) { + var ZM = a0a1b0cv, _$po; + _$pw.lNmMH(_$Oz, _$pG._debug, _$Pp(_$po = ZM(0x132).concat(_$pM, ZM(0xe3))).call(_$po, _$pe, ZM(0x9c))), + delete _$pT[_$pM], + _$pJ(); + }); + } + )), + _$pT[_$pM]; + } + , + _$pz.prototype._$ram = function () { + var Zn = pW + , _$py = { + 'HMMNT': function (_$pn, _$pJ, _$pw) { + return _$pn(_$pJ, _$pw); + }, + 'xXLHN': function (_$pn, _$pJ) { + return _$pn(_$pJ); + }, + 'FHtbI': Zn(0x16c) + } + , _$pu = this; + _$b.GvvPi(_$Oz, this._debug, Zn(0x17d)); + var _$pG = _$pv(-0x25 * -0x3e + 0x22ba + -0x2bb0); + _$pG.ai = this._appId, + _$pG.fp = this._fingerprint, + _$pG.wk = 0x23fe + -0x2452 * -0x1 + -0x485 * 0x10 === _$pG.extend.wk ? -(-0x223c + -0x481 * -0x2 + -0x13 * -0x154) : _$pG.extend.wk; + var _$pT = _$b.keIAo(_$ws, _$pG, null, 0x1b * 0x85 + -0x1 * 0x1faf + -0x7 * -0x286); + _$Oz(this._debug, Zn(0x158).concat(_$pT)); + var _$pM = _$OQ.encode(_$Oc.parse(_$pT)); + return function (_$pn, _$pJ) { + var _$pw = _$pn.fingerprint + , _$pe = _$pn.appId + , _$po = _$pn.version + , _$pI = _$pn.env + , _$pj = _$pn.debug + , _$pO = _$pn.tk; + return new _$Jh(function (_$pp, _$pA) { + var ZJ = a0a1b0cv + , _$pd = { + 'mnInc': function (_$pZ, _$pX) { + return _$pZ(_$pX); + }, + 'pMOzb': function (_$pZ, _$pX) { + return _$pZ === _$pX; + }, + 'uLoAk': function (_$pZ, _$pX) { + return _$pZ && _$pX; + }, + 'lUQBb': function (_$pZ, _$pX) { + return _$pZ(_$pX); + }, + 'pPLNl': function (_$pZ, _$pX) { + return _$pZ(_$pX); + } + }; + _$OI.post({ + 'url': ZJ(0xab), + 'dataType': ZJ(0x9d), + 'data': _$ws({ + 'version': _$po, + 'fp': _$pw, + 'appId': _$pe, + 'timestamp': Date.now(), + 'platform': ZJ(0x127), + 'expandParams': _$pI, + 'fv': _$OX, + 'localTk': _$pO + }), + 'contentType': ZJ(0x1cb), + 'noCredentials': !(0xbcd + -0x1d92 + 0x11c5), + 'timeout': 0x2, + 'debug': _$pj + }).then(function (_$pZ) { + var Zw = ZJ + , _$pX = _$pZ.body; + if (_$pJ && _$pd.mnInc(_$pJ, { + 'code': _$pX.status, + 'message': '' + }), + _$pd.pMOzb(0x1 * -0x8a5 + 0x11d3 + -0x866, _$pX.status) && _$pX.data && _$pX.data.result) { + var _$ph = _$pX.data.result + , _$pB = _$ph.algo + , _$pQ = _$ph.tk + , _$pE = _$ph.fp + , _$pc = _$pX.data.ts; + _$pd.uLoAk(_$pB, _$pQ) && _$pE ? _$pd.lUQBb(_$pp, { + 'algo': _$pB, + 'token': _$pQ, + 'fp': _$pE, + 'ts': _$pc + }) : _$pA(Zw(0x1ac)); + } else + _$pd.pPLNl(_$pA, Zw(0x216)); + }).catch(function (_$pZ) { + var Ze = ZJ, _$pX, _$ph = _$pZ.code, _$pB = _$pZ.message; + _$pJ && _$pJ({ + 'code': _$ph, + 'message': _$pB + }), + _$pA(_$Pp(_$pX = Ze(0xa1).concat(_$ph, ',\x20')).call(_$pX, _$pB)); + }); + } + ); + }({ + 'fingerprint': this._fingerprint, + 'appId': this._appId, + 'version': this._version, + 'env': _$pM, + 'debug': this._debug, + 'tk': _$Ok(this._fingerprint) + }).then(function (_$pn) { + var Zo = Zn, _$pJ, _$pw, _$pe, _$po, _$pI = _$pn.algo, _$pj = _$pn.token, _$pO = _$pn.fp, + _$pp = _$pn.ts, _$pA = _$pO === _$pu._fingerprint, + _$pd = _$pA ? _$Or.get(_$pu._version, _$pu._appId, 0x6e7 + 0x23ba * 0x1 + 0xf8 * -0x2c) : '', + _$pZ = _$pd && _$pO === _$pd; + _$pZ && _$pp && Math.abs(Date.now() - _$pp) <= 0x110 * 0x4bd + -0x37b23 * -0x1 + -0x3f013 && _$OR.save(_$pu._fingerprint, _$pu._appId, { + 'tk': _$pj, + 'algo': _$pI + }), + _$py.HMMNT(_$Oz, _$pu._debug, _$Pp(_$pJ = _$py.xXLHN(_$Pp, _$pw = _$Pp(_$pe = _$Pp(_$po = Zo(0x1d5).concat(_$pA, Zo(0x1ab))).call(_$po, _$pZ, Zo(0x1ff))).call(_$pe, _$pj, _$py.FHtbI)).call(_$pw, _$pd, Zo(0xb9))).call(_$pJ, _$pO)); + }); + } + , + _$pz.prototype._$cps = function (_$py) { + var ZI = pW, _$pu, _$pG, _$pT, _$pM, _$pn, _$pJ = null; + return this._appId || (_$pJ = { + 'code': _$Op, + 'message': 'appId is required' + }), + _$O7(_$py) || (_$pJ = { + 'code': _$OO, + 'message': ZI(0xc3) + }), + _$O7(_$pn = _$py) && !_$b.cEEoT(_$eo, _$pn).length && (_$pJ = { + 'code': _$OO, + 'message': ZI(0xd0) + }), + function (_$pw) { + for (var _$pe = _$eo(_$pw), _$po = -0x10 * 0x132 + 0x1f9c + -0xc7c; _$po < _$pe.length; _$po++) { + var _$pI = _$pe[_$po]; + if (_$b.HjaCT(_$a7(_$Ov).call(_$Ov, _$pI), -0x1ba5 + 0xd93 + 0xe12)) + return !(-0x846 + -0x349 + 0xb * 0x10d); + } + return !(-0x15c5 + -0x5 * 0x5af + 0x3231 * 0x1); + }(_$py) && (_$pJ = { + 'code': _$OO, + 'message': ZI(0x143) + }), + _$pJ ? (this._onSign(_$pJ), + null) : -0x13 * 0x5 + -0xd0f + 0xd6e === (_$pM = _$wV(_$pu = _$aJ(_$pG = _$eJ(_$pT = _$eo(_$py)).call(_$pT)).call(_$pG, function (_$pw) { + return { + 'key': _$pw, + 'value': _$py[_$pw] + }; + })).call(_$pu, function (_$pw) { + var Zj = ZI; + return _$pe = _$pw.value, + _$b.NxNtn(Zj(0x20d), _$po = _$Ir(_$pe)) && !_$b.Owfxz(isNaN, _$pe) || Zj(0x140) == _$po || Zj(0x172) == _$po; + var _$pe, _$po; + })).length ? (this._onSign({ + 'code': _$OO, + 'message': ZI(0x138) + }), + null) : _$pM; + } + , + _$pz.prototype._$ms = function (_$py, _$pu) { + 'use strict'; + var j = _3wmu0; + var b = _2z3u0; + var ZO, _$pG, _$pT, _$pM, _$pn, _$pJ, _$pw, _$pe, _$po, _$pI, _$pj, _$pO, _$pp; + var e = []; + var w = 4695; + var y, l; + l34: for (; ;) { + switch (b[w++]) { + case 1: + y = e.pop(); + e[e.length - 1] += y; + break; + case 2: + e.push(_$pw); + break; + case 3: + ZO = e[e.length - 1]; + break; + case 4: + _$pw = e[e.length - 1]; + break; + case 5: + _$pM = e[e.length - 1]; + break; + case 6: + e.push(this[_1tbu0[324 + b[w++]]]); + break; + case 7: + return; + break; + case 8: + e[e.length - 8] = j.call(e[e.length - 8], e[e.length - 7], e[e.length - 6], e[e.length - 5], e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 7; + break; + case 9: + e[e.length - 6] = j.call(e[e.length - 6], e[e.length - 5], e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 5; + break; + case 10: + _$pp = e[e.length - 1]; + break; + case 11: + if (e[e.length - 1]) + w += b[w]; + else { + ++w; + --e.length; + } + break; + case 12: + e.push(_$Ok); + break; + case 13: + e[e.length - 2] = e[e.length - 2][e[e.length - 1]]; + e.length--; + break; + case 14: + e.push(pW); + break; + case 15: + e[e.length - 2][_1tbu0[324 + b[w++]]] = e[e.length - 1]; + e[e.length - 2] = e[e.length - 1]; + e.length--; + break; + case 16: + _$pJ = e[e.length - 1]; + break; + case 17: + e.push(_$pO); + break; + case 20: + e[e.length - 2][_1tbu0[324 + b[w++]]] = e[e.length - 1]; + e.length--; + break; + case 25: + e.push(_$pT++); + break; + case 26: + e.push(_$b); + break; + case 27: + if (e.pop()) + ++w; + else + w += b[w]; + break; + case 28: + e[e.length - 1] = e[e.length - 1][_1tbu0[324 + b[w++]]]; + break; + case 30: + e.push(function (_$pA) { + 'use strict'; + var k = _3wmu0; + var h = _2z3u0; + var m = []; + var c = 5007; + var e, r; + l35: for (; ;) { + switch (h[c++]) { + case 14: + m.push(_$pA); + break; + case 54: + return; + break; + case 64: + m[m.length - 1] = m[m.length - 1][_1tbu0[362 + h[c++]]]; + break; + case 72: + return m.pop(); + break; + } + } + }); + break; + case 31: + e[e.length - 5] = j.call(e[e.length - 5], e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 4; + break; + case 32: + if (e[e.length - 1] != null) { + e[e.length - 2] = j.call(e[e.length - 2], e[e.length - 1]); + } else { + y = e[e.length - 2]; + e[e.length - 2] = y(); + } + e.length--; + break; + case 33: + e.push(_$OA); + break; + case 34: + _$pj = e[e.length - 1]; + break; + case 37: + e.push(1); + break; + case 38: + e.push(e[e.length - 1]); + e[e.length - 2] = e[e.length - 2][_1tbu0[324 + b[w++]]]; + break; + case 39: + e.push({}); + break; + case 41: + e[e.length - 1] = !e[e.length - 1]; + break; + case 42: + if (e.pop()) + w += b[w]; + else + ++w; + break; + case 44: + e.push(_$pj); + break; + case 45: + e.push(_$py); + break; + case 46: + e.push(_$pG); + break; + case 48: + _$po = e[e.length - 1]; + break; + case 49: + w += b[w]; + break; + case 51: + e[e.length - 4] = j.call(e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 3; + break; + case 53: + y = e.pop(); + for (l = 0; l < b[w + 1]; ++l) + if (y === _1tbu0[324 + b[w + l * 2 + 2]]) { + w += b[w + l * 2 + 3]; + continue l34; + } + w += b[w]; + break; + case 54: + e.push(_$Oz); + break; + case 55: + e.push(_1tbu0[324 + b[w++]]); + break; + case 57: + e.push(null); + break; + case 58: + e.push(_$pn); + break; + case 59: + e.push(_$pu); + break; + case 61: + _$pe = e[e.length - 1]; + break; + case 63: + e.pop(); + break; + case 64: + e.push(_$aJ); + break; + case 65: + e.push(_$Od); + break; + case 67: + if (e[e.length - 2] != null) { + e[e.length - 3] = j.call(e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 2; + } else { + y = e[e.length - 3]; + e[e.length - 3] = y(e[e.length - 1]); + e.length -= 2; + } + break; + case 68: + e.push(_$pe); + break; + case 70: + e.push(0); + break; + case 71: + e.push(_$po); + break; + case 72: + e.push(_$Oc); + break; + case 74: + _$pG = e[e.length - 1]; + break; + case 75: + e.push(ZO); + break; + case 76: + _$pO = e[e.length - 1]; + break; + case 78: + e.push(_$pp); + break; + case 79: + return e.pop(); + break; + case 80: + e.push(b[w++]); + break; + case 81: + e.push(_$pJ); + break; + case 83: + e.push(_$O6); + break; + case 85: + _$pT = e[e.length - 1]; + break; + case 86: + e[e.length - 7] = j.call(e[e.length - 7], e[e.length - 6], e[e.length - 5], e[e.length - 4], e[e.length - 3], e[e.length - 2], e[e.length - 1]); + e.length -= 6; + break; + case 88: + e.push(_$ws); + break; + case 89: + e.push(this); + break; + case 90: + _$pI = e[e.length - 1]; + break; + case 93: + e.push(Date); + break; + case 94: + e.push(_$pM); + break; + case 96: + _$pn = e[e.length - 1]; + break; + case 97: + e.push(_$pI); + break; + case 98: + e.push(_$OQ); + break; + case 99: + e.push(new Array(b[w++])); + break; + } + } + } + , + _$pz.prototype._$clt = function () { + 'use strict'; + var u = _3wmu0; + var w = _2z3u0; + var Zp, _$py, _$pu; + var a = []; + var k = 5012; + var p, g; + l36: for (; ;) { + switch (w[k++]) { + case 2: + return a.pop(); + break; + case 5: + if (a.pop()) + ++k; + else + k += w[k]; + break; + case 11: + p = a.pop(); + a[a.length - 1] += p; + break; + case 12: + a[a.length - 4] = u.call(a[a.length - 4], a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 3; + break; + case 15: + a.pop(); + break; + case 23: + p = a.pop(); + a[a.length - 1] = a[a.length - 1] === p; + break; + case 24: + a.push(w[k++]); + break; + case 29: + a.push(_1tbu0[363 + w[k++]]); + break; + case 30: + a.push(_$pv); + break; + case 31: + return; + break; + case 34: + k += w[k]; + break; + case 36: + Zp = a[a.length - 1]; + break; + case 38: + a.push(a[a.length - 1]); + a[a.length - 2] = a[a.length - 2][_1tbu0[363 + w[k++]]]; + break; + case 44: + a.push(_$ws); + break; + case 50: + if (a[a.length - 2] != null) { + a[a.length - 3] = u.call(a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 2; + } else { + p = a[a.length - 3]; + a[a.length - 3] = p(a[a.length - 1]); + a.length -= 2; + } + break; + case 52: + _$pu = a[a.length - 1]; + break; + case 56: + a.push(_$OQ); + break; + case 57: + a[a.length - 5] = u.call(a[a.length - 5], a[a.length - 4], a[a.length - 3], a[a.length - 2], a[a.length - 1]); + a.length -= 4; + break; + case 64: + a.push(_$py); + break; + case 66: + a.push(_$Oz); + break; + case 67: + a.push(_$Oc); + break; + case 74: + a[a.length - 1] = a[a.length - 1][_1tbu0[363 + w[k++]]]; + break; + case 76: + _$py = a[a.length - 1]; + break; + case 78: + a.push(Zp); + break; + case 80: + a.push(this[_1tbu0[363 + w[k++]]]); + break; + case 86: + a.push(pW); + break; + case 87: + a.push(_$pu); + break; + case 89: + a[a.length - 2][_1tbu0[363 + w[k++]]] = a[a.length - 1]; + a[a.length - 2] = a[a.length - 1]; + a.length--; + break; + case 93: + a.push(_$b); + break; + case 98: + a.push(null); + break; + } + } + } + , + _$pz.prototype._$sdnmd = function (_$py) { + 'use strict'; + var y = _3wmu0; + var l = _2z3u0; + var ZA, _$pu, _$pG, _$pT, _$pM; + var s = []; + var p = 5096; + var b, x; + l37: for (; ;) { + switch (l[p++]) { + case 5: + if (s.pop()) + ++p; + else + p += l[p]; + break; + case 9: + s.push(_$OP); + break; + case 10: + _$pu = s[s.length - 1]; + break; + case 11: + s.push(l[p++]); + break; + case 12: + s[s.length - 4] = y.call(s[s.length - 4], s[s.length - 3], s[s.length - 2], s[s.length - 1]); + s.length -= 3; + break; + case 15: + ZA = s[s.length - 1]; + break; + case 16: + s.push(s[s.length - 1]); + s[s.length - 2] = s[s.length - 2][_1tbu0[372 + l[p++]]]; + break; + case 17: + if (s[s.length - 1] != null) { + s[s.length - 2] = y.call(s[s.length - 2], s[s.length - 1]); + } else { + b = s[s.length - 2]; + s[s.length - 2] = b(); + } + s.length--; + break; + case 18: + s.push(_$b); + break; + case 20: + _$pT = s[s.length - 1]; + break; + case 36: + s.push(_$pM); + break; + case 37: + s.pop(); + break; + case 38: + s.push(_$Oz); + break; + case 40: + _$pG = s[s.length - 1]; + break; + case 52: + s[s.length - 6] = y.call(s[s.length - 6], s[s.length - 5], s[s.length - 4], s[s.length - 3], s[s.length - 2], s[s.length - 1]); + s.length -= 5; + break; + case 53: + s.push(_$pT); + break; + case 56: + s.push(_$py); + break; + case 61: + s.push(pW); + break; + case 63: + if (s[s.length - 2] != null) { + s[s.length - 3] = y.call(s[s.length - 3], s[s.length - 2], s[s.length - 1]); + s.length -= 2; + } else { + b = s[s.length - 3]; + s[s.length - 3] = b(s[s.length - 1]); + s.length -= 2; + } + break; + case 64: + b = s.pop(); + s[s.length - 1] = s[s.length - 1] == b; + break; + case 66: + s.push(_1tbu0[372 + l[p++]]); + break; + case 72: + _$pM = s[s.length - 1]; + break; + case 73: + b = s.pop(); + s[s.length - 1] -= b; + break; + case 75: + s.push({}); + break; + case 77: + s.push(_$pu); + break; + case 79: + return s.pop(); + break; + case 80: + s.push(_$pG); + break; + case 84: + return; + break; + case 86: + s.push(Date); + break; + case 87: + s.push(null); + break; + case 90: + s.push(ZA); + break; + case 95: + s.push(this); + break; + case 96: + s.push(this[_1tbu0[372 + l[p++]]]); + break; + } + } + } + , + _$pz.prototype.sign = function (_$py) { + return _$Jh.resolve(this.signSync(_$py)); + } + , + _$pz.prototype.signSync = function (_$py) { + var Zd = pW; + try { + return this._$sdnmd(_$py); + } catch (_$pu) { + return this._onSign({ + 'code': _$OZ, + 'message': Zd(0x165) + }), + _$py; + } + } + , + _$pz.settings = { + 'beta': !(0x163 * -0xa + -0x14fc + 0x1 * 0x22db) + }, + window.ParamsSign = _$pz, + _$pz; +}(); + +export function sha256(t) { + var o = function safeAdd(t, o) { + var a = (65535 & t) + (65535 & o); + return (t >> 16) + (o >> 16) + (a >> 16) << 16 | 65535 & a + } + , a = function S(t, o) { + return t >>> o | t << 32 - o + } + , u = function R(t, o) { + return t >>> o + } + , p = function ch(t, o, a) { + return t & o ^ ~t & a + } + , B = function maj(t, o, a) { + return t & o ^ t & a ^ o & a + } + , D = function sigma0256(t) { + return a(t, 2) ^ a(t, 13) ^ a(t, 22) + } + , j = function sigma1256(t) { + return a(t, 6) ^ a(t, 11) ^ a(t, 25) + } + , L = function gamma0256(t) { + return a(t, 7) ^ a(t, 18) ^ u(t, 3) + } + , W = function gamma1256(t) { + return a(t, 17) ^ a(t, 19) ^ u(t, 10) + } + , X = function utf8Encode(t) { + t = t.replace(/\r\n/g, "\n"); + for (var o = "", a = 0; a < t.length; a++) { + var u = t.charCodeAt(a); + u < 128 ? o += String.fromCharCode(u) : u > 127 && u < 2048 ? (o += String.fromCharCode(u >> 6 | 192), + o += String.fromCharCode(63 & u | 128)) : (o += String.fromCharCode(u >> 12 | 224), + o += String.fromCharCode(u >> 6 & 63 | 128), + o += String.fromCharCode(63 & u | 128)) + } + return o + }(t); + return function binb2hex(t) { + for (var o = "0123456789abcdef", a = "", u = 0; u < 4 * t.length; u++) + a += o.charAt(t[u >> 2] >> 8 * (3 - u % 4) + 4 & 15) + o.charAt(t[u >> 2] >> 8 * (3 - u % 4) & 15); + return a + }(function coreSha256(t, a) { + var u = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298] + , X = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225] + , Y = new Array(64); + t[a >> 5] |= 128 << 24 - a % 32, + t[15 + (a + 64 >> 9 << 4)] = a; + for (var $ = 0; $ < t.length; $ += 16) { + for (var te = X[0], re = X[1], oe = X[2], se = X[3], pe = X[4], Ae = X[5], Ee = X[6], Ce = X[7], Me = 0; Me < 64; Me++) { + Y[Me] = Me < 16 ? t[Me + $] : o(o(o(W(Y[Me - 2]), Y[Me - 7]), L(Y[Me - 15])), Y[Me - 16]); + var _e = o(o(o(o(Ce, j(pe)), p(pe, Ae, Ee)), u[Me]), Y[Me]) + , Ie = o(D(te), B(te, re, oe)); + Ce = Ee, + Ee = Ae, + Ae = pe, + pe = o(se, _e), + se = oe, + oe = re, + re = te, + te = o(_e, Ie) + } + X[0] = o(te, X[0]), + X[1] = o(re, X[1]), + X[2] = o(oe, X[2]), + X[3] = o(se, X[3]), + X[4] = o(pe, X[4]), + X[5] = o(Ae, X[5]), + X[6] = o(Ee, X[6]), + X[7] = o(Ce, X[7]) + } + return X + }(function str2binb(t) { + for (var o = [], a = 0; a < 8 * t.length; a += 8) + o[a >> 5] |= (255 & t.charCodeAt(a / 8)) << 24 - a % 32; + return o + }(X), 8 * X.length)) +} + +// 默认配置 +export const defaultConfigh5st = { + route: '/jd/h5st', + port: 8880, + CipherName: 'H5st523',// 算法名称 + apiLs: ["dsm.grow.shop.api.price.PriceOperateService.pagePriceStarSkuInfo", + "dsm.grow.shop.api.price.PriceOperateService.priceAdjustInfo", + "dsm.wareshopv2.ware.wareListService.queryWareList", + "dsm.order.manage.orderdetail.get", + "dsm.product.manage.ProductStatusUpdateViewService.updateProductStatus", + "dsm.product.manage.ProductInfoReadViewService.queryValidProductList", + "dsm.order.bff.orderListBffService.queryOrderPage", + "dsm.login.o2o.login.foodPCMenu.get"], + errorStr: '解析异常,请检查请求参数', + h5st_V: 'h5_file_v5.2.3' +}; + +/** + * 处理h5st请求的通用函数 (用于POST和GET请求) + * @param {Object} req - 请求对象 + * @param {Object} res - 响应对象 + * @param {Object} inputData - 输入数据 (来自req.body或req.query) + */ +export const handleH5stRequest = (req, res, inputData) => { + + /** + * 同意异常日志 + * + * @param {*} e + */ + function error(e) { + console.log(`${new Date().toLocaleString()} --> 客户端:${req.ip} --> 解析异常:${e}`); + res.send(defaultConfigh5st.errorStr); + } + + try { + const {sua, pin, khd, ai, ...params} = inputData; + + // 1. 处理body参数 + if (params.body?.length !== 64) { // 检查body是否存在且长度是否为64 + // 如果body长度不为64,则进行SHA256加密 + params.body &&= sha256(params.body).toString(); + + // 如果api在apiLs配置中,则将加密结果转为大写 + defaultConfigh5st.apiLs.includes(params.api) && (params.body = params.body?.toUpperCase()); + } + + // 2. 处理t参数 + params.t = params.t !== undefined ? parseInt(params.t, 10) || "" : undefined; // 转换为整数或空字符串 + if (params.t === undefined) delete params.t; // 如果t为undefined则删除该字段 + + // 3. 清理空值(将null/undefined转为空字符串) + Object.keys(params).forEach(key => { + if (params[key] == null) { // 检查是否为null或undefined + params[key] = ""; // 转为空字符串 + } + }); + + new ParamsSign({ + appId: ai, + debug: false, + preRequest: false, + onSign: e => e.code, + onRequestTokenRemotely: e => (e.code, e.message), + onRequestToken: e => (e.code, e.message) + }).sign(params).then(r => { + let parts = r.h5st.split(';'); + let env = (function () { + let v = defaultConfigh5st.h5st_V; + let fp = parts[1]; + + // 基础配置(默认 m 端配置参数) + let baseEnv = { + sua: sua ? sua : "", + pp: pin ? {p1: decodeURIComponent(pin)} : {}, + extend: { + wd: 0, + l: 0, + ls: 5, + wk: 0, + bu1: "0.1.5", + bu3: 51, + bu4: 0, + bu5: 0, + bu6: 13, + bu7: 0, + bu8: 0, + random: window.random(10), + bu12: -8, + bu10: 14, + bu11: 2 + }, + pf: "Win32", + random: window.random(9), + v: v, + bu4: "0", + canvas: "d292170ca009238e7f6c027ac97f13fa", + webglFp: "0e885670105a1e55909f683b5a2944d5", + ccn: 12, + fp: fp + }; + + // 特定配置覆盖 + let configOverrides = { + m: { + extend: { + bu13: "Fh" + } + }, + pc: { + pp: pin ? {p2: decodeURIComponent(pin)} : {}, + extend: { + bu1: "0.1.9", + bu3: 100, + bu6: 32, + bu11: 3, + bu13: "Fh" + }, + bu1: "0.1.8" + }, + jx: { + extend: { + bu1: "lite_0.1.5", + bu3: 79, + bu6: 23, + bu13: "Fh" + } + }, + jm: { + extend: { + bu1: "0.1.5", + bu13: "Ff" + } + }, + wh5: { + extend: { + bu1: "0.1.4", + bu3: 36, + bu6: 5, + bu13: "Ff" + } + } + }; + + // 获取khd的有效值,处理空值情况 + let khdKey = khd ? khd.toLowerCase() : 'm'; + let override = configOverrides[khdKey] || {}; + + // 深度合并配置 + let env = { + ...baseEnv, // 1. 展开 baseEnv 的所有属性 + ...override, // 2. 用 override 的属性覆盖 baseEnv 的同名属性 + extend: { // 3. 特殊处理 extend 属性 + ...baseEnv.extend, // 3.1 展开 baseEnv.extend 的所有属性 + ...(override.extend || {}) // 3.2 用 override.extend 的属性覆盖 baseEnv.extend 的同名属性 + } + }; + + return env; + })(); + + // 将env对象转为JSON,然后Base64编码,替换h5st的特定部分 + parts[parts.length - 3] = window.HS.exports.enc.Base64.encode( + window.HS.exports.enc.Utf8.parse(JSON.stringify(env, null, 2)) + ); + + // 返回处理后的h5st字符串 + res.send(parts.join(';')); + }).catch(e => { + error(e); + }); + } catch (e) { + error(e); + } +}; diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..73049a2 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,765 @@ +{ + "name": "h5st_server", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz", + "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.7.0", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/node_modules/accepts/HISTORY.md b/node_modules/accepts/HISTORY.md new file mode 100644 index 0000000..627a81d --- /dev/null +++ b/node_modules/accepts/HISTORY.md @@ -0,0 +1,250 @@ +2.0.0 / 2024-08-31 +================== + + * Drop node <18 support + * deps: mime-types@^3.0.0 + * deps: negotiator@^1.0.0 + +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/node_modules/accepts/LICENSE b/node_modules/accepts/LICENSE new file mode 100644 index 0000000..0616607 --- /dev/null +++ b/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/node_modules/accepts/README.md b/node_modules/accepts/README.md new file mode 100644 index 0000000..f3f10c4 --- /dev/null +++ b/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 type 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/node_modules/accepts/index.js b/node_modules/accepts/index.js new file mode 100644 index 0000000..4f2840c --- /dev/null +++ b/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 {Boolean} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git a/node_modules/accepts/package.json b/node_modules/accepts/package.json new file mode 100644 index 0000000..b35b262 --- /dev/null +++ b/node_modules/accepts/package.json @@ -0,0 +1,47 @@ +{ + "name": "accepts", + "description": "Higher-level content negotiation", + "version": "2.0.0", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "jshttp/accepts", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "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" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "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" + }, + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ] +} diff --git a/node_modules/body-parser/HISTORY.md b/node_modules/body-parser/HISTORY.md new file mode 100644 index 0000000..17dd110 --- /dev/null +++ b/node_modules/body-parser/HISTORY.md @@ -0,0 +1,731 @@ +2.2.0 / 2025-03-27 +========================= + +* refactor: normalize common options for all parsers +* deps: + * iconv-lite@^0.6.3 + +2.1.0 / 2025-02-10 +========================= + +* deps: + * type-is@^2.0.0 + * debug@^4.4.0 + * Removed destroy +* refactor: prefix built-in node module imports +* use the node require cache instead of custom caching + +2.0.2 / 2024-10-31 +========================= + +* remove `unpipe` package and use native `unpipe()` method + +2.0.1 / 2024-09-10 +========================= + +* Restore expected behavior `extended` to `false` + +2.0.0 / 2024-09-10 +========================= +* Propagate changes from 1.20.3 +* add brotli support #406 +* Breaking Change: Node.js 18 is the minimum supported version + +2.0.0-beta.2 / 2023-02-23 +========================= + +This incorporates all changes after 1.19.1 up to 1.20.2. + + * Remove deprecated `bodyParser()` combination middleware + * deps: debug@3.1.0 + - Add `DEBUG_HIDE_DATE` environment variable + - Change timer to per-namespace instead of global + - Change non-TTY date format + - Remove `DEBUG_FD` environment variable support + - Support 256 namespace colors + * deps: iconv-lite@0.5.2 + - Add encoding cp720 + - Add encoding UTF-32 + * deps: raw-body@3.0.0-beta.1 + +2.0.0-beta.1 / 2021-12-17 +========================= + + * Drop support for Node.js 0.8 + * `req.body` is no longer always initialized to `{}` + - it is left `undefined` unless a body is parsed + * `urlencoded` parser now defaults `extended` to `false` + * Use `on-finished` to determine when body read + +1.20.3 / 2024-09-10 +=================== + + * deps: qs@6.13.0 + * add `depth` option to customize the depth level in the parser + * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`) + +1.20.2 / 2023-02-21 +=================== + + * Fix strict json error message on Node.js 19+ + * deps: content-type@~1.0.5 + - perf: skip value escaping when unnecessary + * deps: raw-body@2.5.2 + +1.20.1 / 2022-10-06 +=================== + + * deps: qs@6.11.0 + * perf: remove unnecessary object clone + +1.20.0 / 2022-04-02 +=================== + + * Fix error message for json parse whitespace in `strict` + * Fix internal error when inflated body exceeds limit + * Prevent loss of async hooks context + * Prevent hanging when request already read + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: http-errors@2.0.0 + - deps: depd@2.0.0 + - deps: statuses@2.0.1 + * deps: on-finished@2.4.1 + * deps: qs@6.10.3 + * deps: raw-body@2.5.1 + - deps: http-errors@2.0.0 + +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/node_modules/body-parser/LICENSE b/node_modules/body-parser/LICENSE new file mode 100644 index 0000000..386b7b6 --- /dev/null +++ b/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/node_modules/body-parser/README.md b/node_modules/body-parser/README.md new file mode 100644 index 0000000..9fcd4c6 --- /dev/null +++ b/node_modules/body-parser/README.md @@ -0,0 +1,491 @@ +# body-parser + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] +[![OpenSSF Scorecard Badge][ossf-scorecard-badge]][ossf-scorecard-visualizer] + +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 +const 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. + +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`, +`br` (brotli) 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`, `br` (brotli) 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`, `br` (brotli) 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`, `br` (brotli) 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" 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 `false`. + +##### 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. + +##### defaultCharset + +The default charset to parse as, if not specified in content-type. Must be +either `utf-8` or `iso-8859-1`. Defaults to `utf-8`. + +##### charsetSentinel + +Whether to let the value of the `utf8` parameter take precedence as the charset +selector. It requires the form to contain a parameter named `utf8` with a value +of `✓`. Defaults to `false`. + +##### interpretNumericEntities + +Whether to decode numeric entities such as `☺` when parsing an iso-8859-1 +form. Defaults to `false`. + + +#### depth + +The `depth` option is used to configure the maximum depth of the `qs` library when `extended` is `true`. This allows you to limit the amount of keys that are parsed and can be useful to prevent certain types of abuse. Defaults to `32`. It is recommended to keep this value as low as possible. + +## 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'`. + +### stream is not readable + +This error will occur when the request is no longer readable when this middleware +attempts to read it. This typically means something other than a middleware from +this module read the request body already and the middleware was also configured to +read the same request. The `status` property is set to `500` and the `type` +property is set to `'stream.not.readable'`. + +### 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. + +### The input exceeded the depth + +This error occurs when using `bodyParser.urlencoded` with the `extended` property set to `true` and the input exceeds the configured `depth` option. The `status` property is set to `400`. It is recommended to review the `depth` option and evaluate if it requires a higher value. When the `depth` option is set to `32` (default value), the error will not be thrown. + +## 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 +const express = require('express') +const bodyParser = require('body-parser') + +const app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded()) + +// 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(String(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 +const express = require('express') +const bodyParser = require('body-parser') + +const app = express() + +// create application/json parser +const jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +const urlencodedParser = bodyParser.urlencoded() + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + if (!req.body || !req.body.username) res.sendStatus(400) + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + if (!req.body) res.sendStatus(400) + // 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 +const express = require('express') +const bodyParser = require('body-parser') + +const 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) + +[ci-image]: https://badgen.net/github/checks/expressjs/body-parser/master?label=ci +[ci-url]: https://github.com/expressjs/body-parser/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/body-parser/master +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[node-version-image]: https://badgen.net/npm/node/body-parser +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/body-parser +[npm-url]: https://npmjs.org/package/body-parser +[npm-version-image]: https://badgen.net/npm/v/body-parser +[ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/body-parser/badge +[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser \ No newline at end of file diff --git a/node_modules/body-parser/index.js b/node_modules/body-parser/index.js new file mode 100644 index 0000000..d722d0b --- /dev/null +++ b/node_modules/body-parser/index.js @@ -0,0 +1,80 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = bodyParser + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: () => require('./lib/types/urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser () { + throw new Error('The bodyParser() generic has been split into individual middleware to use instead.') +} diff --git a/node_modules/body-parser/lib/read.js b/node_modules/body-parser/lib/read.js new file mode 100644 index 0000000..eee8b11 --- /dev/null +++ b/node_modules/body-parser/lib/read.js @@ -0,0 +1,210 @@ +/*! + * 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('node: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 + + // 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) + } + + // unpipe from stream and destroy + if (stream !== req) { + req.unpipe() + stream.destroy() + } + + // read off entire request + dump(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, encoding) + } 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'] + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + if (encoding === 'identity') { + req.length = length + return req + } + + var stream = createDecompressionStream(encoding, debug) + req.pipe(stream) + return stream +} + +/** + * Create a decompression stream for the given encoding. + * @param {string} encoding + * @param {function} debug + * @return {object} + * @api private + */ +function createDecompressionStream (encoding, debug) { + switch (encoding) { + case 'deflate': + debug('inflate body') + return zlib.createInflate() + case 'gzip': + debug('gunzip body') + return zlib.createGunzip() + case 'br': + debug('brotli decompress body') + return zlib.createBrotliDecompress() + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } +} + +/** + * Dump the contents of a request. + * + * @param {object} req + * @param {function} callback + * @api private + */ + +function dump (req, callback) { + if (onFinished.isFinished(req)) { + callback(null) + } else { + onFinished(req, callback) + req.resume() + } +} diff --git a/node_modules/body-parser/lib/types/json.js b/node_modules/body-parser/lib/types/json.js new file mode 100644 index 0000000..078ce71 --- /dev/null +++ b/node_modules/body-parser/lib/types/json.js @@ -0,0 +1,206 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var { getCharset, normalizeOptions } = require('../utils') + +/** + * 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]*([^\x20\x09\x0a\x0d])/ // eslint-disable-line no-control-regex + +var JSON_SYNTAX_CHAR = '#' +var JSON_SYNTAX_REGEXP = /#+/g + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/json') + + var reviver = options?.reviver + var strict = options?.strict !== false + + 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 (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // 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.slice(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, + limit, + 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 = '' + + if (index !== -1) { + partial = str.substring(0, index) + JSON_SYNTAX_CHAR + + for (var i = index + 1; i < str.length; i++) { + partial += JSON_SYNTAX_CHAR + } + } + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace(JSON_SYNTAX_REGEXP, function (placeholder) { + return str.substring(index, index + placeholder.length) + }), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + var match = FIRST_CHAR_REGEXP.exec(str) + + return match + ? match[1] + : 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 +} diff --git a/node_modules/body-parser/lib/types/raw.js b/node_modules/body-parser/lib/types/raw.js new file mode 100644 index 0000000..3788ff2 --- /dev/null +++ b/node_modules/body-parser/lib/types/raw.js @@ -0,0 +1,75 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var debug = require('debug')('body-parser:raw') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var { normalizeOptions } = require('../utils') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/octet-stream') + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // 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, + limit, + verify + }) + } +} diff --git a/node_modules/body-parser/lib/types/text.js b/node_modules/body-parser/lib/types/text.js new file mode 100644 index 0000000..3e0ab1b --- /dev/null +++ b/node_modules/body-parser/lib/types/text.js @@ -0,0 +1,80 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var debug = require('debug')('body-parser:text') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var { getCharset, normalizeOptions } = require('../utils') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'text/plain') + + var defaultCharset = options?.defaultCharset || 'utf-8' + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // 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, + limit, + verify + }) + } +} diff --git a/node_modules/body-parser/lib/types/urlencoded.js b/node_modules/body-parser/lib/types/urlencoded.js new file mode 100644 index 0000000..f993425 --- /dev/null +++ b/node_modules/body-parser/lib/types/urlencoded.js @@ -0,0 +1,177 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var isFinished = require('on-finished').isFinished +var read = require('../read') +var typeis = require('type-is') +var qs = require('qs') +var { getCharset, normalizeOptions } = require('../utils') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var { inflate, limit, verify, shouldParse } = normalizeOptions(options, 'application/x-www-form-urlencoded') + + var defaultCharset = options?.defaultCharset || 'utf-8' + if (defaultCharset !== 'utf-8' && defaultCharset !== 'iso-8859-1') { + throw new TypeError('option defaultCharset must be either utf-8 or iso-8859-1') + } + + // create the appropriate query parser + var queryparse = createQueryParser(options) + + function parse (body, encoding) { + return body.length + ? queryparse(body, encoding) + : {} + } + + return function urlencodedParser (req, res, next) { + if (isFinished(req)) { + debug('body already parsed') + next() + return + } + + if (!('body' in req)) { + req.body = undefined + } + + // 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) || defaultCharset + if (charset !== 'utf-8' && charset !== 'iso-8859-1') { + 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, + limit, + verify + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function createQueryParser (options) { + var extended = Boolean(options?.extended) + var parameterLimit = options?.parameterLimit !== undefined + ? options?.parameterLimit + : 1000 + var charsetSentinel = options?.charsetSentinel + var interpretNumericEntities = options?.interpretNumericEntities + var depth = extended ? (options?.depth !== undefined ? options?.depth : 32) : 0 + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isNaN(depth) || depth < 0) { + throw new TypeError('option depth must be a zero or a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body, encoding) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = extended ? Math.max(100, paramCount) : 0 + + debug('parse ' + (extended ? 'extended ' : '') + 'urlencoding') + try { + return qs.parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: depth, + charsetSentinel: charsetSentinel, + interpretNumericEntities: interpretNumericEntities, + charset: encoding, + parameterLimit: parameterLimit, + strictDepth: true + }) + } catch (err) { + if (err instanceof RangeError) { + throw createError(400, 'The input exceeded the depth', { + type: 'querystring.parse.rangeError' + }) + } else { + throw err + } + } + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var len = body.split('&').length + + return len > limit ? undefined : len - 1 +} diff --git a/node_modules/body-parser/lib/utils.js b/node_modules/body-parser/lib/utils.js new file mode 100644 index 0000000..eee5d95 --- /dev/null +++ b/node_modules/body-parser/lib/utils.js @@ -0,0 +1,83 @@ +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = { + getCharset, + normalizeOptions +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string | string[]} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} + +/** + * Normalizes the common options for all parsers. + * + * @param {object} options options to normalize + * @param {string | string[] | function} defaultType default content type(s) or a function to determine it + * @returns {object} + */ +function normalizeOptions (options, defaultType) { + if (!defaultType) { + // Parsers must define a default content type + throw new TypeError('defaultType must be provided') + } + + var inflate = options?.inflate !== false + var limit = typeof options?.limit !== 'number' + ? bytes.parse(options?.limit || '100kb') + : options?.limit + var type = options?.type || defaultType + var verify = options?.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 + + return { + inflate, + limit, + verify, + shouldParse + } +} diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json new file mode 100644 index 0000000..e7f763b --- /dev/null +++ b/node_modules/body-parser/package.json @@ -0,0 +1,49 @@ +{ + "name": "body-parser", + "description": "Node.js body parsing middleware", + "version": "2.2.0", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "expressjs/body-parser", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "devDependencies": { + "eslint": "8.34.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-markdown": "3.0.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "^11.1.0", + "nyc": "^17.1.0", + "supertest": "^7.0.0" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">=18" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/bytes/History.md b/node_modules/bytes/History.md new file mode 100644 index 0000000..d60ce0e --- /dev/null +++ b/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/node_modules/bytes/LICENSE b/node_modules/bytes/LICENSE new file mode 100644 index 0000000..63e95a9 --- /dev/null +++ b/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/node_modules/bytes/Readme.md b/node_modules/bytes/Readme.md new file mode 100644 index 0000000..5790e23 --- /dev/null +++ b/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|string value, [options]): number|string|null + +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|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. + +**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|number value): number|null + +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/node_modules/bytes/index.js b/node_modules/bytes/index.js new file mode 100644 index 0000000..6f2d0f8 --- /dev/null +++ b/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/node_modules/bytes/package.json b/node_modules/bytes/package.json new file mode 100644 index 0000000..f2b6a8b --- /dev/null +++ b/node_modules/bytes/package.json @@ -0,0 +1,42 @@ +{ + "name": "bytes", + "description": "Utility to parse a string bytes to bytes and vice-versa", + "version": "3.1.2", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Jed Watson ", + "Théo FIDRY " + ], + "license": "MIT", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "repository": "visionmedia/bytes.js", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "History.md", + "LICENSE", + "Readme.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "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" + } +} diff --git a/node_modules/call-bind-apply-helpers/.eslintrc b/node_modules/call-bind-apply-helpers/.eslintrc new file mode 100644 index 0000000..201e859 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.eslintrc @@ -0,0 +1,17 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "id-length": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + "no-extra-parens": 0, + "no-magic-numbers": 0, + }, +} diff --git a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml new file mode 100644 index 0000000..0011e9d --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.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/call-bind-apply-helpers +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 up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bind-apply-helpers/.nycrc b/node_modules/call-bind-apply-helpers/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bind-apply-helpers/CHANGELOG.md b/node_modules/call-bind-apply-helpers/CHANGELOG.md new file mode 100644 index 0000000..2484942 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/CHANGELOG.md @@ -0,0 +1,30 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.1...v1.0.2) - 2025-02-12 + +### Commits + +- [types] improve inferred types [`e6f9586`](https://github.com/ljharb/call-bind-apply-helpers/commit/e6f95860a3c72879cb861a858cdfb8138fbedec1) +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`e43d540`](https://github.com/ljharb/call-bind-apply-helpers/commit/e43d5409f97543bfbb11f345d47d8ce4e066d8c1) + +## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08 + +### Commits + +- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8) +- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75) +- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940) + +## v1.0.0 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04) +- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f) +- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603) +- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930) diff --git a/node_modules/call-bind-apply-helpers/LICENSE b/node_modules/call-bind-apply-helpers/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +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/node_modules/call-bind-apply-helpers/README.md b/node_modules/call-bind-apply-helpers/README.md new file mode 100644 index 0000000..8fc0dae --- /dev/null +++ b/node_modules/call-bind-apply-helpers/README.md @@ -0,0 +1,62 @@ +# call-bind-apply-helpers [![Version Badge][npm-version-svg]][package-url] + +[![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] + +Helper functions around Function call/apply/bind, for use in `call-bind`. + +The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`. +Please use `call-bind` unless you have a very good reason not to. + +## Getting started + +```sh +npm install --save call-bind-apply-helpers +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBindBasic = require('call-bind-apply-helpers'); + +function f(a, b) { + assert.equal(this, 1); + assert.equal(a, 2); + assert.equal(b, 3); + assert.equal(arguments.length, 2); +} + +const fBound = callBindBasic([f, 1]); + +delete Function.prototype.call; +delete Function.prototype.bind; + +fBound(2, 3); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bind-apply-helpers +[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg +[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg +[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers +[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers +[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers +[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions diff --git a/node_modules/call-bind-apply-helpers/actualApply.d.ts b/node_modules/call-bind-apply-helpers/actualApply.d.ts new file mode 100644 index 0000000..b87286a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.d.ts @@ -0,0 +1 @@ +export = Reflect.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/actualApply.js b/node_modules/call-bind-apply-helpers/actualApply.js new file mode 100644 index 0000000..ffa5135 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); + +var $apply = require('./functionApply'); +var $call = require('./functionCall'); +var $reflectApply = require('./reflectApply'); + +/** @type {import('./actualApply')} */ +module.exports = $reflectApply || bind.call($call, $apply); diff --git a/node_modules/call-bind-apply-helpers/applyBind.d.ts b/node_modules/call-bind-apply-helpers/applyBind.d.ts new file mode 100644 index 0000000..d176c1a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.d.ts @@ -0,0 +1,19 @@ +import actualApply from './actualApply'; + +type TupleSplitHead = T['length'] extends N + ? T + : T extends [...infer R, any] + ? TupleSplitHead + : never + +type TupleSplitTail = O['length'] extends N + ? T + : T extends [infer F, ...infer R] + ? TupleSplitTail<[...R], N, [...O, F]> + : never + +type TupleSplit = [TupleSplitHead, TupleSplitTail] + +declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; + +export = applyBind; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/applyBind.js b/node_modules/call-bind-apply-helpers/applyBind.js new file mode 100644 index 0000000..d2b7723 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); +var $apply = require('./functionApply'); +var actualApply = require('./actualApply'); + +/** @type {import('./applyBind')} */ +module.exports = function applyBind() { + return actualApply(bind, $apply, arguments); +}; diff --git a/node_modules/call-bind-apply-helpers/functionApply.d.ts b/node_modules/call-bind-apply-helpers/functionApply.d.ts new file mode 100644 index 0000000..1f6e11b --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.d.ts @@ -0,0 +1 @@ +export = Function.prototype.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionApply.js b/node_modules/call-bind-apply-helpers/functionApply.js new file mode 100644 index 0000000..c71df9c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionApply')} */ +module.exports = Function.prototype.apply; diff --git a/node_modules/call-bind-apply-helpers/functionCall.d.ts b/node_modules/call-bind-apply-helpers/functionCall.d.ts new file mode 100644 index 0000000..15e93df --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.d.ts @@ -0,0 +1 @@ +export = Function.prototype.call; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionCall.js b/node_modules/call-bind-apply-helpers/functionCall.js new file mode 100644 index 0000000..7a8d873 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionCall')} */ +module.exports = Function.prototype.call; diff --git a/node_modules/call-bind-apply-helpers/index.d.ts b/node_modules/call-bind-apply-helpers/index.d.ts new file mode 100644 index 0000000..541516b --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.d.ts @@ -0,0 +1,64 @@ +type RemoveFromTuple< + Tuple extends readonly unknown[], + RemoveCount extends number, + Index extends 1[] = [] +> = Index["length"] extends RemoveCount + ? Tuple + : Tuple extends [infer First, ...infer Rest] + ? RemoveFromTuple + : Tuple; + +type ConcatTuples< + Prefix extends readonly unknown[], + Suffix extends readonly unknown[] +> = [...Prefix, ...Suffix]; + +type ExtractFunctionParams = T extends (this: infer TThis, ...args: infer P extends readonly unknown[]) => infer R + ? { thisArg: TThis; params: P; returnType: R } + : never; + +type BindFunction< + T extends (this: any, ...args: any[]) => any, + TThis, + TBoundArgs extends readonly unknown[], + ReceiverBound extends boolean +> = ExtractFunctionParams extends { + thisArg: infer OrigThis; + params: infer P extends readonly unknown[]; + returnType: infer R; +} + ? ReceiverBound extends true + ? (...args: RemoveFromTuple>) => R extends [OrigThis, ...infer Rest] + ? [TThis, ...Rest] // Replace `this` with `thisArg` + : R + : >>( + thisArg: U, + ...args: RemainingArgs + ) => R extends [OrigThis, ...infer Rest] + ? [U, ...ConcatTuples] // Preserve bound args in return type + : R + : never; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[], + const TThis extends Extracted["thisArg"] +>( + args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind< + const T extends (this: any, ...args: any[]) => any, + Extracted extends ExtractFunctionParams, + const TBoundArgs extends Partial & readonly unknown[] +>( + args: [fn: T, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind( + args: [fn: Exclude, ...rest: TArgs] +): never; + +// export as namespace callBind; +export = callBind; diff --git a/node_modules/call-bind-apply-helpers/index.js b/node_modules/call-bind-apply-helpers/index.js new file mode 100644 index 0000000..2f6dab4 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.js @@ -0,0 +1,15 @@ +'use strict'; + +var bind = require('function-bind'); +var $TypeError = require('es-errors/type'); + +var $call = require('./functionCall'); +var $actualApply = require('./actualApply'); + +/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ +module.exports = function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== 'function') { + throw new $TypeError('a function is required'); + } + return $actualApply(bind, $call, args); +}; diff --git a/node_modules/call-bind-apply-helpers/package.json b/node_modules/call-bind-apply-helpers/package.json new file mode 100644 index 0000000..923b8be --- /dev/null +++ b/node_modules/call-bind-apply-helpers/package.json @@ -0,0 +1,85 @@ +{ + "name": "call-bind-apply-helpers", + "version": "1.0.2", + "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", + "main": "index.js", + "exports": { + ".": "./index.js", + "./actualApply": "./actualApply.js", + "./applyBind": "./applyBind.js", + "./functionApply": "./functionApply.js", + "./functionCall": "./functionCall.js", + "./reflectApply": "./reflectApply.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" + }, + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" + }, + "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.3", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/for-each": "^0.3.3", + "@types/function-bind": "^1.1.10", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bind-apply-helpers/reflectApply.d.ts b/node_modules/call-bind-apply-helpers/reflectApply.d.ts new file mode 100644 index 0000000..6b2ae76 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.d.ts @@ -0,0 +1,3 @@ +declare const reflectApply: false | typeof Reflect.apply; + +export = reflectApply; diff --git a/node_modules/call-bind-apply-helpers/reflectApply.js b/node_modules/call-bind-apply-helpers/reflectApply.js new file mode 100644 index 0000000..3d03caa --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./reflectApply')} */ +module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/node_modules/call-bind-apply-helpers/test/index.js b/node_modules/call-bind-apply-helpers/test/index.js new file mode 100644 index 0000000..1cdc89e --- /dev/null +++ b/node_modules/call-bind-apply-helpers/test/index.js @@ -0,0 +1,63 @@ +'use strict'; + +var callBind = require('../'); +var hasStrictMode = require('has-strict-mode')(); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var v = require('es-value-fixtures'); + +var test = require('tape'); + +test('callBindBasic', function (t) { + forEach(v.nonFunctions, function (nonFunction) { + t['throws']( + // @ts-expect-error + function () { callBind([nonFunction]); }, + TypeError, + inspect(nonFunction) + ' is not a function' + ); + }); + + var sentinel = { sentinel: true }; + /** @type {(this: T, a: A, b: B) => [T | undefined, A, B]} */ + var func = function (a, b) { + // eslint-disable-next-line no-invalid-this + return [!hasStrictMode && this === global ? undefined : this, a, b]; + }; + t.equal(func.length, 2, 'original function length is 2'); + + /** type {(thisArg: unknown, a: number, b: number) => [unknown, number, number]} */ + var bound = callBind([func]); + /** type {((a: number, b: number) => [typeof sentinel, typeof a, typeof b])} */ + var boundR = callBind([func, sentinel]); + /** type {((b: number) => [typeof sentinel, number, typeof b])} */ + var boundArg = callBind([func, sentinel, /** @type {const} */ (1)]); + + // @ts-expect-error + t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with no args'); + + // @ts-expect-error + t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); + // @ts-expect-error + t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func too few args'); + // @ts-expect-error + t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); + // @ts-expect-error + t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); + + t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); + t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with right args'); + t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); + t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); + + // @ts-expect-error + t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); + // @ts-expect-error + t.deepEqual(bound(1, 2, 3, 4), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); + // @ts-expect-error + t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); + // @ts-expect-error + t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); + + t.end(); +}); diff --git a/node_modules/call-bind-apply-helpers/tsconfig.json b/node_modules/call-bind-apply-helpers/tsconfig.json new file mode 100644 index 0000000..aef9993 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} \ No newline at end of file diff --git a/node_modules/call-bound/.eslintrc b/node_modules/call-bound/.eslintrc new file mode 100644 index 0000000..2612ed8 --- /dev/null +++ b/node_modules/call-bound/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/call-bound/.github/FUNDING.yml b/node_modules/call-bound/.github/FUNDING.yml new file mode 100644 index 0000000..2a2a135 --- /dev/null +++ b/node_modules/call-bound/.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/call-bound +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 up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bound/.nycrc b/node_modules/call-bound/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bound/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bound/CHANGELOG.md b/node_modules/call-bound/CHANGELOG.md new file mode 100644 index 0000000..8bde4e9 --- /dev/null +++ b/node_modules/call-bound/CHANGELOG.md @@ -0,0 +1,42 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.4](https://github.com/ljharb/call-bound/compare/v1.0.3...v1.0.4) - 2025-03-03 + +### Commits + +- [types] improve types [`e648922`](https://github.com/ljharb/call-bound/commit/e6489222a9e54f350fbf952ceabe51fd8b6027ff) +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`a42a5eb`](https://github.com/ljharb/call-bound/commit/a42a5ebe6c1b54fcdc7997c7dc64fdca9e936719) +- [Deps] update `call-bind-apply-helpers`, `get-intrinsic` [`f529eac`](https://github.com/ljharb/call-bound/commit/f529eac132404c17156bbc23ab2297a25d0f20b8) + +## [v1.0.3](https://github.com/ljharb/call-bound/compare/v1.0.2...v1.0.3) - 2024-12-15 + +### Commits + +- [Refactor] use `call-bind-apply-helpers` instead of `call-bind` [`5e0b134`](https://github.com/ljharb/call-bound/commit/5e0b13496df14fb7d05dae9412f088da8d3f75be) +- [Deps] update `get-intrinsic` [`41fc967`](https://github.com/ljharb/call-bound/commit/41fc96732a22c7b7e8f381f93ccc54bb6293be2e) +- [readme] fix example [`79a0137`](https://github.com/ljharb/call-bound/commit/79a0137723f7c6d09c9c05452bbf8d5efb5d6e49) +- [meta] add `sideEffects` flag [`08b07be`](https://github.com/ljharb/call-bound/commit/08b07be7f1c03f67dc6f3cdaf0906259771859f7) + +## [v1.0.2](https://github.com/ljharb/call-bound/compare/v1.0.1...v1.0.2) - 2024-12-10 + +### Commits + +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `gopd` [`e6a5ffe`](https://github.com/ljharb/call-bound/commit/e6a5ffe849368fe4f74dfd6cdeca1b9baa39e8d5) +- [Deps] update `call-bind`, `get-intrinsic` [`2aeb5b5`](https://github.com/ljharb/call-bound/commit/2aeb5b521dc2b2683d1345c753ea1161de2d1c14) +- [types] improve return type [`1a0c9fe`](https://github.com/ljharb/call-bound/commit/1a0c9fe3114471e7ca1f57d104e2efe713bb4871) + +## v1.0.1 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme, types [`6d94121`](https://github.com/ljharb/call-bound/commit/6d94121a9243602e506334069f7a03189fe3363d) +- Initial commit [`0eae867`](https://github.com/ljharb/call-bound/commit/0eae867334ea025c33e6e91cdecfc9df96680cf9) +- npm init [`71b2479`](https://github.com/ljharb/call-bound/commit/71b2479c6723e0b7d91a6b663613067e98b7b275) +- Only apps should have lockfiles [`c3754a9`](https://github.com/ljharb/call-bound/commit/c3754a949b7f9132b47e2d18c1729889736741eb) +- [actions] skip `npm ls` in node < 10 [`74275a5`](https://github.com/ljharb/call-bound/commit/74275a5186b8caf6309b6b97472bdcb0df4683a8) +- [Dev Deps] add missing peer dep [`1354de8`](https://github.com/ljharb/call-bound/commit/1354de8679413e4ae9c523d85f76fa7a5e032d97) diff --git a/node_modules/call-bound/LICENSE b/node_modules/call-bound/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bound/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +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/node_modules/call-bound/README.md b/node_modules/call-bound/README.md new file mode 100644 index 0000000..a44e43e --- /dev/null +++ b/node_modules/call-bound/README.md @@ -0,0 +1,53 @@ +# call-bound [![Version Badge][npm-version-svg]][package-url] + +[![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] + +Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`. + +## Getting started + +```sh +npm install --save call-bound +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBound = require('call-bound'); + +const slice = callBound('Array.prototype.slice'); + +delete Function.prototype.call; +delete Function.prototype.bind; +delete Array.prototype.slice; + +assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bound +[npm-version-svg]: https://versionbadg.es/ljharb/call-bound.svg +[deps-svg]: https://david-dm.org/ljharb/call-bound.svg +[deps-url]: https://david-dm.org/ljharb/call-bound +[dev-deps-svg]: https://david-dm.org/ljharb/call-bound/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bound#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bound.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bound.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bound.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bound +[codecov-image]: https://codecov.io/gh/ljharb/call-bound/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bound/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bound +[actions-url]: https://github.com/ljharb/call-bound/actions diff --git a/node_modules/call-bound/index.d.ts b/node_modules/call-bound/index.d.ts new file mode 100644 index 0000000..5562f00 --- /dev/null +++ b/node_modules/call-bound/index.d.ts @@ -0,0 +1,94 @@ +type Intrinsic = typeof globalThis; + +type IntrinsicName = keyof Intrinsic | `%${keyof Intrinsic}%`; + +type IntrinsicPath = IntrinsicName | `${StripPercents}.${string}` | `%${StripPercents}.${string}%`; + +type AllowMissing = boolean; + +type StripPercents = T extends `%${infer U}%` ? U : T; + +type BindMethodPrecise = + F extends (this: infer This, ...args: infer Args) => infer R + ? (obj: This, ...args: Args) => R + : F extends { + (this: infer This1, ...args: infer Args1): infer R1; + (this: infer This2, ...args: infer Args2): infer R2 + } + ? { + (obj: This1, ...args: Args1): R1; + (obj: This2, ...args: Args2): R2 + } + : never + +// Extract method type from a prototype +type GetPrototypeMethod = + (typeof globalThis)[T] extends { prototype: any } + ? M extends keyof (typeof globalThis)[T]['prototype'] + ? (typeof globalThis)[T]['prototype'][M] + : never + : never + +// Get static property/method +type GetStaticMember = + P extends keyof (typeof globalThis)[T] ? (typeof globalThis)[T][P] : never + +// Type that maps string path to actual bound function or value with better precision +type BoundIntrinsic = + S extends `${infer Obj}.prototype.${infer Method}` + ? Obj extends keyof typeof globalThis + ? BindMethodPrecise> + : unknown + : S extends `${infer Obj}.${infer Prop}` + ? Obj extends keyof typeof globalThis + ? GetStaticMember + : unknown + : unknown + +declare function arraySlice(array: readonly T[], start?: number, end?: number): T[]; +declare function arraySlice(array: ArrayLike, start?: number, end?: number): T[]; +declare function arraySlice(array: IArguments, start?: number, end?: number): T[]; + +// Special cases for methods that need explicit typing +interface SpecialCases { + '%Object.prototype.isPrototypeOf%': (thisArg: {}, obj: unknown) => boolean; + '%String.prototype.replace%': { + (str: string, searchValue: string | RegExp, replaceValue: string): string; + (str: string, searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string + }; + '%Object.prototype.toString%': (obj: {}) => string; + '%Object.prototype.hasOwnProperty%': (obj: {}, v: PropertyKey) => boolean; + '%Array.prototype.slice%': typeof arraySlice; + '%Array.prototype.map%': (array: readonly T[], callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any) => U[]; + '%Array.prototype.filter%': (array: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any) => T[]; + '%Array.prototype.indexOf%': (array: readonly T[], searchElement: T, fromIndex?: number) => number; + '%Function.prototype.apply%': (fn: (...args: A) => R, thisArg: any, args: A) => R; + '%Function.prototype.call%': (fn: (...args: A) => R, thisArg: any, ...args: A) => R; + '%Function.prototype.bind%': (fn: (...args: A) => R, thisArg: any, ...args: A) => (...remainingArgs: A) => R; + '%Promise.prototype.then%': { + (promise: Promise, onfulfilled: (value: T) => R | PromiseLike): Promise; + (promise: Promise, onfulfilled: ((value: T) => R | PromiseLike) | undefined | null, onrejected: (reason: any) => R | PromiseLike): Promise; + }; + '%RegExp.prototype.test%': (regexp: RegExp, str: string) => boolean; + '%RegExp.prototype.exec%': (regexp: RegExp, str: string) => RegExpExecArray | null; + '%Error.prototype.toString%': (error: Error) => string; + '%TypeError.prototype.toString%': (error: TypeError) => string; + '%String.prototype.split%': ( + obj: unknown, + splitter: string | RegExp | { + [Symbol.split](string: string, limit?: number): string[]; + }, + limit?: number | undefined + ) => string[]; +} + +/** + * Returns a bound function for a prototype method, or a value for a static property. + * + * @param name - The name of the intrinsic (e.g. 'Array.prototype.slice') + * @param {AllowMissing} [allowMissing] - Whether to allow missing intrinsics (default: false) + */ +declare function callBound, S extends IntrinsicPath>(name: K, allowMissing?: AllowMissing): SpecialCases[`%${StripPercents}%`]; +declare function callBound, S extends IntrinsicPath>(name: S, allowMissing?: AllowMissing): BoundIntrinsic; + +export = callBound; diff --git a/node_modules/call-bound/index.js b/node_modules/call-bound/index.js new file mode 100644 index 0000000..e9ade74 --- /dev/null +++ b/node_modules/call-bound/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBindBasic = require('call-bind-apply-helpers'); + +/** @type {(thisArg: string, searchString: string, position?: number) => number} */ +var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); + +/** @type {import('.')} */ +module.exports = function callBoundIntrinsic(name, allowMissing) { + /* eslint no-extra-parens: 0 */ + + var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing)); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBindBasic(/** @type {const} */ ([intrinsic])); + } + return intrinsic; +}; diff --git a/node_modules/call-bound/package.json b/node_modules/call-bound/package.json new file mode 100644 index 0000000..d542db4 --- /dev/null +++ b/node_modules/call-bound/package.json @@ -0,0 +1,99 @@ +{ + "name": "call-bound", + "version": "1.0.4", + "description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bound.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bound/issues" + }, + "homepage": "https://github.com/ljharb/call-bound#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.4", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.3.0", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bound/test/index.js b/node_modules/call-bound/test/index.js new file mode 100644 index 0000000..a2fc9f0 --- /dev/null +++ b/node_modules/call-bound/test/index.js @@ -0,0 +1,61 @@ +'use strict'; + +var test = require('tape'); + +var callBound = require('../'); + +/** @template {true} T @template U @typedef {T extends U ? T : never} AssertType */ + +test('callBound', function (t) { + // static primitive + t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); + t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); + + // static non-function object + t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); + t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); + t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); + t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); + + // static function + t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); + t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); + + // prototype primitive + t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); + t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); + + var x = callBound('Object.prototype.toString'); + var y = callBound('%Object.prototype.toString%'); + + // prototype function + t.notEqual(x, Object.prototype.toString, 'Object.prototype.toString does not yield itself'); + t.notEqual(y, Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); + t.equal(x(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); + t.equal(y(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); + + t['throws']( + // @ts-expect-error + function () { callBound('does not exist'); }, + SyntaxError, + 'nonexistent intrinsic throws' + ); + t['throws']( + // @ts-expect-error + function () { callBound('does not exist', true); }, + SyntaxError, + 'allowMissing arg still throws for unknown intrinsic' + ); + + t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { + st['throws']( + function () { callBound('WeakRef'); }, + TypeError, + 'real but absent intrinsic throws' + ); + st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/call-bound/tsconfig.json b/node_modules/call-bound/tsconfig.json new file mode 100644 index 0000000..8976d98 --- /dev/null +++ b/node_modules/call-bound/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "ESNext", + "lib": ["es2024"], + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/content-disposition/HISTORY.md b/node_modules/content-disposition/HISTORY.md new file mode 100644 index 0000000..ff0b68b --- /dev/null +++ b/node_modules/content-disposition/HISTORY.md @@ -0,0 +1,66 @@ +1.0.0 / 2024-08-31 +================== + + * drop node <18 + * allow utf8 as alias for utf-8 + +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/node_modules/content-disposition/LICENSE b/node_modules/content-disposition/LICENSE new file mode 100644 index 0000000..84441fb --- /dev/null +++ b/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/node_modules/content-disposition/README.md b/node_modules/content-disposition/README.md new file mode 100644 index 0000000..3a0bb05 --- /dev/null +++ b/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/node_modules/content-disposition/index.js b/node_modules/content-disposition/index.js new file mode 100644 index 0000000..44f1d51 --- /dev/null +++ b/node_modules/content-disposition/index.js @@ -0,0 +1,459 @@ +/*! + * 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.slice(-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': + case 'utf8': + 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].slice(-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 + .slice(1, -1) + .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/node_modules/content-disposition/package.json b/node_modules/content-disposition/package.json new file mode 100644 index 0000000..5cea50b --- /dev/null +++ b/node_modules/content-disposition/package.json @@ -0,0 +1,44 @@ +{ + "name": "content-disposition", + "description": "Create and parse Content-Disposition header", + "version": "1.0.0", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-disposition", + "http", + "rfc6266", + "res" + ], + "repository": "jshttp/content-disposition", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "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", + "mocha": "^9.2.2", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/content-type/HISTORY.md b/node_modules/content-type/HISTORY.md new file mode 100644 index 0000000..4583671 --- /dev/null +++ b/node_modules/content-type/HISTORY.md @@ -0,0 +1,29 @@ +1.0.5 / 2023-01-29 +================== + + * perf: skip value escaping when unnecessary + +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/node_modules/content-type/LICENSE b/node_modules/content-type/LICENSE new file mode 100644 index 0000000..34b1a2d --- /dev/null +++ b/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/node_modules/content-type/README.md b/node_modules/content-type/README.md new file mode 100644 index 0000000..c1a922a --- /dev/null +++ b/node_modules/content-type/README.md @@ -0,0 +1,94 @@ +# content-type + +[![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] + +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` header. 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', + parameters: { charset: 'utf-8' } +}) +``` + +Format an object into a `Content-Type` header. 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) + +[ci-image]: https://badgen.net/github/checks/jshttp/content-type/master?label=ci +[ci-url]: https://github.com/jshttp/content-type/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/content-type/master +[coveralls-url]: https://coveralls.io/r/jshttp/content-type?branch=master +[node-image]: https://badgen.net/npm/node/content-type +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/content-type +[npm-url]: https://npmjs.org/package/content-type +[npm-version-image]: https://badgen.net/npm/v/content-type diff --git a/node_modules/content-type/index.js b/node_modules/content-type/index.js new file mode 100644 index 0000000..41840e7 --- /dev/null +++ b/node_modules/content-type/index.js @@ -0,0 +1,225 @@ +/*! + * 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 // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ // eslint-disable-line no-control-regex +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 // eslint-disable-line no-control-regex + +/** + * 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.slice(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.charCodeAt(0) === 0x22 /* " */) { + // remove quotes + value = value.slice(1, -1) + + // remove escapes + if (value.indexOf('\\') !== -1) { + value = value.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/node_modules/content-type/package.json b/node_modules/content-type/package.json new file mode 100644 index 0000000..9db19f6 --- /dev/null +++ b/node_modules/content-type/package.json @@ -0,0 +1,42 @@ +{ + "name": "content-type", + "description": "Create and parse HTTP Content-Type header", + "version": "1.0.5", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-type", + "http", + "req", + "res", + "rfc7231" + ], + "repository": "jshttp/content-type", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "8.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "10.2.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/cookie-signature/History.md b/node_modules/cookie-signature/History.md new file mode 100644 index 0000000..479211a --- /dev/null +++ b/node_modules/cookie-signature/History.md @@ -0,0 +1,70 @@ +1.2.2 / 2024-10-29 +================== + +* various metadata/documentation tweaks (incl. #51) + + +1.2.1 / 2023-02-27 +================== + +* update annotations for allowed secret key types (#44, thanks @jyasskin!) + + +1.2.0 / 2022-02-17 +================== + +* allow buffer and other node-supported types as key (#33) +* be pickier about extra content after signed portion (#40) +* some internal code clarity/cleanup improvements (#26) + + +1.1.0 / 2018-01-18 +================== + +* switch to built-in `crypto.timingSafeEqual` for validation instead of previous double-hash method (thank you @jodevsa!) + + +1.0.7 / 2023-04-12 +================== + +Later release for older node.js versions. See the [v1.0.x branch notes](https://github.com/tj/node-cookie-signature/blob/v1.0.x/History.md#107--2023-04-12). + + +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/node_modules/cookie-signature/LICENSE b/node_modules/cookie-signature/LICENSE new file mode 100644 index 0000000..a2671bf --- /dev/null +++ b/node_modules/cookie-signature/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2012–2024 LearnBoost and other 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/node_modules/cookie-signature/Readme.md b/node_modules/cookie-signature/Readme.md new file mode 100644 index 0000000..369af15 --- /dev/null +++ b/node_modules/cookie-signature/Readme.md @@ -0,0 +1,23 @@ + +# 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 + +MIT. + +See LICENSE file for details. diff --git a/node_modules/cookie-signature/index.js b/node_modules/cookie-signature/index.js new file mode 100644 index 0000000..3fbbddb --- /dev/null +++ b/node_modules/cookie-signature/index.js @@ -0,0 +1,47 @@ +/** + * Module dependencies. + */ + +var crypto = require('crypto'); + +/** + * Sign the given `val` with `secret`. + * + * @param {String} val + * @param {String|NodeJS.ArrayBufferView|crypto.KeyObject} 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 (null == secret) throw new TypeError("Secret key must be provided."); + return val + '.' + crypto + .createHmac('sha256', secret) + .update(val) + .digest('base64') + .replace(/\=+$/, ''); +}; + +/** + * Unsign and decode the given `input` with `secret`, + * returning `false` if the signature is invalid. + * + * @param {String} input + * @param {String|NodeJS.ArrayBufferView|crypto.KeyObject} secret + * @return {String|Boolean} + * @api private + */ + +exports.unsign = function(input, secret){ + if ('string' != typeof input) throw new TypeError("Signed cookie string must be provided."); + if (null == secret) throw new TypeError("Secret key must be provided."); + var tentativeValue = input.slice(0, input.lastIndexOf('.')), + expectedInput = exports.sign(tentativeValue, secret), + expectedBuffer = Buffer.from(expectedInput), + inputBuffer = Buffer.from(input); + return ( + expectedBuffer.length === inputBuffer.length && + crypto.timingSafeEqual(expectedBuffer, inputBuffer) + ) ? tentativeValue : false; +}; diff --git a/node_modules/cookie-signature/package.json b/node_modules/cookie-signature/package.json new file mode 100644 index 0000000..a160040 --- /dev/null +++ b/node_modules/cookie-signature/package.json @@ -0,0 +1,24 @@ +{ + "name": "cookie-signature", + "version": "1.2.2", + "main": "index.js", + "description": "Sign and unsign cookies", + "keywords": ["cookie", "sign", "unsign"], + "author": "TJ Holowaychuk ", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/visionmedia/node-cookie-signature.git" + }, + "dependencies": {}, + "engines": { + "node": ">=6.6.0" + }, + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "scripts": { + "test": "mocha --require should --reporter spec" + } +} diff --git a/node_modules/cookie/LICENSE b/node_modules/cookie/LICENSE new file mode 100644 index 0000000..058b6b4 --- /dev/null +++ b/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/node_modules/cookie/README.md b/node_modules/cookie/README.md new file mode 100644 index 0000000..71fdac1 --- /dev/null +++ b/node_modules/cookie/README.md @@ -0,0 +1,317 @@ +# cookie + +[![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] + +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. + +##### partitioned + +Specifies the `boolean` value for the [`Partitioned` `Set-Cookie`](rfc-cutler-httpbis-partitioned-cookies) +attribute. When truthy, the `Partitioned` attribute is set, otherwise it is not. By default, the +`Partitioned` attribute is not set. + +**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. + +More information about can be found in [the proposal](https://github.com/privacycg/CHIPS). + +##### 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]. + +##### priority + +Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1]. + + - `'low'` will set the `Priority` attribute to `Low`. + - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set. + - `'high'` will set the `Priority` attribute to `High`. + +More information about the different priority levels can be found in +[the specification][rfc-west-cookie-priority-00-4.1]. + +**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. + +##### sameSite + +Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-09-5.4.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-09-5.4.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.5.0 bench +> node benchmark/index.js + + node@18.18.2 + acorn@8.10.0 + ada@2.6.0 + ares@1.19.1 + brotli@1.0.9 + cldr@43.1 + icu@73.2 + llhttp@6.0.11 + modules@108 + napi@9 + nghttp2@1.57.0 + nghttp3@0.7.0 + ngtcp2@0.8.1 + openssl@3.0.10+quic + simdutf@3.2.14 + tz@2023c + undici@5.26.3 + unicode@15.0 + uv@1.44.2 + uvwasi@0.0.18 + v8@10.2.154.26-node.26 + zlib@1.2.13.1-motley + +> node benchmark/parse-top.js + + cookie.parse - top sites + + 14 tests completed. + + parse accounts.google.com x 2,588,913 ops/sec ±0.74% (186 runs sampled) + parse apple.com x 2,370,002 ops/sec ±0.69% (186 runs sampled) + parse cloudflare.com x 2,213,102 ops/sec ±0.88% (188 runs sampled) + parse docs.google.com x 2,194,157 ops/sec ±1.03% (184 runs sampled) + parse drive.google.com x 2,265,084 ops/sec ±0.79% (187 runs sampled) + parse en.wikipedia.org x 457,099 ops/sec ±0.81% (186 runs sampled) + parse linkedin.com x 504,407 ops/sec ±0.89% (186 runs sampled) + parse maps.google.com x 1,230,959 ops/sec ±0.98% (186 runs sampled) + parse microsoft.com x 926,294 ops/sec ±0.88% (184 runs sampled) + parse play.google.com x 2,311,338 ops/sec ±0.83% (185 runs sampled) + parse support.google.com x 1,508,850 ops/sec ±0.86% (186 runs sampled) + parse www.google.com x 1,022,582 ops/sec ±1.32% (182 runs sampled) + parse youtu.be x 332,136 ops/sec ±1.02% (185 runs sampled) + parse youtube.com x 323,833 ops/sec ±0.77% (183 runs sampled) + +> node benchmark/parse.js + + cookie.parse - generic + + 6 tests completed. + + simple x 3,214,032 ops/sec ±1.61% (183 runs sampled) + decode x 587,237 ops/sec ±1.16% (187 runs sampled) + unquote x 2,954,618 ops/sec ±1.35% (183 runs sampled) + duplicates x 857,008 ops/sec ±0.89% (187 runs sampled) + 10 cookies x 292,133 ops/sec ±0.89% (187 runs sampled) + 100 cookies x 22,610 ops/sec ±0.68% (187 runs sampled) +``` + +## References + +- [RFC 6265: HTTP State Management Mechanism][rfc-6265] +- [Same-site Cookies][rfc-6265bis-09-5.4.7] + +[rfc-cutler-httpbis-partitioned-cookies]: https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/ +[rfc-west-cookie-priority-00-4.1]: https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1 +[rfc-6265bis-09-5.4.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.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) + +[ci-image]: https://badgen.net/github/checks/jshttp/cookie/master?label=ci +[ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master +[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master +[node-image]: https://badgen.net/npm/node/cookie +[node-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/node_modules/cookie/SECURITY.md b/node_modules/cookie/SECURITY.md new file mode 100644 index 0000000..fd4a6c5 --- /dev/null +++ b/node_modules/cookie/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The `cookie` team and community take all security bugs seriously. Thank +you for improving the security of the project. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `cookie`. This +information can be found in the npm registry using the command +`npm owner ls cookie`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/jshttp/cookie/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/cookie/index.js b/node_modules/cookie/index.js new file mode 100644 index 0000000..acd5acd --- /dev/null +++ b/node_modules/cookie/index.js @@ -0,0 +1,335 @@ +/*! + * 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 __toString = Object.prototype.toString +var __hasOwnProperty = Object.prototype.hasOwnProperty + +/** + * RegExp to match cookie-name in RFC 6265 sec 4.1.1 + * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2 + * which has been replaced by the token definition in RFC 7230 appendix B. + * + * cookie-name = token + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / + * "*" / "+" / "-" / "." / "^" / "_" / + * "`" / "|" / "~" / DIGIT / ALPHA + */ + +var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + +/** + * RegExp to match cookie-value in RFC 6265 sec 4.1.1 + * + * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + * ; US-ASCII characters excluding CTLs, + * ; whitespace DQUOTE, comma, semicolon, + * ; and backslash + */ + +var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/; + +/** + * RegExp to match domain-value in RFC 6265 sec 4.1.1 + * + * domain-value = + * ; defined in [RFC1034], Section 3.5, as + * ; enhanced by [RFC1123], Section 2.1 + * =